Analysis API
Base path: /api/v1/projects/{project_id}/analysis
Endpoints
| Method | Endpoint | Description |
|---|---|---|
| POST | /projects/{id}/analysis/contradictions | Detect contradictions across project papers |
| GET | /projects/{id}/analysis/author-network | Get author collaboration network |
| GET | /projects/{id}/analysis/trends | Get research trend analysis |
| POST | /projects/{id}/analysis/gaps | Detect literature gaps and research opportunities |
| GET | /projects/{id}/analysis/impact-scores | Get citation impact scores for papers |
Contradictions
POST /projects/{id}/analysis/contradictions — Analyze all papers to find contradictory claims or findings using LLM.
Response fields:
contradictions[]— Each withpaper_a_id,paper_a_title,paper_b_id,paper_b_title,claim,position_a,position_b,confidence,topictopics[]— List of topics where contradictions were foundtotal_contradictions— Count
Returns empty for projects with fewer than 2 papers.
Author Network
GET /projects/{id}/analysis/author-network — Build a co-authorship collaboration graph.
Query parameters:
min_collaborations(default: 1) — Minimum co-authorship count for an edgemax_nodes(default: 100, max: 500) — Maximum author nodes to return
Response fields:
nodes[]— Each withname,paper_count,paper_ids,coauthors,h_index_estimateedges[]— Each withsource,target,collaboration_countmetrics—total_authors,total_edges,density,top_authors
Trends
GET /projects/{id}/analysis/trends — Analyze how research topics evolved over time.
Response fields:
publication_timeline[]— Each withyear,count,citationstopic_trends[]— Each withtopic,slope,r_squared,trend,total_papers,yearly_countsemerging_topics[]— Each withtopic,yoy_growthdeclining_topics[]— Each withtopic,yoy_growthsummary_stats—total_papers,year_span,first_year,last_year,total_topics,emerging_count,declining_count
Gap Analysis
POST /projects/{id}/analysis/gaps — Identify under-researched areas and generate research questions using LLM.
Response fields:
gaps[]— Each withtopic,description,evidence,related_paper_ids,gap_scoreresearch_questions[]— Each withquestion,addresses_gap,novelty_score,feasibility_scoresummary—total_gaps,total_questions
Returns empty for projects with fewer than 2 papers.
Impact Scores
GET /projects/{id}/analysis/impact-scores — Compute Omelette Impact Score (0-100) for each paper.
Response fields:
scores[]— Each withpaper_id,title,score,factors(breakdown of score components)total— Number of scored papersavg_score— Average score across all paperstop_paper_id— ID of the highest-scoring paper
