{"openapi":"3.1.0","info":{"title":"Pledge (BYOK) API","version":"0.1.0","description":"Pledge (BYOK) lets an AI assistant read your own Pledge data through the Pledge API with a key you supply (Pledge API key). Read-only: 6 tools (search_organizations, get_organization, list_donations, get_donation, list_impact_calculators, get_impact_calculator). The BYOK key travels with each request, is used for that one call only and is never stored, logged or cached; it is only ever sent to...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-pledge.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-pledge/docs"},"termsOfService":"https://connectorbay.com/byok-pledge/terms"},"servers":[{"url":"https://byok-pledge.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-pledge/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_organizations":{"post":{"operationId":"search_organizations","summary":"Search the Pledge nonprofit database by keyword, EIN or other NGO ID, country, region, postal code or cause, with missio","description":"Search the Pledge nonprofit database by keyword, EIN or other NGO ID, country, region, postal code or cause, with mission, location and website, paged. Use for \"Which clean water nonprofits can I find in Pledge in the US\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"q":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Keyword search on name, alias and mission.","title":"Q"},"ngo_id":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only the organization with this NGO ID (for example a US EIN).","title":"Ngo Id"},"country":{"anyOf":[{"maxLength":2,"type":"string"},{"type":"null"}],"default":null,"description":"ISO 3166-1 two-letter country code.","title":"Country"},"region":{"anyOf":[{"maxLength":20,"type":"string"},{"type":"null"}],"default":null,"description":"Region or state code, for example CA.","title":"Region"},"postal_code":{"anyOf":[{"maxLength":20,"type":"string"},{"type":"null"}],"default":null,"description":"Postal or ZIP code.","title":"Postal Code"},"cause_id":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only organizations with this cause ID.","title":"Cause Id"},"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"per":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"Results per page (1 to 100, default 25).","title":"Per"}},"title":"search_organizationsArguments","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_organization":{"post":{"operationId":"get_organization","summary":"Show one nonprofit with mission, address, website, causes, impact metrics and the UN Sustainable Development Goals it su","description":"Show one nonprofit with mission, address, website, causes, impact metrics and the UN Sustainable Development Goals it supports. Use for \"What does this Pledge nonprofit do and what does a donation achieve\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"organization_id":{"description":"Organization ID (UUID); find it with search_organizations.","maxLength":200,"title":"Organization Id","type":"string"}},"required":["organization_id"],"title":"get_organizationArguments","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/list_donations":{"post":{"operationId":"list_donations","summary":"List donations made through your Pledge account with amount, status, nonprofit, tax receipt flag, your external ID and d","description":"List donations made through your Pledge account with amount, status, nonprofit, tax receipt flag, your external ID and dates. Donor names, emails and phone numbers are left out. Use for \"What donations went through our Pledge account and how much were they\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"title":"list_donationsArguments","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_donation":{"post":{"operationId":"get_donation","summary":"Show one donation made through your account with amount, status, nonprofit and its impact metrics. Donor contact details","description":"Show one donation made through your account with amount, status, nonprofit and its impact metrics. Donor contact details are left out. Use for \"What is the status of this Pledge donation\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"donation_id":{"description":"Donation ID (UUID); find it with list_donations.","maxLength":200,"title":"Donation Id","type":"string"}},"required":["donation_id"],"title":"get_donationArguments","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/list_impact_calculators":{"post":{"operationId":"list_impact_calculators","summary":"List the impact calculators on your account with name, formula, per-unit amount and the nonprofits they use. Use for \"Wh","description":"List the impact calculators on your account with name, formula, per-unit amount and the nonprofits they use. Use for \"Which impact calculators do we have in Pledge\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"title":"list_impact_calculatorsArguments","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_impact_calculator":{"post":{"operationId":"get_impact_calculator","summary":"Show one impact calculator with its name, formula, description and nonprofits. Use for \"How is this Pledge impact calcul","description":"Show one impact calculator with its name, formula, description and nonprofits. Use for \"How is this Pledge impact calculator set up\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"calculator_id":{"description":"Impact calculator ID; find it with list_impact_calculators.","maxLength":200,"title":"Calculator Id","type":"string"}},"required":["calculator_id"],"title":"get_impact_calculatorArguments","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}}}}