{"openapi":"3.1.0","info":{"title":"Civic Intelligence API","description":"Civic and procurement intelligence for ChangeAgent AI. Search opportunities, grants, awards, entities, foundations, legislators, bills, nonprofits, and court records from SAM.gov, Grants.gov, USAspending, ProPublica, Open States, Census Bureau, and CourtListener. \n\n**Data sources:**\n- **Opportunities** — Active and historical contract opportunities from SAM.gov\n- **Entities** — SAM.gov registered contractors and organizations\n- **Grants** — Federal grant opportunities from Grants.gov\n- **Awards** — Federal contract award data from USAspending\n- **Foundations** — Private foundation profiles from IRS 990-PF data via ProPublica (9,975 records)\n- **Nonprofits** — Public charities (501(c)(3)) from ProPublica Nonprofit Explorer (on-demand cached)\n- **Legislators** — State and federal legislators from Open States\n- **Bills** — Legislative bills from Open States (on-demand cached)\n- **Census** — ACS 5-year demographic profiles for states and congressional districts\n- **Court** — Federal court opinions, dockets, and judges from CourtListener (Free Law Project)\n\nAll endpoints support PostgreSQL full-text search with relevance ranking. Compose and federated search are available via the civic-gateway service.","version":"0.1.0"},"paths":{"/api/opportunities":{"get":{"tags":["Opportunities"],"summary":"Search contract opportunities","description":"Find federal contract opportunities from SAM.gov. Supports full-text search across title, description, and solicitation number. Filter by agency, NAICS code, set-aside type, or active status. Returns paginated results sorted by relevance when searching, or by posted date otherwise.","operationId":"list_opportunities_api_opportunities_get","parameters":[{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Full-text search across title, description, and solicitation number","examples":["health workforce development"],"title":"Search"},"description":"Full-text search across title, description, and solicitation number"},{"name":"agency_code","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by agency code","examples":["7013"],"title":"Agency Code"},"description":"Filter by agency code"},{"name":"naics_code","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by 6-digit NAICS code","examples":["541611"],"title":"Naics Code"},"description":"Filter by 6-digit NAICS code"},{"name":"set_aside","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by set-aside code (e.g. 'SBA', 'HZC' for HUBZone)","examples":["SBA"],"title":"Set Aside"},"description":"Filter by set-aside code (e.g. 'SBA', 'HZC' for HUBZone)"},{"name":"active","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Filter by active status. True = currently open opportunities only.","title":"Active"},"description":"Filter by active status. True = currently open opportunities only."},{"name":"notice_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by notice type (full string, not letter code)","examples":["Solicitation"],"title":"Notice Type"},"description":"Filter by notice type (full string, not letter code)"},{"name":"posted_from","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Opportunities posted on or after this date (YYYY-MM-DD)","examples":["2026-01-01"],"title":"Posted From"},"description":"Opportunities posted on or after this date (YYYY-MM-DD)"},{"name":"posted_to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Opportunities posted on or before this date (YYYY-MM-DD)","examples":["2026-12-31"],"title":"Posted To"},"description":"Opportunities posted on or before this date (YYYY-MM-DD)"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number (1-indexed)","default":1,"title":"Page"},"description":"Page number (1-indexed)"},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Results per page (max 100)","default":25,"title":"Page Size"},"description":"Results per page (max 100)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpportunityList"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/opportunities/{opportunity_id}":{"get":{"tags":["Opportunities"],"summary":"Get opportunity details","description":"Get full details for a specific SAM.gov contract opportunity by its opportunity ID. Returns all fields including agency hierarchy, place of performance, dates, and contact info.","operationId":"get_opportunity_api_opportunities__opportunity_id__get","parameters":[{"name":"opportunity_id","in":"path","required":true,"schema":{"type":"string","title":"Opportunity Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpportunityResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/entities":{"get":{"tags":["Entities"],"summary":"Search registered entities","description":"Search SAM.gov registered entities (contractors, nonprofits, government organizations). Supports full-text search across business name, DBA name, and CAGE code. Filter by state, primary NAICS code, or active registration status. Returns paginated results sorted by relevance when searching, or by legal business name otherwise.","operationId":"list_entities_api_entities_get","parameters":[{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Full-text search across business name, DBA name, and CAGE code","title":"Search"},"description":"Full-text search across business name, DBA name, and CAGE code"},{"name":"state","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by 2-letter state code (e.g. 'VA', 'DC')","title":"State"},"description":"Filter by 2-letter state code (e.g. 'VA', 'DC')"},{"name":"primary_naics","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by primary NAICS code (e.g. '541611')","title":"Primary Naics"},"description":"Filter by primary NAICS code (e.g. '541611')"},{"name":"active","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Filter by active registration status","title":"Active"},"description":"Filter by active registration status"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number (1-indexed)","default":1,"title":"Page"},"description":"Page number (1-indexed)"},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Results per page (max 100)","default":25,"title":"Page Size"},"description":"Results per page (max 100)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityList"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/entities/{uei}":{"get":{"tags":["Entities"],"summary":"Look up entity by UEI","description":"Look up a specific SAM.gov registered entity by its Unique Entity Identifier (UEI). Returns full registration details including business types, address, NAICS code, and registration status.","operationId":"get_entity_api_entities__uei__get","parameters":[{"name":"uei","in":"path","required":true,"schema":{"type":"string","title":"Uei"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/entities/{uei}/awards":{"get":{"tags":["Entities"],"summary":"Get awards for an entity","description":"Get all federal contract awards received by a specific entity, identified by UEI. Useful for understanding an organization's federal contracting history and revenue. Returns paginated results sorted by award date (most recent first).","operationId":"get_entity_awards_api_entities__uei__awards_get","parameters":[{"name":"uei","in":"path","required":true,"schema":{"type":"string","title":"Uei"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number (1-indexed)","default":1,"title":"Page"},"description":"Page number (1-indexed)"},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Results per page (max 100)","default":25,"title":"Page Size"},"description":"Results per page (max 100)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AwardList"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/grants":{"get":{"tags":["Grants"],"summary":"Search grant opportunities","description":"Search open federal grant opportunities from Grants.gov. Supports full-text search across title, description, and opportunity number. Filter by agency code or status (P=Posted, F=Forecasted). Returns paginated results sorted by relevance when searching, or by close date otherwise.","operationId":"list_grants_api_grants_get","parameters":[{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Full-text search across title, description, and opportunity number","examples":["community health worker"],"title":"Search"},"description":"Full-text search across title, description, and opportunity number"},{"name":"agency_code","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by agency code","examples":["HHS"],"title":"Agency Code"},"description":"Filter by agency code"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by status: P=Posted, F=Forecasted, C=Closed, A=Archived","examples":["P"],"title":"Status"},"description":"Filter by status: P=Posted, F=Forecasted, C=Closed, A=Archived"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number (1-indexed)","default":1,"title":"Page"},"description":"Page number (1-indexed)"},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Results per page (max 100)","default":25,"title":"Page Size"},"description":"Results per page (max 100)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrantList"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/grants/{grant_id}":{"get":{"tags":["Grants"],"summary":"Get grant details","description":"Get full details for a specific Grants.gov grant opportunity by its grant ID. Returns all fields including funding range, CFDA numbers, eligibility criteria, and contact info.","operationId":"get_grant_api_grants__grant_id__get","parameters":[{"name":"grant_id","in":"path","required":true,"schema":{"type":"string","title":"Grant Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrantResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/awards":{"get":{"tags":["Awards"],"summary":"Search federal awards","description":"Search federal contract awards from USAspending. Supports full-text search across award description, recipient name, and agency name. Filter by recipient UEI, awarding agency, NAICS code, or fiscal year. Fiscal year is derived from award_date (Oct-Sep cycle: FY2026 = Oct 2025 through Sep 2026). Returns paginated results sorted by relevance when searching, or by award date otherwise.","operationId":"list_awards_api_awards_get","parameters":[{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Full-text search across description, recipient, and agency","examples":["health IT consulting"],"title":"Search"},"description":"Full-text search across description, recipient, and agency"},{"name":"recipient_uei","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by recipient's Unique Entity Identifier","examples":["TEST12345678"],"title":"Recipient Uei"},"description":"Filter by recipient's Unique Entity Identifier"},{"name":"recipient_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by recipient name (case-insensitive substring match)","examples":["Booz Allen"],"title":"Recipient Name"},"description":"Filter by recipient name (case-insensitive substring match)"},{"name":"awarding_agency_code","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by awarding agency code","examples":["7500"],"title":"Awarding Agency Code"},"description":"Filter by awarding agency code"},{"name":"naics_code","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by 6-digit NAICS code","examples":["541611"],"title":"Naics Code"},"description":"Filter by 6-digit NAICS code"},{"name":"award_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by award type code (A=BPA, B=Purchase Order, C=Delivery Order, D=Definitive Contract)","examples":["D"],"title":"Award Type"},"description":"Filter by award type code (A=BPA, B=Purchase Order, C=Delivery Order, D=Definitive Contract)"},{"name":"fiscal_year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter by fiscal year (Oct-Sep). E.g. 2026 = Oct 2025 to Sep 2026.","examples":[2026],"title":"Fiscal Year"},"description":"Filter by fiscal year (Oct-Sep). E.g. 2026 = Oct 2025 to Sep 2026."},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number (1-indexed)","default":1,"title":"Page"},"description":"Page number (1-indexed)"},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Results per page (max 100)","default":25,"title":"Page Size"},"description":"Results per page (max 100)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AwardList"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/awards/{award_id}":{"get":{"tags":["Awards"],"summary":"Get award details","description":"Get full details for a specific federal contract award by its award ID. Returns all fields including financials, recipient, awarding/funding agencies, NAICS/PSC classification, and place of performance.","operationId":"get_award_api_awards__award_id__get","parameters":[{"name":"award_id","in":"path","required":true,"schema":{"type":"string","title":"Award Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AwardResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/awards/enrich":{"post":{"tags":["Awards"],"summary":"Enrich awards missing NAICS/UEI","description":"Trigger enrichment of awards that are missing NAICS code, recipient UEI, award type, or PSC code. Fetches details from the USAspending detail API in the background. Commits every 50 records. Safe to interrupt and resume.","operationId":"trigger_enrichment_api_awards_enrich_post","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":5000,"minimum":1,"description":"Max awards to enrich per run","default":500,"title":"Limit"},"description":"Max awards to enrich per run"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Trigger Enrichment Api Awards Enrich Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/foundations":{"get":{"tags":["Foundations"],"summary":"Search private foundations","description":"Search private foundation profiles from IRS 990-PF data via ProPublica. Supports full-text search across foundation name and alternate name. Filter by state or NTEE code. Sort by relevance (when searching) or total giving. Note: IRS data typically lags 9-18 months from filing date.","operationId":"list_foundations_api_foundations_get","parameters":[{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Full-text search across foundation name","examples":["ford foundation"],"title":"Search"},"description":"Full-text search across foundation name"},{"name":"state","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by two-letter state code","examples":["NY"],"title":"State"},"description":"Filter by two-letter state code"},{"name":"ntee_code","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by NTEE classification code","examples":["T20"],"title":"Ntee Code"},"description":"Filter by NTEE classification code"},{"name":"min_giving","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Minimum total giving amount (USD)","examples":[1000000],"title":"Min Giving"},"description":"Minimum total giving amount (USD)"},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Sort order: 'relevance' (default when searching) or 'total_giving'","default":"relevance","title":"Sort"},"description":"Sort order: 'relevance' (default when searching) or 'total_giving'"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number (1-indexed)","default":1,"title":"Page"},"description":"Page number (1-indexed)"},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Results per page (max 100)","default":25,"title":"Page Size"},"description":"Results per page (max 100)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FoundationList"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/foundations/top-by-state":{"get":{"tags":["Foundations"],"summary":"Top foundation funders in a state","description":"Aggregate foundation grants by state to find the largest funders. Returns foundations ranked by total giving to recipients in the specified state. Useful for discovering funders regardless of purpose text matching.","operationId":"top_funders_by_state_api_foundations_top_by_state_get","parameters":[{"name":"state","in":"query","required":true,"schema":{"type":"string","description":"Two-letter state code","examples":["NM"],"title":"State"},"description":"Two-letter state code"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":1,"description":"Number of top funders to return","default":15,"title":"Limit"},"description":"Number of top funders to return"},{"name":"since_year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Only count grants from this year onward","title":"Since Year"},"description":"Only count grants from this year onward"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Top Funders By State Api Foundations Top By State Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/foundations/grants/search":{"get":{"tags":["Foundations"],"summary":"Search all foundation grants by purpose","description":"Search across ALL foundation grants by recipient name, purpose, or issue area. This is the primary discovery endpoint — find which foundations fund your cause without knowing foundation names. Filter by recipient state, minimum amount, or year.","operationId":"search_all_grants_api_foundations_grants_search_get","parameters":[{"name":"search","in":"query","required":true,"schema":{"type":"string","description":"Full-text search across recipient names and grant purposes","examples":["civic engagement democracy"],"title":"Search"},"description":"Full-text search across recipient names and grant purposes"},{"name":"state","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by recipient state code","examples":["NM"],"title":"State"},"description":"Filter by recipient state code"},{"name":"min_amount","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Minimum grant amount (USD)","examples":[10000],"title":"Min Amount"},"description":"Minimum grant amount (USD)"},{"name":"since_year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Only grants from this tax year onward","examples":[2020],"title":"Since Year"},"description":"Only grants from this tax year onward"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number (1-indexed)","default":1,"title":"Page"},"description":"Page number (1-indexed)"},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Results per page (max 100)","default":25,"title":"Page Size"},"description":"Results per page (max 100)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FoundationGrantList"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/foundations/rfps":{"get":{"tags":["Foundations"],"summary":"Search active RFPs","description":"Search currently open grant opportunities across all foundations. Filter by state (foundation location), status, and keyword search.","operationId":"search_rfps_api_foundations_rfps_get","parameters":[{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Full-text search across RFP titles and descriptions","title":"Search"},"description":"Full-text search across RFP titles and descriptions"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by status: open, closed, upcoming","default":"open","title":"Status"},"description":"Filter by status: open, closed, upcoming"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Results per page","default":25,"title":"Page Size"},"description":"Results per page"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/foundations/{ein}":{"get":{"tags":["Foundations"],"summary":"Get foundation by EIN","description":"Get full profile for a specific private foundation by EIN. Accepts both XX-XXXXXXX and XXXXXXXXX formats. Returns identity, location, financials, and filing history.","operationId":"get_foundation_api_foundations__ein__get","parameters":[{"name":"ein","in":"path","required":true,"schema":{"type":"string","title":"Ein"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FoundationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/foundations/{ein}/grants":{"get":{"tags":["Foundations"],"summary":"Get grants paid by a foundation","description":"Get individual grants paid by a specific foundation from IRS 990-PF Part XV. Filter by tax year, minimum amount, or search recipient names and purposes. Note: Grant data requires Phase 2 XML extraction — this endpoint returns empty results until grant data is populated.","operationId":"list_foundation_grants_api_foundations__ein__grants_get","parameters":[{"name":"ein","in":"path","required":true,"schema":{"type":"string","title":"Ein"}},{"name":"tax_year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter by tax year","examples":[2022],"title":"Tax Year"},"description":"Filter by tax year"},{"name":"min_amount","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Minimum grant amount (USD)","examples":[10000],"title":"Min Amount"},"description":"Minimum grant amount (USD)"},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Search recipient names and grant purposes","title":"Search"},"description":"Search recipient names and grant purposes"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number (1-indexed)","default":1,"title":"Page"},"description":"Page number (1-indexed)"},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Results per page (max 100)","default":25,"title":"Page Size"},"description":"Results per page (max 100)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FoundationGrantList"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/foundations/{ein}/rfps":{"get":{"tags":["Foundations"],"summary":"Get RFPs for a specific foundation","description":"Get all active and historical RFPs for a specific foundation by EIN.","operationId":"list_foundation_rfps_api_foundations__ein__rfps_get","parameters":[{"name":"ein","in":"path","required":true,"schema":{"type":"string","title":"Ein"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by status: open, closed, upcoming","title":"Status"},"description":"Filter by status: open, closed, upcoming"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Results per page","default":25,"title":"Page Size"},"description":"Results per page"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/legislators/by-address":{"get":{"tags":["Legislators"],"summary":"Find legislators by coordinates","description":"Look up state and federal legislators for a geographic location. Provide latitude and longitude coordinates. Results are cached for 30 days. Note: This endpoint requires coordinates, not a street address. Use a geocoding service to convert addresses to lat/lng first.","operationId":"legislators_by_address_api_legislators_by_address_get","parameters":[{"name":"lat","in":"query","required":true,"schema":{"type":"number","description":"Latitude","examples":[39.9612],"title":"Lat"},"description":"Latitude"},{"name":"lng","in":"query","required":true,"schema":{"type":"number","description":"Longitude","examples":[-82.9988],"title":"Lng"},"description":"Longitude"},{"name":"address","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Original address text (for reference, not used for lookup)","title":"Address"},"description":"Original address text (for reference, not used for lookup)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GeoLookupResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/legislators":{"get":{"tags":["Legislators"],"summary":"Search legislators","description":"Search state and federal legislators from Open States. Supports full-text search across legislator names. Filter by jurisdiction, party, chamber, or district.","operationId":"list_legislators_api_legislators_get","parameters":[{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Full-text search across legislator names","examples":["sherrod brown"],"title":"Search"},"description":"Full-text search across legislator names"},{"name":"jurisdiction","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by jurisdiction name or OCD ID","examples":["Ohio"],"title":"Jurisdiction"},"description":"Filter by jurisdiction name or OCD ID"},{"name":"state","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by 2-letter state abbreviation (e.g. GA, OH). Resolves to full jurisdiction name.","examples":["GA"],"title":"State"},"description":"Filter by 2-letter state abbreviation (e.g. GA, OH). Resolves to full jurisdiction name."},{"name":"party","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by party","examples":["Democratic"],"title":"Party"},"description":"Filter by party"},{"name":"chamber","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by chamber: upper, lower, legislature","examples":["upper"],"title":"Chamber"},"description":"Filter by chamber: upper, lower, legislature"},{"name":"district","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by district","examples":["13"],"title":"District"},"description":"Filter by district"},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Sort: 'relevance' (with search) or 'name'","default":"relevance","title":"Sort"},"description":"Sort: 'relevance' (with search) or 'name'"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number (1-indexed)","default":1,"title":"Page"},"description":"Page number (1-indexed)"},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Results per page (max 100)","default":25,"title":"Page Size"},"description":"Results per page (max 100)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LegislatorList"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/legislators/{openstates_id}":{"get":{"tags":["Legislators"],"summary":"Get legislator by Open States ID","description":"Get full profile for a specific legislator by Open States ID. IDs are in the format ocd-person/UUID.","operationId":"get_legislator_api_legislators__openstates_id__get","parameters":[{"name":"openstates_id","in":"path","required":true,"schema":{"type":"string","title":"Openstates Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LegislatorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/bills/intelligence":{"get":{"tags":["Bills Intelligence"],"summary":"Search bills with full sponsor and committee context","description":"Full-text search across 1.5M+ legislative bills, enriched with sponsor details (party, district, committee memberships) and committee involvement. Powered by the Open States relational graph.","operationId":"bills_intelligence_api_bills_intelligence_get","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","minLength":2,"description":"Search topic (e.g. 'data centers', 'renewable energy')","title":"Q"},"description":"Search topic (e.g. 'data centers', 'renewable energy')"},{"name":"jurisdiction","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by state name (e.g. 'Arkansas')","title":"Jurisdiction"},"description":"Filter by state name (e.g. 'Arkansas')"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":1,"default":10,"title":"Page Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/bills":{"get":{"tags":["Bills"],"summary":"Search bills","description":"Search legislative bills from Open States. On first query, bills are fetched from the API and cached locally. Subsequent queries within the cache TTL (24h active, 7d resolved) are served from the database. Use 'q' for full-text search, or filter by jurisdiction and session.","operationId":"search_bills_api_bills_get","parameters":[{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Full-text search query","examples":["education funding"],"title":"Q"},"description":"Full-text search query"},{"name":"jurisdiction","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Jurisdiction name (e.g. 'Ohio')","examples":["Ohio"],"title":"Jurisdiction"},"description":"Jurisdiction name (e.g. 'Ohio')"},{"name":"session_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Legislative session","examples":["2025"],"title":"Session Name"},"description":"Legislative session"},{"name":"action_since","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Bills with actions since date (YYYY-MM-DD)","examples":["2026-01-01"],"title":"Action Since"},"description":"Bills with actions since date (YYYY-MM-DD)"},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"FTS search across cached bills (title + identifier)","title":"Search"},"description":"FTS search across cached bills (title + identifier)"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Results per page","default":20,"title":"Page Size"},"description":"Results per page"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BillList"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/bills/{jurisdiction}/{session_name}/{bill_id}":{"get":{"tags":["Bills"],"summary":"Get bill detail","description":"Get full detail for a specific bill by jurisdiction, session, and bill ID. Results are cached with TTL (24h active, 7d resolved). Example: /api/bills/Ohio/2025/HB 247","operationId":"get_bill_api_bills__jurisdiction___session_name___bill_id__get","parameters":[{"name":"jurisdiction","in":"path","required":true,"schema":{"type":"string","title":"Jurisdiction"}},{"name":"session_name","in":"path","required":true,"schema":{"type":"string","title":"Session Name"}},{"name":"bill_id","in":"path","required":true,"schema":{"type":"string","title":"Bill Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BillResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/nonprofits":{"get":{"tags":["Nonprofits"],"summary":"Search nonprofits","description":"Search public charities from ProPublica. On first query, results are fetched from the API and cached locally (24h TTL). Use 'q' for API keyword search, or 'search' for FTS on cached records. Filter by state and NTEE code.","operationId":"search_nonprofits_api_nonprofits_get","parameters":[{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API search query","examples":["education equity"],"title":"Q"},"description":"API search query"},{"name":"state","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Two-letter state code","examples":["GA"],"title":"State"},"description":"Two-letter state code"},{"name":"ntee","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"NTEE major code (J, P, R, S, W)","examples":["P"],"title":"Ntee"},"description":"NTEE major code (J, P, R, S, W)"},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"FTS search across cached nonprofits","title":"Search"},"description":"FTS search across cached nonprofits"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"Page number (0-indexed)","default":0,"title":"Page"},"description":"Page number (0-indexed)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NonprofitList"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/nonprofits/{ein}":{"get":{"tags":["Nonprofits"],"summary":"Get nonprofit detail","description":"Get full detail for a specific nonprofit by EIN. Results are cached with 24h TTL. Example: /api/nonprofits/13-1837418","operationId":"get_nonprofit_api_nonprofits__ein__get","parameters":[{"name":"ein","in":"path","required":true,"schema":{"type":"string","title":"Ein"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NonprofitResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/census/profiles":{"get":{"tags":["Census"],"summary":"Search Census profiles","description":"Search Census Bureau ACS demographic profiles for congressional districts and states. Filter by state, geography type, and demographic thresholds. Supports full-text search across state names.","operationId":"list_census_profiles_api_census_profiles_get","parameters":[{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Full-text search across state/geo names","examples":["Ohio"],"title":"Search"},"description":"Full-text search across state/geo names"},{"name":"state","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by two-letter state abbreviation","examples":["OH"],"title":"State"},"description":"Filter by two-letter state abbreviation"},{"name":"geo_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by geo type: 'state' or 'congressional_district'","title":"Geo Type"},"description":"Filter by geo type: 'state' or 'congressional_district'"},{"name":"min_population","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Minimum total population","title":"Min Population"},"description":"Minimum total population"},{"name":"min_poverty_rate","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Minimum poverty rate (percentage)","title":"Min Poverty Rate"},"description":"Minimum poverty rate (percentage)"},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Sort: 'relevance' (with search), 'population', 'state'","default":"relevance","title":"Sort"},"description":"Sort: 'relevance' (with search), 'population', 'state'"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number (1-indexed)","default":1,"title":"Page"},"description":"Page number (1-indexed)"},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Results per page (max 100)","default":25,"title":"Page Size"},"description":"Results per page (max 100)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CensusProfileList"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/census/profiles/{geo_id}":{"get":{"tags":["Census"],"summary":"Get Census profile by geo ID","description":"Get full demographic profile for a specific geography. Geo IDs are in the format 'ST-OH' (state) or 'CD-OH-03' (congressional district).","operationId":"get_census_profile_api_census_profiles__geo_id__get","parameters":[{"name":"geo_id","in":"path","required":true,"schema":{"type":"string","title":"Geo Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CensusProfileResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/court/opinions":{"get":{"tags":["Court"],"summary":"Search court opinions","description":"Search court opinions from CourtListener. Supports full-text search across case names, snippets, and judge names. Filter by court or date filed. Sort by relevance (when searching) or date filed descending.","operationId":"list_opinions_api_court_opinions_get","parameters":[{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Full-text search","examples":["first amendment"],"title":"Q"},"description":"Full-text search"},{"name":"court","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by court identifier","examples":["scotus"],"title":"Court"},"description":"Filter by court identifier"},{"name":"after","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Only opinions filed on or after this date","examples":["2020-01-01"],"title":"After"},"description":"Only opinions filed on or after this date"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number (1-indexed)","default":1,"title":"Page"},"description":"Page number (1-indexed)"},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Results per page (max 100)","default":25,"title":"Page Size"},"description":"Results per page (max 100)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpinionList"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/court/opinions/{courtlistener_id}":{"get":{"tags":["Court"],"summary":"Get opinion by CourtListener ID","description":"Get a single court opinion by its CourtListener unique identifier.","operationId":"get_opinion_api_court_opinions__courtlistener_id__get","parameters":[{"name":"courtlistener_id","in":"path","required":true,"schema":{"type":"string","title":"Courtlistener Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpinionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/court/dockets":{"get":{"tags":["Court"],"summary":"Search court dockets","description":"Search court dockets from CourtListener. Supports full-text search across case names and docket numbers. Filter by court or nature of suit. Sort by relevance (when searching) or date filed descending.","operationId":"list_dockets_api_court_dockets_get","parameters":[{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Full-text search","examples":["patent infringement"],"title":"Q"},"description":"Full-text search"},{"name":"court","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by court identifier","examples":["cacd"],"title":"Court"},"description":"Filter by court identifier"},{"name":"nature_of_suit","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by nature of suit","examples":["Civil Rights"],"title":"Nature Of Suit"},"description":"Filter by nature of suit"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number (1-indexed)","default":1,"title":"Page"},"description":"Page number (1-indexed)"},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Results per page (max 100)","default":25,"title":"Page Size"},"description":"Results per page (max 100)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DocketList"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/court/dockets/{courtlistener_id}":{"get":{"tags":["Court"],"summary":"Get docket by CourtListener ID","description":"Get a single court docket by its CourtListener unique identifier.","operationId":"get_docket_api_court_dockets__courtlistener_id__get","parameters":[{"name":"courtlistener_id","in":"path","required":true,"schema":{"type":"string","title":"Courtlistener Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DocketResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/court/judges":{"get":{"tags":["Court"],"summary":"Search judges","description":"Search judge profiles from CourtListener. Supports full-text search across judge names, positions, and courts. Filter by court. Sort by relevance (when searching) or name ascending.","operationId":"list_judges_api_court_judges_get","parameters":[{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Full-text search","examples":["Sotomayor"],"title":"Q"},"description":"Full-text search"},{"name":"court","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by court identifier","examples":["scotus"],"title":"Court"},"description":"Filter by court identifier"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number (1-indexed)","default":1,"title":"Page"},"description":"Page number (1-indexed)"},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Results per page (max 100)","default":25,"title":"Page Size"},"description":"Results per page (max 100)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JudgeList"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/court/judges/{courtlistener_id}":{"get":{"tags":["Court"],"summary":"Get judge by CourtListener ID","description":"Get a single judge profile by their CourtListener unique identifier.","operationId":"get_judge_api_court_judges__courtlistener_id__get","parameters":[{"name":"courtlistener_id","in":"path","required":true,"schema":{"type":"string","title":"Courtlistener Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JudgeResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/legislation/bills":{"get":{"tags":["Legislation"],"summary":"Search legislative bills","description":"Full-text search across bill titles and identifiers. Filter by jurisdiction, session, subject, or classification.","operationId":"list_bills_api_legislation_bills_get","parameters":[{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Full-text search","title":"Search"},"description":"Full-text search"},{"name":"jurisdiction","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Jurisdiction OCD ID or name fragment","title":"Jurisdiction"},"description":"Jurisdiction OCD ID or name fragment"},{"name":"session","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Legislative session ID","title":"Session"},"description":"Legislative session ID"},{"name":"subject","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Subject filter (contained in subject array)","title":"Subject"},"description":"Subject filter (contained in subject array)"},{"name":"classification","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Classification filter (e.g. 'bill', 'resolution')","title":"Classification"},"description":"Classification filter (e.g. 'bill', 'resolution')"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":25,"title":"Page Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LegislationBillList"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/legislation/bills/{ocd_id}":{"get":{"tags":["Legislation"],"summary":"Get full bill detail","description":"Returns a bill with all actions, sponsors, versions, documents, and vote events.","operationId":"get_bill_api_legislation_bills__ocd_id__get","parameters":[{"name":"ocd_id","in":"path","required":true,"schema":{"type":"string","title":"Ocd Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LegislationBillDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/legislation/people":{"get":{"tags":["Legislation"],"summary":"Search legislators and political people","operationId":"list_people_api_legislation_people_get","parameters":[{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Full-text search","title":"Search"},"description":"Full-text search"},{"name":"jurisdiction","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Jurisdiction OCD ID","title":"Jurisdiction"},"description":"Jurisdiction OCD ID"},{"name":"party","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by party (e.g. 'Democratic')","title":"Party"},"description":"Filter by party (e.g. 'Democratic')"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":25,"title":"Page Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LegislationPersonList"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/legislation/people/{ocd_id}":{"get":{"tags":["Legislation"],"summary":"Get full person detail","operationId":"get_person_api_legislation_people__ocd_id__get","parameters":[{"name":"ocd_id","in":"path","required":true,"schema":{"type":"string","title":"Ocd Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LegislationPersonDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/legislation/votes":{"get":{"tags":["Legislation"],"summary":"Search vote events","operationId":"list_votes_api_legislation_votes_get","parameters":[{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Full-text search on motion text","title":"Search"},"description":"Full-text search on motion text"},{"name":"bill_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by bill OCD ID","title":"Bill Id"},"description":"Filter by bill OCD ID"},{"name":"result","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by result (pass/fail)","title":"Result"},"description":"Filter by result (pass/fail)"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":25,"title":"Page Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VoteEventList"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/legislation/votes/{ocd_id}":{"get":{"tags":["Legislation"],"summary":"Get vote event detail with individual votes","operationId":"get_vote_api_legislation_votes__ocd_id__get","parameters":[{"name":"ocd_id","in":"path","required":true,"schema":{"type":"string","title":"Ocd Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VoteEventDetailResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/legislation/organizations":{"get":{"tags":["Legislation"],"summary":"List legislative organizations (chambers, committees)","operationId":"list_organizations_api_legislation_organizations_get","parameters":[{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}},{"name":"jurisdiction","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Jurisdiction"}},{"name":"classification","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"e.g. 'legislature', 'committee'","title":"Classification"},"description":"e.g. 'legislature', 'committee'"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":25,"title":"Page Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationList"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/legislation/events":{"get":{"tags":["Legislation"],"summary":"Search legislative events (hearings, sessions)","operationId":"list_events_api_legislation_events_get","parameters":[{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}},{"name":"jurisdiction","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Jurisdiction"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":25,"title":"Page Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LegislationEventList"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/legislation/events/{ocd_id}":{"get":{"tags":["Legislation"],"summary":"Get event detail with agenda items and participants","operationId":"get_event_api_legislation_events__ocd_id__get","parameters":[{"name":"ocd_id","in":"path","required":true,"schema":{"type":"string","title":"Ocd Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LegislationEventDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/legislation/jurisdictions":{"get":{"tags":["Legislation"],"summary":"List all jurisdictions with session metadata","operationId":"list_jurisdictions_api_legislation_jurisdictions_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JurisdictionList"}}}}}}},"/api/legislation/stats":{"get":{"tags":["Legislation"],"summary":"Import statistics and row counts","operationId":"legislation_stats_api_legislation_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LegislationStats"}}}}}}},"/api/explore":{"post":{"tags":["Intelligence Explorer"],"summary":"Explore","description":"Conversational intelligence exploration with SSE streaming.","operationId":"explore_api_explore_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExploreRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/forecasts":{"get":{"tags":["Forecasts"],"summary":"Search procurement forecasts","description":"Procurement forecast search is under development. A proprietary forecast aggregator will replace the previous third-party dependency with direct agency-level data collection. The data model is ready — this endpoint will return results once the aggregator is operational.","operationId":"list_forecasts_api_forecasts_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForecastList"}}}}}}},"/api/sync/ingest-rfps":{"post":{"tags":["Sync"],"summary":"Ingest RFPs from external crawler","description":"Accept RFP records from a local crawler and upsert to foundation_rfps.","operationId":"ingest_rfps_api_sync_ingest_rfps_post","requestBody":{"content":{"application/json":{"schema":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Records"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Ingest Rfps Api Sync Ingest Rfps Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/sync/migrate":{"post":{"tags":["Sync"],"summary":"Run pending schema migrations","description":"Run safe, idempotent ALTER statements for pending model changes.","operationId":"run_migrations_api_sync_migrate_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Run Migrations Api Sync Migrate Post"}}}}}}},"/api/sync/status":{"get":{"tags":["Sync"],"summary":"Get sync status for all connectors","description":"Get the current sync status for all data connectors. Shows last sync time, record counts, and cursor position for each source. Connectors that have never synced will still appear with null timestamps.","operationId":"get_sync_status_api_sync_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/SyncStatus"},"type":"array","title":"Response Get Sync Status Api Sync Status Get"}}}}}}},"/api/sync/bmf-foundations":{"post":{"tags":["Sync"],"summary":"Sync foundation profiles from IRS BMF","description":"Sync 140K+ private foundation profiles from civic-irs BMF data. Runs in background.","operationId":"trigger_bmf_foundations_sync_api_sync_bmf_foundations_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Trigger Bmf Foundations Sync Api Sync Bmf Foundations Post"}}}}}}},"/api/sync/schedule-i-grants":{"post":{"tags":["Sync"],"summary":"Sync Schedule I grants from Form 990 XML","description":"Extract grants from Form 990 Schedule I (community foundations, United Way, re-granting nonprofits). Runs in background.","operationId":"trigger_schedule_i_grants_sync_api_sync_schedule_i_grants_post","parameters":[{"name":"since_year","in":"query","required":false,"schema":{"type":"integer","description":"Only process filings from this year onward","default":2020,"title":"Since Year"},"description":"Only process filings from this year onward"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Trigger Schedule I Grants Sync Api Sync Schedule I Grants Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/sync/foundation-grants":{"post":{"tags":["Sync"],"summary":"Sync foundation grants from 990-PF XML","description":"Extract individual grants from IRS 990-PF Part XV XML filings via civic-irs. Downloads ZIP batches, parses Part XV grants, and upserts to foundation_grants table. Long-running: 2-6 hours for full sync. Runs in background.","operationId":"trigger_foundation_grants_sync_api_sync_foundation_grants_post","parameters":[{"name":"since_year","in":"query","required":false,"schema":{"type":"integer","description":"Only process filings from this year onward","default":2020,"title":"Since Year"},"description":"Only process filings from this year onward"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Trigger Foundation Grants Sync Api Sync Foundation Grants Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/sync/rfp-crawl":{"post":{"tags":["Sync"],"summary":"Crawl foundation websites for active RFPs","description":"Crawl top foundations by giving to find active grant opportunities. Uses LLM extraction. Runs in background.","operationId":"trigger_rfp_crawl_api_sync_rfp_crawl_post","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","description":"Max foundations to crawl","default":500,"title":"Limit"},"description":"Max foundations to crawl"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Trigger Rfp Crawl Api Sync Rfp Crawl Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/sync/{connector}":{"post":{"tags":["Sync"],"summary":"Trigger a data sync","description":"Trigger a sync for a specific data connector. The sync runs in the background. Valid connector names: sam_opportunities, sam_entities, grants_gov, usaspending, propublica_foundations, open_states_legislators, census_acs, court_listener, court_listener_opinions, court_listener_dockets, court_listener_judges. Returns immediately with a confirmation message. Check /api/sync/status to monitor progress.","operationId":"trigger_sync_api_sync__connector__post","parameters":[{"name":"connector","in":"path","required":true,"schema":{"type":"string","title":"Connector"}},{"name":"full","in":"query","required":false,"schema":{"type":"boolean","description":"Run a full sync (vs incremental)","default":false,"title":"Full"},"description":"Run a full sync (vs incremental)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Trigger Sync Api Sync  Connector  Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"AwardList":{"properties":{"total_results":{"type":"integer","title":"Total Results","description":"Total number of matching awards"},"page":{"type":"integer","title":"Page","description":"Current page number","default":1},"page_size":{"type":"integer","title":"Page Size","description":"Results per page","default":25},"results":{"items":{"$ref":"#/components/schemas/AwardResponse"},"type":"array","title":"Results"}},"type":"object","required":["total_results","results"],"title":"AwardList","description":"Paginated award list."},"AwardResponse":{"properties":{"award_id":{"type":"string","title":"Award Id","description":"USAspending internal award identifier"},"piid":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Piid","description":"Procurement Instrument Identifier — unique contract number"},"fain":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fain","description":"Federal Award Identification Number — unique grant ID"},"uri":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Uri","description":"Unique Record Identifier for other financial assistance"},"award_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Award Type","description":"Award type code (e.g. 'A'=BPA, 'B'=Purchase Order, 'C'=Delivery Order, 'D'=Definitive Contract)"},"total_obligation":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Total Obligation","description":"Total dollars obligated on this award (USD)"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Award description / statement of work summary"},"award_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Award Date","description":"Date award was signed (YYYY-MM-DD)"},"start_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Start Date","description":"Period of performance start date"},"end_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"End Date","description":"Period of performance end date"},"recipient_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Recipient Name","description":"Legal name of the award recipient"},"recipient_uei":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Recipient Uei","description":"Recipient Unique Entity Identifier from SAM.gov"},"awarding_agency_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Awarding Agency Code","description":"Awarding agency code"},"awarding_agency_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Awarding Agency Name","description":"Awarding agency name"},"funding_agency_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Funding Agency Code","description":"Funding agency code (may differ from awarding)"},"funding_agency_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Funding Agency Name","description":"Funding agency name"},"naics_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Naics Code","description":"6-digit NAICS industry classification code"},"psc_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Psc Code","description":"Product or Service Code — 4-character DoD classification"},"pop_city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pop City","description":"Place of performance city"},"pop_state":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pop State","description":"Place of performance state code"},"pop_zip":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pop Zip","description":"Place of performance ZIP code"},"pop_country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pop Country","description":"Place of performance country code"}},"type":"object","required":["award_id"],"title":"AwardResponse","description":"Full award detail from USAspending."},"BillActionBrief":{"properties":{"id":{"type":"string","title":"Id"},"description":{"type":"string","title":"Description"},"date":{"type":"string","title":"Date"},"classification":{"items":{"type":"string"},"type":"array","title":"Classification","default":[]},"order":{"type":"integer","title":"Order"}},"type":"object","required":["id","description","date","order"],"title":"BillActionBrief"},"BillDocumentDetail":{"properties":{"id":{"type":"string","title":"Id"},"note":{"type":"string","title":"Note","default":""},"date":{"type":"string","title":"Date","default":""},"classification":{"type":"string","title":"Classification","default":""},"links":{"items":{"$ref":"#/components/schemas/BillDocumentLinkBrief"},"type":"array","title":"Links","default":[]}},"type":"object","required":["id"],"title":"BillDocumentDetail"},"BillDocumentLinkBrief":{"properties":{"id":{"type":"string","title":"Id"},"media_type":{"type":"string","title":"Media Type","default":""},"url":{"type":"string","title":"Url"}},"type":"object","required":["id","url"],"title":"BillDocumentLinkBrief"},"BillList":{"properties":{"total_results":{"type":"integer","title":"Total Results","description":"Total matching records"},"page":{"type":"integer","title":"Page","description":"Current page number","default":1},"page_size":{"type":"integer","title":"Page Size","description":"Records per page","default":20},"results":{"items":{"$ref":"#/components/schemas/BillResponse"},"type":"array","title":"Results"}},"type":"object","required":["total_results"],"title":"BillList","description":"Paginated list of bills."},"BillResponse":{"properties":{"openstates_id":{"type":"string","title":"Openstates Id","description":"Open States bill ID (ocd-bill/...)"},"identifier":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Identifier","description":"Bill number (e.g. HB 247)"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title","description":"Bill title"},"jurisdiction_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Jurisdiction Id","description":"Jurisdiction OCD ID"},"jurisdiction_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Jurisdiction Name","description":"Jurisdiction name"},"legislative_session":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Legislative Session","description":"Legislative session"},"classification":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Classification","description":"Bill type classification"},"subject":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Subject","description":"Subject tags"},"sponsors":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Sponsors","description":"Sponsors and cosponsors"},"actions":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Actions","description":"Legislative actions timeline"},"votes":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Votes","description":"Vote records"},"abstracts":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Abstracts","description":"Bill abstracts/summaries"},"versions":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Versions","description":"Bill text versions"},"openstates_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Openstates Url","description":"Open States bill URL"},"latest_action_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Latest Action Date","description":"Date of most recent action"},"latest_action_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Latest Action Description","description":"Most recent action description"},"fetched_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Fetched At","description":"When this record was last fetched"}},"type":"object","required":["openstates_id"],"title":"BillResponse","description":"A bill record from Open States."},"BillSponsorBrief":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"entity_type":{"type":"string","title":"Entity Type"},"primary":{"type":"boolean","title":"Primary"},"classification":{"type":"string","title":"Classification","default":""},"person_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Person Id"}},"type":"object","required":["id","name","entity_type","primary"],"title":"BillSponsorBrief"},"BillVersionDetail":{"properties":{"id":{"type":"string","title":"Id"},"note":{"type":"string","title":"Note","default":""},"date":{"type":"string","title":"Date","default":""},"classification":{"type":"string","title":"Classification","default":""},"links":{"items":{"$ref":"#/components/schemas/BillVersionLinkBrief"},"type":"array","title":"Links","default":[]}},"type":"object","required":["id"],"title":"BillVersionDetail"},"BillVersionLinkBrief":{"properties":{"id":{"type":"string","title":"Id"},"media_type":{"type":"string","title":"Media Type","default":""},"url":{"type":"string","title":"Url"}},"type":"object","required":["id","url"],"title":"BillVersionLinkBrief"},"CensusProfileList":{"properties":{"total_results":{"type":"integer","title":"Total Results","description":"Total number of matching records"},"page":{"type":"integer","title":"Page","default":1},"page_size":{"type":"integer","title":"Page Size","default":25},"results":{"items":{"$ref":"#/components/schemas/CensusProfileResponse"},"type":"array","title":"Results"}},"type":"object","required":["total_results"],"title":"CensusProfileList","description":"Paginated list of Census profiles."},"CensusProfileResponse":{"properties":{"id":{"type":"integer","title":"Id"},"geo_id":{"type":"string","title":"Geo Id"},"geo_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Geo Type"},"state_fips":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State Fips"},"state_abbr":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State Abbr"},"state_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State Name"},"district_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"District Number"},"total_population":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Population"},"median_household_income":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Median Household Income"},"per_capita_income":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Per Capita Income"},"median_age":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Median Age"},"total_households":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Households"},"median_home_value":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Median Home Value"},"poverty_rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Poverty Rate"},"unemployment_rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Unemployment Rate"},"uninsured_rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Uninsured Rate"},"bachelors_rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Bachelors Rate"},"graduate_rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Graduate Rate"},"foreign_born_rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Foreign Born Rate"},"non_english_rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Non English Rate"},"renter_rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Renter Rate"},"veteran_rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Veteran Rate"},"snap_rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Snap Rate"},"pct_white":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Pct White"},"pct_black":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Pct Black"},"pct_hispanic":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Pct Hispanic"},"pct_asian":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Pct Asian"},"acs_year":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Acs Year"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","geo_id"],"title":"CensusProfileResponse","description":"Single Census profile response."},"ConversationState":{"properties":{"session_id":{"type":"string","title":"Session Id"},"original_query":{"type":"string","title":"Original Query"},"turn_number":{"type":"integer","title":"Turn Number","default":0},"discovered_entities":{"items":{"$ref":"#/components/schemas/DiscoveredEntity"},"type":"array","title":"Discovered Entities"},"sources_searched":{"additionalProperties":{"$ref":"#/components/schemas/SourceSummary"},"type":"object","title":"Sources Searched"},"prior_angles_explored":{"items":{"type":"string"},"type":"array","title":"Prior Angles Explored"},"prior_briefing_summary":{"type":"string","title":"Prior Briefing Summary","default":""}},"type":"object","required":["session_id","original_query"],"title":"ConversationState","description":"Client-side conversation state passed with each turn."},"DiscoveredEntity":{"properties":{"name":{"type":"string","title":"Name"},"entity_type":{"type":"string","title":"Entity Type"},"ids":{"additionalProperties":{"type":"string"},"type":"object","title":"Ids"},"sources":{"items":{"type":"string"},"type":"array","title":"Sources"},"links":{"items":{"$ref":"#/components/schemas/EntityLink"},"type":"array","title":"Links"}},"type":"object","required":["name","entity_type"],"title":"DiscoveredEntity","description":"An entity found and linked across multiple sources."},"DocketList":{"properties":{"total_results":{"type":"integer","title":"Total Results"},"page":{"type":"integer","title":"Page","default":1},"page_size":{"type":"integer","title":"Page Size","default":25},"results":{"items":{"$ref":"#/components/schemas/DocketResponse"},"type":"array","title":"Results"}},"type":"object","required":["total_results","results"],"title":"DocketList","description":"Paginated docket list."},"DocketResponse":{"properties":{"courtlistener_id":{"type":"string","title":"Courtlistener Id","description":"CourtListener unique docket ID"},"case_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Case Name","description":"Case name"},"court":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Court","description":"Court identifier"},"docket_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Docket Number","description":"Official docket number (e.g. '1:24-cv-01234')"},"date_filed":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Date Filed","description":"Date the case was filed"},"date_terminated":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Date Terminated","description":"Date the case was terminated, if applicable"},"nature_of_suit":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nature Of Suit","description":"Nature of suit classification"},"parties":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Parties","description":"Raw party list from CourtListener"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Record creation timestamp"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Record last-updated timestamp"}},"type":"object","required":["courtlistener_id"],"title":"DocketResponse","description":"Court docket from CourtListener."},"EntityLink":{"properties":{"source_entity":{"type":"string","title":"Source Entity"},"target_entity":{"type":"string","title":"Target Entity"},"relationship":{"type":"string","title":"Relationship"},"source":{"type":"string","title":"Source"},"details":{"additionalProperties":true,"type":"object","title":"Details"}},"type":"object","required":["source_entity","target_entity","relationship","source"],"title":"EntityLink","description":"A connection between two entities across sources."},"EntityList":{"properties":{"total_results":{"type":"integer","title":"Total Results","description":"Total number of matching entities"},"page":{"type":"integer","title":"Page","description":"Current page number","default":1},"page_size":{"type":"integer","title":"Page Size","description":"Results per page","default":25},"results":{"items":{"$ref":"#/components/schemas/EntityResponse"},"type":"array","title":"Results"}},"type":"object","required":["total_results","results"],"title":"EntityList","description":"Paginated entity list."},"EntityResponse":{"properties":{"uei":{"type":"string","title":"Uei","description":"Unique Entity Identifier — SAM.gov primary key"},"legal_business_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Legal Business Name","description":"Legal business name from SAM.gov registration"},"dba_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Dba Name","description":"Doing Business As (DBA) name"},"entity_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Url","description":"Entity website URL"},"cage_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cage Code","description":"Commercial and Government Entity code — 5-character defense supplier ID"},"primary_naics":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Primary Naics","description":"Primary 6-digit NAICS industry code"},"purpose_of_registration":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Purpose Of Registration","description":"SAM.gov registration purpose code (e.g. 'Z2' for government business)"},"business_types":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Business Types","description":"Business type classifications (e.g. [{'code': '2X', 'description': 'For Profit Organization'}])"},"address_line1":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Address Line1","description":"Street address line 1"},"address_line2":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Address Line2","description":"Street address line 2"},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City","description":"City"},"state":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State","description":"State or province code"},"zip_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Zip Code","description":"ZIP or postal code"},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country","description":"Country code"},"registration_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Registration Status","description":"SAM.gov registration status (e.g. 'Active')"},"registration_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Registration Date","description":"Initial registration date"},"expiration_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Expiration Date","description":"Registration expiration date"},"active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Active","description":"Whether the entity has an active SAM.gov registration"}},"type":"object","required":["uei"],"title":"EntityResponse","description":"Full entity detail from SAM.gov."},"EventAgendaItemBrief":{"properties":{"id":{"type":"string","title":"Id"},"description":{"type":"string","title":"Description"},"order":{"type":"integer","title":"Order"},"subjects":{"items":{"type":"string"},"type":"array","title":"Subjects","default":[]}},"type":"object","required":["id","description","order"],"title":"EventAgendaItemBrief"},"EventParticipantBrief":{"properties":{"name":{"type":"string","title":"Name"},"entity_type":{"type":"string","title":"Entity Type"},"note":{"type":"string","title":"Note","default":""}},"type":"object","required":["name","entity_type"],"title":"EventParticipantBrief"},"ExploreRequest":{"properties":{"message":{"type":"string","title":"Message"},"conversation_state":{"anyOf":[{"$ref":"#/components/schemas/ConversationState"},{"type":"null"}]}},"type":"object","required":["message"],"title":"ExploreRequest","description":"POST body for /api/explore endpoint."},"ForecastList":{"properties":{"total_results":{"type":"integer","title":"Total Results","description":"Total number of matching forecasts"},"page":{"type":"integer","title":"Page","description":"Current page number","default":1},"page_size":{"type":"integer","title":"Page Size","description":"Results per page","default":25},"results":{"items":{"$ref":"#/components/schemas/ForecastResponse"},"type":"array","title":"Results"}},"type":"object","required":["total_results","results"],"title":"ForecastList","description":"Paginated forecast list."},"ForecastResponse":{"properties":{"forecast_id":{"type":"string","title":"Forecast Id","description":"Internal forecast identifier"},"source_system":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source System","description":"Source system (e.g. 'agency_forecast', 'govwin')"},"external_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"External Id","description":"External identifier from source system"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title","description":"Forecast title / requirement name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Forecast description"},"agency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agency","description":"Procuring agency name"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Forecast status (e.g. 'active', 'cancelled')"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active","description":"Whether the forecast is currently active"},"naics_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Naics Code","description":"6-digit NAICS classification code"},"set_aside":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Set Aside","description":"Set-aside designation (e.g. 'Small Business')"},"contract_vehicle":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contract Vehicle","description":"Anticipated contract vehicle (e.g. 'GSA Schedule', 'IDIQ')"},"anticipated_award_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Anticipated Award Date","description":"Anticipated award date"},"fiscal_year":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Fiscal Year","description":"Target fiscal year"},"estimated_period":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Estimated Period","description":"Estimated period of performance"},"contact_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contact Name","description":"Point of contact name"},"contact_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contact Email","description":"Point of contact email"},"contact_phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contact Phone","description":"Point of contact phone"},"contact_title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contact Title","description":"Point of contact title/role"},"pop_text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pop Text","description":"Place of performance description text"}},"type":"object","required":["forecast_id"],"title":"ForecastResponse","description":"Full forecast detail."},"FoundationGrantList":{"properties":{"total_results":{"type":"integer","title":"Total Results"},"page":{"type":"integer","title":"Page","default":1},"page_size":{"type":"integer","title":"Page Size","default":25},"results":{"items":{"$ref":"#/components/schemas/FoundationGrantResponse"},"type":"array","title":"Results"}},"type":"object","required":["total_results","results"],"title":"FoundationGrantList","description":"Paginated foundation grant list."},"FoundationGrantResponse":{"properties":{"grant_key":{"type":"string","title":"Grant Key","description":"Synthetic unique key (MD5 hash)"},"foundation_ein":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Foundation Ein","description":"Grantor foundation EIN"},"foundation_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Foundation Name","description":"Grantor foundation name"},"tax_year":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Tax Year","description":"Tax year of the filing"},"filing_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filing Id","description":"IRS filing ID"},"recipient_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Recipient Name","description":"Grant recipient name (free text from IRS filing)"},"recipient_city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Recipient City","description":"Recipient city"},"recipient_state":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Recipient State","description":"Recipient state code"},"recipient_zip":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Recipient Zip","description":"Recipient ZIP code"},"recipient_ein":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Recipient Ein","description":"Recipient EIN if available"},"purpose":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Purpose","description":"Grant purpose description"},"amount":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Amount","description":"Grant amount in USD"},"source_form":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Form","description":"IRS form type: 990-PF (Part XV) or 990-I (Schedule I)"}},"type":"object","required":["grant_key"],"title":"FoundationGrantResponse","description":"Single grant paid by a foundation."},"FoundationList":{"properties":{"total_results":{"type":"integer","title":"Total Results"},"page":{"type":"integer","title":"Page","default":1},"page_size":{"type":"integer","title":"Page Size","default":25},"results":{"items":{"$ref":"#/components/schemas/FoundationResponse"},"type":"array","title":"Results"}},"type":"object","required":["total_results","results"],"title":"FoundationList","description":"Paginated foundation list."},"FoundationResponse":{"properties":{"ein":{"type":"string","title":"Ein","description":"Employer Identification Number (XX-XXXXXXX format)"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Foundation legal name"},"alternate_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Alternate Name","description":"Alternate or DBA name"},"website":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Website","description":"Foundation website URL"},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City","description":"City of principal office"},"state":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State","description":"Two-letter state code","examples":["CA"]},"zipcode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Zipcode","description":"ZIP code"},"ntee_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ntee Code","description":"NTEE classification code (e.g. 'T20' for Private Grantmaking Foundations)"},"total_assets":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Total Assets","description":"Total assets from latest filing"},"total_giving":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Total Giving","description":"Total grants paid from latest filing"},"total_revenue":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Total Revenue","description":"Total revenue from latest filing"},"total_expenses":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Total Expenses","description":"Total expenses from latest filing"},"latest_filing_year":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Latest Filing Year","description":"Most recent tax year with a filing"},"filing_years":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Filing Years","description":"Filing history — [{year, giving, assets, filing_id}, ...]"},"propublica_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Propublica Url","description":"Link to ProPublica Nonprofit Explorer page"}},"type":"object","required":["ein"],"title":"FoundationResponse","description":"Full foundation profile."},"GeoLookupResponse":{"properties":{"latitude":{"type":"number","title":"Latitude","description":"Latitude used for lookup"},"longitude":{"type":"number","title":"Longitude","description":"Longitude used for lookup"},"address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Address","description":"Original address (if provided)"},"legislators":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Legislators","description":"Legislators representing this location"},"cached":{"type":"boolean","title":"Cached","description":"Whether result was served from cache","default":false},"fetched_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Fetched At","description":"When this lookup was performed"}},"type":"object","required":["latitude","longitude"],"title":"GeoLookupResponse","description":"Response from legislator geo lookup."},"GrantList":{"properties":{"total_results":{"type":"integer","title":"Total Results","description":"Total number of matching grants"},"page":{"type":"integer","title":"Page","description":"Current page number","default":1},"page_size":{"type":"integer","title":"Page Size","description":"Results per page","default":25},"results":{"items":{"$ref":"#/components/schemas/GrantResponse"},"type":"array","title":"Results"}},"type":"object","required":["total_results","results"],"title":"GrantList","description":"Paginated grant list."},"GrantResponse":{"properties":{"grant_id":{"type":"string","title":"Grant Id","description":"Grants.gov opportunity ID"},"opportunity_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Opportunity Number","description":"Agency-assigned opportunity number (e.g. 'HHS-2026-HRSA-001')"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title","description":"Grant opportunity title"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Full synopsis description"},"agency_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agency Code","description":"Sponsoring agency code (e.g. 'HHS', 'DOE')"},"agency_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agency Name","description":"Full agency name"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Status code: P=Posted, F=Forecasted, C=Closed, A=Archived"},"posted_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Posted Date","description":"Date opportunity was posted (YYYY-MM-DD)"},"close_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Close Date","description":"Application deadline (YYYY-MM-DD)"},"estimated_start_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Estimated Start Date","description":"Estimated project start date"},"award_ceiling":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Award Ceiling","description":"Maximum award amount (USD)"},"award_floor":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Award Floor","description":"Minimum award amount (USD)"},"funding_details":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Funding Details","description":"Funding details and estimated total program funding"},"cfda_numbers":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Cfda Numbers","description":"CFDA program numbers list (e.g. [{'id': '93.247', 'name': 'Nurse Corps'}])"},"applicant_types":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Applicant Types","description":"Eligible applicant types list"},"funding_categories":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Funding Categories","description":"Funding categories list (e.g. Health, Education)"},"funding_instruments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Funding Instruments","description":"Funding instrument types (e.g. Grant, Cooperative Agreement)"},"applicant_eligibility":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Applicant Eligibility","description":"Applicant eligibility description"},"grantor_contact":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Grantor Contact","description":"Grantor contact info (name | email | phone)"},"grants_gov_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Grants Gov Url","description":"Direct link to Grants.gov listing"}},"type":"object","required":["grant_id"],"title":"GrantResponse","description":"Full grant detail from Grants.gov."},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"IntelligenceBill":{"properties":{"identifier":{"type":"string","title":"Identifier","description":"Bill number (e.g. 'HB 1654')"},"title":{"type":"string","title":"Title"},"jurisdiction":{"type":"string","title":"Jurisdiction","description":"State name"},"session":{"type":"string","title":"Session","description":"Legislative session identifier"},"latest_action":{"type":"string","title":"Latest Action","default":""},"latest_action_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Latest Action Date"},"classification":{"items":{"type":"string"},"type":"array","title":"Classification","default":[]},"openstates_id":{"type":"string","title":"Openstates Id","description":"OCD bill ID"}},"type":"object","required":["identifier","title","jurisdiction","session","openstates_id"],"title":"IntelligenceBill","description":"A bill with key metadata."},"IntelligenceResponse":{"properties":{"query":{"type":"string","title":"Query"},"total_bills":{"type":"integer","title":"Total Bills"},"page":{"type":"integer","title":"Page","default":1},"page_size":{"type":"integer","title":"Page Size","default":10},"results":{"items":{"$ref":"#/components/schemas/IntelligenceResult"},"type":"array","title":"Results"}},"type":"object","required":["query","total_bills","results"],"title":"IntelligenceResponse","description":"Full intelligence response — bills with sponsors, committees, and legislator context."},"IntelligenceResult":{"properties":{"bill":{"$ref":"#/components/schemas/IntelligenceBill"},"sponsors":{"items":{"$ref":"#/components/schemas/IntelligenceSponsor"},"type":"array","title":"Sponsors","default":[]},"committees_involved":{"items":{"type":"string"},"type":"array","title":"Committees Involved","description":"Committees that acted on this bill","default":[]}},"type":"object","required":["bill"],"title":"IntelligenceResult","description":"A single bill with its full relationship graph."},"IntelligenceSponsor":{"properties":{"name":{"type":"string","title":"Name"},"classification":{"type":"string","title":"Classification","description":"primary or cosponsor"},"party":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Party"},"chamber":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chamber","description":"upper/lower from current_role"},"district":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"District"},"openstates_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Openstates Id","description":"OCD person ID"},"committees":{"items":{"type":"string"},"type":"array","title":"Committees","description":"Committee names from memberships","default":[]}},"type":"object","required":["name","classification"],"title":"IntelligenceSponsor","description":"A bill sponsor with party, district, and committee memberships."},"JudgeList":{"properties":{"total_results":{"type":"integer","title":"Total Results"},"page":{"type":"integer","title":"Page","default":1},"page_size":{"type":"integer","title":"Page Size","default":25},"results":{"items":{"$ref":"#/components/schemas/JudgeResponse"},"type":"array","title":"Results"}},"type":"object","required":["total_results","results"],"title":"JudgeList","description":"Paginated judge list."},"JudgeResponse":{"properties":{"courtlistener_id":{"type":"string","title":"Courtlistener Id","description":"CourtListener unique judge/person ID"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Full name of the judge"},"court":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Court","description":"Court where the judge currently sits"},"position":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Position","description":"Position title (e.g. 'Circuit Judge', 'Chief Justice')"},"appointing_president":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Appointing President","description":"President who appointed this judge"},"political_affiliation":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Political Affiliation","description":"Political party affiliation"},"date_born":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Date Born","description":"Date of birth"},"active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Active","description":"Whether the judge is currently active"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Record creation timestamp"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Record last-updated timestamp"}},"type":"object","required":["courtlistener_id"],"title":"JudgeResponse","description":"Judge profile from CourtListener."},"JurisdictionList":{"properties":{"total_results":{"type":"integer","title":"Total Results"},"results":{"items":{"$ref":"#/components/schemas/JurisdictionResponse"},"type":"array","title":"Results"}},"type":"object","required":["total_results","results"],"title":"JurisdictionList"},"JurisdictionResponse":{"properties":{"id":{"type":"string","title":"Id","description":"OCD jurisdiction ID"},"name":{"type":"string","title":"Name"},"url":{"type":"string","title":"Url","default":""},"classification":{"type":"string","title":"Classification"},"latest_bill_update":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Latest Bill Update"},"latest_people_update":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Latest People Update"},"sessions":{"items":{"$ref":"#/components/schemas/LegislativeSessionBrief"},"type":"array","title":"Sessions","default":[]}},"type":"object","required":["id","name","classification"],"title":"JurisdictionResponse","description":"A state or territory jurisdiction with session metadata."},"LegislationBillDetail":{"properties":{"id":{"type":"string","title":"Id","description":"OCD bill ID"},"identifier":{"type":"string","title":"Identifier","description":"Bill number (e.g. 'HB 1234')"},"title":{"type":"string","title":"Title"},"classification":{"items":{"type":"string"},"type":"array","title":"Classification","default":[]},"subject":{"items":{"type":"string"},"type":"array","title":"Subject","default":[]},"first_action_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"First Action Date"},"latest_action_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Latest Action Date"},"latest_action_description":{"type":"string","title":"Latest Action Description","default":""},"latest_passage_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Latest Passage Date"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"actions":{"items":{"$ref":"#/components/schemas/BillActionBrief"},"type":"array","title":"Actions","default":[]},"sponsorships":{"items":{"$ref":"#/components/schemas/BillSponsorBrief"},"type":"array","title":"Sponsorships","default":[]},"versions":{"items":{"$ref":"#/components/schemas/BillVersionDetail"},"type":"array","title":"Versions","default":[]},"documents":{"items":{"$ref":"#/components/schemas/BillDocumentDetail"},"type":"array","title":"Documents","default":[]},"vote_events":{"items":{"$ref":"#/components/schemas/VoteEventBrief"},"type":"array","title":"Vote Events","default":[]},"abstracts":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Abstracts","description":"Bill abstracts/summaries","default":[]}},"type":"object","required":["id","identifier","title"],"title":"LegislationBillDetail","description":"Full bill with all nested relations."},"LegislationBillList":{"properties":{"total_results":{"type":"integer","title":"Total Results"},"page":{"type":"integer","title":"Page","default":1},"page_size":{"type":"integer","title":"Page Size","default":25},"results":{"items":{"$ref":"#/components/schemas/LegislationBillResponse"},"type":"array","title":"Results"}},"type":"object","required":["total_results","results"],"title":"LegislationBillList"},"LegislationBillResponse":{"properties":{"id":{"type":"string","title":"Id","description":"OCD bill ID"},"identifier":{"type":"string","title":"Identifier","description":"Bill number (e.g. 'HB 1234')"},"title":{"type":"string","title":"Title"},"classification":{"items":{"type":"string"},"type":"array","title":"Classification","default":[]},"subject":{"items":{"type":"string"},"type":"array","title":"Subject","default":[]},"first_action_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"First Action Date"},"latest_action_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Latest Action Date"},"latest_action_description":{"type":"string","title":"Latest Action Description","default":""},"latest_passage_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Latest Passage Date"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","identifier","title"],"title":"LegislationBillResponse","description":"A legislative bill with full relational data."},"LegislationEventDetail":{"properties":{"id":{"type":"string","title":"Id","description":"OCD event ID"},"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description","default":""},"classification":{"type":"string","title":"Classification","default":""},"start_date":{"type":"string","title":"Start Date"},"end_date":{"type":"string","title":"End Date","default":""},"status":{"type":"string","title":"Status","default":""},"all_day":{"type":"boolean","title":"All Day","default":false},"agenda_items":{"items":{"$ref":"#/components/schemas/EventAgendaItemBrief"},"type":"array","title":"Agenda Items","default":[]},"participants":{"items":{"$ref":"#/components/schemas/EventParticipantBrief"},"type":"array","title":"Participants","default":[]}},"type":"object","required":["id","name","start_date"],"title":"LegislationEventDetail","description":"Full event with agenda items and participants."},"LegislationEventList":{"properties":{"total_results":{"type":"integer","title":"Total Results"},"page":{"type":"integer","title":"Page","default":1},"page_size":{"type":"integer","title":"Page Size","default":25},"results":{"items":{"$ref":"#/components/schemas/LegislationEventResponse"},"type":"array","title":"Results"}},"type":"object","required":["total_results","results"],"title":"LegislationEventList"},"LegislationEventResponse":{"properties":{"id":{"type":"string","title":"Id","description":"OCD event ID"},"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description","default":""},"classification":{"type":"string","title":"Classification","default":""},"start_date":{"type":"string","title":"Start Date"},"end_date":{"type":"string","title":"End Date","default":""},"status":{"type":"string","title":"Status","default":""},"all_day":{"type":"boolean","title":"All Day","default":false}},"type":"object","required":["id","name","start_date"],"title":"LegislationEventResponse","description":"A legislative event (hearing, session, meeting)."},"LegislationPersonDetail":{"properties":{"id":{"type":"string","title":"Id","description":"OCD person ID"},"name":{"type":"string","title":"Name"},"family_name":{"type":"string","title":"Family Name","default":""},"given_name":{"type":"string","title":"Given Name","default":""},"image":{"type":"string","title":"Image","default":""},"gender":{"type":"string","title":"Gender","default":""},"primary_party":{"type":"string","title":"Primary Party","default":""},"email":{"type":"string","title":"Email","default":""},"current_role":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Current Role"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"memberships":{"items":{"$ref":"#/components/schemas/MembershipBrief"},"type":"array","title":"Memberships","default":[]},"offices":{"items":{"$ref":"#/components/schemas/PersonOfficeBrief"},"type":"array","title":"Offices","default":[]},"identifiers":{"items":{"$ref":"#/components/schemas/PersonIdentifierBrief"},"type":"array","title":"Identifiers","default":[]},"links":{"items":{"$ref":"#/components/schemas/PersonLinkBrief"},"type":"array","title":"Links","default":[]}},"type":"object","required":["id","name"],"title":"LegislationPersonDetail","description":"Full person with memberships, offices, identifiers."},"LegislationPersonList":{"properties":{"total_results":{"type":"integer","title":"Total Results"},"page":{"type":"integer","title":"Page","default":1},"page_size":{"type":"integer","title":"Page Size","default":25},"results":{"items":{"$ref":"#/components/schemas/LegislationPersonResponse"},"type":"array","title":"Results"}},"type":"object","required":["total_results","results"],"title":"LegislationPersonList"},"LegislationPersonResponse":{"properties":{"id":{"type":"string","title":"Id","description":"OCD person ID"},"name":{"type":"string","title":"Name"},"family_name":{"type":"string","title":"Family Name","default":""},"given_name":{"type":"string","title":"Given Name","default":""},"image":{"type":"string","title":"Image","default":""},"gender":{"type":"string","title":"Gender","default":""},"primary_party":{"type":"string","title":"Primary Party","default":""},"email":{"type":"string","title":"Email","default":""},"current_role":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Current Role"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","name"],"title":"LegislationPersonResponse","description":"A legislator or political person."},"LegislationStats":{"properties":{"import_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Import Date"},"table_counts":{"additionalProperties":{"type":"integer"},"type":"object","title":"Table Counts","description":"Row counts per os_* table","default":{}},"total_rows":{"type":"integer","title":"Total Rows","default":0},"storage_mb":{"type":"number","title":"Storage Mb","default":0.0}},"type":"object","title":"LegislationStats","description":"Import statistics for the bulk data."},"LegislativeSessionBrief":{"properties":{"id":{"type":"string","title":"Id"},"identifier":{"type":"string","title":"Identifier"},"name":{"type":"string","title":"Name"},"classification":{"type":"string","title":"Classification","default":""},"start_date":{"type":"string","title":"Start Date","default":""},"end_date":{"type":"string","title":"End Date","default":""},"active":{"type":"boolean","title":"Active","default":false}},"type":"object","required":["id","identifier","name"],"title":"LegislativeSessionBrief"},"LegislatorList":{"properties":{"total_results":{"type":"integer","title":"Total Results","description":"Total matching records"},"page":{"type":"integer","title":"Page","description":"Current page number","default":1},"page_size":{"type":"integer","title":"Page Size","description":"Records per page","default":25},"results":{"items":{"$ref":"#/components/schemas/LegislatorResponse"},"type":"array","title":"Results"}},"type":"object","required":["total_results"],"title":"LegislatorList","description":"Paginated list of legislators."},"LegislatorResponse":{"properties":{"openstates_id":{"type":"string","title":"Openstates Id","description":"Open States person ID (ocd-person/...)"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Full name"},"given_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Given Name","description":"First name"},"family_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Family Name","description":"Last name"},"party":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Party","description":"Political party"},"image":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image","description":"Photo URL"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email","description":"Contact email"},"chamber":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chamber","description":"Chamber: upper, lower, legislature"},"district":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"District","description":"District name or number"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title","description":"Title (e.g. Senator, Representative)"},"jurisdiction_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Jurisdiction Id","description":"Jurisdiction OCD ID"},"jurisdiction_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Jurisdiction Name","description":"Jurisdiction name (e.g. Ohio)"},"offices":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Offices","description":"Office contact info"},"links":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Links","description":"External links"},"openstates_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Openstates Url","description":"Open States profile URL"},"fetched_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Fetched At","description":"When this record was last fetched"}},"type":"object","required":["openstates_id"],"title":"LegislatorResponse","description":"A legislator record from Open States."},"MembershipBrief":{"properties":{"id":{"type":"string","title":"Id"},"person_name":{"type":"string","title":"Person Name"},"role":{"type":"string","title":"Role","default":""},"organization_id":{"type":"string","title":"Organization Id"},"start_date":{"type":"string","title":"Start Date","default":""},"end_date":{"type":"string","title":"End Date","default":""}},"type":"object","required":["id","person_name","organization_id"],"title":"MembershipBrief"},"NonprofitList":{"properties":{"total_results":{"type":"integer","title":"Total Results","description":"Total matching records"},"page":{"type":"integer","title":"Page","description":"Current page number (0-indexed)","default":0},"results":{"items":{"$ref":"#/components/schemas/NonprofitResponse"},"type":"array","title":"Results"},"has_next":{"type":"boolean","title":"Has Next","description":"Whether more pages exist","default":false}},"type":"object","required":["total_results"],"title":"NonprofitList","description":"Paginated list of nonprofits."},"NonprofitResponse":{"properties":{"ein":{"type":"string","title":"Ein","description":"Employer Identification Number (XX-XXXXXXX)"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Organization name"},"state":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State","description":"Two-letter state code"},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City","description":"City"},"ntee_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ntee Code","description":"NTEE classification code"},"ntee_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ntee Description","description":"NTEE code description"},"subsection_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subsection Code","description":"IRS subsection code"},"ruling_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ruling Date","description":"IRS ruling date"},"tax_period":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tax Period","description":"Latest tax period"},"revenue":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Revenue","description":"Total revenue"},"expenses":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Expenses","description":"Total expenses"},"assets":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Assets","description":"Total assets"},"income":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Income","description":"Net income"},"filing_year":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Filing Year","description":"Latest filing year"},"fetched_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Fetched At","description":"When this record was last fetched"}},"type":"object","required":["ein"],"title":"NonprofitResponse","description":"A public charity record from ProPublica."},"OpinionList":{"properties":{"total_results":{"type":"integer","title":"Total Results"},"page":{"type":"integer","title":"Page","default":1},"page_size":{"type":"integer","title":"Page Size","default":25},"results":{"items":{"$ref":"#/components/schemas/OpinionResponse"},"type":"array","title":"Results"}},"type":"object","required":["total_results","results"],"title":"OpinionList","description":"Paginated opinion list."},"OpinionResponse":{"properties":{"courtlistener_id":{"type":"string","title":"Courtlistener Id","description":"CourtListener unique opinion ID"},"case_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Case Name","description":"Case name (e.g. 'Smith v. Jones')"},"court":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Court","description":"Court identifier (e.g. 'scotus', 'ca9')"},"date_filed":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Date Filed","description":"Date the opinion was filed"},"citation_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Citation Count","description":"Number of times this opinion has been cited"},"snippet":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Snippet","description":"Text excerpt from the opinion"},"full_text_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Full Text Url","description":"URL to the full opinion text on CourtListener"},"judges":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Judges","description":"Comma-separated judge names on the opinion"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Record creation timestamp"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Record last-updated timestamp"}},"type":"object","required":["courtlistener_id"],"title":"OpinionResponse","description":"Court opinion from CourtListener."},"OpportunityList":{"properties":{"total_results":{"type":"integer","title":"Total Results","description":"Total number of matching opportunities"},"page":{"type":"integer","title":"Page","description":"Current page number","default":1},"page_size":{"type":"integer","title":"Page Size","description":"Results per page","default":25},"results":{"items":{"$ref":"#/components/schemas/OpportunityResponse"},"type":"array","title":"Results"}},"type":"object","required":["total_results","results"],"title":"OpportunityList","description":"Paginated opportunity list."},"OpportunityResponse":{"properties":{"opportunity_id":{"type":"string","title":"Opportunity Id","description":"SAM.gov notice/opportunity ID"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title","description":"Opportunity title"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Full description / synopsis"},"solicitation_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Solicitation Number","description":"Agency-assigned solicitation number"},"notice_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notice Type","description":"SAM.gov notice type (full string, e.g. 'Solicitation', 'Award Notice', 'Pre-solicitation', 'Sources Sought', 'Combined Synopsis/Solicitation', 'Special Notice')"},"active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Active","description":"Whether the opportunity is currently open for responses"},"naics_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Naics Code","description":"6-digit NAICS industry classification code"},"psc_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Psc Code","description":"Product or Service Code — 4-character DoD classification"},"set_aside_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Set Aside Code","description":"Set-aside code (e.g. 'SBA', 'HZC' for HUBZone)"},"set_aside_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Set Aside Description","description":"Human-readable set-aside description"},"department_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Department Name","description":"Top-level department name"},"agency_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agency Code","description":"Contracting agency code"},"agency_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agency Name","description":"Contracting agency name"},"office_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Office Name","description":"Contracting office name"},"pop_city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pop City","description":"Place of performance city"},"pop_state":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pop State","description":"Place of performance state code"},"pop_zip":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pop Zip","description":"Place of performance ZIP code"},"pop_country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pop Country","description":"Place of performance country code"},"posted_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Posted Date","description":"Date opportunity was posted (YYYY-MM-DD)"},"response_deadline":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Response Deadline","description":"Response/proposal deadline (ISO 8601 datetime)"},"contact_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contact Name","description":"Primary point of contact name"},"contact_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contact Email","description":"Point of contact email"},"contact_phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contact Phone","description":"Point of contact phone number"},"sam_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sam Url","description":"Direct link to SAM.gov listing"},"award_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Award Number","description":"Related award number if this is an award notice"}},"type":"object","required":["opportunity_id"],"title":"OpportunityResponse","description":"Full opportunity detail from SAM.gov."},"OrganizationList":{"properties":{"total_results":{"type":"integer","title":"Total Results"},"page":{"type":"integer","title":"Page","default":1},"page_size":{"type":"integer","title":"Page Size","default":25},"results":{"items":{"$ref":"#/components/schemas/OrganizationResponse"},"type":"array","title":"Results"}},"type":"object","required":["total_results","results"],"title":"OrganizationList"},"OrganizationResponse":{"properties":{"id":{"type":"string","title":"Id","description":"OCD organization ID"},"name":{"type":"string","title":"Name"},"classification":{"type":"string","title":"Classification","default":""},"jurisdiction_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Jurisdiction Id"},"parent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Id"}},"type":"object","required":["id","name"],"title":"OrganizationResponse","description":"A legislative body, committee, caucus, or party."},"PersonIdentifierBrief":{"properties":{"identifier":{"type":"string","title":"Identifier"},"scheme":{"type":"string","title":"Scheme"}},"type":"object","required":["identifier","scheme"],"title":"PersonIdentifierBrief"},"PersonLinkBrief":{"properties":{"note":{"type":"string","title":"Note","default":""},"url":{"type":"string","title":"Url"}},"type":"object","required":["url"],"title":"PersonLinkBrief"},"PersonOfficeBrief":{"properties":{"classification":{"type":"string","title":"Classification"},"address":{"type":"string","title":"Address","default":""},"voice":{"type":"string","title":"Voice","default":""},"fax":{"type":"string","title":"Fax","default":""},"name":{"type":"string","title":"Name","default":""}},"type":"object","required":["classification"],"title":"PersonOfficeBrief"},"PersonVoteBrief":{"properties":{"option":{"type":"string","title":"Option"},"voter_name":{"type":"string","title":"Voter Name"},"voter_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Voter Id"}},"type":"object","required":["option","voter_name"],"title":"PersonVoteBrief"},"SourceSummary":{"properties":{"count":{"type":"integer","title":"Count"},"top_names":{"items":{"type":"string"},"type":"array","title":"Top Names"}},"type":"object","required":["count"],"title":"SourceSummary","description":"Summary of what was found in a source (for state tracking)."},"SyncStatus":{"properties":{"connector":{"type":"string","title":"Connector"},"last_sync_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Sync At"},"last_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Cursor"},"records_synced":{"type":"integer","title":"Records Synced","default":0},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata"}},"type":"object","required":["connector"],"title":"SyncStatus","description":"Status of a data connector's sync state."},"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"},"VoteCountBrief":{"properties":{"option":{"type":"string","title":"Option"},"value":{"type":"integer","title":"Value"}},"type":"object","required":["option","value"],"title":"VoteCountBrief"},"VoteEventBrief":{"properties":{"id":{"type":"string","title":"Id"},"motion_text":{"type":"string","title":"Motion Text"},"start_date":{"type":"string","title":"Start Date"},"result":{"type":"string","title":"Result"}},"type":"object","required":["id","motion_text","start_date","result"],"title":"VoteEventBrief"},"VoteEventDetailResponse":{"properties":{"id":{"type":"string","title":"Id","description":"OCD vote event ID"},"identifier":{"type":"string","title":"Identifier","default":""},"motion_text":{"type":"string","title":"Motion Text"},"motion_classification":{"items":{"type":"string"},"type":"array","title":"Motion Classification","default":[]},"start_date":{"type":"string","title":"Start Date"},"result":{"type":"string","title":"Result"},"bill_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bill Id"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"votes":{"items":{"$ref":"#/components/schemas/PersonVoteBrief"},"type":"array","title":"Votes","default":[]},"counts":{"items":{"$ref":"#/components/schemas/VoteCountBrief"},"type":"array","title":"Counts","default":[]}},"type":"object","required":["id","motion_text","start_date","result"],"title":"VoteEventDetailResponse","description":"A recorded vote with individual votes and counts."},"VoteEventList":{"properties":{"total_results":{"type":"integer","title":"Total Results"},"page":{"type":"integer","title":"Page","default":1},"page_size":{"type":"integer","title":"Page Size","default":25},"results":{"items":{"$ref":"#/components/schemas/VoteEventBrief"},"type":"array","title":"Results"}},"type":"object","required":["total_results","results"],"title":"VoteEventList"}}},"tags":[{"name":"Opportunities","description":"SAM.gov contract opportunities — solicitations, pre-solicitations, award notices, and more."},{"name":"Entities","description":"SAM.gov registered entities — contractors and organizations with active federal registrations."},{"name":"Grants","description":"Grants.gov federal grant opportunities — open and historical funding announcements."},{"name":"Awards","description":"USAspending federal contract awards — obligation amounts, recipients, NAICS/PSC classification."},{"name":"Foundations","description":"Private foundation profiles from IRS 990-PF data via ProPublica. Includes assets, giving totals, and filing history. Data lags 9-18 months."},{"name":"Legislators","description":"State and federal legislators from Open States. Includes party, chamber, district, offices, and committee assignments. Updated weekly."},{"name":"Bills","description":"Legislative bills from Open States. On-demand cached — fetched from API on first query, served from local cache within TTL (24h active, 7d resolved). Search by keyword, jurisdiction, and session."},{"name":"Nonprofits","description":"Public charities (501(c)(3)) from ProPublica Nonprofit Explorer. On-demand cached with 24h TTL. Search by keyword, state, and NTEE code. Relevant codes: J=Employment, P=Human Services, R=Civil Rights, S=Community Improvement, W=Public Benefit."},{"name":"Census","description":"Census Bureau ACS 5-year demographic profiles for 435 congressional districts and 50 states. Includes population, income, poverty, education, race/ethnicity, housing, and employment data. Updated monthly via bulk sync."},{"name":"Court","description":"Federal court opinions, dockets, and judges from CourtListener (Free Law Project). Search legal precedents, track active litigation, and look up judge profiles including appointing authority and political affiliations."},{"name":"Legislation","description":"Full Open States bulk data — bills, legislators, votes, events, organizations, and jurisdictions for all 50 states + DC + territories. Updated monthly from the official PostgreSQL dump. Rich relational data with vote records, action history, sponsor details, and committee memberships."},{"name":"Bills Intelligence","description":"Enriched bill search with full sponsor and committee relationship graph. Search a topic to find bills, identify sponsors with party/district/committee context, and see committee involvement."},{"name":"Forecasts","description":"Procurement forecasts (coming soon). Proprietary agency-level aggregator under development."},{"name":"Sync","description":"Data connector sync status and trigger endpoints. Monitor and initiate data refreshes."}]}