{"openapi":"3.1.0","info":{"title":"Vercel Integrations (BYOK) API","version":"0.1.0","description":"Vercel Integrations (BYOK) lets an AI assistant read your own Vercel Integrations data through the Vercel Integrations API with a key you supply (access token). Read-only: 5 tools (list_integration_configurations, list_configuration_products, list_webhooks, get_webhook, list_observability_disabled_projects). The BYOK key travels with each request, is used for that one call only and is never...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-vercel-integrations.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-vercel-integrations/docs"},"termsOfService":"https://connectorbay.com/byok-vercel-integrations/terms"},"servers":[{"url":"https://byok-vercel-integrations.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-vercel-integrations/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_integration_configurations":{"post":{"operationId":"list_integration_configurations","summary":"List installed integration configurations of the account or a team with slug, integration id, installation type, scopes,","description":"List installed integration configurations of the account or a team with slug, integration id, installation type, scopes, projects and dates. Use for \"Which Vercel integrations are installed\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"view":{"description":"Which installations: account (team-wide) or project.","enum":["account","project"],"title":"View","type":"string"},"team_id":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"description":"Team ID (starts with 'team_') to act on behalf of; omit to use the personal account.","title":"Team Id"},"installation_type":{"anyOf":[{"enum":["marketplace","external","provisioning"],"type":"string"},{"type":"null"}],"default":null,"description":"Only this installation type.","title":"Installation Type"},"integration_id_or_slug":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only installations of this integration.","title":"Integration Id Or Slug"}},"required":["view"],"title":"list_integration_configurationsArguments","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_configuration_products":{"post":{"operationId":"list_configuration_products","summary":"List the products an integration installation provides, with slug, primary protocol (ai, authentication, checks, storage","description":"List the products an integration installation provides, with slug, primary protocol (ai, authentication, checks, storage and so on) and the integration name. Use for \"What products does my Vercel integration install offer\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"configuration_id":{"description":"Integration configuration ID (icfg_...), as returned by list_configurations.","maxLength":100,"title":"Configuration Id","type":"string"},"team_id":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"description":"Team ID (starts with 'team_') to act on behalf of; omit to use the personal account.","title":"Team Id"}},"required":["configuration_id"],"title":"list_configuration_productsArguments","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_webhooks":{"post":{"operationId":"list_webhooks","summary":"List webhooks of the account or a team with target URL, subscribed events, projects and dates. The signing secret is nev","description":"List webhooks of the account or a team with target URL, subscribed events, projects and dates. The signing secret is never returned. Use for \"Which Vercel webhooks do I have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"team_id":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"description":"Team ID (starts with 'team_') to act on behalf of; omit to use the personal account.","title":"Team Id"},"project_id":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only webhooks for this project ID.","title":"Project Id"}},"title":"list_webhooksArguments","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_webhook":{"post":{"operationId":"get_webhook","summary":"Get one webhook: target URL, subscribed events, projects and dates. Use for \"What events does webhook account_hook_abc12","description":"Get one webhook: target URL, subscribed events, projects and dates. Use for \"What events does webhook account_hook_abc123 listen to\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"webhook_id":{"description":"Webhook ID, as returned by list_webhooks.","maxLength":100,"title":"Webhook Id","type":"string"},"team_id":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"description":"Team ID (starts with 'team_') to act on behalf of; omit to use the personal account.","title":"Team Id"}},"required":["webhook_id"],"title":"get_webhookArguments","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_observability_disabled_projects":{"post":{"operationId":"list_observability_disabled_projects","summary":"List the projects for which Vercel Observability is disabled, with when it was disabled. Use for \"Which of my projects h","description":"List the projects for which Vercel Observability is disabled, with when it was disabled. Use for \"Which of my projects have Observability turned off\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"team_id":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"description":"Team ID (starts with 'team_') to act on behalf of; omit to use the personal account.","title":"Team Id"}},"title":"list_observability_disabled_projectsArguments","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}}}}