{"openapi":"3.1.0","info":{"title":"IATI Datastore (BYOK) API","version":"0.1.0","description":"IATI Datastore (BYOK) lets an AI assistant read your own IATI Datastore data through the IATI Datastore API with a key you supply (IATI API Gateway subscription key). Read-only: 6 tools (search_activities, search_activities_by_country_and_sector, search_activity_participants, get_activity_by_identifier, search_transactions, search_budgets). The BYOK key travels with each request, is used for that...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-iati.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-iati/docs"},"termsOfService":"https://connectorbay.com/byok-iati/terms"},"servers":[{"url":"https://byok-iati.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-iati/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/search_activities":{"post":{"operationId":"search_activities","summary":"Search development and humanitarian aid activities by title, description, country, sector or publisher; returns identifi","description":"Search development and humanitarian aid activities by title, description, country, sector or publisher; returns identifier, title, description and countries. Use for \"Which aid activities mention rabbit production\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"q":{"description":"Solr query, for example 'recipient_country_code:UG AND sector_code:11110'. Combine filters with AND, OR, NOT; quote phrases; ranges like activity_date_iso_date:[2021-01-01T00:00:00Z TO *].","maxLength":500,"title":"Q","type":"string"},"fl":{"anyOf":[{"const":"iati_identifier,title_narrative,description_narrative,recipient_country_code,sector_code","type":"string"},{"type":"null"}],"default":"iati_identifier,title_narrative,description_narrative,recipient_country_code,sector_code","description":"Fields to return.","title":"Fl"},"rows":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"How many records to return (1 to 100; the service allows up to 1000 but answers are capped).","title":"Rows"},"start":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Row offset for paging, starting at 0.","title":"Start"},"wt":{"anyOf":[{"const":"json","type":"string"},{"type":"null"}],"default":"json","description":"Output format; json is the only one this connector accepts.","title":"Wt"}},"required":["q"],"title":"search_activitiesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/search_activities_by_country_and_sector":{"post":{"operationId":"search_activities_by_country_and_sector","summary":"List aid activities with start and end dates for a recipient country and sector code query; returns identifier, title, c","description":"List aid activities with start and end dates for a recipient country and sector code query; returns identifier, title, countries, sectors and dates. Use for \"Which teacher training activities (sector 11130) are active in Kenya or Uganda\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"q":{"description":"Solr query using recipient_country_code (ISO country code), sector_code (DAC sector code) and activity_date_iso_date ranges.","maxLength":500,"title":"Q","type":"string"},"fl":{"anyOf":[{"const":"iati_identifier,title_narrative,recipient_country_code,sector_code,activity_date_iso_date","type":"string"},{"type":"null"}],"default":"iati_identifier,title_narrative,recipient_country_code,sector_code,activity_date_iso_date","description":"Fields to return.","title":"Fl"},"rows":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"How many records to return (1 to 100; the service allows up to 1000 but answers are capped).","title":"Rows"},"start":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Row offset for paging, starting at 0.","title":"Start"},"wt":{"anyOf":[{"const":"json","type":"string"},{"type":"null"}],"default":"json","description":"Output format; json is the only one this connector accepts.","title":"Wt"}},"required":["q"],"title":"search_activities_by_country_and_sectorArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/search_activity_participants":{"post":{"operationId":"search_activity_participants","summary":"Find which organisations take part in matching activities: returns identifier, participating organisation references and","description":"Find which organisations take part in matching activities: returns identifier, participating organisation references and names. Use for \"Which organisations participate in activities in the Philippines\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"q":{"description":"Solr query, for example 'recipient_country_code:UG AND sector_code:11110'. Combine filters with AND, OR, NOT; quote phrases; ranges like activity_date_iso_date:[2021-01-01T00:00:00Z TO *].","maxLength":500,"title":"Q","type":"string"},"fl":{"anyOf":[{"const":"iati_identifier,participating_org_ref,participating_org_narrative","type":"string"},{"type":"null"}],"default":"iati_identifier,participating_org_ref,participating_org_narrative","description":"Fields to return.","title":"Fl"},"rows":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"How many records to return (1 to 100; the service allows up to 1000 but answers are capped).","title":"Rows"},"start":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Row offset for paging, starting at 0.","title":"Start"},"wt":{"anyOf":[{"const":"json","type":"string"},{"type":"null"}],"default":"json","description":"Output format; json is the only one this connector accepts.","title":"Wt"}},"required":["q"],"title":"search_activity_participantsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_activity_by_identifier":{"post":{"operationId":"get_activity_by_identifier","summary":"Look up an activity by its IATI identifier; returns title, description, countries, sectors and dates. Use for \"Show the ","description":"Look up an activity by its IATI identifier; returns title, description, countries, sectors and dates. Use for \"Show the IATI activity with identifier XM-DAC-41114-2020-001\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"q":{"description":"Query on the identifier, for example 'iati_identifier:\"XM-DAC-41114-2020-001\"'.","maxLength":500,"title":"Q","type":"string"},"fl":{"anyOf":[{"const":"iati_identifier,title_narrative,description_narrative,recipient_country_code,sector_code,activity_date_iso_date,reporting_org_type","type":"string"},{"type":"null"}],"default":"iati_identifier,title_narrative,description_narrative,recipient_country_code,sector_code,activity_date_iso_date,reporting_org_type","description":"Fields to return.","title":"Fl"},"rows":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"How many records to return (1 to 100; the service allows up to 1000 but answers are capped).","title":"Rows"},"start":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Row offset for paging, starting at 0.","title":"Start"},"wt":{"anyOf":[{"const":"json","type":"string"},{"type":"null"}],"default":"json","description":"Output format; json is the only one this connector accepts.","title":"Wt"}},"required":["q"],"title":"get_activity_by_identifierArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/search_transactions":{"post":{"operationId":"search_transactions","summary":"Search individual aid transactions (disbursements, commitments) by country, sector or value range; returns identifier, v","description":"Search individual aid transactions (disbursements, commitments) by country, sector or value range; returns identifier, value, description, country and sector. Use for \"Which transactions above 1 million were recorded for Uganda\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"q":{"description":"Solr query on transaction fields such as transaction_value, transaction_recipient_country_code and transaction_sector_code.","maxLength":500,"title":"Q","type":"string"},"fl":{"anyOf":[{"const":"iati_identifier,transaction_value,transaction_description_narrative,transaction_recipient_country_code,transaction_sector_code","type":"string"},{"type":"null"}],"default":"iati_identifier,transaction_value,transaction_description_narrative,transaction_recipient_country_code,transaction_sector_code","description":"Fields to return.","title":"Fl"},"rows":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"How many records to return (1 to 100; the service allows up to 1000 but answers are capped).","title":"Rows"},"start":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Row offset for paging, starting at 0.","title":"Start"},"wt":{"anyOf":[{"const":"json","type":"string"},{"type":"null"}],"default":"json","description":"Output format; json is the only one this connector accepts.","title":"Wt"}},"required":["q"],"title":"search_transactionsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/search_budgets":{"post":{"operationId":"search_budgets","summary":"Search planned budgets of aid activities, for example by publisher type and recipient country; returns identifier, publi","description":"Search planned budgets of aid activities, for example by publisher type and recipient country; returns identifier, publisher type and countries. Use for \"Which national NGO budgets exist for the Philippines\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"q":{"description":"Solr query on budget fields such as reporting_org_type (organisation type code) and recipient_country_code.","maxLength":500,"title":"Q","type":"string"},"fl":{"anyOf":[{"const":"iati_identifier,reporting_org_type,recipient_country_code","type":"string"},{"type":"null"}],"default":"iati_identifier,reporting_org_type,recipient_country_code","description":"Fields to return.","title":"Fl"},"rows":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"How many records to return (1 to 100; the service allows up to 1000 but answers are capped).","title":"Rows"},"start":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Row offset for paging, starting at 0.","title":"Start"},"wt":{"anyOf":[{"const":"json","type":"string"},{"type":"null"}],"default":"json","description":"Output format; json is the only one this connector accepts.","title":"Wt"}},"required":["q"],"title":"search_budgetsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}