{"openapi":"3.1.0","jsonSchemaDialect":"https://json-schema.org/draft/2020-12/schema","info":{"title":"Open Medici Public API","version":"1.0.0","description":"Read-only access to Open Medici's published opportunities, organizations, application seasons, awards, recipients, facets, and exports. Database vocabulary is discoverable through facet endpoints instead of fixed in this contract.","license":{"name":"CC BY 4.0","url":"https://creativecommons.org/licenses/by/4.0/"}},"servers":[{"url":"https://openmedici.com","description":"Production"},{"url":"http://localhost:3020","description":"Local development"}],"tags":[{"name":"Discovery","description":"Search opportunities and retrieve current filter values."},{"name":"Records","description":"Read published public records."},{"name":"History","description":"Read published seasons, awards, and recipients."},{"name":"Exports","description":"Download the current public opportunity dataset."},{"name":"Specification","description":"Retrieve this OpenAPI document."}],"paths":{"/api/v1/search":{"get":{"tags":["Discovery"],"operationId":"searchOpportunities","summary":"Search published opportunities","description":"Returns only published opportunities. Unsupported filter values are omitted and reported in meta.invalid.","parameters":[{"name":"q","in":"query","description":"Free-text search across public opportunity and organization fields.","schema":{"type":"string"}},{"name":"type","in":"query","required":false,"description":"Opportunity-kind values returned by the types facet.","style":"form","explode":true,"schema":{"type":"array","items":{"type":"string"}}},{"name":"topic","in":"query","required":false,"description":"Topic values returned by the topics facet.","style":"form","explode":true,"schema":{"type":"array","items":{"type":"string"}}},{"name":"field","in":"query","required":false,"description":"Backward-compatible alias for topic.","deprecated":true,"style":"form","explode":true,"schema":{"type":"array","items":{"type":"string"}}},{"name":"applicant","in":"query","required":false,"description":"Applicant-kind values returned by the applicants facet.","style":"form","explode":true,"schema":{"type":"array","items":{"type":"string"}}},{"name":"career","in":"query","required":false,"description":"Career-stage values returned by the careers facet.","style":"form","explode":true,"schema":{"type":"array","items":{"type":"string"}}},{"name":"audience","in":"query","required":false,"description":"Audience-focus values returned by the audiences facet.","style":"form","explode":true,"schema":{"type":"array","items":{"type":"string"}}},{"name":"education","in":"query","required":false,"description":"Education values returned by the education facet.","style":"form","explode":true,"schema":{"type":"array","items":{"type":"string"}}},{"name":"enrollment","in":"query","required":false,"description":"Enrollment values returned by the enrollments facet.","style":"form","explode":true,"schema":{"type":"array","items":{"type":"string"}}},{"name":"citizenship","in":"query","required":false,"description":"ISO country, M49 region, or state values returned by the citizenships facet.","style":"form","explode":true,"schema":{"type":"array","items":{"type":"string"}}},{"name":"residence","in":"query","required":false,"description":"ISO country, M49 region, or state values returned by the residences facet.","style":"form","explode":true,"schema":{"type":"array","items":{"type":"string"}}},{"name":"country","in":"query","required":false,"description":"Eligible-country values returned by the countries facet.","style":"form","explode":true,"schema":{"type":"array","items":{"type":"string"}}},{"name":"destination","in":"query","required":false,"description":"Destination values returned by the destinations facet.","style":"form","explode":true,"schema":{"type":"array","items":{"type":"string"}}},{"name":"benefit","in":"query","required":false,"description":"Benefit values returned by the benefits facet.","style":"form","explode":true,"schema":{"type":"array","items":{"type":"string"}}},{"name":"fundingShape","in":"query","required":false,"description":"Funding-shape values returned by the fundingShapes facet.","style":"form","explode":true,"schema":{"type":"array","items":{"type":"string"}}},{"name":"durationUnit","in":"query","required":false,"description":"Filter by the unit stored on a duration fact. This does not change durationMin or durationMax, which are always measured in days.","style":"form","explode":true,"schema":{"type":"array","items":{"type":"string"}}},{"name":"openState","in":"query","required":false,"description":"Application-state values returned by the openStates facet.","style":"form","explode":true,"schema":{"type":"array","items":{"type":"string"}}},{"name":"lifecycle","in":"query","required":false,"description":"Program-lifecycle values returned by the lifecycles facet.","style":"form","explode":true,"schema":{"type":"array","items":{"type":"string"}}},{"name":"ageMin","in":"query","schema":{"type":"number","minimum":0},"description":"Minimum applicant age accepted by the opportunity."},{"name":"ageMax","in":"query","schema":{"type":"number","minimum":0},"description":"Maximum applicant age accepted by the opportunity."},{"name":"deadlineFrom","in":"query","schema":{"type":"string","format":"date"},"description":"Earliest next deadline, inclusive."},{"name":"deadlineTo","in":"query","schema":{"type":"string","format":"date"},"description":"Latest next deadline, inclusive."},{"name":"rolling","in":"query","schema":{"type":"boolean","default":false},"description":"When true, return rolling opportunities only."},{"name":"funded","in":"query","schema":{"type":"boolean","default":false},"description":"When true, require published funding information."},{"name":"fundingMin","in":"query","schema":{"type":"number","minimum":0},"description":"Minimum published funding in USD."},{"name":"fundingMax","in":"query","schema":{"type":"number","minimum":0},"description":"Maximum published funding in USD."},{"name":"durationMin","in":"query","schema":{"type":"number","minimum":0},"description":"Minimum published duration in days."},{"name":"durationMax","in":"query","schema":{"type":"number","minimum":0},"description":"Maximum published duration in days."},{"name":"open","in":"query","schema":{"type":"boolean","default":false},"description":"When true, require an opportunity that is currently open."},{"name":"locale","in":"query","schema":{"type":"string","enum":["en","es"],"default":"en"},"description":"Preferred public translation."},{"name":"lang","in":"query","schema":{"type":"string","enum":["en","es"]},"description":"Backward-compatible alias for locale."},{"name":"sort","in":"query","schema":{"type":"string","enum":["deadline","name","recent"],"default":"deadline"}},{"name":"page","in":"query","schema":{"type":"integer","minimum":1,"maximum":10000,"default":1}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":20}},{"name":"offset","in":"query","schema":{"type":"integer","minimum":0,"default":0},"description":"Backward-compatible offset. When present, it takes precedence over page."},{"name":"facets","in":"query","schema":{"type":"boolean","default":true},"description":"Set to false to omit meta.facets. Other or missing values preserve the default facet collection."}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchResponse"}}}}}}},"/api/v1/programs":{"get":{"tags":["Discovery"],"operationId":"listPrograms","summary":"Search published opportunities through the programs alias","description":"Returns only published opportunities. Unsupported filter values are omitted and reported in meta.invalid.","parameters":[{"name":"q","in":"query","description":"Free-text search across public opportunity and organization fields.","schema":{"type":"string"}},{"name":"type","in":"query","required":false,"description":"Opportunity-kind values returned by the types facet.","style":"form","explode":true,"schema":{"type":"array","items":{"type":"string"}}},{"name":"topic","in":"query","required":false,"description":"Topic values returned by the topics facet.","style":"form","explode":true,"schema":{"type":"array","items":{"type":"string"}}},{"name":"field","in":"query","required":false,"description":"Backward-compatible alias for topic.","deprecated":true,"style":"form","explode":true,"schema":{"type":"array","items":{"type":"string"}}},{"name":"applicant","in":"query","required":false,"description":"Applicant-kind values returned by the applicants facet.","style":"form","explode":true,"schema":{"type":"array","items":{"type":"string"}}},{"name":"career","in":"query","required":false,"description":"Career-stage values returned by the careers facet.","style":"form","explode":true,"schema":{"type":"array","items":{"type":"string"}}},{"name":"audience","in":"query","required":false,"description":"Audience-focus values returned by the audiences facet.","style":"form","explode":true,"schema":{"type":"array","items":{"type":"string"}}},{"name":"education","in":"query","required":false,"description":"Education values returned by the education facet.","style":"form","explode":true,"schema":{"type":"array","items":{"type":"string"}}},{"name":"enrollment","in":"query","required":false,"description":"Enrollment values returned by the enrollments facet.","style":"form","explode":true,"schema":{"type":"array","items":{"type":"string"}}},{"name":"citizenship","in":"query","required":false,"description":"ISO country, M49 region, or state values returned by the citizenships facet.","style":"form","explode":true,"schema":{"type":"array","items":{"type":"string"}}},{"name":"residence","in":"query","required":false,"description":"ISO country, M49 region, or state values returned by the residences facet.","style":"form","explode":true,"schema":{"type":"array","items":{"type":"string"}}},{"name":"country","in":"query","required":false,"description":"Eligible-country values returned by the countries facet.","style":"form","explode":true,"schema":{"type":"array","items":{"type":"string"}}},{"name":"destination","in":"query","required":false,"description":"Destination values returned by the destinations facet.","style":"form","explode":true,"schema":{"type":"array","items":{"type":"string"}}},{"name":"benefit","in":"query","required":false,"description":"Benefit values returned by the benefits facet.","style":"form","explode":true,"schema":{"type":"array","items":{"type":"string"}}},{"name":"fundingShape","in":"query","required":false,"description":"Funding-shape values returned by the fundingShapes facet.","style":"form","explode":true,"schema":{"type":"array","items":{"type":"string"}}},{"name":"durationUnit","in":"query","required":false,"description":"Filter by the unit stored on a duration fact. This does not change durationMin or durationMax, which are always measured in days.","style":"form","explode":true,"schema":{"type":"array","items":{"type":"string"}}},{"name":"openState","in":"query","required":false,"description":"Application-state values returned by the openStates facet.","style":"form","explode":true,"schema":{"type":"array","items":{"type":"string"}}},{"name":"lifecycle","in":"query","required":false,"description":"Program-lifecycle values returned by the lifecycles facet.","style":"form","explode":true,"schema":{"type":"array","items":{"type":"string"}}},{"name":"ageMin","in":"query","schema":{"type":"number","minimum":0},"description":"Minimum applicant age accepted by the opportunity."},{"name":"ageMax","in":"query","schema":{"type":"number","minimum":0},"description":"Maximum applicant age accepted by the opportunity."},{"name":"deadlineFrom","in":"query","schema":{"type":"string","format":"date"},"description":"Earliest next deadline, inclusive."},{"name":"deadlineTo","in":"query","schema":{"type":"string","format":"date"},"description":"Latest next deadline, inclusive."},{"name":"rolling","in":"query","schema":{"type":"boolean","default":false},"description":"When true, return rolling opportunities only."},{"name":"funded","in":"query","schema":{"type":"boolean","default":false},"description":"When true, require published funding information."},{"name":"fundingMin","in":"query","schema":{"type":"number","minimum":0},"description":"Minimum published funding in USD."},{"name":"fundingMax","in":"query","schema":{"type":"number","minimum":0},"description":"Maximum published funding in USD."},{"name":"durationMin","in":"query","schema":{"type":"number","minimum":0},"description":"Minimum published duration in days."},{"name":"durationMax","in":"query","schema":{"type":"number","minimum":0},"description":"Maximum published duration in days."},{"name":"open","in":"query","schema":{"type":"boolean","default":false},"description":"When true, require an opportunity that is currently open."},{"name":"locale","in":"query","schema":{"type":"string","enum":["en","es"],"default":"en"},"description":"Preferred public translation."},{"name":"lang","in":"query","schema":{"type":"string","enum":["en","es"]},"description":"Backward-compatible alias for locale."},{"name":"sort","in":"query","schema":{"type":"string","enum":["deadline","name","recent"],"default":"deadline"}},{"name":"page","in":"query","schema":{"type":"integer","minimum":1,"maximum":10000,"default":1}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":20}},{"name":"offset","in":"query","schema":{"type":"integer","minimum":0,"default":0},"description":"Backward-compatible offset. When present, it takes precedence over page."},{"name":"facets","in":"query","schema":{"type":"boolean","default":true},"description":"Set to false to omit meta.facets. Other or missing values preserve the default facet collection."}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchResponse"}}}}}}},"/api/v1/programs/{slug}":{"get":{"tags":["Records"],"operationId":"getProgram","summary":"Read one published opportunity","parameters":[{"$ref":"#/components/parameters/Slug"},{"name":"locale","in":"query","schema":{"type":"string","enum":["en","es"],"default":"en"},"description":"Preferred public translation."}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProgramDetailResponse"}}}},"404":{"description":"Program not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/api/v1/facets/{facet}":{"get":{"tags":["Discovery"],"operationId":"listFacetOptions","summary":"Read current values for one search facet","description":"Facet values come from published data and may grow without an API version change.","parameters":[{"name":"facet","in":"path","required":true,"schema":{"type":"string","enum":["types","lifecycles","fields","countries","destinations","careers","topics","applicants","audiences","benefits","citizenships","residences","education","enrollments","fundingShapes","durationUnits","openStates"]}},{"name":"q","in":"query","schema":{"type":"string","maxLength":100},"description":"Case-insensitive match against value and label."},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":50}},{"$ref":"#/components/parameters/Offset"}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FacetResponse"}}}},"400":{"description":"Facet query is invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Facet not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/api/v1/organizations":{"get":{"tags":["Records"],"operationId":"listOrganizations","summary":"List published organizations","parameters":[{"$ref":"#/components/parameters/Limit"},{"$ref":"#/components/parameters/Offset"}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationListResponse"}}}}}}},"/api/v1/organizations/{slug}":{"get":{"tags":["Records"],"operationId":"getOrganization","summary":"Read one published organization","parameters":[{"$ref":"#/components/parameters/Slug"}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationDetailResponse"}}}},"308":{"description":"Redirect to the canonical organization slug."},"404":{"description":"Organization not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/api/v1/cycles":{"get":{"tags":["History"],"operationId":"listCycles","summary":"List published application seasons","parameters":[{"$ref":"#/components/parameters/Limit"},{"$ref":"#/components/parameters/Offset"},{"name":"upcoming","in":"query","schema":{"type":"boolean","default":true},"description":"Set to false to include historical seasons."}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CycleListResponse"}}}}}}},"/api/v1/awards":{"get":{"tags":["History"],"operationId":"listAwards","summary":"List published awards","parameters":[{"$ref":"#/components/parameters/Limit"},{"$ref":"#/components/parameters/Offset"}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AwardListResponse"}}}}}}},"/api/v1/recipients":{"get":{"tags":["History"],"operationId":"listRecipients","summary":"Search published recipients","parameters":[{"$ref":"#/components/parameters/Limit"},{"$ref":"#/components/parameters/Offset"},{"name":"q","in":"query","schema":{"type":"string","maxLength":100},"description":"Case-insensitive display-name search."},{"name":"year","in":"query","schema":{"type":"integer","minimum":1900,"maximum":2100}},{"name":"program","in":"query","schema":{"type":"string","pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$"},"description":"Program slug."},{"name":"kind","in":"query","schema":{"type":"string","enum":["person","organization","team"]}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecipientListResponse"}}}}}}},"/api/v1/recipients/{slug}":{"get":{"tags":["History"],"operationId":"getRecipient","summary":"Read one published recipient and award history","parameters":[{"$ref":"#/components/parameters/Slug"}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecipientDetailResponse"}}}},"404":{"description":"Recipient not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/api/v1/exports/latest":{"get":{"tags":["Exports"],"operationId":"exportPrograms","summary":"Download the current public opportunity dataset","parameters":[{"name":"format","in":"query","schema":{"type":"string","enum":["json","csv"],"default":"json"}}],"responses":{"200":{"description":"Public opportunity export.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExportResponse"}},"text/csv":{"schema":{"type":"string"}}}}}}},"/api/v1/openapi.json":{"get":{"tags":["Specification"],"operationId":"getOpenApiDocument","summary":"Read the OpenAPI 3.1 document","responses":{"200":{"description":"This OpenAPI document.","content":{"application/json":{"schema":{"type":"object"}}}}}}}},"components":{"parameters":{"Limit":{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":20}},"Offset":{"name":"offset","in":"query","schema":{"type":"integer","minimum":0,"default":0}},"Slug":{"name":"slug","in":"path","required":true,"schema":{"type":"string","minLength":1}}},"schemas":{"ErrorResponse":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["message"],"properties":{"message":{"type":"string"},"details":{}},"additionalProperties":false}},"additionalProperties":false},"ListMeta":{"type":"object","required":["limit","offset","count"],"properties":{"limit":{"type":"integer"},"offset":{"type":"integer"},"count":{"type":"integer"}},"additionalProperties":true},"OrganizationSummary":{"type":"object","required":["id","slug","name"],"properties":{"id":{"type":"string","format":"uuid"},"slug":{"type":"string"},"name":{"type":"string"}},"additionalProperties":false},"Organization":{"type":"object","required":["id","slug","name","countryCode","websiteUrl","description","createdAt","updatedAt"],"properties":{"id":{"type":"string","format":"uuid"},"slug":{"type":"string"},"name":{"type":"string"},"countryCode":{"type":["string","null"]},"websiteUrl":{"type":["string","null"],"format":"uri"},"description":{"type":["string","null"]},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"additionalProperties":false},"ProgramSummary":{"type":"object","required":["id","slug","name","summary","type","lifecycle","lifecycleCheckedAt","fields","eligibleCountries","destinationCountries","careerStages","fundingMinUsd","fundingMaxUsd","officialUrl","sourceCheckedAt","organization","nextDeadline"],"properties":{"id":{"type":"string","format":"uuid"},"slug":{"type":"string"},"name":{"type":"string"},"summary":{"type":["string","null"]},"type":{"type":"string"},"lifecycle":{"$ref":"#/components/schemas/ProgramLifecycle"},"lifecycleCheckedAt":{"type":["string","null"],"format":"date-time"},"fields":{"type":"array","items":{"type":"string"}},"eligibleCountries":{"type":"array","items":{"type":"string"}},"destinationCountries":{"type":"array","items":{"type":"string"}},"careerStages":{"type":"array","items":{"type":"string"}},"fundingMinUsd":{"type":["number","null"]},"fundingMaxUsd":{"type":["number","null"]},"officialUrl":{"type":"string","format":"uri"},"sourceCheckedAt":{"type":["string","null"],"format":"date-time"},"organization":{"$ref":"#/components/schemas/OrganizationSummary"},"nextDeadline":{"type":["string","null"],"format":"date"}},"additionalProperties":false},"Program":{"type":"object","required":["id","organizationId","slug","name","summary","description","programType","fields","eligibleCountries","destinationCountries","careerStages","fundingMinUsd","fundingMaxUsd","officialUrl","active","lifecycle","lifecycleCheckedAt","sourceCheckedAt","createdAt","updatedAt"],"properties":{"id":{"type":"string","format":"uuid"},"organizationId":{"type":"string","format":"uuid"},"slug":{"type":"string"},"name":{"type":"string"},"summary":{"type":["string","null"]},"description":{"type":["string","null"]},"programType":{"type":"string"},"fields":{"type":"array","items":{"type":"string"}},"eligibleCountries":{"type":"array","items":{"type":"string"}},"destinationCountries":{"type":"array","items":{"type":"string"}},"careerStages":{"type":"array","items":{"type":"string"}},"fundingMinUsd":{"type":["number","null"]},"fundingMaxUsd":{"type":["number","null"]},"officialUrl":{"type":"string","format":"uri"},"active":{"type":"boolean"},"lifecycle":{"$ref":"#/components/schemas/ProgramLifecycle"},"lifecycleCheckedAt":{"type":["string","null"],"format":"date-time"},"sourceCheckedAt":{"type":["string","null"],"format":"date-time"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"additionalProperties":false},"ProgramLifecycle":{"type":"string","enum":["active_accepting","active_between_cycles","active_no_applications","paused","ended","renamed_or_moved","inaccessible","unclear"]},"FacetItem":{"type":"object","required":["value","label","count"],"properties":{"value":{"type":"string"},"label":{"type":"string"},"count":{"type":"integer","minimum":0}},"additionalProperties":false},"FacetCollection":{"type":"object","additionalProperties":{"type":"array","items":{"$ref":"#/components/schemas/FacetItem"}}},"SearchResponse":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ProgramSummary"}},"meta":{"type":"object","required":["limit","offset","count","total","page","pages","sort","invalid"],"properties":{"limit":{"type":"integer"},"offset":{"type":"integer"},"count":{"type":"integer"},"total":{"type":"integer"},"page":{"type":"integer"},"pages":{"type":"integer"},"sort":{"type":"string","enum":["deadline","name","recent"]},"invalid":{"type":"array","items":{"type":"string"}},"facets":{"$ref":"#/components/schemas/FacetCollection"}},"additionalProperties":false}},"additionalProperties":false},"FacetResponse":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/FacetItem"}},"meta":{"type":"object","required":["facet","q","limit","offset","count","total"],"properties":{"facet":{"type":"string"},"q":{"type":"string"},"limit":{"type":"integer"},"offset":{"type":"integer"},"count":{"type":"integer"},"total":{"type":"integer"}},"additionalProperties":false}},"additionalProperties":false},"Cycle":{"type":"object","required":["id","programId","label","opensOn","deadlineOn","selectionOn","decisionOn","startsOn","endsOn","cohortYear","applicationUrl","status","createdAt","updatedAt"],"properties":{"id":{"type":"string","format":"uuid"},"programId":{"type":"string","format":"uuid"},"label":{"type":"string"},"opensOn":{"type":["string","null"],"format":"date"},"deadlineOn":{"type":["string","null"],"format":"date"},"selectionOn":{"type":["string","null"],"format":"date"},"decisionOn":{"type":["string","null"],"format":"date"},"startsOn":{"type":["string","null"],"format":"date"},"endsOn":{"type":["string","null"],"format":"date"},"cohortYear":{"type":["integer","null"]},"applicationUrl":{"type":["string","null"],"format":"uri"},"status":{"type":"string","enum":["unknown","upcoming","open","closed","rolling"]},"sources":{"type":"array","items":{"$ref":"#/components/schemas/Source"}},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"additionalProperties":false},"Award":{"type":"object","required":["id","programId","cycleId","recipientId","awardYear","awardAmountUsd","projectTitle","publicNotes","createdAt","updatedAt"],"properties":{"id":{"type":"string","format":"uuid"},"programId":{"type":"string","format":"uuid"},"cycleId":{"type":["string","null"],"format":"uuid"},"recipientId":{"type":"string","format":"uuid"},"awardYear":{"type":"integer"},"awardAmountUsd":{"type":["number","null"]},"projectTitle":{"type":["string","null"]},"publicNotes":{"type":["string","null"]},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"additionalProperties":false},"Source":{"type":"object","required":["id","entityType","entityId","kind","url","title","publisher","publishedOn","retrievedAt","sourceCheckedAt","createdAt","updatedAt"],"properties":{"id":{"type":"string","format":"uuid"},"entityType":{"type":"string"},"entityId":{"type":"string","format":"uuid"},"kind":{"type":"string"},"url":{"type":["string","null"],"format":"uri"},"title":{"type":["string","null"]},"publisher":{"type":["string","null"]},"publishedOn":{"type":["string","null"],"format":"date"},"retrievedAt":{"type":"string","format":"date-time"},"sourceCheckedAt":{"type":["string","null"],"format":"date-time"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"additionalProperties":false},"RecipientSummary":{"type":"object","required":["id","slug","displayName","kind","countryCode","biography","awardCount","latestAwardYear"],"properties":{"id":{"type":"string","format":"uuid"},"slug":{"type":"string"},"displayName":{"type":"string"},"kind":{"type":"string","enum":["person","organization","team"]},"countryCode":{"type":["string","null"]},"biography":{"type":["string","null"]},"awardCount":{"type":"integer"},"latestAwardYear":{"type":["integer","null"]}},"additionalProperties":false},"Recipient":{"type":"object","required":["id","slug","displayName","kind","countryCode","websiteUrl","biography","createdAt","updatedAt"],"properties":{"id":{"type":"string","format":"uuid"},"slug":{"type":"string"},"displayName":{"type":"string"},"kind":{"type":"string","enum":["person","organization","team"]},"countryCode":{"type":["string","null"]},"websiteUrl":{"type":["string","null"],"format":"uri"},"biography":{"type":["string","null"]},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"additionalProperties":false},"ProgramDetailResponse":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["program","organization","cycles","awards","sources","lifecycleHistory","opportunityFacts","history"],"properties":{"program":{"$ref":"#/components/schemas/Program"},"organization":{"$ref":"#/components/schemas/Organization"},"cycles":{"type":"array","items":{"$ref":"#/components/schemas/Cycle"}},"awards":{"type":"array","items":{"type":"object","additionalProperties":true}},"sources":{"type":"array","items":{"$ref":"#/components/schemas/Source"}},"lifecycleHistory":{"type":"array","items":{"type":"object","additionalProperties":true}},"opportunityFacts":{"type":"array","items":{"type":"object","additionalProperties":true}},"history":{"type":"object","additionalProperties":true}},"additionalProperties":false}},"additionalProperties":false},"OrganizationListResponse":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Organization"}},"meta":{"$ref":"#/components/schemas/ListMeta"}},"additionalProperties":false},"OrganizationDetailResponse":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["organization","leaders","channels","recentPosts","programs","awards"],"properties":{"organization":{"$ref":"#/components/schemas/Organization"},"leaders":{"type":"array","items":{"type":"object","additionalProperties":true}},"channels":{"type":"array","items":{"type":"object","additionalProperties":true}},"recentPosts":{"type":"array","items":{"type":"object","additionalProperties":true}},"programs":{"type":"array","items":{"type":"object","additionalProperties":true}},"awards":{"type":"array","items":{"type":"object","additionalProperties":true}}},"additionalProperties":false}},"additionalProperties":false},"CycleListResponse":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"array","items":{"type":"object","required":["cycle","program"],"properties":{"cycle":{"$ref":"#/components/schemas/Cycle"},"program":{"type":"object","required":["slug","name"],"properties":{"slug":{"type":"string"},"name":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"meta":{"$ref":"#/components/schemas/ListMeta"}},"additionalProperties":false},"AwardListResponse":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"array","items":{"type":"object","required":["award","program","recipient"],"properties":{"award":{"$ref":"#/components/schemas/Award"},"program":{"type":"object","additionalProperties":true},"recipient":{"type":"object","additionalProperties":true}},"additionalProperties":false}},"meta":{"$ref":"#/components/schemas/ListMeta"}},"additionalProperties":false},"RecipientListResponse":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/RecipientSummary"}},"meta":{"allOf":[{"$ref":"#/components/schemas/ListMeta"}],"properties":{"total":{"type":"integer"},"page":{"type":"integer"},"pages":{"type":"integer"},"filters":{"type":"object","additionalProperties":true}}}},"additionalProperties":false},"RecipientDetailResponse":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["recipient","awards"],"properties":{"recipient":{"$ref":"#/components/schemas/Recipient"},"awards":{"type":"array","items":{"type":"object","additionalProperties":true}}},"additionalProperties":false}},"additionalProperties":false},"ExportResponse":{"type":"object","required":["license","generatedAt","data"],"properties":{"license":{"type":"string","const":"CC BY 4.0"},"generatedAt":{"type":"string","format":"date-time"},"data":{"type":"array","items":{"$ref":"#/components/schemas/ProgramSummary"}}},"additionalProperties":false}}}}