{"openapi":"3.1.0","info":{"title":"Nango (BYOK) API","version":"0.1.0","description":"Nango (BYOK) lets an AI assistant read your own Nango data through the Nango API with a key you supply (Nango environment API key (read scopes)). Read-only: 6 tools (list_integrations, get_integration, list_connections, list_functions, get_function, get_sync_status). 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...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-nango.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-nango/docs"},"termsOfService":"https://connectorbay.com/byok-nango/terms"},"servers":[{"url":"https://byok-nango.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-nango/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/list_integrations":{"post":{"operationId":"list_integrations","summary":"List the integrations configured in the Nango environment with unique key, display name, provider, webhook forwarding an","description":"List the integrations configured in the Nango environment with unique key, display name, provider, webhook forwarding and missing configuration fields. Credentials are not returned. Use for \"Which integrations are set up in Nango\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_integrationsArguments","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_integration":{"post":{"operationId":"get_integration","summary":"Get one integration by unique key: display name, provider, webhook forwarding, missing fields and change times. OAuth cl","description":"Get one integration by unique key: display name, provider, webhook forwarding, missing fields and change times. OAuth client secrets and webhook secrets are not requested. Use for \"Show the Nango integration github\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"integration_key":{"description":"Integration unique key (the unique_key value from list_integrations), for example github.","maxLength":200,"title":"Integration Key","type":"string"}},"required":["integration_key"],"title":"get_integrationArguments","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_connections":{"post":{"operationId":"list_connections","summary":"List the customer connections with connection id, integration, creation time, tags and recent auth or sync errors. Store","description":"List the customer connections with connection id, integration, creation time, tags and recent auth or sync errors. Stored metadata and end user details are left out. Use for \"Which customer connections exist in Nango and which have errors\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"search":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Search connections by connection id.","title":"Search"},"connection_id":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only the connection with this id.","title":"Connection Id"},"limit":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"How many connections to return per page.","title":"Limit"},"page":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Page number, starting at 0.","title":"Page"}},"title":"list_connectionsArguments","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_functions":{"post":{"operationId":"list_functions","summary":"List the sync, action and on-event functions deployed to an integration with name, type, enabled state, source, schedule","description":"List the sync, action and on-event functions deployed to an integration with name, type, enabled state, source, schedule, scopes and returned models. Use for \"Which Nango syncs and actions are deployed for github\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"integration_key":{"description":"Integration unique key (the unique_key value from list_integrations), for example github.","maxLength":200,"title":"Integration Key","type":"string"},"type":{"anyOf":[{"enum":["sync","action","on-event"],"type":"string"},{"type":"null"}],"default":null,"description":"Only functions of this type.","title":"Type"},"search":{"anyOf":[{"maxLength":255,"type":"string"},{"type":"null"}],"default":null,"description":"Search by function name.","title":"Search"},"page":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Page number, starting at 0.","title":"Page"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many functions per page (1 to 100).","title":"Limit"}},"required":["integration_key"],"title":"list_functionsArguments","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_function":{"post":{"operationId":"get_function","summary":"Get one deployed function of an integration by name: type, enabled state, source, schedule, scopes and returned models. ","description":"Get one deployed function of an integration by name: type, enabled state, source, schedule, scopes and returned models. Use for \"Show the Nango function issues of github\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"integration_key":{"description":"Integration unique key (the unique_key value from list_integrations), for example github.","maxLength":200,"title":"Integration Key","type":"string"},"name":{"description":"Function name, for example issues.","maxLength":200,"title":"Name","type":"string"},"type":{"anyOf":[{"enum":["sync","action","on-event"],"type":"string"},{"type":"null"}],"default":null,"description":"Function type, needed when a sync and an action share the name.","title":"Type"}},"required":["integration_key","name"],"title":"get_functionArguments","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_sync_status":{"post":{"operationId":"get_sync_status","summary":"Get the status of the syncs of an integration: per connection and sync the status (RUNNING, PAUSED, STOPPED, SUCCESS, ER","description":"Get the status of the syncs of an integration: per connection and sync the status (RUNNING, PAUSED, STOPPED, SUCCESS, ERROR), last finish time, next scheduled run, frequency and record counts. Use for \"Are my Nango syncs for github running without errors\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"integration_key":{"description":"Integration unique key (unique_key from list_integrations).","maxLength":100,"title":"Integration Key","type":"string"},"syncs":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":"*","description":"Sync names separated by commas, or * for all syncs of the integration.","title":"Syncs"},"connection_id":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only this connection. Leave empty for all connections.","title":"Connection Id"}},"required":["integration_key"],"title":"get_sync_statusArguments","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}}}}