{"openapi":"3.1.0","info":{"title":"papers-extraction API","version":"0.2.0"},"paths":{"/papers":{"get":{"tags":["data"],"summary":"Get Paper By Alt Id","description":"Return paper + latest-run genes, looked up by DOI or PMC ID.","operationId":"get_paper_by_alt_id_papers_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"doi","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"DOI, e.g. 10.1128/JB.01214-06","title":"Doi"},"description":"DOI, e.g. 10.1128/JB.01214-06"},{"name":"pmc_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"PMC ID, with or without PMC prefix","title":"Pmc Id"},"description":"PMC ID, with or without PMC prefix"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaperWithGenes"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/papers/{pmid}":{"get":{"tags":["data"],"summary":"Get Paper","description":"Return paper metadata + latest-run extracted genes for one PMID.","operationId":"get_paper_papers__pmid__get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"pmid","in":"path","required":true,"schema":{"type":"integer","maximum":9223372036854775807,"exclusiveMinimum":0,"title":"Pmid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaperWithGenes"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/genes":{"get":{"tags":["data"],"summary":"List Genes","description":"List genes across papers, matching name/alias/locus_tag, has_* and field-value filters (latest run only).\n\nField-value filters: repeat a param to OR values; different fields AND.\nUnknown query params return 422. Returns a paged envelope: {items, total, next}.","operationId":"list_genes_genes_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Match gene_name or alias.","title":"Name"},"description":"Match gene_name or alias."},{"name":"locus_tag","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Match locus_tag (substring by default; exact with exact=true).","title":"Locus Tag"},"description":"Match locus_tag (substring by default; exact with exact=true)."},{"name":"exact","in":"query","required":false,"schema":{"type":"boolean","description":"Exact case-insensitive match for `name` and `locus_tag`.","default":false,"title":"Exact"},"description":"Exact case-insensitive match for `name` and `locus_tag`."},{"name":"pmid","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":9223372036854775807,"exclusiveMinimum":0},{"type":"null"}],"description":"Only genes extracted from this PMID.","title":"Pmid"},"description":"Only genes extracted from this PMID."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":5000,"minimum":1,"default":100,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","maximum":9223372036854775807,"minimum":0,"default":0,"title":"Offset"}},{"name":"has_function_role","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Function Role"}},{"name":"has_pathway_regulation","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Pathway Regulation"}},{"name":"has_localization_context","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Localization Context"}},{"name":"has_phenotype","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Phenotype"}},{"name":"has_biofilm","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Biofilm"}},{"name":"has_relationships","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Relationships"}},{"name":"has_aliases","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Aliases"}},{"name":"has_notes","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Notes"}},{"name":"has_transcriptional_regulators","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Transcriptional Regulators"}},{"name":"has_post_transcriptional_regulators","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Post Transcriptional Regulators"}},{"name":"has_regulated_targets","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Regulated Targets"}},{"name":"has_physical_interactions","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Physical Interactions"}},{"name":"has_functional_interactions","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Functional Interactions"}},{"name":"has_operon_members","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Operon Members"}},{"name":"has_chromosomal_locus","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Chromosomal Locus"}},{"name":"regulatory_protein","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["yes","no","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Regulatory Protein"}},{"name":"regulatory_rna","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["yes","no","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Regulatory Rna"}},{"name":"regulates_transcription","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["yes","no","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Regulates Transcription"}},{"name":"regulates_transcript_stability","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["yes","no","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Regulates Transcript Stability"}},{"name":"regulates_translation","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["yes","no","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Regulates Translation"}},{"name":"regulates_protein_stability","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["yes","no","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Regulates Protein Stability"}},{"name":"enzyme","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["yes","no","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Enzyme"}},{"name":"rna_chaperone","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["yes","no","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Rna Chaperone"}},{"name":"machine_component","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["yes","no","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Machine Component"}},{"name":"envelope_integrity","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["yes","no","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Envelope Integrity"}},{"name":"metabolic","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["yes","no","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Metabolic"}},{"name":"quorum_sensing","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["yes","no","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Quorum Sensing"}},{"name":"two_component_signaling","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["yes","no","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Two Component Signaling"}},{"name":"small_molecule","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["yes","no","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Small Molecule"}},{"name":"metals","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["yes","no","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Metals"}},{"name":"cyclic_di_gmp","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["yes","no","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Cyclic Di Gmp"}},{"name":"oxidative_stress","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["yes","no","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Oxidative Stress"}},{"name":"cytoplasm","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["yes","no","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Cytoplasm"}},{"name":"inner_membrane","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["yes","no","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Inner Membrane"}},{"name":"periplasm","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["yes","no","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Periplasm"}},{"name":"peptidoglycan","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["yes","no","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Peptidoglycan"}},{"name":"outer_membrane","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["yes","no","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Outer Membrane"}},{"name":"membrane_vesicles","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["yes","no","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Membrane Vesicles"}},{"name":"secreted","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["yes","no","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Secreted"}},{"name":"juvenile_squid","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["yes","no","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Juvenile Squid"}},{"name":"adult_squid","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["yes","no","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Adult Squid"}},{"name":"seawater","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["yes","no","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Seawater"}},{"name":"culture_media","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["yes","no","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Culture Media"}},{"name":"squid_monocolonization","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["yes","no","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Squid Monocolonization"}},{"name":"squid_competitive_colonization","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["yes","no","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Squid Competitive Colonization"}},{"name":"squid_overexpression","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["yes","no","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Squid Overexpression"}},{"name":"LBS_media","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["up","down","no_change","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Lbs Media"}},{"name":"SWT_media","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["up","down","no_change","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Swt Media"}},{"name":"minimal_media","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["up","down","no_change","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Minimal Media"}},{"name":"biofilm_expression_correlation","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["positive","negative","no_correlation","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Biofilm Expression Correlation"}},{"name":"biofilm_mutant_aggregation","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["up","down","no_change","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Biofilm Mutant Aggregation"}},{"name":"biofilm_overexpression_aggregation","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["up","down","no_change","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Biofilm Overexpression Aggregation"}},{"name":"biofilm_mutant_wrinkled_colony","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["up","down","abnormal","no_change","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Biofilm Mutant Wrinkled Colony"}},{"name":"biofilm_overexpression_wrinkled_colony","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["up","down","abnormal","no_change","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Biofilm Overexpression Wrinkled Colony"}},{"name":"biofilm_mutant_pellicle","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["up","down","abnormal","no_change","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Biofilm Mutant Pellicle"}},{"name":"biofilm_overexpression_pellicle","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["up","down","abnormal","no_change","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Biofilm Overexpression Pellicle"}},{"name":"biofilm_mutant_crystal_violet","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["up","down","no_change","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Biofilm Mutant Crystal Violet"}},{"name":"biofilm_overexpression_crystal_violet","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["up","down","no_change","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Biofilm Overexpression Crystal Violet"}},{"name":"motility_mutant_impact","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["up","down","no_change","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Motility Mutant Impact"}},{"name":"motility_expression_correlation","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["positive","negative","no_correlation","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Motility Expression Correlation"}},{"name":"host_phenotype_mutant_impact","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["up","down","no_change","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Host Phenotype Mutant Impact"}},{"name":"plasmid","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["yes","no","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Plasmid"}},{"name":"annotation_discrepancy","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["yes","no","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Annotation Discrepancy"}},{"name":"strain_conservation","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["yes","no","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Strain Conservation"}},{"name":"species_conservation","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["yes","no","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Species Conservation"}},{"name":"horizontal_gene_transfer","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["yes","no","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Horizontal Gene Transfer"}},{"name":"regulation_transcription","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["yes","no","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Regulation Transcription"}},{"name":"regulation_transcript_stability","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["yes","no","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Regulation Transcript Stability"}},{"name":"regulation_translation","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["yes","no","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Regulation Translation"}},{"name":"regulation_protein_stability","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["yes","no","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Regulation Protein Stability"}},{"name":"regulation_protein_activity","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["yes","no","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Regulation Protein Activity"}},{"name":"auto_regulated","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["yes","no","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Auto Regulated"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenePage"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/search":{"get":{"tags":["data"],"summary":"Search","description":"Keyword search over papers + latest-run gene records (incl. aliases).\n\nEach list returns its own {items, total, next} envelope; the two next\ncursors advance independently.","operationId":"search_search_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","minLength":1,"description":"Case-insensitive substring.","title":"Q"},"description":"Case-insensitive substring."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":50,"title":"Limit"}},{"name":"paper_offset","in":"query","required":false,"schema":{"type":"integer","maximum":9223372036854775807,"minimum":0,"default":0,"title":"Paper Offset"}},{"name":"gene_offset","in":"query","required":false,"schema":{"type":"integer","maximum":9223372036854775807,"minimum":0,"default":0,"title":"Gene Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api":{"get":{"tags":["meta"],"summary":"Api Quickstart","description":"Quick-start guide (markdown).","operationId":"api_quickstart_api_get","responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/health":{"get":{"tags":["meta"],"summary":"Health","description":"Liveness probe.","operationId":"health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":{"type":"string"},"type":"object","title":"Response Health Health Get"}}}}}}},"/llms.txt":{"get":{"tags":["meta"],"summary":"Llms Txt","description":"LLM-agent-facing API guide (llmstxt.org convention).","operationId":"llms_txt_llms_txt_get","responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}},"text/markdown":{}}}}}},"/app/data/stats":{"get":{"tags":["app"],"summary":"App Stats","description":"Headline corpus counts for the home page.","operationId":"app_stats_app_data_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Stats"}}}}}}},"/app/data/attention":{"get":{"tags":["app"],"summary":"App Attention","description":"Intake counts that need a reviewer.","operationId":"app_attention_app_data_attention_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Attention"}}}}}}},"/app/data/papers":{"get":{"tags":["app"],"summary":"App Papers","description":"Corpus papers with gene counts and status; rejected papers and file links when signed in.","operationId":"app_papers_app_data_papers_get","parameters":[{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Title, authors, DOI, or PMID.","title":"Q"},"description":"Title, authors, DOI, or PMID."},{"name":"year_min","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":9223372036854775807,"minimum":-9223372036854775807},{"type":"null"}],"title":"Year Min"}},{"name":"year_max","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":9223372036854775807,"minimum":-9223372036854775807},{"type":"null"}],"title":"Year Max"}},{"name":"has_genes","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Genes"}},{"name":"gene","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Exact gene name.","title":"Gene"},"description":"Exact gene name."},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"enum":["extracted","missing_pdf","check_supplements","extracting","failed","pending","rejected"],"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/papers_extraction__app_schemas__PaperPage"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/app/data/papers/{pmid}":{"get":{"tags":["app"],"summary":"App Paper","description":"One paper's metadata, latest-run genes and source files; names and links when signed in.","operationId":"app_paper_app_data_papers__pmid__get","parameters":[{"name":"pmid","in":"path","required":true,"schema":{"type":"integer","maximum":9223372036854775807,"exclusiveMinimum":0,"title":"Pmid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaperDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/app/data/genes":{"get":{"tags":["app"],"summary":"App Genes","description":"One row per gene; same filters as `/genes`, a gene matches if any paper does.","operationId":"app_genes_app_data_genes_get","parameters":[{"name":"name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Match gene_name or alias.","title":"Name"},"description":"Match gene_name or alias."},{"name":"locus_tag","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Match locus_tag (substring by default; exact with exact=true).","title":"Locus Tag"},"description":"Match locus_tag (substring by default; exact with exact=true)."},{"name":"exact","in":"query","required":false,"schema":{"type":"boolean","description":"Exact case-insensitive match for `name` and `locus_tag`.","default":false,"title":"Exact"},"description":"Exact case-insensitive match for `name` and `locus_tag`."},{"name":"pmid","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":9223372036854775807,"exclusiveMinimum":0},{"type":"null"}],"description":"Only genes extracted from this PMID.","title":"Pmid"},"description":"Only genes extracted from this PMID."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":5000,"minimum":1,"default":100,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","maximum":9223372036854775807,"minimum":0,"default":0,"title":"Offset"}},{"name":"has_function_role","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Function Role"}},{"name":"has_pathway_regulation","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Pathway Regulation"}},{"name":"has_localization_context","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Localization Context"}},{"name":"has_phenotype","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Phenotype"}},{"name":"has_biofilm","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Biofilm"}},{"name":"has_relationships","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Relationships"}},{"name":"has_aliases","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Aliases"}},{"name":"has_notes","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Notes"}},{"name":"has_transcriptional_regulators","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Transcriptional Regulators"}},{"name":"has_post_transcriptional_regulators","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Post Transcriptional Regulators"}},{"name":"has_regulated_targets","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Regulated Targets"}},{"name":"has_physical_interactions","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Physical Interactions"}},{"name":"has_functional_interactions","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Functional Interactions"}},{"name":"has_operon_members","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Operon Members"}},{"name":"has_chromosomal_locus","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Chromosomal Locus"}},{"name":"regulatory_protein","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["yes","no","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Regulatory Protein"}},{"name":"regulatory_rna","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["yes","no","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Regulatory Rna"}},{"name":"regulates_transcription","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["yes","no","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Regulates Transcription"}},{"name":"regulates_transcript_stability","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["yes","no","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Regulates Transcript Stability"}},{"name":"regulates_translation","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["yes","no","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Regulates Translation"}},{"name":"regulates_protein_stability","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["yes","no","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Regulates Protein Stability"}},{"name":"enzyme","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["yes","no","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Enzyme"}},{"name":"rna_chaperone","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["yes","no","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Rna Chaperone"}},{"name":"machine_component","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["yes","no","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Machine Component"}},{"name":"envelope_integrity","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["yes","no","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Envelope Integrity"}},{"name":"metabolic","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["yes","no","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Metabolic"}},{"name":"quorum_sensing","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["yes","no","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Quorum Sensing"}},{"name":"two_component_signaling","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["yes","no","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Two Component Signaling"}},{"name":"small_molecule","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["yes","no","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Small Molecule"}},{"name":"metals","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["yes","no","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Metals"}},{"name":"cyclic_di_gmp","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["yes","no","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Cyclic Di Gmp"}},{"name":"oxidative_stress","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["yes","no","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Oxidative Stress"}},{"name":"cytoplasm","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["yes","no","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Cytoplasm"}},{"name":"inner_membrane","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["yes","no","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Inner Membrane"}},{"name":"periplasm","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["yes","no","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Periplasm"}},{"name":"peptidoglycan","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["yes","no","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Peptidoglycan"}},{"name":"outer_membrane","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["yes","no","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Outer Membrane"}},{"name":"membrane_vesicles","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["yes","no","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Membrane Vesicles"}},{"name":"secreted","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["yes","no","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Secreted"}},{"name":"juvenile_squid","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["yes","no","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Juvenile Squid"}},{"name":"adult_squid","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["yes","no","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Adult Squid"}},{"name":"seawater","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["yes","no","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Seawater"}},{"name":"culture_media","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["yes","no","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Culture Media"}},{"name":"squid_monocolonization","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["yes","no","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Squid Monocolonization"}},{"name":"squid_competitive_colonization","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["yes","no","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Squid Competitive Colonization"}},{"name":"squid_overexpression","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["yes","no","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Squid Overexpression"}},{"name":"LBS_media","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["up","down","no_change","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Lbs Media"}},{"name":"SWT_media","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["up","down","no_change","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Swt Media"}},{"name":"minimal_media","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["up","down","no_change","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Minimal Media"}},{"name":"biofilm_expression_correlation","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["positive","negative","no_correlation","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Biofilm Expression Correlation"}},{"name":"biofilm_mutant_aggregation","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["up","down","no_change","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Biofilm Mutant Aggregation"}},{"name":"biofilm_overexpression_aggregation","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["up","down","no_change","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Biofilm Overexpression Aggregation"}},{"name":"biofilm_mutant_wrinkled_colony","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["up","down","abnormal","no_change","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Biofilm Mutant Wrinkled Colony"}},{"name":"biofilm_overexpression_wrinkled_colony","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["up","down","abnormal","no_change","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Biofilm Overexpression Wrinkled Colony"}},{"name":"biofilm_mutant_pellicle","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["up","down","abnormal","no_change","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Biofilm Mutant Pellicle"}},{"name":"biofilm_overexpression_pellicle","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["up","down","abnormal","no_change","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Biofilm Overexpression Pellicle"}},{"name":"biofilm_mutant_crystal_violet","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["up","down","no_change","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Biofilm Mutant Crystal Violet"}},{"name":"biofilm_overexpression_crystal_violet","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["up","down","no_change","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Biofilm Overexpression Crystal Violet"}},{"name":"motility_mutant_impact","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["up","down","no_change","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Motility Mutant Impact"}},{"name":"motility_expression_correlation","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["positive","negative","no_correlation","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Motility Expression Correlation"}},{"name":"host_phenotype_mutant_impact","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["up","down","no_change","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Host Phenotype Mutant Impact"}},{"name":"plasmid","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["yes","no","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Plasmid"}},{"name":"annotation_discrepancy","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["yes","no","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Annotation Discrepancy"}},{"name":"strain_conservation","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["yes","no","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Strain Conservation"}},{"name":"species_conservation","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["yes","no","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Species Conservation"}},{"name":"horizontal_gene_transfer","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["yes","no","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Horizontal Gene Transfer"}},{"name":"regulation_transcription","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["yes","no","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Regulation Transcription"}},{"name":"regulation_transcript_stability","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["yes","no","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Regulation Transcript Stability"}},{"name":"regulation_translation","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["yes","no","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Regulation Translation"}},{"name":"regulation_protein_stability","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["yes","no","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Regulation Protein Stability"}},{"name":"regulation_protein_activity","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["yes","no","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Regulation Protein Activity"}},{"name":"auto_regulated","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["yes","no","not_assessed"],"type":"string"}},{"type":"null"}],"title":"Auto Regulated"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GeneIndexPage"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/app/data/genes/{name}":{"get":{"tags":["app"],"summary":"App Gene","description":"Gene page: summary, bibliography and per-paper records.","operationId":"app_gene_app_data_genes__name__get","parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string","title":"Name"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GeneDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/app/data/gene-names":{"get":{"tags":["app"],"summary":"App Gene Names","description":"Every extracted gene name.","operationId":"app_gene_names_app_data_gene_names_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"type":"string"},"type":"array","title":"Response App Gene Names App Data Gene Names Get"}}}}}}},"/app/data/filter-fields":{"get":{"tags":["app"],"summary":"App Filter Fields","description":"Gene filter names and allowed categorical values.","operationId":"app_filter_fields_app_data_filter_fields_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FilterFields"}}}}}}},"/app/auth/login":{"post":{"tags":["app"],"summary":"App Login","description":"Sign in with an account's email and password.","operationId":"app_login_app_auth_login_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Me"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/app/auth/logout":{"post":{"tags":["app"],"summary":"App Logout","description":"End the session.","operationId":"app_logout_app_auth_logout_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Me"}}}}}}},"/app/auth/me":{"get":{"tags":["app"],"summary":"App Me","description":"Who is signed in, if anyone.","operationId":"app_me_app_auth_me_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Me"}}}}}}},"/app/auth/forgot":{"post":{"tags":["app"],"summary":"App Forgot","description":"Email a reset link when the address has an account; always answers ok.","operationId":"app_forgot_app_auth_forgot_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForgotRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Ok"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/app/auth/token":{"get":{"tags":["app"],"summary":"App Token Info","description":"What an invite or reset link is for, so the page can greet the user.","operationId":"app_token_info_app_auth_token_get","parameters":[{"name":"token","in":"query","required":true,"schema":{"type":"string","maxLength":200,"title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenInfo"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/app/auth/reset":{"post":{"tags":["app"],"summary":"App Reset","description":"Set the password from an invite or reset link and sign in.","operationId":"app_reset_app_auth_reset_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResetRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Me"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/app/auth/password":{"post":{"tags":["app"],"summary":"App Change Password","description":"Change your password; other sessions of the account end.","operationId":"app_change_password_app_auth_password_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChangePasswordRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Me"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/app/admin/users":{"get":{"tags":["app"],"summary":"App Admin Users","description":"Every account, by name.","operationId":"app_admin_users_app_admin_users_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/UserOut"},"type":"array","title":"Response App Admin Users App Admin Users Get"}}}}}},"post":{"tags":["app"],"summary":"App Admin Invite","description":"Create an account and email its invite.","operationId":"app_admin_invite_app_admin_users_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InviteRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/app/admin/users/{user_id}":{"patch":{"tags":["app"],"summary":"App Admin Update","description":"Change a user's role, name, or whether the account is active.","operationId":"app_admin_update_app_admin_users__user_id__patch","parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"integer","title":"User Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserPatch"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/app/admin/users/{user_id}/invite":{"post":{"tags":["app"],"summary":"App Admin Resend","description":"Email a fresh invite to a user who has not set a password yet.","operationId":"app_admin_resend_app_admin_users__user_id__invite_post","parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"integer","title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/app/admin/events":{"get":{"tags":["app"],"summary":"App Admin Events","description":"Recent account changes, newest first.","operationId":"app_admin_events_app_admin_events_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/AuthEvent"},"type":"array","title":"Response App Admin Events App Admin Events Get"}}}}}}},"/app/intake":{"get":{"tags":["app"],"summary":"App Intake","description":"Intake cards for one stage, with per-stage counts.","operationId":"app_intake_app_intake_get","parameters":[{"name":"stage","in":"query","required":false,"schema":{"anyOf":[{"enum":["screen","pdf","supp","extracting","done","failed","rejected"],"type":"string"},{"type":"null"}],"title":"Stage"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntakeList"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/app/intake/same-work":{"get":{"tags":["app"],"summary":"App Same Work","description":"Works with several PubMed records waiting for a reviewer to keep one.","operationId":"app_same_work_app_intake_same_work_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SameWorkList"}}}}}}},"/app/intake/same-work/resolve":{"post":{"tags":["app"],"summary":"App Same Work Resolve","description":"Keep one record of a work and reject the others, then re-summarize their genes.","operationId":"app_same_work_resolve_app_intake_same_work_resolve_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SameWorkResolveRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Flash"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/app/intake/same-work/dismiss":{"post":{"tags":["app"],"summary":"App Same Work Dismiss","description":"Mark linked records as separate papers.","operationId":"app_same_work_dismiss_app_intake_same_work_dismiss_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SameWorkDismissRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Flash"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/app/intake/{pmid}":{"get":{"tags":["app"],"summary":"App Intake Card","description":"One intake card.","operationId":"app_intake_card_app_intake__pmid__get","parameters":[{"name":"pmid","in":"path","required":true,"schema":{"type":"integer","maximum":9223372036854775807,"exclusiveMinimum":0,"title":"Pmid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntakeCard"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/app/intake/search":{"post":{"tags":["app"],"summary":"App Intake Search","description":"Search PubMed and queue unseen hits for abstract screening.","operationId":"app_intake_search_app_intake_search_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Flash"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/app/intake/search/undo":{"post":{"tags":["app"],"summary":"App Intake Undo Search","description":"Remove the papers the newest search queued that nobody has worked on.","operationId":"app_intake_undo_search_app_intake_search_undo_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UndoSearchRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Flash"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/app/intake/add":{"post":{"tags":["app"],"summary":"App Intake Add","description":"Add one paper by PMID or DOI.","operationId":"app_intake_add_app_intake_add_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Flash"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/app/intake/apply-suggestions":{"post":{"tags":["app"],"summary":"App Apply Suggestions","description":"Accept every pending screening suggestion.","operationId":"app_apply_suggestions_app_intake_apply_suggestions_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Flash"}}}}}}},"/app/intake/{pmid}/decision":{"post":{"tags":["app"],"summary":"App Decision","description":"Add, reject, or restore one paper, then re-summarize its genes in the background.","operationId":"app_decision_app_intake__pmid__decision_post","parameters":[{"name":"pmid","in":"path","required":true,"schema":{"type":"integer","maximum":9223372036854775807,"exclusiveMinimum":0,"title":"Pmid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DecisionRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntakeCard"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/app/intake/{pmid}/main-pdf":{"post":{"tags":["app"],"summary":"App Main Pdf","description":"Upload the manuscript PDF; a held one moves to the file history.","operationId":"app_main_pdf_app_intake__pmid__main_pdf_post","parameters":[{"name":"pmid","in":"path","required":true,"schema":{"type":"integer","maximum":9223372036854775807,"exclusiveMinimum":0,"title":"Pmid"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_app_main_pdf_app_intake__pmid__main_pdf_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntakeCard"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["app"],"summary":"App Remove Main","description":"Delete the held manuscript (to the file history); the paper waits for a new one.","operationId":"app_remove_main_app_intake__pmid__main_pdf_delete","parameters":[{"name":"pmid","in":"path","required":true,"schema":{"type":"integer","maximum":9223372036854775807,"exclusiveMinimum":0,"title":"Pmid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntakeCard"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/app/intake/{pmid}/supplements":{"post":{"tags":["app"],"summary":"App Supplements","description":"Upload supplementary files.","operationId":"app_supplements_app_intake__pmid__supplements_post","parameters":[{"name":"pmid","in":"path","required":true,"schema":{"type":"integer","maximum":9223372036854775807,"exclusiveMinimum":0,"title":"Pmid"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_app_supplements_app_intake__pmid__supplements_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntakeCard"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/app/intake/{pmid}/files/{name}":{"patch":{"tags":["app"],"summary":"App File Use","description":"Include or exclude one supplement from extraction.","operationId":"app_file_use_app_intake__pmid__files__name__patch","parameters":[{"name":"pmid","in":"path","required":true,"schema":{"type":"integer","maximum":9223372036854775807,"exclusiveMinimum":0,"title":"Pmid"}},{"name":"name","in":"path","required":true,"schema":{"type":"string","title":"Name"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileUseRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntakeCard"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["app"],"summary":"App Remove File","description":"Delete a supplementary file held for a paper (before its files are confirmed); it moves to the file history.","operationId":"app_remove_file_app_intake__pmid__files__name__delete","parameters":[{"name":"pmid","in":"path","required":true,"schema":{"type":"integer","maximum":9223372036854775807,"exclusiveMinimum":0,"title":"Pmid"}},{"name":"name","in":"path","required":true,"schema":{"type":"string","title":"Name"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntakeCard"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["app"],"summary":"App Replace File","description":"Replace a held supplement with an uploaded file; the old one moves to the file history.","operationId":"app_replace_file_app_intake__pmid__files__name__put","parameters":[{"name":"pmid","in":"path","required":true,"schema":{"type":"integer","maximum":9223372036854775807,"exclusiveMinimum":0,"title":"Pmid"}},{"name":"name","in":"path","required":true,"schema":{"type":"string","title":"Name"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_app_replace_file_app_intake__pmid__files__name__put"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntakeCard"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/app/intake/{pmid}/history/{entry_id}/restore":{"post":{"tags":["app"],"summary":"App Restore File","description":"Put a replaced or deleted file back.","operationId":"app_restore_file_app_intake__pmid__history__entry_id__restore_post","parameters":[{"name":"pmid","in":"path","required":true,"schema":{"type":"integer","maximum":9223372036854775807,"exclusiveMinimum":0,"title":"Pmid"}},{"name":"entry_id","in":"path","required":true,"schema":{"type":"integer","maximum":9223372036854775807,"exclusiveMinimum":0,"title":"Entry Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntakeCard"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/app/intake/{pmid}/discard":{"post":{"tags":["app"],"summary":"App Discard","description":"Put the files back as Edit files found them, and confirm them again.","operationId":"app_discard_app_intake__pmid__discard_post","parameters":[{"name":"pmid","in":"path","required":true,"schema":{"type":"integer","maximum":9223372036854775807,"exclusiveMinimum":0,"title":"Pmid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntakeCard"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/app/intake/{pmid}/workspace":{"get":{"tags":["app"],"summary":"App Workspace","description":"A paper's held files, draft changes and file history.","operationId":"app_workspace_app_intake__pmid__workspace_get","parameters":[{"name":"pmid","in":"path","required":true,"schema":{"type":"integer","maximum":9223372036854775807,"exclusiveMinimum":0,"title":"Pmid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileWorkspace"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["app"],"summary":"App Open Workspace","description":"Hold a corpus paper's files for editing if it never went through intake.","operationId":"app_open_workspace_app_intake__pmid__workspace_post","parameters":[{"name":"pmid","in":"path","required":true,"schema":{"type":"integer","maximum":9223372036854775807,"exclusiveMinimum":0,"title":"Pmid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileWorkspace"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/app/intake/{pmid}/text":{"get":{"tags":["app"],"summary":"App File Text","description":"What extraction reads from one held file (or a file in the history).","operationId":"app_file_text_app_intake__pmid__text_get","parameters":[{"name":"pmid","in":"path","required":true,"schema":{"type":"integer","maximum":9223372036854775807,"exclusiveMinimum":0,"title":"Pmid"}},{"name":"name","in":"query","required":true,"schema":{"type":"string","title":"Name"}},{"name":"source","in":"query","required":false,"schema":{"enum":["corpus","intake","history"],"type":"string","default":"intake","title":"Source"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileText"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/app/intake/{pmid}/confirm":{"post":{"tags":["app"],"summary":"App Confirm","description":"Confirm supplements and queue extraction.","operationId":"app_confirm_app_intake__pmid__confirm_post","parameters":[{"name":"pmid","in":"path","required":true,"schema":{"type":"integer","maximum":9223372036854775807,"exclusiveMinimum":0,"title":"Pmid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntakeCard"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/app/intake/{pmid}/edit-files":{"post":{"tags":["app"],"summary":"App Edit Files","description":"Reopen the supplement selection.","operationId":"app_edit_files_app_intake__pmid__edit_files_post","parameters":[{"name":"pmid","in":"path","required":true,"schema":{"type":"integer","maximum":9223372036854775807,"exclusiveMinimum":0,"title":"Pmid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntakeCard"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/app/intake/{pmid}/fetch":{"post":{"tags":["app"],"summary":"App Fetch","description":"Download an undecided paper's PDF and supplements before the decision.","operationId":"app_fetch_app_intake__pmid__fetch_post","parameters":[{"name":"pmid","in":"path","required":true,"schema":{"type":"integer","maximum":9223372036854775807,"exclusiveMinimum":0,"title":"Pmid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntakeCard"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/app/intake/{pmid}/screen-fulltext":{"post":{"tags":["app"],"summary":"App Screen Fulltext","description":"Queue full-text screening for an undecided paper with a downloaded PDF.","operationId":"app_screen_fulltext_app_intake__pmid__screen_fulltext_post","parameters":[{"name":"pmid","in":"path","required":true,"schema":{"type":"integer","maximum":9223372036854775807,"exclusiveMinimum":0,"title":"Pmid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntakeCard"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/app/intake/{pmid}/retry":{"post":{"tags":["app"],"summary":"App Retry","description":"Re-queue a failed fetch or extraction.","operationId":"app_retry_app_intake__pmid__retry_post","parameters":[{"name":"pmid","in":"path","required":true,"schema":{"type":"integer","maximum":9223372036854775807,"exclusiveMinimum":0,"title":"Pmid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntakeCard"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/app/files/{pmid}/{name}":{"get":{"tags":["app"],"summary":"App File","description":"Serve an intake, corpus or history file: PDFs and images inline, others as a download.","operationId":"app_file_app_files__pmid___name__get","parameters":[{"name":"pmid","in":"path","required":true,"schema":{"type":"integer","maximum":9223372036854775807,"exclusiveMinimum":0,"title":"Pmid"}},{"name":"name","in":"path","required":true,"schema":{"type":"string","title":"Name"}},{"name":"source","in":"query","required":false,"schema":{"enum":["corpus","intake","history"],"type":"string","default":"intake","title":"Source"}}],"responses":{"200":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/app/status/credits":{"get":{"tags":["app"],"summary":"App Credits","description":"OpenRouter balance and how many model jobs wait for it.","operationId":"app_credits_app_status_credits_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreditStatus"}}}}}}},"/app/genes/{name}/reviews":{"post":{"tags":["app"],"summary":"App Add Gene Review","description":"Comment on a gene from one paper; the summary is rewritten with the comment.","operationId":"app_add_gene_review_app_genes__name__reviews_post","parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string","title":"Name"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GeneReviewCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GeneReview"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/app/comments":{"get":{"tags":["app"],"summary":"App Comments","description":"Comments, newest first; open ones only unless include_resolved.","operationId":"app_comments_app_comments_get","parameters":[{"name":"pmid","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":9223372036854775807,"exclusiveMinimum":0},{"type":"null"}],"title":"Pmid"}},{"name":"include_resolved","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Resolved"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Comment"},"title":"Response App Comments App Comments Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["app"],"summary":"App Add Comment","description":"Post a paper review note or app feedback as the signed-in reviewer.","operationId":"app_add_comment_app_comments_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommentCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Comment"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/app/comments/{comment_id}/resolve":{"post":{"tags":["app"],"summary":"App Resolve Comment","description":"Mark a comment resolved.","operationId":"app_resolve_comment_app_comments__comment_id__resolve_post","parameters":[{"name":"comment_id","in":"path","required":true,"schema":{"type":"integer","maximum":9223372036854775807,"exclusiveMinimum":0,"title":"Comment Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Comment"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"AddRequest":{"properties":{"id":{"type":"string","minLength":1,"title":"Id","description":"PMID or DOI."}},"type":"object","required":["id"],"title":"AddRequest"},"Attention":{"properties":{"recommended":{"type":"integer","title":"Recommended","description":"Papers in To screen whose suggestion is 'add'."},"to_screen":{"type":"integer","title":"To Screen"},"missing_pdf":{"type":"integer","title":"Missing Pdf"},"check_supplements":{"type":"integer","title":"Check Supplements"},"extracting":{"type":"integer","title":"Extracting"},"failed":{"type":"integer","title":"Failed"},"same_work":{"type":"integer","title":"Same Work","description":"Works with several PubMed records (preprint, correction notice, republication, retraction) still waiting for a reviewer to keep one."}},"type":"object","required":["recommended","to_screen","missing_pdf","check_supplements","extracting","failed","same_work"],"title":"Attention"},"AuthEvent":{"properties":{"at":{"type":"string","title":"At"},"actor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Actor"},"target":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target"},"action":{"type":"string","title":"Action"},"detail":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Detail"}},"type":"object","required":["at","actor","target","action","detail"],"title":"AuthEvent"},"Body_app_main_pdf_app_intake__pmid__main_pdf_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"}},"type":"object","required":["file"],"title":"Body_app_main_pdf_app_intake__pmid__main_pdf_post"},"Body_app_replace_file_app_intake__pmid__files__name__put":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"}},"type":"object","required":["file"],"title":"Body_app_replace_file_app_intake__pmid__files__name__put"},"Body_app_supplements_app_intake__pmid__supplements_post":{"properties":{"files":{"items":{"type":"string","contentMediaType":"application/octet-stream"},"type":"array","title":"Files"}},"type":"object","required":["files"],"title":"Body_app_supplements_app_intake__pmid__supplements_post"},"ChangePasswordRequest":{"properties":{"current":{"type":"string","maxLength":200,"title":"Current"},"new":{"type":"string","maxLength":200,"title":"New"}},"type":"object","required":["current","new"],"title":"ChangePasswordRequest"},"Comment":{"properties":{"id":{"type":"integer","title":"Id"},"kind":{"type":"string","enum":["paper_review","app_feedback"],"title":"Kind"},"pmid":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Pmid"},"author":{"type":"string","title":"Author"},"body":{"type":"string","title":"Body"},"context":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Context"},"resolved":{"type":"boolean","title":"Resolved"},"created_at":{"type":"string","title":"Created At"}},"type":"object","required":["id","kind","pmid","author","body","context","resolved","created_at"],"title":"Comment"},"CommentCreate":{"properties":{"kind":{"type":"string","enum":["paper_review","app_feedback"],"title":"Kind","default":"paper_review"},"pmid":{"anyOf":[{"type":"integer","maximum":9.223372036854776e+18,"exclusiveMinimum":0.0},{"type":"null"}],"title":"Pmid"},"body":{"type":"string","maxLength":5000,"minLength":1,"title":"Body"},"context":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Context"}},"type":"object","required":["body"],"title":"CommentCreate"},"CreditStatus":{"properties":{"level":{"type":"string","enum":["ok","low","out","unknown"],"title":"Level","description":"out: screening and extraction wait in the queue; unknown: balance unreadable."},"remaining_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Remaining Usd"},"low_usd":{"type":"number","title":"Low Usd","description":"Balance below which the level is low."},"checked_at":{"type":"string","title":"Checked At"},"waiting":{"type":"integer","title":"Waiting","description":"Queued screening and extraction jobs."}},"type":"object","required":["level","remaining_usd","low_usd","checked_at","waiting"],"title":"CreditStatus"},"Criteria":{"properties":{"studies_vf":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Studies Vf"},"gene_data":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Gene Data"},"original":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Original"},"ecotox":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Ecotox"},"taxonomy":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Taxonomy"},"other_species":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Other Species"}},"type":"object","required":["studies_vf","gene_data","original","ecotox","taxonomy","other_species"],"title":"Criteria"},"DecisionRequest":{"properties":{"decision":{"type":"string","enum":["add","reject","restore"],"title":"Decision"}},"type":"object","required":["decision"],"title":"DecisionRequest"},"FileLink":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Filename; null unless signed in."},"label":{"type":"string","title":"Label","description":"Short link text, e.g. 'PDF', 'Supp A', or the filename."},"kind":{"type":"string","title":"Kind","description":"Human file type, e.g. 'PDF', 'Spreadsheet'."},"source":{"type":"string","enum":["corpus","intake","history"],"title":"Source"},"used":{"type":"boolean","title":"Used","description":"Whether extraction reads (or will read) the file."},"reason":{"anyOf":[{"type":"string","enum":["unsupported_format","not_parsed","not_selected"]},{"type":"null"}],"title":"Reason","description":"Why extraction does not read it; null when used."},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url","description":"Null unless signed in."}},"type":"object","required":["name","label","kind","source","used","url"],"title":"FileLink"},"FileText":{"properties":{"text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text","description":"What extraction reads from the file; null if unknown yet."},"note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Note","description":"How the text was made, or why there is none."},"truncated":{"type":"boolean","title":"Truncated"}},"type":"object","required":["text","note","truncated"],"title":"FileText"},"FileUseRequest":{"properties":{"use":{"type":"boolean","title":"Use"}},"type":"object","required":["use"],"title":"FileUseRequest"},"FileWorkspace":{"properties":{"pmid":{"type":"integer","title":"Pmid"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"stage":{"type":"string","enum":["screen","pdf","supp","extracting","done","failed","rejected"],"title":"Stage"},"supp_confirmed":{"type":"boolean","title":"Supp Confirmed"},"draft":{"type":"boolean","title":"Draft","description":"Edit files reopened a confirmed selection; Discard puts it back."},"changes":{"items":{"type":"string"},"type":"array","title":"Changes","description":"What the draft changed, one line each."},"locked":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Locked","description":"Why the files can't be changed now; null when they can."},"main":{"anyOf":[{"$ref":"#/components/schemas/WorkspaceFile"},{"type":"null"}]},"supplements":{"items":{"$ref":"#/components/schemas/WorkspaceFile"},"type":"array","title":"Supplements"},"history":{"items":{"$ref":"#/components/schemas/HistoryFile"},"type":"array","title":"History","description":"Replaced and deleted files, newest first."},"title_match":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Title Match","description":"0-1 match of the manuscript PDF's first page to the paper title."},"job":{"anyOf":[{"$ref":"#/components/schemas/Job"},{"type":"null"}],"description":"Latest extract job, if any."}},"type":"object","required":["pmid","title","stage","supp_confirmed","draft","changes","locked","main","supplements","history","title_match","job"],"title":"FileWorkspace"},"FilterFields":{"properties":{"has_flags":{"items":{"type":"string"},"type":"array","title":"Has Flags"},"categorical_fields":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object","title":"Categorical Fields"},"list_fields":{"items":{"type":"string"},"type":"array","title":"List Fields"}},"type":"object","required":["has_flags","categorical_fields","list_fields"],"title":"FilterFields"},"Flash":{"properties":{"message":{"type":"string","title":"Message"},"added":{"type":"integer","title":"Added","default":0},"skipped":{"type":"integer","title":"Skipped","default":0},"pmid":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Pmid","description":"Resolved PMID (POST /app/intake/add)."}},"type":"object","required":["message"],"title":"Flash"},"ForgotRequest":{"properties":{"email":{"type":"string","maxLength":254,"title":"Email"}},"type":"object","required":["email"],"title":"ForgotRequest"},"GeneDetail":{"properties":{"gene_name":{"type":"string","title":"Gene Name"},"locus_tag":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Locus Tag"},"aliases":{"items":{"type":"string"},"type":"array","title":"Aliases"},"protein_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Protein Name"},"product":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Product"},"summary":{"anyOf":[{"$ref":"#/components/schemas/GeneNarrative"},{"type":"null"}],"description":"Null until `summarize-genes` (or an extract job) has run for the gene."},"bibliography":{"items":{"$ref":"#/components/schemas/PaperRef"},"type":"array","title":"Bibliography","description":"Papers the summary cites, in source_pmids order."},"records":{"items":{"$ref":"#/components/schemas/GenePaperRecord"},"type":"array","title":"Records"},"updated_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated At","description":"Latest extraction of any listed paper, or summary write (UTC)."},"reviews":{"items":{"$ref":"#/components/schemas/GeneReview"},"type":"array","title":"Reviews","description":"Lab comments, newest first."}},"type":"object","required":["gene_name","locus_tag","aliases","protein_name","product","summary","bibliography","records","updated_at","reviews"],"title":"GeneDetail"},"GeneIndexPage":{"properties":{"items":{"items":{"$ref":"#/components/schemas/GeneIndexRow"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"}},"type":"object","required":["items","total"],"title":"GeneIndexPage"},"GeneIndexRow":{"properties":{"gene_name":{"type":"string","title":"Gene Name"},"locus_tag":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Locus Tag","description":"From locus_tag_dictionary (NCBI), else the most frequent extracted tag."},"papers":{"type":"integer","title":"Papers","description":"Papers with this gene; ignores the filters."},"functions":{"items":{"type":"string"},"type":"array","title":"Functions","description":"Gene function and signaling pathway fields that are 'yes' in any paper, most frequent first."}},"type":"object","required":["gene_name","locus_tag","papers","functions"],"title":"GeneIndexRow"},"GeneNarrative":{"properties":{"summary_md":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Summary Md"},"function_md":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Function Md"},"regulation_md":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Regulation Md"},"localization_md":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Localization Md"},"phenotype_md":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phenotype Md"},"biofilm_md":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Biofilm Md"},"relationships_md":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Relationships Md"},"n_sources":{"type":"integer","title":"N Sources"},"model":{"type":"string","title":"Model"},"generated_at":{"type":"string","title":"Generated At"}},"type":"object","required":["summary_md","function_md","regulation_md","localization_md","phenotype_md","biofilm_md","relationships_md","n_sources","model","generated_at"],"title":"GeneNarrative"},"GenePage":{"properties":{"items":{"items":{"$ref":"#/components/schemas/GeneRecord"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"next":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next"}},"type":"object","required":["items","total","next"],"title":"GenePage"},"GenePaperRecord":{"properties":{"paper":{"$ref":"#/components/schemas/PaperRef"},"gene":{"additionalProperties":true,"type":"object","title":"Gene","description":"decode_gene_row() dict plus gene_aliases, latest run for this paper."}},"type":"object","required":["paper","gene"],"title":"GenePaperRecord"},"GeneRecord":{"properties":{"pmid":{"type":"integer","title":"Pmid"},"gene_name":{"type":"string","title":"Gene Name"},"run_id":{"type":"string","title":"Run Id"},"created_at":{"type":"string","title":"Created At"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model"},"gene_aliases":{"items":{"type":"string"},"type":"array","title":"Gene Aliases","default":[]}},"additionalProperties":true,"type":"object","required":["pmid","gene_name","run_id","created_at"],"title":"GeneRecord"},"GeneReview":{"properties":{"id":{"type":"integer","title":"Id"},"gene_name":{"type":"string","title":"Gene Name"},"reviewer":{"type":"string","title":"Reviewer"},"pmid":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Pmid","description":"Paper the comment is about; null on old comments."},"body":{"type":"string","title":"Body"},"created_at":{"type":"string","title":"Created At"}},"type":"object","required":["id","gene_name","reviewer","pmid","body","created_at"],"title":"GeneReview"},"GeneReviewCreate":{"properties":{"pmid":{"type":"integer","maximum":9.223372036854776e+18,"exclusiveMinimum":0.0,"title":"Pmid"},"body":{"type":"string","maxLength":5000,"minLength":1,"title":"Body"}},"type":"object","required":["pmid","body"],"title":"GeneReviewCreate"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HistoryFile":{"properties":{"id":{"type":"integer","title":"Id"},"name":{"type":"string","title":"Name"},"stored":{"type":"string","title":"Stored","description":"Name it is kept under; pass as `name` with source=history."},"role":{"type":"string","enum":["main","supplement"],"title":"Role"},"action":{"type":"string","enum":["replaced","deleted"],"title":"Action"},"kind":{"type":"string","title":"Kind"},"size":{"type":"integer","title":"Size"},"reviewer":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reviewer"},"created_at":{"type":"string","title":"Created At"},"url":{"type":"string","title":"Url"},"inline":{"type":"boolean","title":"Inline"},"pages":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Pages"}},"type":"object","required":["id","name","stored","role","action","kind","size","reviewer","created_at","url","inline","pages"],"title":"HistoryFile"},"IntakeCard":{"properties":{"pmid":{"type":"integer","title":"Pmid"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"authors":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authors"},"journal":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Journal"},"year":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Year"},"doi":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Doi"},"stage":{"type":"string","enum":["screen","pdf","supp","extracting","done","failed","rejected"],"title":"Stage"},"origin":{"type":"string","enum":["pubmed","manual","db"],"title":"Origin"},"decision":{"anyOf":[{"type":"string","enum":["add","reject"]},{"type":"null"}],"title":"Decision"},"suggestion":{"anyOf":[{"type":"string","enum":["add","reject"]},{"type":"null"}],"title":"Suggestion","description":"Reject for a notice or superseded version (see related), else from the abstract relevance: >=50 add, <=30 reject, else null."},"related":{"items":{"$ref":"#/components/schemas/RelatedRecord"},"type":"array","title":"Related","description":"PubMed records of the same work: errata, corrected republications, preprint and journal versions, retractions."},"abstract":{"anyOf":[{"$ref":"#/components/schemas/Screening"},{"type":"null"}],"description":"Null while abstract screening is still running."},"fulltext":{"anyOf":[{"$ref":"#/components/schemas/Screening"},{"type":"null"}]},"fulltext_flag":{"type":"boolean","title":"Fulltext Flag","description":"True when full-text screening suggests reject (advisory only)."},"fulltext_pending":{"type":"boolean","title":"Fulltext Pending","description":"A full-text screening job is queued or running."},"main_pdf":{"type":"string","enum":["missing","fetched","uploaded"],"title":"Main Pdf"},"main_file":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Main File"},"fetch_state":{"type":"string","enum":["idle","fetching","done","failed"],"title":"Fetch State"},"fetch_note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fetch Note"},"supp_confirmed":{"type":"boolean","title":"Supp Confirmed"},"files":{"items":{"$ref":"#/components/schemas/PaperFile"},"type":"array","title":"Files"},"links":{"items":{"$ref":"#/components/schemas/Link"},"type":"array","title":"Links"},"job":{"anyOf":[{"$ref":"#/components/schemas/Job"},{"type":"null"}],"description":"Latest extract job, if any."},"comment_count":{"type":"integer","title":"Comment Count"},"reviewer":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reviewer"},"decided_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Decided At"}},"type":"object","required":["pmid","title","authors","journal","year","doi","stage","origin","decision","suggestion","related","abstract","fulltext","fulltext_flag","fulltext_pending","main_pdf","main_file","fetch_state","fetch_note","supp_confirmed","files","links","job","comment_count","reviewer","decided_at"],"title":"IntakeCard"},"IntakeList":{"properties":{"items":{"items":{"$ref":"#/components/schemas/IntakeCard"},"type":"array","title":"Items"},"counts":{"additionalProperties":{"type":"integer"},"propertyNames":{"enum":["screen","pdf","supp","extracting","done","failed","rejected"]},"type":"object","title":"Counts"},"busy":{"type":"boolean","title":"Busy","description":"Any fetch/screen/extract job queued or running; frontend polls while true."},"last_search":{"anyOf":[{"$ref":"#/components/schemas/LastSearch"},{"type":"null"}],"description":"The newest PubMed search, while Undo search can still remove papers it queued."}},"type":"object","required":["items","counts","busy"],"title":"IntakeList"},"InviteRequest":{"properties":{"email":{"type":"string","maxLength":254,"title":"Email"},"name":{"type":"string","maxLength":80,"minLength":1,"title":"Name"},"role":{"type":"string","enum":["admin","user"],"title":"Role","default":"user"}},"type":"object","required":["email","name"],"title":"InviteRequest"},"Job":{"properties":{"id":{"type":"integer","title":"Id"},"kind":{"type":"string","enum":["fetch","abstract","fulltext","extract"],"title":"Kind"},"status":{"type":"string","enum":["queued","running","done","failed"],"title":"Status"},"attempt":{"type":"integer","title":"Attempt"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"created_at":{"type":"string","title":"Created At"},"started_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Started At"},"finished_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Finished At"}},"type":"object","required":["id","kind","status","attempt","error","created_at","started_at","finished_at"],"title":"Job"},"LastSearch":{"properties":{"id":{"type":"integer","title":"Id"},"query":{"type":"string","title":"Query"},"reviewer":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reviewer"},"created_at":{"type":"string","title":"Created At"},"removable":{"type":"integer","title":"Removable","description":"Papers it queued that Undo search would remove (still undecided and untouched)."}},"type":"object","required":["id","query","reviewer","created_at","removable"],"title":"LastSearch"},"Link":{"properties":{"label":{"type":"string","title":"Label"},"url":{"type":"string","title":"Url"}},"type":"object","required":["label","url"],"title":"Link"},"LoginRequest":{"properties":{"email":{"type":"string","maxLength":254,"title":"Email"},"password":{"type":"string","title":"Password"}},"type":"object","required":["email","password"],"title":"LoginRequest"},"Me":{"properties":{"authed":{"type":"boolean","title":"Authed"},"reviewer":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reviewer"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"role":{"anyOf":[{"type":"string","enum":["admin","user"]},{"type":"null"}],"title":"Role"}},"type":"object","required":["authed"],"title":"Me"},"Ok":{"properties":{"ok":{"type":"boolean","title":"Ok","default":true}},"type":"object","title":"Ok"},"PaperDetail":{"properties":{"pmid":{"type":"integer","title":"Pmid"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"authors":{"items":{"type":"string"},"type":"array","title":"Authors"},"journal":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Journal"},"year":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Year"},"doi":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Doi"},"pmc_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pmc Id"},"abstract":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Abstract"},"genes":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Genes","description":"decode_gene_row() dicts plus gene_aliases, from the latest run of this paper."},"files":{"items":{"$ref":"#/components/schemas/FileLink"},"type":"array","title":"Files","description":"Corpus files and whether extraction reads them; signed in adds names, links and intake files."},"extracted_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Extracted At","description":"Latest extraction run time (UTC)."},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model","description":"Model of the latest extraction run."}},"type":"object","required":["pmid","title","authors","journal","year","doi","pmc_id","abstract","genes","files","extracted_at","model"],"title":"PaperDetail"},"PaperFile":{"properties":{"name":{"type":"string","title":"Name"},"kind":{"type":"string","title":"Kind","description":"Human label, e.g. 'Spreadsheet', 'PDF', 'Figure image, not readable'."},"size":{"type":"integer","title":"Size","description":"Bytes."},"use":{"type":"boolean","title":"Use"},"readable":{"type":"boolean","title":"Readable"},"origin":{"type":"string","enum":["auto","upload"],"title":"Origin"}},"type":"object","required":["name","kind","size","use","readable","origin"],"title":"PaperFile"},"PaperRecord":{"properties":{"pmid":{"type":"integer","title":"Pmid"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"authors":{"items":{"type":"string"},"type":"array","title":"Authors","default":[]},"doi":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Doi"},"pmc_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pmc Id"},"abstract":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Abstract"},"journal":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Journal"},"journal_full":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Journal Full"}},"additionalProperties":true,"type":"object","required":["pmid"],"title":"PaperRecord"},"PaperRef":{"properties":{"pmid":{"type":"integer","title":"Pmid"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"authors":{"items":{"type":"string"},"type":"array","title":"Authors"},"journal":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Journal"},"year":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Year"},"doi":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Doi"}},"type":"object","required":["pmid","title","authors","journal","year","doi"],"title":"PaperRef"},"PaperRow":{"properties":{"pmid":{"type":"integer","title":"Pmid"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"authors":{"items":{"type":"string"},"type":"array","title":"Authors"},"journal":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Journal"},"year":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Year"},"doi":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Doi"},"genes":{"type":"integer","title":"Genes"},"status":{"type":"string","enum":["extracted","missing_pdf","check_supplements","extracting","failed","pending","rejected"],"title":"Status"},"files":{"anyOf":[{"items":{"$ref":"#/components/schemas/FileLink"},"type":"array"},{"type":"null"}],"title":"Files","description":"Manuscript and supplements; null unless signed in."}},"type":"object","required":["pmid","title","authors","journal","year","doi","genes","status"],"title":"PaperRow"},"PaperWithGenes":{"properties":{"pmid":{"type":"integer","title":"Pmid"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"authors":{"items":{"type":"string"},"type":"array","title":"Authors","default":[]},"doi":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Doi"},"pmc_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pmc Id"},"abstract":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Abstract"},"journal":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Journal"},"journal_full":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Journal Full"},"genes":{"items":{"$ref":"#/components/schemas/GeneRecord"},"type":"array","title":"Genes","default":[]}},"additionalProperties":true,"type":"object","required":["pmid"],"title":"PaperWithGenes"},"RelatedRecord":{"properties":{"pmid":{"type":"integer","title":"Pmid"},"relation":{"type":"string","title":"Relation","description":"PubMed CommentsCorrections RefType, e.g. UpdateIn."},"label":{"type":"string","title":"Label","description":"Reads before the PMID, e.g. \"Preprint of the published\"."},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"status":{"anyOf":[{"type":"string","enum":["corpus","queued","rejected"]},{"type":"null"}],"title":"Status","description":"Where the linked record is here: in the corpus (added), in intake still undecided, rejected, or unknown (null)."}},"type":"object","required":["pmid","relation","label","title","status"],"title":"RelatedRecord"},"ResetRequest":{"properties":{"token":{"type":"string","maxLength":200,"title":"Token"},"password":{"type":"string","maxLength":200,"title":"Password"}},"type":"object","required":["token","password"],"title":"ResetRequest"},"SameWorkDismissRequest":{"properties":{"members":{"items":{"type":"integer"},"type":"array","minItems":2,"title":"Members"}},"type":"object","required":["members"],"title":"SameWorkDismissRequest"},"SameWorkGroup":{"properties":{"members":{"items":{"type":"integer"},"type":"array","title":"Members","description":"Every PMID in the group; send back to act."},"heading":{"type":"string","title":"Heading","description":"e.g. \"Preprint and journal version\"."},"retracted":{"type":"boolean","title":"Retracted"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"keep":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Keep","description":"Suggested record to keep; null to keep none (every record is retracted or a notice)."},"reason":{"type":"string","title":"Reason"},"records":{"items":{"$ref":"#/components/schemas/SameWorkRecord"},"type":"array","title":"Records"}},"type":"object","required":["members","heading","retracted","title","keep","reason","records"],"title":"SameWorkGroup"},"SameWorkList":{"properties":{"items":{"items":{"$ref":"#/components/schemas/SameWorkGroup"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"SameWorkList"},"SameWorkRecord":{"properties":{"pmid":{"type":"integer","title":"Pmid"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"journal":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Journal"},"year":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Year"},"role":{"type":"string","title":"Role","description":"Plain label, e.g. \"Preprint\" or \"Correction notice\"."},"note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Note","description":"PubMed wording of its link, e.g. \"Preprint of the published PMID 2\"."},"status":{"anyOf":[{"type":"string","enum":["corpus","queued","rejected"]},{"type":"null"}],"title":"Status","description":"In the corpus, in To screen, rejected, or not in the system (null)."},"genes":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Genes","description":"Genes in its latest extraction run, if any."},"suggested":{"type":"string","enum":["keep","reject"],"title":"Suggested"}},"type":"object","required":["pmid","title","journal","year","role","note","status","genes","suggested"],"title":"SameWorkRecord"},"SameWorkResolveRequest":{"properties":{"members":{"items":{"type":"integer"},"type":"array","minItems":2,"title":"Members"},"keep":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Keep","description":"PMID to keep (added if not in the system); null rejects them all."}},"type":"object","required":["members","keep"],"title":"SameWorkResolveRequest"},"Screening":{"properties":{"score":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Score","description":"-6..+6, compute_score()."},"breakdown":{"type":"string","title":"Breakdown","description":"score_breakdown(), e.g. 'VF ✓ Gene ✓ Orig ✓ · Eco ✓ Tax ✓ Sp ✗'."},"relevance":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Relevance"},"reasoning":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning"},"criteria":{"$ref":"#/components/schemas/Criteria"},"input_warning":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input Warning"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error","description":"Why screening could not run (LLM call or parse failed); reasoning repeats it."}},"type":"object","required":["score","breakdown","relevance","reasoning","criteria"],"title":"Screening"},"SearchRequest":{"properties":{"query":{"type":"string","minLength":1,"title":"Query"},"year_from":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Year From"},"year_to":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Year To"},"max_results":{"type":"integer","maximum":200.0,"minimum":1.0,"title":"Max Results","default":50}},"type":"object","required":["query"],"title":"SearchRequest"},"SearchResponse":{"properties":{"papers":{"$ref":"#/components/schemas/papers_extraction__api__PaperPage"},"genes":{"$ref":"#/components/schemas/GenePage"}},"type":"object","required":["papers","genes"],"title":"SearchResponse"},"Stats":{"properties":{"papers":{"type":"integer","title":"Papers"},"gene_records":{"type":"integer","title":"Gene Records"},"unique_genes":{"type":"integer","title":"Unique Genes"},"locus_tag_matched":{"type":"integer","title":"Locus Tag Matched"},"last_extraction_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Extraction At","description":"ISO timestamp of the newest extracted_genes row."}},"type":"object","required":["papers","gene_records","unique_genes","locus_tag_matched","last_extraction_at"],"title":"Stats"},"TokenInfo":{"properties":{"purpose":{"type":"string","enum":["invite","reset"],"title":"Purpose"},"name":{"type":"string","title":"Name"},"email":{"type":"string","title":"Email"}},"type":"object","required":["purpose","name","email"],"title":"TokenInfo"},"UndoSearchRequest":{"properties":{"search_id":{"type":"integer","title":"Search Id"}},"type":"object","required":["search_id"],"title":"UndoSearchRequest"},"UserOut":{"properties":{"id":{"type":"integer","title":"Id"},"email":{"type":"string","title":"Email"},"name":{"type":"string","title":"Name"},"role":{"type":"string","enum":["admin","user"],"title":"Role"},"status":{"type":"string","enum":["invited","active","disabled"],"title":"Status"},"last_login_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Login At"},"created_at":{"type":"string","title":"Created At"}},"type":"object","required":["id","email","name","role","status","last_login_at","created_at"],"title":"UserOut"},"UserPatch":{"properties":{"role":{"anyOf":[{"type":"string","enum":["admin","user"]},{"type":"null"}],"title":"Role"},"active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Active"},"name":{"anyOf":[{"type":"string","maxLength":80,"minLength":1},{"type":"null"}],"title":"Name"}},"type":"object","title":"UserPatch"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"WorkspaceFile":{"properties":{"name":{"type":"string","title":"Name"},"role":{"type":"string","enum":["main","supplement"],"title":"Role"},"kind":{"type":"string","title":"Kind","description":"Human file type, e.g. 'PDF', 'Spreadsheet'."},"size":{"type":"integer","title":"Size","description":"Bytes."},"use":{"type":"boolean","title":"Use","description":"Extraction reads it; always true for the manuscript."},"readable":{"type":"boolean","title":"Readable"},"origin":{"type":"string","enum":["auto","upload"],"title":"Origin"},"url":{"type":"string","title":"Url"},"inline":{"type":"boolean","title":"Inline","description":"The browser can show it (PDF or image)."},"pages":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Pages","description":"PDF page count; null for other files."},"change":{"anyOf":[{"type":"string","enum":["added","replaced"]},{"type":"null"}],"title":"Change","description":"New or changed since Edit files; null outside a draft."}},"type":"object","required":["name","role","kind","size","use","readable","origin","url","inline","pages","change"],"title":"WorkspaceFile"},"papers_extraction__api__PaperPage":{"properties":{"items":{"items":{"$ref":"#/components/schemas/PaperRecord"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"next":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next"}},"type":"object","required":["items","total","next"],"title":"PaperPage"},"papers_extraction__app_schemas__PaperPage":{"properties":{"items":{"items":{"$ref":"#/components/schemas/PaperRow"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"counts":{"additionalProperties":{"type":"integer"},"type":"object","title":"Counts","description":"Status -> count over the unfiltered-by-status result set, plus 'all' (which leaves out 'rejected')."}},"type":"object","required":["items","total","counts"],"title":"PaperPage"}},"securitySchemes":{"APIKeyHeader":{"type":"apiKey","in":"header","name":"X-API-Key"}}}}