{"openapi":"3.1.0","info":{"title":"Supabase Service Config (BYOK) API","version":"0.1.0","description":"Supabase Service Config (BYOK) lets an AI assistant read your own Supabase Service Config data through the Supabase Service Config API with a key you supply (personal access token). Read-only: 12 tools (get_auth_providers, get_auth_security_settings, get_rest_api_config, get_realtime_config, get_storage_config, get_custom_hostname_config, get_vanity_subdomain_config,...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-supabase-service-config.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-supabase-service-config/docs"},"termsOfService":"https://connectorbay.com/byok-supabase-service-config/terms"},"servers":[{"url":"https://byok-supabase-service-config.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-supabase-service-config/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/get_auth_providers":{"post":{"operationId":"get_auth_providers","summary":"Show which sign-in methods are enabled for a project's Auth service: email, phone, anonymous, SAML and common social pro","description":"Show which sign-in methods are enabled for a project's Auth service: email, phone, anonymous, SAML and common social providers. Client secrets are not picked. Use for \"Which login providers are enabled in my Supabase project\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"ref":{"description":"Supabase project reference: the 20-character id in the project URL (for example 'abcdefghijklmnopqrst'), as returned by the project list.","maxLength":40,"title":"Ref","type":"string"}},"required":["ref"],"title":"get_auth_providersArguments","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_auth_security_settings":{"post":{"operationId":"get_auth_security_settings","summary":"Show a project's Auth security and session settings: site URL, sign-up switch, JWT expiry, password rules, MFA limit, CA","description":"Show a project's Auth security and session settings: site URL, sign-up switch, JWT expiry, password rules, MFA limit, CAPTCHA and email rate limit. Use for \"What are the password rules and JWT expiry in my Supabase project\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"ref":{"description":"Supabase project reference: the 20-character id in the project URL (for example 'abcdefghijklmnopqrst'), as returned by the project list.","maxLength":40,"title":"Ref","type":"string"}},"required":["ref"],"title":"get_auth_security_settingsArguments","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_rest_api_config":{"post":{"operationId":"get_rest_api_config","summary":"Show the REST (PostgREST) API settings of a project: exposed schemas, maximum rows, extra search path and connection poo","description":"Show the REST (PostgREST) API settings of a project: exposed schemas, maximum rows, extra search path and connection pool size. The JWT secret is not picked. Use for \"Which schemas does my Supabase REST API expose and what is the max rows limit\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"ref":{"description":"Supabase project reference: the 20-character id in the project URL (for example 'abcdefghijklmnopqrst'), as returned by the project list.","maxLength":40,"title":"Ref","type":"string"}},"required":["ref"],"title":"get_rest_api_configArguments","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_realtime_config":{"post":{"operationId":"get_realtime_config","summary":"Show the Realtime limits of a project: concurrent users, events and bytes per second, channels per client, payload size ","description":"Show the Realtime limits of a project: concurrent users, events and bytes per second, channels per client, payload size and whether it is private-only or suspended. Use for \"What are the Realtime limits of my Supabase project\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"ref":{"description":"Supabase project reference: the 20-character id in the project URL (for example 'abcdefghijklmnopqrst'), as returned by the project list.","maxLength":40,"title":"Ref","type":"string"}},"required":["ref"],"title":"get_realtime_configArguments","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_storage_config":{"post":{"operationId":"get_storage_config","summary":"Show the Storage settings of a project: maximum file size and which features (image transformation, S3 protocol, cache p","description":"Show the Storage settings of a project: maximum file size and which features (image transformation, S3 protocol, cache purge, vector buckets) are enabled. Use for \"What is the maximum upload size of my Supabase storage and is image transformation on\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"ref":{"description":"Supabase project reference: the 20-character id in the project URL (for example 'abcdefghijklmnopqrst'), as returned by the project list.","maxLength":40,"title":"Ref","type":"string"}},"required":["ref"],"title":"get_storage_configArguments","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_custom_hostname_config":{"post":{"operationId":"get_custom_hostname_config","summary":"Show the custom domain setup of a project: the hostname and the verification stage it has reached. Use for \"Is the custo","description":"Show the custom domain setup of a project: the hostname and the verification stage it has reached. Use for \"Is the custom domain of my Supabase project verified\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"ref":{"description":"Supabase project reference: the 20-character id in the project URL (for example 'abcdefghijklmnopqrst'), as returned by the project list.","maxLength":40,"title":"Ref","type":"string"}},"required":["ref"],"title":"get_custom_hostname_configArguments","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_vanity_subdomain_config":{"post":{"operationId":"get_vanity_subdomain_config","summary":"Show whether a project uses a vanity subdomain, and the custom domain recorded for it. Use for \"Does my Supabase project","description":"Show whether a project uses a vanity subdomain, and the custom domain recorded for it. Use for \"Does my Supabase project use a vanity subdomain\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"ref":{"description":"Supabase project reference: the 20-character id in the project URL (for example 'abcdefghijklmnopqrst'), as returned by the project list.","maxLength":40,"title":"Ref","type":"string"}},"required":["ref"],"title":"get_vanity_subdomain_configArguments","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_third_party_auth_integrations":{"post":{"operationId":"list_third_party_auth_integrations","summary":"List third-party auth integrations of a project (for example Clerk, Auth0, Firebase) with type, issuer URL and JWKS URL.","description":"List third-party auth integrations of a project (for example Clerk, Auth0, Firebase) with type, issuer URL and JWKS URL. Use for \"Which third-party auth providers does my Supabase project trust\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"ref":{"description":"Supabase project reference: the 20-character id in the project URL (for example 'abcdefghijklmnopqrst'), as returned by the project list.","maxLength":40,"title":"Ref","type":"string"}},"required":["ref"],"title":"list_third_party_auth_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/list_sso_providers":{"post":{"operationId":"list_sso_providers","summary":"List SAML SSO providers of a project with the email domains routed to each and creation time. Metadata XML is not picked","description":"List SAML SSO providers of a project with the email domains routed to each and creation time. Metadata XML is not picked. Use for \"Which SSO providers and domains are set up in my Supabase project\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"ref":{"description":"Supabase project reference: the 20-character id in the project URL (for example 'abcdefghijklmnopqrst'), as returned by the project list.","maxLength":40,"title":"Ref","type":"string"}},"required":["ref"],"title":"list_sso_providersArguments","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_signing_keys":{"post":{"operationId":"list_signing_keys","summary":"List the JWT signing keys of a project with algorithm, status (in use, standby, previously used, revoked) and dates. Pub","description":"List the JWT signing keys of a project with algorithm, status (in use, standby, previously used, revoked) and dates. Public JWKs are not picked. Use for \"Which JWT signing key is in use for my Supabase project\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"ref":{"description":"Supabase project reference: the 20-character id in the project URL (for example 'abcdefghijklmnopqrst'), as returned by the project list.","maxLength":40,"title":"Ref","type":"string"}},"required":["ref"],"title":"list_signing_keysArguments","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_services_health":{"post":{"operationId":"get_services_health","summary":"Check the health of chosen services of a project (auth, db, pooler, realtime, rest, storage) and return the status of ea","description":"Check the health of chosen services of a project (auth, db, pooler, realtime, rest, storage) and return the status of each. Use for \"Are the Auth and database services of my Supabase project healthy right now\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"ref":{"description":"Supabase project reference: the 20-character id in the project URL (for example 'abcdefghijklmnopqrst'), as returned by the project list.","maxLength":40,"title":"Ref","type":"string"},"services":{"description":"Comma-separated services to check: auth, db, db_postgres_user, pooler, realtime, rest, storage, pg_bouncer.","maxLength":100,"title":"Services","type":"string"},"timeout_ms":{"anyOf":[{"maximum":10000,"minimum":0,"type":"integer"},{"type":"null"}],"default":5000,"description":"How long the check may wait for each service, in milliseconds (0 to 10000).","title":"Timeout Ms"}},"required":["ref","services"],"title":"get_services_healthArguments","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_api_request_counts":{"post":{"operationId":"get_api_request_counts","summary":"Show request counts per time bucket for a project's Auth, REST, Realtime and Storage APIs over a chosen interval. Use fo","description":"Show request counts per time bucket for a project's Auth, REST, Realtime and Storage APIs over a chosen interval. Use for \"How many REST and Auth requests did my Supabase project get in the last day\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"ref":{"description":"Supabase project reference: the 20-character id in the project URL (for example 'abcdefghijklmnopqrst'), as returned by the project list.","maxLength":40,"title":"Ref","type":"string"},"interval":{"anyOf":[{"enum":["15min","30min","1hr","3hr","1day","3day","7day"],"type":"string"},{"type":"null"}],"default":"1day","description":"Time window: 15min, 30min, 1hr, 3hr, 1day, 3day or 7day.","title":"Interval"}},"required":["ref"],"title":"get_api_request_countsArguments","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}}}}