openapi: 3.0.0 paths: /v1/branches/{branch_id}: get: operationId: v1-get-a-branch-config summary: Get database branch config description: Fetches configurations of the specified database branch parameters: - name: branch_id required: true in: path description: Branch ID schema: type: string responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/BranchDetailResponse' '500': description: Failed to retrieve database branch tags: - Environments security: - bearer: [] patch: operationId: v1-update-a-branch-config summary: Update database branch config description: Updates the configuration of the specified database branch parameters: - name: branch_id required: true in: path description: Branch ID schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateBranchBody' responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/BranchResponse' '500': description: Failed to update database branch tags: - Environments security: - bearer: [] delete: operationId: v1-delete-a-branch summary: Delete a database branch description: Deletes the specified database branch parameters: - name: branch_id required: true in: path description: Branch ID schema: type: string responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/BranchDeleteResponse' '500': description: Failed to delete database branch tags: - Environments security: - bearer: [] /v1/branches/{branch_id}/push: post: operationId: v1-push-a-branch summary: Pushes a database branch description: Pushes the specified database branch parameters: - name: branch_id required: true in: path description: Branch ID schema: type: string responses: '201': description: '' content: application/json: schema: $ref: '#/components/schemas/BranchUpdateResponse' '500': description: Failed to push database branch tags: - Environments security: - bearer: [] /v1/branches/{branch_id}/reset: post: operationId: v1-reset-a-branch summary: Resets a database branch description: Resets the specified database branch parameters: - name: branch_id required: true in: path description: Branch ID schema: type: string responses: '201': description: '' content: application/json: schema: $ref: '#/components/schemas/BranchUpdateResponse' '500': description: Failed to reset database branch tags: - Environments security: - bearer: [] /v1/projects: get: operationId: v1-list-all-projects summary: List all projects description: Returns a list of all projects you've previously created. parameters: [] responses: '200': description: '' content: application/json: schema: type: array items: $ref: '#/components/schemas/V1ProjectWithDatabaseResponse' tags: - Projects security: - bearer: [] post: operationId: v1-create-a-project summary: Create a project parameters: [] requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/V1CreateProjectBodyDto' responses: '201': description: '' content: application/json: schema: $ref: '#/components/schemas/V1ProjectResponse' tags: - Projects security: - bearer: [] /v1/organizations: get: operationId: v1-list-all-organizations summary: List all organizations description: Returns a list of organizations that you currently belong to. parameters: [] responses: '200': description: '' content: application/json: schema: type: array items: $ref: '#/components/schemas/OrganizationResponseV1' '500': description: Unexpected error listing organizations tags: - Organizations security: - bearer: [] post: operationId: v1-create-an-organization summary: Create an organization parameters: [] requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateOrganizationV1Dto' responses: '201': description: '' content: application/json: schema: $ref: '#/components/schemas/OrganizationResponseV1' '500': description: Unexpected error creating an organization tags: - Organizations security: - bearer: [] /v1/oauth/authorize: get: operationId: v1-authorize-user summary: '[Beta] Authorize user through oauth' parameters: - name: client_id required: true in: query schema: type: string - name: response_type required: true in: query schema: enum: - code - token - id_token token type: string - name: redirect_uri required: true in: query schema: type: string - name: scope required: false in: query schema: type: string - name: state required: false in: query schema: type: string - name: response_mode required: false in: query schema: type: string - name: code_challenge required: false in: query schema: type: string - name: code_challenge_method required: false in: query schema: enum: - plain - sha256 - S256 type: string responses: '303': description: '' tags: - OAuth security: - oauth2: - read /v1/oauth/token: post: operationId: v1-exchange-oauth-token summary: '[Beta] Exchange auth code for user''s access and refresh token' parameters: [] requestBody: required: true content: application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/OAuthTokenBody' responses: '201': description: '' content: application/json: schema: $ref: '#/components/schemas/OAuthTokenResponse' tags: - OAuth security: - oauth2: - write /v1/oauth/revoke: post: operationId: v1-revoke-token summary: '[Beta] Revoke oauth app authorization and it''s corresponding tokens' parameters: [] requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/OAuthRevokeTokenBodyDto' responses: '204': description: '' tags: - OAuth security: - oauth2: - write /v1/snippets: get: operationId: v1-list-all-snippets summary: Lists SQL snippets for the logged in user parameters: - name: cursor required: false in: query schema: type: string - name: limit required: false in: query schema: type: string minimum: 1 maximum: 100 - name: sort_by required: false in: query schema: enum: - name - inserted_at type: string - name: sort_order required: false in: query schema: enum: - asc - desc type: string - name: project_ref required: false in: query schema: type: string responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/SnippetList' '500': description: Failed to list user's SQL snippets tags: - Database security: - bearer: [] /v1/snippets/{id}: get: operationId: v1-get-a-snippet summary: Gets a specific SQL snippet parameters: - name: id required: true in: path schema: format: uuid type: string responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/SnippetResponse' '500': description: Failed to retrieve SQL snippet tags: - Database security: - bearer: [] /v1/projects/{ref}/api-keys: get: operationId: v1-get-project-api-keys summary: Get project api keys parameters: - name: ref required: true in: path description: Project ref schema: minLength: 20 maxLength: 20 type: string - name: reveal required: true in: query schema: type: boolean responses: '200': description: '' content: application/json: schema: type: array items: $ref: '#/components/schemas/ApiKeyResponse' tags: - Secrets security: - bearer: [] post: operationId: createApiKey summary: '[Alpha] Creates a new API key for the project' parameters: - name: ref required: true in: path description: Project ref schema: minLength: 20 maxLength: 20 type: string - name: reveal required: true in: query schema: type: boolean requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateApiKeyBody' responses: '201': description: '' content: application/json: schema: $ref: '#/components/schemas/ApiKeyResponse' tags: - Secrets security: - bearer: [] /v1/projects/{ref}/api-keys/{id}: patch: operationId: updateApiKey summary: '[Alpha] Updates an API key for the project' parameters: - name: ref required: true in: path description: Project ref schema: minLength: 20 maxLength: 20 type: string - name: id required: true in: path schema: type: string - name: reveal required: true in: query schema: type: boolean requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateApiKeyBody' responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/ApiKeyResponse' tags: - Secrets security: - bearer: [] get: operationId: getApiKey summary: '[Alpha] Get API key' parameters: - name: ref required: true in: path description: Project ref schema: minLength: 20 maxLength: 20 type: string - name: id required: true in: path schema: type: string - name: reveal required: true in: query schema: type: boolean responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/ApiKeyResponse' tags: - Secrets security: - bearer: [] delete: operationId: deleteApiKey summary: '[Alpha] Deletes an API key for the project' parameters: - name: ref required: true in: path description: Project ref schema: minLength: 20 maxLength: 20 type: string - name: id required: true in: path schema: type: string - name: reveal required: true in: query schema: type: boolean responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/ApiKeyResponse' '403': description: '' tags: - Secrets security: - bearer: [] /v1/projects/{ref}/branches: get: operationId: v1-list-all-branches summary: List all database branches description: Returns all database branches of the specified project. parameters: - name: ref required: true in: path description: Project ref schema: minLength: 20 maxLength: 20 type: string responses: '200': description: '' content: application/json: schema: type: array items: $ref: '#/components/schemas/BranchResponse' '500': description: Failed to retrieve database branches tags: - Environments security: - bearer: [] post: operationId: v1-create-a-branch summary: Create a database branch description: Creates a database branch from the specified project. parameters: - name: ref required: true in: path description: Project ref schema: minLength: 20 maxLength: 20 type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateBranchBody' responses: '201': description: '' content: application/json: schema: $ref: '#/components/schemas/BranchResponse' '500': description: Failed to create database branch tags: - Environments security: - bearer: [] delete: operationId: v1-disable-preview-branching summary: Disables preview branching description: Disables preview branching for the specified project parameters: - name: ref required: true in: path description: Project ref schema: minLength: 20 maxLength: 20 type: string responses: '200': description: '' '500': description: Failed to disable preview branching tags: - Environments security: - bearer: [] /v1/projects/{ref}/custom-hostname: get: operationId: v1-get-hostname-config summary: '[Beta] Gets project''s custom hostname config' parameters: - name: ref required: true in: path description: Project ref schema: minLength: 20 maxLength: 20 type: string responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/UpdateCustomHostnameResponse' '403': description: '' '500': description: Failed to retrieve project's custom hostname config tags: - Domains security: - bearer: [] delete: operationId: v1-Delete hostname config summary: '[Beta] Deletes a project''s custom hostname configuration' parameters: - name: ref required: true in: path description: Project ref schema: minLength: 20 maxLength: 20 type: string responses: '200': description: '' '403': description: '' '500': description: Failed to delete project custom hostname configuration tags: - Domains security: - bearer: [] /v1/projects/{ref}/custom-hostname/initialize: post: operationId: v1-update-hostname-config summary: '[Beta] Updates project''s custom hostname configuration' parameters: - name: ref required: true in: path description: Project ref schema: minLength: 20 maxLength: 20 type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateCustomHostnameBody' responses: '201': description: '' content: application/json: schema: $ref: '#/components/schemas/UpdateCustomHostnameResponse' '403': description: '' '500': description: Failed to update project custom hostname configuration tags: - Domains security: - bearer: [] /v1/projects/{ref}/custom-hostname/reverify: post: operationId: v1-verify-dns-config summary: >- [Beta] Attempts to verify the DNS configuration for project's custom hostname configuration parameters: - name: ref required: true in: path description: Project ref schema: minLength: 20 maxLength: 20 type: string responses: '201': description: '' content: application/json: schema: $ref: '#/components/schemas/UpdateCustomHostnameResponse' '403': description: '' '500': description: Failed to verify project custom hostname configuration tags: - Domains security: - bearer: [] /v1/projects/{ref}/custom-hostname/activate: post: operationId: v1-activate-custom-hostname summary: '[Beta] Activates a custom hostname for a project.' parameters: - name: ref required: true in: path description: Project ref schema: minLength: 20 maxLength: 20 type: string responses: '201': description: '' content: application/json: schema: $ref: '#/components/schemas/UpdateCustomHostnameResponse' '403': description: '' '500': description: Failed to activate project custom hostname configuration tags: - Domains security: - bearer: [] /v1/projects/{ref}/network-bans/retrieve: post: operationId: v1-list-all-network-bans summary: '[Beta] Gets project''s network bans' parameters: - name: ref required: true in: path description: Project ref schema: minLength: 20 maxLength: 20 type: string responses: '201': description: '' content: application/json: schema: $ref: '#/components/schemas/NetworkBanResponse' '403': description: '' '500': description: Failed to retrieve project's network bans tags: - Projects security: - bearer: [] /v1/projects/{ref}/network-bans: delete: operationId: v1-delete-network-bans summary: '[Beta] Remove network bans.' parameters: - name: ref required: true in: path description: Project ref schema: minLength: 20 maxLength: 20 type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/RemoveNetworkBanRequest' responses: '200': description: '' '403': description: '' '500': description: Failed to remove network bans. tags: - Projects security: - bearer: [] /v1/projects/{ref}/network-restrictions: get: operationId: v1-get-network-restrictions summary: '[Beta] Gets project''s network restrictions' parameters: - name: ref required: true in: path description: Project ref schema: minLength: 20 maxLength: 20 type: string responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/NetworkRestrictionsResponse' '403': description: '' '500': description: Failed to retrieve project's network restrictions tags: - Projects security: - bearer: [] /v1/projects/{ref}/network-restrictions/apply: post: operationId: v1-update-network-restrictions summary: '[Beta] Updates project''s network restrictions' parameters: - name: ref required: true in: path description: Project ref schema: minLength: 20 maxLength: 20 type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/NetworkRestrictionsRequest' responses: '201': description: '' content: application/json: schema: $ref: '#/components/schemas/NetworkRestrictionsResponse' '403': description: '' '500': description: Failed to update project network restrictions tags: - Projects security: - bearer: [] /v1/projects/{ref}/pgsodium: get: operationId: v1-get-pgsodium-config summary: '[Beta] Gets project''s pgsodium config' parameters: - name: ref required: true in: path description: Project ref schema: minLength: 20 maxLength: 20 type: string responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/PgsodiumConfigResponse' '403': description: '' '500': description: Failed to retrieve project's pgsodium config tags: - Secrets security: - bearer: [] put: operationId: v1-update-pgsodium-config summary: >- [Beta] Updates project's pgsodium config. Updating the root_key can cause all data encrypted with the older key to become inaccessible. parameters: - name: ref required: true in: path description: Project ref schema: minLength: 20 maxLength: 20 type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdatePgsodiumConfigBody' responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/PgsodiumConfigResponse' '403': description: '' '500': description: Failed to update project's pgsodium config tags: - Secrets security: - bearer: [] /v1/projects/{ref}/postgrest: get: operationId: v1-get-postgrest-service-config summary: Gets project's postgrest config parameters: - name: ref required: true in: path description: Project ref schema: minLength: 20 maxLength: 20 type: string responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/PostgrestConfigWithJWTSecretResponse' '403': description: '' '500': description: Failed to retrieve project's postgrest config tags: - Rest security: - bearer: [] patch: operationId: v1-update-postgrest-service-config summary: Updates project's postgrest config parameters: - name: ref required: true in: path description: Project ref schema: minLength: 20 maxLength: 20 type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdatePostgrestConfigBody' responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/V1PostgrestConfigResponse' '403': description: '' '500': description: Failed to update project's postgrest config tags: - Rest security: - bearer: [] /v1/projects/{ref}: get: operationId: v1-get-project summary: Gets a specific project that belongs to the authenticated user parameters: - name: ref required: true in: path description: Project ref schema: minLength: 20 maxLength: 20 type: string responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/V1ProjectWithDatabaseResponse' '500': description: Failed to retrieve project tags: - Projects security: - bearer: [] delete: operationId: v1-delete-a-project summary: Deletes the given project parameters: - name: ref required: true in: path description: Project ref schema: minLength: 20 maxLength: 20 type: string responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/V1ProjectRefResponse' '403': description: '' tags: - Projects security: - bearer: [] /v1/projects/{ref}/secrets: get: operationId: v1-list-all-secrets summary: List all secrets description: Returns all secrets you've previously added to the specified project. parameters: - name: ref required: true in: path description: Project ref schema: minLength: 20 maxLength: 20 type: string responses: '200': description: '' content: application/json: schema: type: array items: $ref: '#/components/schemas/SecretResponse' '403': description: '' '500': description: Failed to retrieve project's secrets tags: - Secrets security: - bearer: [] post: operationId: v1-bulk-create-secrets summary: Bulk create secrets description: Creates multiple secrets and adds them to the specified project. parameters: - name: ref required: true in: path description: Project ref schema: minLength: 20 maxLength: 20 type: string requestBody: required: true content: application/json: schema: type: array items: $ref: '#/components/schemas/CreateSecretBody' responses: '201': description: '' '403': description: '' '500': description: Failed to create project's secrets tags: - Secrets security: - bearer: [] delete: operationId: v1-bulk-delete-secrets summary: Bulk delete secrets description: Deletes all secrets with the given names from the specified project parameters: - name: ref required: true in: path description: Project ref schema: minLength: 20 maxLength: 20 type: string requestBody: required: true content: application/json: schema: type: array items: type: string responses: '200': description: '' content: application/json: schema: type: object '403': description: '' '500': description: Failed to delete secrets with given names tags: - Secrets security: - bearer: [] /v1/projects/{ref}/ssl-enforcement: get: operationId: v1-get-ssl-enforcement-config summary: '[Beta] Get project''s SSL enforcement configuration.' parameters: - name: ref required: true in: path description: Project ref schema: minLength: 20 maxLength: 20 type: string responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/SslEnforcementResponse' '403': description: '' '500': description: Failed to retrieve project's SSL enforcement config tags: - Database security: - bearer: [] put: operationId: v1-update-ssl-enforcement-config summary: '[Beta] Update project''s SSL enforcement configuration.' parameters: - name: ref required: true in: path description: Project ref schema: minLength: 20 maxLength: 20 type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/SslEnforcementRequest' responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/SslEnforcementResponse' '403': description: '' '500': description: Failed to update project's SSL enforcement configuration. tags: - Database security: - bearer: [] /v1/projects/{ref}/types/typescript: get: operationId: v1-generate-typescript-types summary: Generate TypeScript types description: Returns the TypeScript types of your schema for use with supabase-js. parameters: - name: included_schemas required: false in: query schema: default: public type: string - name: ref required: true in: path description: Project ref schema: minLength: 20 maxLength: 20 type: string responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/TypescriptResponse' '403': description: '' '500': description: Failed to generate TypeScript types tags: - Database security: - bearer: [] /v1/projects/{ref}/vanity-subdomain: get: operationId: v1-get-vanity-subdomain-config summary: '[Beta] Gets current vanity subdomain config' parameters: - name: ref required: true in: path description: Project ref schema: minLength: 20 maxLength: 20 type: string responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/VanitySubdomainConfigResponse' '403': description: '' '500': description: Failed to get project vanity subdomain configuration tags: - Domains security: - bearer: [] delete: operationId: v1-deactivate-vanity-subdomain-config summary: '[Beta] Deletes a project''s vanity subdomain configuration' parameters: - name: ref required: true in: path description: Project ref schema: minLength: 20 maxLength: 20 type: string responses: '200': description: '' '403': description: '' '500': description: Failed to delete project vanity subdomain configuration tags: - Domains security: - bearer: [] /v1/projects/{ref}/vanity-subdomain/check-availability: post: operationId: v1-check-vanity-subdomain-availability summary: '[Beta] Checks vanity subdomain availability' parameters: - name: ref required: true in: path description: Project ref schema: minLength: 20 maxLength: 20 type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/VanitySubdomainBody' responses: '201': description: '' content: application/json: schema: $ref: '#/components/schemas/SubdomainAvailabilityResponse' '403': description: '' '500': description: Failed to check project vanity subdomain configuration tags: - Domains security: - bearer: [] /v1/projects/{ref}/vanity-subdomain/activate: post: operationId: v1-activate-vanity-subdomain-config summary: '[Beta] Activates a vanity subdomain for a project.' parameters: - name: ref required: true in: path description: Project ref schema: minLength: 20 maxLength: 20 type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/VanitySubdomainBody' responses: '201': description: '' content: application/json: schema: $ref: '#/components/schemas/ActivateVanitySubdomainResponse' '403': description: '' '500': description: Failed to activate project vanity subdomain configuration tags: - Domains security: - bearer: [] /v1/projects/{ref}/upgrade: post: operationId: v1-upgrade-postgres-version summary: '[Beta] Upgrades the project''s Postgres version' parameters: - name: ref required: true in: path description: Project ref schema: minLength: 20 maxLength: 20 type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpgradeDatabaseBody' responses: '201': description: '' content: application/json: schema: $ref: '#/components/schemas/ProjectUpgradeInitiateResponse' '403': description: '' '500': description: Failed to initiate project upgrade tags: - Projects security: - bearer: [] /v1/projects/{ref}/upgrade/eligibility: get: operationId: v1-get-postgres-upgrade-eligibility summary: '[Beta] Returns the project''s eligibility for upgrades' parameters: - name: ref required: true in: path description: Project ref schema: minLength: 20 maxLength: 20 type: string responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/ProjectUpgradeEligibilityResponse' '403': description: '' '500': description: Failed to determine project upgrade eligibility tags: - Projects security: - bearer: [] /v1/projects/{ref}/upgrade/status: get: operationId: v1-get-postgres-upgrade-status summary: '[Beta] Gets the latest status of the project''s upgrade' parameters: - name: ref required: true in: path description: Project ref schema: minLength: 20 maxLength: 20 type: string - name: tracking_id required: false in: query schema: type: string responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/DatabaseUpgradeStatusResponse' '403': description: '' '500': description: Failed to retrieve project upgrade status tags: - Projects security: - bearer: [] /v1/projects/{ref}/readonly: get: operationId: v1-get-readonly-mode-status summary: Returns project's readonly mode status parameters: - name: ref required: true in: path description: Project ref schema: minLength: 20 maxLength: 20 type: string responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/ReadOnlyStatusResponse' '500': description: Failed to get project readonly mode status tags: - Database security: - bearer: [] /v1/projects/{ref}/readonly/temporary-disable: post: operationId: v1-disable-readonly-mode-temporarily summary: Disables project's readonly mode for the next 15 minutes parameters: - name: ref required: true in: path description: Project ref schema: minLength: 20 maxLength: 20 type: string responses: '201': description: '' '500': description: Failed to disable project's readonly mode tags: - Database security: - bearer: [] /v1/projects/{ref}/read-replicas/setup: post: operationId: v1-setup-a-read-replica summary: '[Beta] Set up a read replica' parameters: - name: ref required: true in: path description: Project ref schema: minLength: 20 maxLength: 20 type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/SetUpReadReplicaBody' responses: '201': description: '' '403': description: '' '500': description: Failed to set up read replica tags: - Database security: - bearer: [] /v1/projects/{ref}/read-replicas/remove: post: operationId: v1-remove-a-read-replica summary: '[Beta] Remove a read replica' parameters: - name: ref required: true in: path description: Project ref schema: minLength: 20 maxLength: 20 type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/RemoveReadReplicaBody' responses: '201': description: '' '403': description: '' '500': description: Failed to remove read replica tags: - Database security: - bearer: [] /v1/projects/{ref}/health: get: operationId: v1-get-services-health summary: Gets project's service health status parameters: - name: ref required: true in: path description: Project ref schema: minLength: 20 maxLength: 20 type: string - name: timeout_ms required: false in: query schema: minimum: 0 maximum: 10000 type: integer - name: services required: true in: query schema: type: array items: type: string enum: - auth - db - pooler - realtime - rest - storage responses: '200': description: '' content: application/json: schema: type: array items: $ref: '#/components/schemas/V1ServiceHealthResponse' '403': description: '' '500': description: Failed to retrieve project's service health status tags: - Projects security: - bearer: [] /v1/projects/{ref}/config/storage: get: operationId: v1-get-storage-config summary: Gets project's storage config parameters: - name: ref required: true in: path description: Project ref schema: minLength: 20 maxLength: 20 type: string responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/StorageConfigResponse' '403': description: '' '500': description: Failed to retrieve project's storage config tags: - Storage security: - bearer: [] patch: operationId: v1-update-storage-config summary: Updates project's storage config parameters: - name: ref required: true in: path description: Project ref schema: minLength: 20 maxLength: 20 type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateStorageConfigBody' responses: '200': description: '' '403': description: '' '500': description: Failed to update project's storage config tags: - Storage security: - bearer: [] /v1/projects/{ref}/config/database/postgres: get: operationId: v1-get-postgres-config summary: Gets project's Postgres config parameters: - name: ref required: true in: path description: Project ref schema: minLength: 20 maxLength: 20 type: string responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/PostgresConfigResponse' '500': description: Failed to retrieve project's Postgres config tags: - Database security: - bearer: [] put: operationId: v1-update-postgres-config summary: Updates project's Postgres config parameters: - name: ref required: true in: path description: Project ref schema: minLength: 20 maxLength: 20 type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdatePostgresConfigBody' responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/PostgresConfigResponse' '403': description: '' '500': description: Failed to update project's Postgres config tags: - Database security: - bearer: [] /v1/projects/{ref}/config/database/pgbouncer: get: operationId: v1-get-project-pgbouncer-config summary: Get project's pgbouncer config parameters: - name: ref required: true in: path description: Project ref schema: minLength: 20 maxLength: 20 type: string responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/V1PgbouncerConfigResponse' '500': description: Failed to retrieve project's pgbouncer config tags: - Database /v1/projects/{ref}/config/database/pooler: get: operationId: v1-get-supavisor-config summary: Gets project's supavisor config parameters: - name: ref required: true in: path description: Project ref schema: minLength: 20 maxLength: 20 type: string responses: '200': description: '' content: application/json: schema: type: array items: $ref: '#/components/schemas/SupavisorConfigResponse' '500': description: Failed to retrieve project's supavisor config tags: - Database security: - bearer: [] patch: operationId: v1-update-supavisor-config summary: Updates project's supavisor config parameters: - name: ref required: true in: path description: Project ref schema: minLength: 20 maxLength: 20 type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateSupavisorConfigBody' responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/UpdateSupavisorConfigResponse' '403': description: '' '500': description: Failed to update project's supavisor config tags: - Database security: - bearer: [] /v1/projects/{ref}/config/auth: get: operationId: v1-get-auth-service-config summary: Gets project's auth config parameters: - name: ref required: true in: path description: Project ref schema: minLength: 20 maxLength: 20 type: string responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/AuthConfigResponse' '403': description: '' '500': description: Failed to retrieve project's auth config tags: - Auth security: - bearer: [] patch: operationId: v1-update-auth-service-config summary: Updates a project's auth config parameters: - name: ref required: true in: path description: Project ref schema: minLength: 20 maxLength: 20 type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateAuthConfigBody' responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/AuthConfigResponse' '403': description: '' '500': description: Failed to update project's auth config tags: - Auth security: - bearer: [] /v1/projects/{ref}/config/auth/third-party-auth: post: operationId: createTPAForProject summary: Creates a new third-party auth integration parameters: - name: ref required: true in: path description: Project ref schema: minLength: 20 maxLength: 20 type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateThirdPartyAuthBody' responses: '201': description: '' content: application/json: schema: $ref: '#/components/schemas/ThirdPartyAuth' '403': description: '' tags: - Auth security: - bearer: [] get: operationId: listTPAForProject summary: '[Alpha] Lists all third-party auth integrations' parameters: - name: ref required: true in: path description: Project ref schema: minLength: 20 maxLength: 20 type: string responses: '200': description: '' content: application/json: schema: type: array items: $ref: '#/components/schemas/ThirdPartyAuth' '403': description: '' tags: - Auth security: - bearer: [] /v1/projects/{ref}/config/auth/third-party-auth/{tpa_id}: delete: operationId: deleteTPAForProject summary: '[Alpha] Removes a third-party auth integration' parameters: - name: ref required: true in: path description: Project ref schema: minLength: 20 maxLength: 20 type: string - name: tpa_id required: true in: path schema: type: string responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/ThirdPartyAuth' '403': description: '' tags: - Auth security: - bearer: [] get: operationId: getTPAForProject summary: '[Alpha] Get a third-party integration' parameters: - name: ref required: true in: path description: Project ref schema: minLength: 20 maxLength: 20 type: string - name: tpa_id required: true in: path schema: type: string responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/ThirdPartyAuth' '403': description: '' tags: - Auth security: - bearer: [] /v1/projects/{ref}/pause: post: operationId: v1-pause-a-project summary: Pauses the given project parameters: - name: ref required: true in: path description: Project ref schema: minLength: 20 maxLength: 20 type: string responses: '200': description: '' '403': description: '' tags: - Projects security: - bearer: [] /v1/projects/{ref}/restore: get: operationId: v1-list-available-restore-versions summary: Lists available restore versions for the given project parameters: - name: ref required: true in: path schema: type: string responses: '200': description: '' content: application/json: schema: $ref: >- #/components/schemas/GetProjectAvailableRestoreVersionsResponse '403': description: '' tags: - Projects security: - bearer: [] post: operationId: v1-restore-a-project summary: Restores the given project parameters: - name: ref required: true in: path schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/RestoreProjectBodyDto' responses: '200': description: '' '403': description: '' tags: - Projects security: - bearer: [] /v1/projects/{ref}/restore/cancel: post: operationId: v1-cancel-a-project-restoration summary: Cancels the given project restoration parameters: - name: ref required: true in: path schema: type: string responses: '200': description: '' '403': description: '' tags: - Projects security: - bearer: [] /v1/projects/{ref}/analytics/endpoints/logs.all: get: operationId: getLogs summary: Gets project's logs parameters: - name: iso_timestamp_end required: false in: query schema: type: string - name: iso_timestamp_start required: false in: query schema: type: string - name: sql required: false in: query schema: type: string - name: ref required: true in: path schema: type: string responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/V1AnalyticsResponse' '403': description: '' tags: - Analytics security: - bearer: [] /v1/projects/{ref}/database/query: post: operationId: v1-run-a-query summary: '[Beta] Run sql query' parameters: - name: ref required: true in: path description: Project ref schema: minLength: 20 maxLength: 20 type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/V1RunQueryBody' responses: '201': description: '' content: application/json: schema: type: object '403': description: '' '500': description: Failed to run sql query tags: - Database security: - bearer: [] /v1/projects/{ref}/database/webhooks/enable: post: operationId: v1-enable-database-webhook summary: '[Beta] Enables Database Webhooks on the project' parameters: - name: ref required: true in: path description: Project ref schema: minLength: 20 maxLength: 20 type: string responses: '201': description: '' '403': description: '' '500': description: Failed to enable Database Webhooks on the project tags: - Database security: - bearer: [] /v1/projects/{ref}/database/context: get: operationId: getDatabaseMetadata summary: Gets database metadata for the given project. description: >- This is an **experimental** endpoint. It is subject to change or removal in future versions. Use it with caution, as it may not remain supported or stable. deprecated: true parameters: - name: ref required: true in: path schema: type: string responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/GetProjectDbMetadataResponseDto' '403': description: '' tags: - Database security: - bearer: [] /v1/projects/{ref}/functions: get: operationId: v1-list-all-functions summary: List all functions description: Returns all functions you've previously added to the specified project. parameters: - name: ref required: true in: path description: Project ref schema: minLength: 20 maxLength: 20 type: string responses: '200': description: '' content: application/json: schema: type: array items: $ref: '#/components/schemas/FunctionResponse' '403': description: '' '500': description: Failed to retrieve project's functions tags: - Edge Functions security: - bearer: [] post: operationId: v1-create-a-function summary: Create a function description: Creates a function and adds it to the specified project. parameters: - name: ref required: true in: path description: Project ref schema: minLength: 20 maxLength: 20 type: string - name: slug required: false in: query schema: pattern: /^[A-Za-z0-9_-]+$/ type: string - name: name required: false in: query schema: type: string - name: verify_jwt required: false in: query schema: type: boolean - name: import_map required: false in: query schema: type: boolean - name: entrypoint_path required: false in: query schema: type: string - name: import_map_path required: false in: query schema: type: string - name: compute_multiplier required: false in: query schema: minimum: 1 maximum: 4 type: number requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/V1CreateFunctionBody' application/vnd.denoland.eszip: schema: $ref: '#/components/schemas/V1CreateFunctionBody' responses: '201': description: '' content: application/json: schema: $ref: '#/components/schemas/FunctionResponse' '403': description: '' '500': description: Failed to create project's function tags: - Edge Functions security: - bearer: [] put: operationId: v1-bulk-update-functions summary: Bulk update functions description: >- Bulk update functions. It will create a new function or replace existing. The operation is idempotent. NOTE: You will need to manually bump the version. parameters: - name: ref required: true in: path description: Project ref schema: minLength: 20 maxLength: 20 type: string requestBody: required: true content: application/json: schema: type: array items: $ref: '#/components/schemas/BulkUpdateFunctionBody' responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/BulkUpdateFunctionResponse' '403': description: '' '500': description: Failed to update functions tags: - Edge Functions security: - bearer: [] /v1/projects/{ref}/functions/deploy: post: operationId: v1-deploy-a-function summary: Deploy a function description: >- A new endpoint to deploy functions. It will create if function does not exist. parameters: - name: ref required: true in: path description: Project ref schema: minLength: 20 maxLength: 20 type: string - name: slug required: false in: query schema: pattern: /^[A-Za-z0-9_-]+$/ type: string - name: bundleOnly required: false in: query schema: type: boolean requestBody: required: true content: multipart/form-data: schema: $ref: '#/components/schemas/FunctionDeployBody' responses: '201': description: '' content: application/json: schema: $ref: '#/components/schemas/DeployFunctionResponse' '403': description: '' '500': description: Failed to deploy function tags: - Edge Functions security: - bearer: [] /v1/projects/{ref}/functions/{function_slug}: get: operationId: v1-get-a-function summary: Retrieve a function description: Retrieves a function with the specified slug and project. parameters: - name: ref required: true in: path description: Project ref schema: minLength: 20 maxLength: 20 type: string - name: function_slug required: true in: path description: Function slug schema: pattern: /^[A-Za-z0-9_-]+$/ type: string responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/FunctionSlugResponse' '403': description: '' '500': description: Failed to retrieve function with given slug tags: - Edge Functions security: - bearer: [] patch: operationId: v1-update-a-function summary: Update a function description: Updates a function with the specified slug and project. parameters: - name: ref required: true in: path description: Project ref schema: minLength: 20 maxLength: 20 type: string - name: function_slug required: true in: path description: Function slug schema: pattern: /^[A-Za-z0-9_-]+$/ type: string - name: slug required: false in: query schema: pattern: /^[A-Za-z0-9_-]+$/ type: string - name: name required: false in: query schema: type: string - name: verify_jwt required: false in: query schema: type: boolean - name: import_map required: false in: query schema: type: boolean - name: entrypoint_path required: false in: query schema: type: string - name: import_map_path required: false in: query schema: type: string - name: compute_multiplier required: false in: query schema: minimum: 1 maximum: 4 type: number requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/V1UpdateFunctionBody' application/vnd.denoland.eszip: schema: $ref: '#/components/schemas/V1UpdateFunctionBody' responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/FunctionResponse' '403': description: '' '500': description: Failed to update function with given slug tags: - Edge Functions security: - bearer: [] delete: operationId: v1-delete-a-function summary: Delete a function description: Deletes a function with the specified slug from the specified project. parameters: - name: ref required: true in: path description: Project ref schema: minLength: 20 maxLength: 20 type: string - name: function_slug required: true in: path description: Function slug schema: pattern: /^[A-Za-z0-9_-]+$/ type: string responses: '200': description: '' '403': description: '' '500': description: Failed to delete function with given slug tags: - Edge Functions security: - bearer: [] /v1/projects/{ref}/functions/{function_slug}/body: get: operationId: v1-get-a-function-body summary: Retrieve a function body description: Retrieves a function body for the specified slug and project. parameters: - name: ref required: true in: path description: Project ref schema: minLength: 20 maxLength: 20 type: string - name: function_slug required: true in: path description: Function slug schema: pattern: /^[A-Za-z0-9_-]+$/ type: string responses: '200': description: '' '403': description: '' '500': description: Failed to retrieve function body with given slug tags: - Edge Functions security: - bearer: [] /v1/projects/{ref}/storage/buckets: get: operationId: v1-list-all-buckets summary: Lists all buckets parameters: - name: ref required: true in: path description: Project ref schema: minLength: 20 maxLength: 20 type: string responses: '200': description: '' content: application/json: schema: type: array items: $ref: '#/components/schemas/V1StorageBucketResponse' '403': description: '' '500': description: Failed to get list of buckets tags: - Storage security: - bearer: [] /v1/projects/{ref}/config/auth/sso/providers: post: operationId: v1-create-a-sso-provider summary: Creates a new SSO provider parameters: - name: ref required: true in: path description: Project ref schema: minLength: 20 maxLength: 20 type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateProviderBody' responses: '201': description: '' content: application/json: schema: $ref: '#/components/schemas/CreateProviderResponse' '403': description: '' '404': description: SAML 2.0 support is not enabled for this project tags: - Auth security: - bearer: [] get: operationId: v1-list-all-sso-provider summary: Lists all SSO providers parameters: - name: ref required: true in: path description: Project ref schema: minLength: 20 maxLength: 20 type: string responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/ListProvidersResponse' '403': description: '' '404': description: SAML 2.0 support is not enabled for this project tags: - Auth security: - bearer: [] /v1/projects/{ref}/config/auth/sso/providers/{provider_id}: get: operationId: v1-get-a-sso-provider summary: Gets a SSO provider by its UUID parameters: - name: ref required: true in: path description: Project ref schema: minLength: 20 maxLength: 20 type: string - name: provider_id required: true in: path schema: type: string responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/GetProviderResponse' '403': description: '' '404': description: >- Either SAML 2.0 was not enabled for this project, or the provider does not exist tags: - Auth security: - bearer: [] put: operationId: v1-update-a-sso-provider summary: Updates a SSO provider by its UUID parameters: - name: ref required: true in: path description: Project ref schema: minLength: 20 maxLength: 20 type: string - name: provider_id required: true in: path schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateProviderBody' responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/UpdateProviderResponse' '403': description: '' '404': description: >- Either SAML 2.0 was not enabled for this project, or the provider does not exist tags: - Auth security: - bearer: [] delete: operationId: v1-delete-a-sso-provider summary: Removes a SSO provider by its UUID parameters: - name: ref required: true in: path description: Project ref schema: minLength: 20 maxLength: 20 type: string - name: provider_id required: true in: path schema: type: string responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/DeleteProviderResponse' '403': description: '' '404': description: >- Either SAML 2.0 was not enabled for this project, or the provider does not exist tags: - Auth security: - bearer: [] /v1/projects/{ref}/database/backups: get: operationId: v1-list-all-backups summary: Lists all backups parameters: - name: ref required: true in: path description: Project ref schema: minLength: 20 maxLength: 20 type: string responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/V1BackupsResponse' '500': description: Failed to get backups tags: - Database security: - bearer: [] /v1/projects/{ref}/database/backups/restore-pitr: post: operationId: v1-restore-pitr-backup summary: Restores a PITR backup for a database parameters: - name: ref required: true in: path description: Project ref schema: minLength: 20 maxLength: 20 type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/V1RestorePitrBody' responses: '201': description: '' tags: - Database security: - bearer: [] /v1/organizations/{slug}/members: get: operationId: v1-list-organization-members summary: List members of an organization parameters: - name: slug required: true in: path schema: type: string responses: '200': description: '' content: application/json: schema: type: array items: $ref: '#/components/schemas/V1OrganizationMemberResponse' tags: - Organizations security: - bearer: [] /v1/organizations/{slug}: get: operationId: v1-get-an-organization summary: Gets information about the organization parameters: - name: slug required: true in: path schema: type: string responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/V1OrganizationSlugResponse' tags: - Organizations security: - bearer: [] info: title: Supabase API (v1) description: >- Supabase API generated from the OpenAPI specification.
Visit [https://supabase.com/docs](https://supabase.com/docs) for a complete documentation. version: 1.0.0 contact: {} tags: - name: Auth description: Auth related endpoints - name: Database description: Database related endpoints - name: Domains description: Domains related endpoints - name: Edge Functions description: Edge related endpoints - name: Environments description: Environments related endpoints - name: OAuth description: OAuth related endpoints - name: Organizations description: Organizations related endpoints - name: Projects description: Projects related endpoints - name: Rest description: Rest related endpoints - name: Secrets description: Secrets related endpoints - name: Storage description: Storage related endpoints servers: [] components: securitySchemes: bearer: scheme: bearer bearerFormat: JWT type: http schemas: BranchDetailResponse: type: object properties: status: type: string enum: - INACTIVE - ACTIVE_HEALTHY - ACTIVE_UNHEALTHY - COMING_UP - UNKNOWN - GOING_DOWN - INIT_FAILED - REMOVED - RESTORING - UPGRADING - PAUSING - RESTORE_FAILED - RESTARTING - PAUSE_FAILED - RESIZING db_port: type: integer ref: type: string postgres_version: type: string postgres_engine: type: string release_channel: type: string db_host: type: string db_user: type: string db_pass: type: string jwt_secret: type: string required: - status - db_port - ref - postgres_version - postgres_engine - release_channel - db_host UpdateBranchBody: type: object properties: reset_on_push: type: boolean deprecated: true description: >- This field is deprecated and will be ignored. Use v1-reset-a-branch endpoint directly instead. branch_name: type: string git_branch: type: string persistent: type: boolean status: type: string enum: - CREATING_PROJECT - RUNNING_MIGRATIONS - MIGRATIONS_PASSED - MIGRATIONS_FAILED - FUNCTIONS_DEPLOYED - FUNCTIONS_FAILED BranchResponse: type: object properties: pr_number: type: integer format: int32 latest_check_run_id: type: number deprecated: true description: This field is deprecated and will not be populated. status: type: string enum: - CREATING_PROJECT - RUNNING_MIGRATIONS - MIGRATIONS_PASSED - MIGRATIONS_FAILED - FUNCTIONS_DEPLOYED - FUNCTIONS_FAILED id: type: string name: type: string project_ref: type: string parent_project_ref: type: string is_default: type: boolean git_branch: type: string persistent: type: boolean created_at: type: string updated_at: type: string required: - status - id - name - project_ref - parent_project_ref - is_default - persistent - created_at - updated_at BranchDeleteResponse: type: object properties: message: type: string required: - message BranchUpdateResponse: type: object properties: workflow_run_id: type: string message: type: string required: - workflow_run_id - message V1DatabaseResponse: type: object properties: host: type: string description: Database host version: type: string description: Database version postgres_engine: type: string description: Database engine release_channel: type: string description: Release channel required: - host - version - postgres_engine - release_channel V1ProjectWithDatabaseResponse: type: object properties: id: type: string description: Id of your project organization_id: type: string description: Slug of your organization name: type: string description: Name of your project region: type: string description: Region of your project example: us-east-1 created_at: type: string description: Creation timestamp example: '2023-03-29T16:32:59Z' status: type: string enum: - INACTIVE - ACTIVE_HEALTHY - ACTIVE_UNHEALTHY - COMING_UP - UNKNOWN - GOING_DOWN - INIT_FAILED - REMOVED - RESTORING - UPGRADING - PAUSING - RESTORE_FAILED - RESTARTING - PAUSE_FAILED - RESIZING database: $ref: '#/components/schemas/V1DatabaseResponse' required: - id - organization_id - name - region - created_at - status - database V1CreateProjectBodyDto: type: object properties: db_pass: type: string description: Database password name: type: string description: Name of your project organization_id: type: string description: Slug of your organization plan: type: string enum: - free - pro deprecated: true description: >- Subscription Plan is now set on organization level and is ignored in this request region: type: string description: Region you want your server to reside in enum: - us-east-1 - us-east-2 - us-west-1 - us-west-2 - ap-east-1 - ap-southeast-1 - ap-northeast-1 - ap-northeast-2 - ap-southeast-2 - eu-west-1 - eu-west-2 - eu-west-3 - eu-north-1 - eu-central-1 - eu-central-2 - ca-central-1 - ap-south-1 - sa-east-1 kps_enabled: type: boolean deprecated: true description: This field is deprecated and is ignored in this request desired_instance_size: type: string enum: - micro - small - medium - large - xlarge - 2xlarge - 4xlarge - 8xlarge - 12xlarge - 16xlarge template_url: type: string format: uri description: Template URL used to create the project from the CLI. example: >- https://github.com/supabase/supabase/tree/master/examples/slack-clone/nextjs-slack-clone required: - db_pass - name - organization_id - region additionalProperties: false hideDefinitions: - release_channel - postgres_engine V1ProjectResponse: type: object properties: id: type: string description: Id of your project organization_id: type: string description: Slug of your organization name: type: string description: Name of your project region: type: string description: Region of your project example: us-east-1 created_at: type: string description: Creation timestamp example: '2023-03-29T16:32:59Z' status: type: string enum: - INACTIVE - ACTIVE_HEALTHY - ACTIVE_UNHEALTHY - COMING_UP - UNKNOWN - GOING_DOWN - INIT_FAILED - REMOVED - RESTORING - UPGRADING - PAUSING - RESTORE_FAILED - RESTARTING - PAUSE_FAILED - RESIZING required: - id - organization_id - name - region - created_at - status OrganizationResponseV1: type: object properties: id: type: string name: type: string required: - id - name CreateOrganizationV1Dto: type: object properties: name: type: string required: - name additionalProperties: false OAuthTokenBody: type: object properties: grant_type: enum: - authorization_code - refresh_token type: string client_id: type: string client_secret: type: string code: type: string code_verifier: type: string redirect_uri: type: string refresh_token: type: string required: - grant_type - client_id - client_secret OAuthTokenResponse: type: object properties: expires_in: type: integer format: int64 token_type: type: string enum: - Bearer access_token: type: string refresh_token: type: string required: - expires_in - token_type - access_token - refresh_token OAuthRevokeTokenBodyDto: type: object properties: client_id: type: string format: uuid client_secret: type: string refresh_token: type: string required: - client_id - client_secret - refresh_token additionalProperties: false SnippetProject: type: object properties: id: type: integer format: int64 name: type: string required: - id - name SnippetUser: type: object properties: id: type: integer format: int64 username: type: string required: - id - username SnippetMeta: type: object properties: id: type: string inserted_at: type: string updated_at: type: string type: type: string enum: - sql visibility: type: string enum: - user - project - org - public name: type: string description: type: string nullable: true project: $ref: '#/components/schemas/SnippetProject' owner: $ref: '#/components/schemas/SnippetUser' updated_by: $ref: '#/components/schemas/SnippetUser' required: - id - inserted_at - updated_at - type - visibility - name - description - project - owner - updated_by SnippetList: type: object properties: data: type: array items: $ref: '#/components/schemas/SnippetMeta' cursor: type: string required: - data SnippetContent: type: object properties: favorite: type: boolean schema_version: type: string sql: type: string required: - favorite - schema_version - sql SnippetResponse: type: object properties: id: type: string inserted_at: type: string updated_at: type: string type: type: string enum: - sql visibility: enum: - user - project - org - public type: string name: type: string description: type: string nullable: true project: $ref: '#/components/schemas/SnippetProject' owner: $ref: '#/components/schemas/SnippetUser' updated_by: $ref: '#/components/schemas/SnippetUser' content: $ref: '#/components/schemas/SnippetContent' required: - id - inserted_at - updated_at - type - visibility - name - description - project - owner - updated_by - content ApiKeySecretJWTTemplate: type: object properties: role: type: string required: - role ApiKeyResponse: type: object properties: type: nullable: true type: string enum: - publishable - secret - legacy name: type: string api_key: type: string id: type: string nullable: true prefix: type: string nullable: true description: type: string nullable: true hash: type: string nullable: true secret_jwt_template: nullable: true allOf: - $ref: '#/components/schemas/ApiKeySecretJWTTemplate' inserted_at: type: string nullable: true updated_at: type: string nullable: true required: - name - api_key CreateApiKeyBody: type: object properties: type: enum: - publishable - secret type: string description: type: string nullable: true secret_jwt_template: nullable: true allOf: - $ref: '#/components/schemas/ApiKeySecretJWTTemplate' required: - type UpdateApiKeyBody: type: object properties: description: type: string nullable: true secret_jwt_template: nullable: true allOf: - $ref: '#/components/schemas/ApiKeySecretJWTTemplate' DesiredInstanceSize: type: string enum: - micro - small - medium - large - xlarge - 2xlarge - 4xlarge - 8xlarge - 12xlarge - 16xlarge ReleaseChannel: type: string enum: - internal - alpha - beta - ga - withdrawn - preview PostgresEngine: type: string description: >- Postgres engine version. If not provided, the latest version will be used. enum: - '15' - 17-oriole CreateBranchBody: type: object properties: desired_instance_size: $ref: '#/components/schemas/DesiredInstanceSize' release_channel: $ref: '#/components/schemas/ReleaseChannel' postgres_engine: $ref: '#/components/schemas/PostgresEngine' branch_name: type: string git_branch: type: string persistent: type: boolean region: type: string required: - branch_name ValidationRecord: type: object properties: txt_name: type: string txt_value: type: string required: - txt_name - txt_value ValidationError: type: object properties: message: type: string required: - message SslValidation: type: object properties: status: type: string validation_records: type: array items: $ref: '#/components/schemas/ValidationRecord' validation_errors: type: array items: $ref: '#/components/schemas/ValidationError' required: - status - validation_records OwnershipVerification: type: object properties: type: type: string name: type: string value: type: string required: - type - name - value CustomHostnameDetails: type: object properties: id: type: string hostname: type: string ssl: $ref: '#/components/schemas/SslValidation' ownership_verification: $ref: '#/components/schemas/OwnershipVerification' custom_origin_server: type: string verification_errors: type: array items: type: string status: type: string required: - id - hostname - ssl - ownership_verification - custom_origin_server - status CfResponse: type: object properties: success: type: boolean errors: type: array items: type: object messages: type: array items: type: object result: $ref: '#/components/schemas/CustomHostnameDetails' required: - success - errors - messages - result UpdateCustomHostnameResponse: type: object properties: status: enum: - 1_not_started - 2_initiated - 3_challenge_verified - 4_origin_setup_completed - 5_services_reconfigured type: string custom_hostname: type: string data: $ref: '#/components/schemas/CfResponse' required: - status - custom_hostname - data UpdateCustomHostnameBody: type: object properties: custom_hostname: type: string required: - custom_hostname NetworkBanResponse: type: object properties: banned_ipv4_addresses: type: array items: type: string required: - banned_ipv4_addresses RemoveNetworkBanRequest: type: object properties: ipv4_addresses: type: array items: type: string required: - ipv4_addresses NetworkRestrictionsRequest: type: object properties: dbAllowedCidrs: type: array items: type: string dbAllowedCidrsV6: type: array items: type: string NetworkRestrictionsResponse: type: object properties: entitlement: enum: - disallowed - allowed type: string config: $ref: '#/components/schemas/NetworkRestrictionsRequest' old_config: $ref: '#/components/schemas/NetworkRestrictionsRequest' status: enum: - stored - applied type: string required: - entitlement - config - status PgsodiumConfigResponse: type: object properties: root_key: type: string required: - root_key UpdatePgsodiumConfigBody: type: object properties: root_key: type: string required: - root_key PostgrestConfigWithJWTSecretResponse: type: object properties: max_rows: type: integer db_pool: type: integer nullable: true description: >- If `null`, the value is automatically configured based on compute size. db_schema: type: string db_extra_search_path: type: string jwt_secret: type: string required: - max_rows - db_pool - db_schema - db_extra_search_path UpdatePostgrestConfigBody: type: object properties: max_rows: type: integer minimum: 0 maximum: 1000000 db_pool: type: integer minimum: 0 maximum: 1000 db_extra_search_path: type: string db_schema: type: string V1PostgrestConfigResponse: type: object properties: max_rows: type: integer db_pool: type: integer nullable: true description: >- If `null`, the value is automatically configured based on compute size. db_schema: type: string db_extra_search_path: type: string required: - max_rows - db_pool - db_schema - db_extra_search_path V1ProjectRefResponse: type: object properties: id: type: integer format: int64 ref: type: string name: type: string required: - id - ref - name SecretResponse: type: object properties: name: type: string value: type: string required: - name - value CreateSecretBody: type: object properties: name: type: string maxLength: 256 pattern: /^(?!SUPABASE_).*/ description: Secret name must not start with the SUPABASE_ prefix. example: string value: type: string maxLength: 24576 required: - name - value SslEnforcements: type: object properties: database: type: boolean required: - database SslEnforcementResponse: type: object properties: currentConfig: $ref: '#/components/schemas/SslEnforcements' appliedSuccessfully: type: boolean required: - currentConfig - appliedSuccessfully SslEnforcementRequest: type: object properties: requestedConfig: $ref: '#/components/schemas/SslEnforcements' required: - requestedConfig TypescriptResponse: type: object properties: types: type: string required: - types VanitySubdomainConfigResponse: type: object properties: status: enum: - not-used - custom-domain-used - active type: string custom_domain: type: string required: - status VanitySubdomainBody: type: object properties: vanity_subdomain: type: string required: - vanity_subdomain SubdomainAvailabilityResponse: type: object properties: available: type: boolean required: - available ActivateVanitySubdomainResponse: type: object properties: custom_domain: type: string required: - custom_domain UpgradeDatabaseBody: type: object properties: release_channel: $ref: '#/components/schemas/ReleaseChannel' target_version: type: string required: - release_channel - target_version ProjectUpgradeInitiateResponse: type: object properties: tracking_id: type: string required: - tracking_id ProjectVersion: type: object properties: postgres_version: $ref: '#/components/schemas/PostgresEngine' release_channel: $ref: '#/components/schemas/ReleaseChannel' app_version: type: string required: - postgres_version - release_channel - app_version ProjectUpgradeEligibilityResponse: type: object properties: current_app_version_release_channel: $ref: '#/components/schemas/ReleaseChannel' duration_estimate_hours: type: integer eligible: type: boolean current_app_version: type: string latest_app_version: type: string target_upgrade_versions: type: array items: $ref: '#/components/schemas/ProjectVersion' potential_breaking_changes: type: array items: type: string legacy_auth_custom_roles: type: array items: type: string extension_dependent_objects: type: array items: type: string required: - current_app_version_release_channel - duration_estimate_hours - eligible - current_app_version - latest_app_version - target_upgrade_versions - potential_breaking_changes - legacy_auth_custom_roles - extension_dependent_objects DatabaseUpgradeStatus: type: object properties: target_version: type: integer status: enum: - 0 - 1 - 2 type: integer initiated_at: type: string latest_status_at: type: string error: type: string enum: - 1_upgraded_instance_launch_failed - 2_volume_detachchment_from_upgraded_instance_failed - 3_volume_attachment_to_original_instance_failed - 4_data_upgrade_initiation_failed - 5_data_upgrade_completion_failed - 6_volume_detachchment_from_original_instance_failed - 7_volume_attachment_to_upgraded_instance_failed - 8_upgrade_completion_failed - 9_post_physical_backup_failed progress: type: string enum: - 0_requested - 1_started - 2_launched_upgraded_instance - 3_detached_volume_from_upgraded_instance - 4_attached_volume_to_original_instance - 5_initiated_data_upgrade - 6_completed_data_upgrade - 7_detached_volume_from_original_instance - 8_attached_volume_to_upgraded_instance - 9_completed_upgrade - 10_completed_post_physical_backup required: - target_version - status - initiated_at - latest_status_at DatabaseUpgradeStatusResponse: type: object properties: databaseUpgradeStatus: nullable: true allOf: - $ref: '#/components/schemas/DatabaseUpgradeStatus' required: - databaseUpgradeStatus ReadOnlyStatusResponse: type: object properties: enabled: type: boolean override_enabled: type: boolean override_active_until: type: string required: - enabled - override_enabled - override_active_until SetUpReadReplicaBody: type: object properties: read_replica_region: type: string enum: - us-east-1 - us-east-2 - us-west-1 - us-west-2 - ap-east-1 - ap-southeast-1 - ap-northeast-1 - ap-northeast-2 - ap-southeast-2 - eu-west-1 - eu-west-2 - eu-west-3 - eu-north-1 - eu-central-1 - eu-central-2 - ca-central-1 - ap-south-1 - sa-east-1 description: Region you want your read replica to reside in example: us-east-1 required: - read_replica_region RemoveReadReplicaBody: type: object properties: database_identifier: type: string required: - database_identifier AuthHealthResponse: type: object properties: name: type: string enum: - GoTrue required: - name RealtimeHealthResponse: type: object properties: connected_cluster: type: integer required: - connected_cluster V1ServiceHealthResponse: type: object properties: info: oneOf: - $ref: '#/components/schemas/AuthHealthResponse' - $ref: '#/components/schemas/RealtimeHealthResponse' name: enum: - auth - db - pooler - realtime - rest - storage type: string healthy: type: boolean status: enum: - COMING_UP - ACTIVE_HEALTHY - UNHEALTHY type: string error: type: string required: - name - healthy - status StorageFeatureImageTransformation: type: object properties: enabled: type: boolean required: - enabled StorageFeatureS3Protocol: type: object properties: enabled: type: boolean required: - enabled StorageFeatures: type: object properties: imageTransformation: $ref: '#/components/schemas/StorageFeatureImageTransformation' s3Protocol: $ref: '#/components/schemas/StorageFeatureS3Protocol' required: - imageTransformation - s3Protocol StorageConfigResponse: type: object properties: fileSizeLimit: type: integer format: int64 features: $ref: '#/components/schemas/StorageFeatures' required: - fileSizeLimit - features UpdateStorageConfigBody: type: object properties: fileSizeLimit: type: integer minimum: 0 maximum: 53687091200 format: int64 features: $ref: '#/components/schemas/StorageFeatures' PostgresConfigResponse: type: object properties: effective_cache_size: type: string logical_decoding_work_mem: type: string maintenance_work_mem: type: string track_activity_query_size: type: string max_connections: type: integer minimum: 1 maximum: 262143 max_locks_per_transaction: type: integer minimum: 10 maximum: 2147483640 max_parallel_maintenance_workers: type: integer minimum: 0 maximum: 1024 max_parallel_workers: type: integer minimum: 0 maximum: 1024 max_parallel_workers_per_gather: type: integer minimum: 0 maximum: 1024 max_replication_slots: type: integer max_slot_wal_keep_size: type: string max_standby_archive_delay: type: string max_standby_streaming_delay: type: string max_wal_size: type: string max_wal_senders: type: integer max_worker_processes: type: integer minimum: 0 maximum: 262143 shared_buffers: type: string statement_timeout: type: string track_commit_timestamp: type: boolean wal_keep_size: type: string wal_sender_timeout: type: string work_mem: type: string session_replication_role: enum: - origin - replica - local type: string UpdatePostgresConfigBody: type: object properties: effective_cache_size: type: string logical_decoding_work_mem: type: string maintenance_work_mem: type: string track_activity_query_size: type: string max_connections: type: integer minimum: 1 maximum: 262143 max_locks_per_transaction: type: integer minimum: 10 maximum: 2147483640 max_parallel_maintenance_workers: type: integer minimum: 0 maximum: 1024 max_parallel_workers: type: integer minimum: 0 maximum: 1024 max_parallel_workers_per_gather: type: integer minimum: 0 maximum: 1024 max_replication_slots: type: integer max_slot_wal_keep_size: type: string max_standby_archive_delay: type: string max_standby_streaming_delay: type: string max_wal_size: type: string max_wal_senders: type: integer max_worker_processes: type: integer minimum: 0 maximum: 262143 shared_buffers: type: string statement_timeout: type: string track_commit_timestamp: type: boolean wal_keep_size: type: string wal_sender_timeout: type: string work_mem: type: string restart_database: type: boolean session_replication_role: enum: - origin - replica - local type: string V1PgbouncerConfigResponse: type: object properties: pool_mode: type: string enum: - transaction - session - statement default_pool_size: type: number ignore_startup_parameters: type: string max_client_conn: type: number connection_string: type: string SupavisorConfigResponse: type: object properties: database_type: type: string enum: - PRIMARY - READ_REPLICA db_port: type: integer default_pool_size: type: integer nullable: true max_client_conn: type: integer nullable: true identifier: type: string is_using_scram_auth: type: boolean db_user: type: string db_host: type: string db_name: type: string connectionString: type: string pool_mode: enum: - transaction - session type: string required: - database_type - db_port - default_pool_size - max_client_conn - identifier - is_using_scram_auth - db_user - db_host - db_name - connectionString - pool_mode UpdateSupavisorConfigBody: type: object properties: default_pool_size: type: integer nullable: true minimum: 0 maximum: 1000 pool_mode: enum: - transaction - session type: string deprecated: true description: This field is deprecated and is ignored in this request UpdateSupavisorConfigResponse: type: object properties: default_pool_size: type: integer nullable: true pool_mode: enum: - transaction - session type: string required: - default_pool_size - pool_mode AuthConfigResponse: type: object properties: api_max_request_duration: type: integer nullable: true db_max_pool_size: type: integer nullable: true jwt_exp: type: integer nullable: true mailer_otp_exp: type: integer mailer_otp_length: type: integer nullable: true mfa_max_enrolled_factors: type: integer nullable: true mfa_phone_otp_length: type: integer mfa_phone_max_frequency: type: integer nullable: true password_min_length: type: integer nullable: true rate_limit_anonymous_users: type: integer nullable: true rate_limit_email_sent: type: integer nullable: true rate_limit_sms_sent: type: integer nullable: true rate_limit_token_refresh: type: integer nullable: true rate_limit_verify: type: integer nullable: true rate_limit_otp: type: integer nullable: true security_refresh_token_reuse_interval: type: integer nullable: true sessions_inactivity_timeout: type: integer nullable: true sessions_timebox: type: integer nullable: true sms_max_frequency: type: integer nullable: true sms_otp_exp: type: integer nullable: true sms_otp_length: type: integer smtp_max_frequency: type: integer nullable: true disable_signup: type: boolean nullable: true external_anonymous_users_enabled: type: boolean nullable: true external_apple_additional_client_ids: type: string nullable: true external_apple_client_id: type: string nullable: true external_apple_enabled: type: boolean nullable: true external_apple_secret: type: string nullable: true external_azure_client_id: type: string nullable: true external_azure_enabled: type: boolean nullable: true external_azure_secret: type: string nullable: true external_azure_url: type: string nullable: true external_bitbucket_client_id: type: string nullable: true external_bitbucket_enabled: type: boolean nullable: true external_bitbucket_secret: type: string nullable: true external_discord_client_id: type: string nullable: true external_discord_enabled: type: boolean nullable: true external_discord_secret: type: string nullable: true external_email_enabled: type: boolean nullable: true external_facebook_client_id: type: string nullable: true external_facebook_enabled: type: boolean nullable: true external_facebook_secret: type: string nullable: true external_figma_client_id: type: string nullable: true external_figma_enabled: type: boolean nullable: true external_figma_secret: type: string nullable: true external_github_client_id: type: string nullable: true external_github_enabled: type: boolean nullable: true external_github_secret: type: string nullable: true external_gitlab_client_id: type: string nullable: true external_gitlab_enabled: type: boolean nullable: true external_gitlab_secret: type: string nullable: true external_gitlab_url: type: string nullable: true external_google_additional_client_ids: type: string nullable: true external_google_client_id: type: string nullable: true external_google_enabled: type: boolean nullable: true external_google_secret: type: string nullable: true external_google_skip_nonce_check: type: boolean nullable: true external_kakao_client_id: type: string nullable: true external_kakao_enabled: type: boolean nullable: true external_kakao_secret: type: string nullable: true external_keycloak_client_id: type: string nullable: true external_keycloak_enabled: type: boolean nullable: true external_keycloak_secret: type: string nullable: true external_keycloak_url: type: string nullable: true external_linkedin_oidc_client_id: type: string nullable: true external_linkedin_oidc_enabled: type: boolean nullable: true external_linkedin_oidc_secret: type: string nullable: true external_slack_oidc_client_id: type: string nullable: true external_slack_oidc_enabled: type: boolean nullable: true external_slack_oidc_secret: type: string nullable: true external_notion_client_id: type: string nullable: true external_notion_enabled: type: boolean nullable: true external_notion_secret: type: string nullable: true external_phone_enabled: type: boolean nullable: true external_slack_client_id: type: string nullable: true external_slack_enabled: type: boolean nullable: true external_slack_secret: type: string nullable: true external_spotify_client_id: type: string nullable: true external_spotify_enabled: type: boolean nullable: true external_spotify_secret: type: string nullable: true external_twitch_client_id: type: string nullable: true external_twitch_enabled: type: boolean nullable: true external_twitch_secret: type: string nullable: true external_twitter_client_id: type: string nullable: true external_twitter_enabled: type: boolean nullable: true external_twitter_secret: type: string nullable: true external_workos_client_id: type: string nullable: true external_workos_enabled: type: boolean nullable: true external_workos_secret: type: string nullable: true external_workos_url: type: string nullable: true external_zoom_client_id: type: string nullable: true external_zoom_enabled: type: boolean nullable: true external_zoom_secret: type: string nullable: true hook_custom_access_token_enabled: type: boolean nullable: true hook_custom_access_token_uri: type: string nullable: true hook_custom_access_token_secrets: type: string nullable: true hook_mfa_verification_attempt_enabled: type: boolean nullable: true hook_mfa_verification_attempt_uri: type: string nullable: true hook_mfa_verification_attempt_secrets: type: string nullable: true hook_password_verification_attempt_enabled: type: boolean nullable: true hook_password_verification_attempt_uri: type: string nullable: true hook_password_verification_attempt_secrets: type: string nullable: true hook_send_sms_enabled: type: boolean nullable: true hook_send_sms_uri: type: string nullable: true hook_send_sms_secrets: type: string nullable: true hook_send_email_enabled: type: boolean nullable: true hook_send_email_uri: type: string nullable: true hook_send_email_secrets: type: string nullable: true mailer_allow_unverified_email_sign_ins: type: boolean nullable: true mailer_autoconfirm: type: boolean nullable: true mailer_secure_email_change_enabled: type: boolean nullable: true mailer_subjects_confirmation: type: string nullable: true mailer_subjects_email_change: type: string nullable: true mailer_subjects_invite: type: string nullable: true mailer_subjects_magic_link: type: string nullable: true mailer_subjects_reauthentication: type: string nullable: true mailer_subjects_recovery: type: string nullable: true mailer_templates_confirmation_content: type: string nullable: true mailer_templates_email_change_content: type: string nullable: true mailer_templates_invite_content: type: string nullable: true mailer_templates_magic_link_content: type: string nullable: true mailer_templates_reauthentication_content: type: string nullable: true mailer_templates_recovery_content: type: string nullable: true mfa_totp_enroll_enabled: type: boolean nullable: true mfa_totp_verify_enabled: type: boolean nullable: true mfa_phone_enroll_enabled: type: boolean nullable: true mfa_phone_verify_enabled: type: boolean nullable: true mfa_web_authn_enroll_enabled: type: boolean nullable: true mfa_web_authn_verify_enabled: type: boolean nullable: true mfa_phone_template: type: string nullable: true password_hibp_enabled: type: boolean nullable: true password_required_characters: type: string nullable: true refresh_token_rotation_enabled: type: boolean nullable: true saml_enabled: type: boolean nullable: true saml_external_url: type: string nullable: true saml_allow_encrypted_assertions: type: boolean nullable: true security_captcha_enabled: type: boolean nullable: true security_captcha_provider: type: string nullable: true security_captcha_secret: type: string nullable: true security_manual_linking_enabled: type: boolean nullable: true security_update_password_require_reauthentication: type: boolean nullable: true sessions_single_per_user: type: boolean nullable: true sessions_tags: type: string nullable: true site_url: type: string nullable: true sms_autoconfirm: type: boolean nullable: true sms_messagebird_access_key: type: string nullable: true sms_messagebird_originator: type: string nullable: true sms_provider: type: string nullable: true sms_template: type: string nullable: true sms_test_otp: type: string nullable: true sms_test_otp_valid_until: type: string nullable: true sms_textlocal_api_key: type: string nullable: true sms_textlocal_sender: type: string nullable: true sms_twilio_account_sid: type: string nullable: true sms_twilio_auth_token: type: string nullable: true sms_twilio_content_sid: type: string nullable: true sms_twilio_message_service_sid: type: string nullable: true sms_twilio_verify_account_sid: type: string nullable: true sms_twilio_verify_auth_token: type: string nullable: true sms_twilio_verify_message_service_sid: type: string nullable: true sms_vonage_api_key: type: string nullable: true sms_vonage_api_secret: type: string nullable: true sms_vonage_from: type: string nullable: true smtp_admin_email: type: string nullable: true smtp_host: type: string nullable: true smtp_pass: type: string nullable: true smtp_port: type: string nullable: true smtp_sender_name: type: string nullable: true smtp_user: type: string nullable: true uri_allow_list: type: string nullable: true required: - api_max_request_duration - db_max_pool_size - jwt_exp - mailer_otp_exp - mailer_otp_length - mfa_max_enrolled_factors - mfa_phone_otp_length - mfa_phone_max_frequency - password_min_length - rate_limit_anonymous_users - rate_limit_email_sent - rate_limit_sms_sent - rate_limit_token_refresh - rate_limit_verify - rate_limit_otp - security_refresh_token_reuse_interval - sessions_inactivity_timeout - sessions_timebox - sms_max_frequency - sms_otp_exp - sms_otp_length - smtp_max_frequency - disable_signup - external_anonymous_users_enabled - external_apple_additional_client_ids - external_apple_client_id - external_apple_enabled - external_apple_secret - external_azure_client_id - external_azure_enabled - external_azure_secret - external_azure_url - external_bitbucket_client_id - external_bitbucket_enabled - external_bitbucket_secret - external_discord_client_id - external_discord_enabled - external_discord_secret - external_email_enabled - external_facebook_client_id - external_facebook_enabled - external_facebook_secret - external_figma_client_id - external_figma_enabled - external_figma_secret - external_github_client_id - external_github_enabled - external_github_secret - external_gitlab_client_id - external_gitlab_enabled - external_gitlab_secret - external_gitlab_url - external_google_additional_client_ids - external_google_client_id - external_google_enabled - external_google_secret - external_google_skip_nonce_check - external_kakao_client_id - external_kakao_enabled - external_kakao_secret - external_keycloak_client_id - external_keycloak_enabled - external_keycloak_secret - external_keycloak_url - external_linkedin_oidc_client_id - external_linkedin_oidc_enabled - external_linkedin_oidc_secret - external_slack_oidc_client_id - external_slack_oidc_enabled - external_slack_oidc_secret - external_notion_client_id - external_notion_enabled - external_notion_secret - external_phone_enabled - external_slack_client_id - external_slack_enabled - external_slack_secret - external_spotify_client_id - external_spotify_enabled - external_spotify_secret - external_twitch_client_id - external_twitch_enabled - external_twitch_secret - external_twitter_client_id - external_twitter_enabled - external_twitter_secret - external_workos_client_id - external_workos_enabled - external_workos_secret - external_workos_url - external_zoom_client_id - external_zoom_enabled - external_zoom_secret - hook_custom_access_token_enabled - hook_custom_access_token_uri - hook_custom_access_token_secrets - hook_mfa_verification_attempt_enabled - hook_mfa_verification_attempt_uri - hook_mfa_verification_attempt_secrets - hook_password_verification_attempt_enabled - hook_password_verification_attempt_uri - hook_password_verification_attempt_secrets - hook_send_sms_enabled - hook_send_sms_uri - hook_send_sms_secrets - hook_send_email_enabled - hook_send_email_uri - hook_send_email_secrets - mailer_allow_unverified_email_sign_ins - mailer_autoconfirm - mailer_secure_email_change_enabled - mailer_subjects_confirmation - mailer_subjects_email_change - mailer_subjects_invite - mailer_subjects_magic_link - mailer_subjects_reauthentication - mailer_subjects_recovery - mailer_templates_confirmation_content - mailer_templates_email_change_content - mailer_templates_invite_content - mailer_templates_magic_link_content - mailer_templates_reauthentication_content - mailer_templates_recovery_content - mfa_totp_enroll_enabled - mfa_totp_verify_enabled - mfa_phone_enroll_enabled - mfa_phone_verify_enabled - mfa_web_authn_enroll_enabled - mfa_web_authn_verify_enabled - mfa_phone_template - password_hibp_enabled - password_required_characters - refresh_token_rotation_enabled - saml_enabled - saml_external_url - saml_allow_encrypted_assertions - security_captcha_enabled - security_captcha_provider - security_captcha_secret - security_manual_linking_enabled - security_update_password_require_reauthentication - sessions_single_per_user - sessions_tags - site_url - sms_autoconfirm - sms_messagebird_access_key - sms_messagebird_originator - sms_provider - sms_template - sms_test_otp - sms_test_otp_valid_until - sms_textlocal_api_key - sms_textlocal_sender - sms_twilio_account_sid - sms_twilio_auth_token - sms_twilio_content_sid - sms_twilio_message_service_sid - sms_twilio_verify_account_sid - sms_twilio_verify_auth_token - sms_twilio_verify_message_service_sid - sms_vonage_api_key - sms_vonage_api_secret - sms_vonage_from - smtp_admin_email - smtp_host - smtp_pass - smtp_port - smtp_sender_name - smtp_user - uri_allow_list UpdateAuthConfigBody: type: object properties: jwt_exp: type: integer minimum: 0 maximum: 604800 smtp_max_frequency: type: integer minimum: 0 maximum: 32767 mfa_max_enrolled_factors: type: integer minimum: 0 maximum: 2147483647 sessions_timebox: type: integer minimum: 0 sessions_inactivity_timeout: type: integer minimum: 0 rate_limit_anonymous_users: type: integer minimum: 1 maximum: 2147483647 rate_limit_email_sent: type: integer minimum: 1 maximum: 2147483647 rate_limit_sms_sent: type: integer minimum: 1 maximum: 2147483647 rate_limit_verify: type: integer minimum: 1 maximum: 2147483647 rate_limit_token_refresh: type: integer minimum: 1 maximum: 2147483647 rate_limit_otp: type: integer minimum: 1 maximum: 2147483647 password_min_length: type: integer minimum: 6 maximum: 32767 security_refresh_token_reuse_interval: type: integer minimum: 0 maximum: 2147483647 mailer_otp_exp: type: integer minimum: 0 maximum: 2147483647 mailer_otp_length: type: integer minimum: 6 maximum: 10 sms_max_frequency: type: integer minimum: 0 maximum: 32767 sms_otp_exp: type: integer minimum: 0 maximum: 2147483647 sms_otp_length: type: integer minimum: 0 maximum: 32767 db_max_pool_size: type: integer api_max_request_duration: type: integer mfa_phone_max_frequency: type: integer minimum: 0 maximum: 32767 mfa_phone_otp_length: type: integer minimum: 0 maximum: 32767 site_url: type: string pattern: /^[^,]+$/ disable_signup: type: boolean smtp_admin_email: type: string smtp_host: type: string smtp_port: type: string smtp_user: type: string smtp_pass: type: string smtp_sender_name: type: string mailer_allow_unverified_email_sign_ins: type: boolean mailer_autoconfirm: type: boolean mailer_subjects_invite: type: string mailer_subjects_confirmation: type: string mailer_subjects_recovery: type: string mailer_subjects_email_change: type: string mailer_subjects_magic_link: type: string mailer_subjects_reauthentication: type: string mailer_templates_invite_content: type: string mailer_templates_confirmation_content: type: string mailer_templates_recovery_content: type: string mailer_templates_email_change_content: type: string mailer_templates_magic_link_content: type: string mailer_templates_reauthentication_content: type: string uri_allow_list: type: string external_anonymous_users_enabled: type: boolean external_email_enabled: type: boolean external_phone_enabled: type: boolean saml_enabled: type: boolean saml_external_url: type: string pattern: /^[^,]+$/ security_captcha_enabled: type: boolean security_captcha_provider: type: string security_captcha_secret: type: string sessions_single_per_user: type: boolean sessions_tags: type: string pattern: /^\s*([a-z0-9_-]+(\s*,+\s*)?)*\s*$/i mailer_secure_email_change_enabled: type: boolean refresh_token_rotation_enabled: type: boolean password_hibp_enabled: type: boolean password_required_characters: type: string enum: - abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ:0123456789 - abcdefghijklmnopqrstuvwxyz:ABCDEFGHIJKLMNOPQRSTUVWXYZ:0123456789 - abcdefghijklmnopqrstuvwxyz:ABCDEFGHIJKLMNOPQRSTUVWXYZ:0123456789:!@#$%^&*()_+-=[]{};'\\\\:\"|<>?,./`~ - '' security_manual_linking_enabled: type: boolean security_update_password_require_reauthentication: type: boolean sms_autoconfirm: type: boolean sms_provider: type: string sms_messagebird_access_key: type: string sms_messagebird_originator: type: string sms_test_otp: type: string pattern: /^([0-9]{1,15}=[0-9]+,?)*$/ sms_test_otp_valid_until: type: string sms_textlocal_api_key: type: string sms_textlocal_sender: type: string sms_twilio_account_sid: type: string sms_twilio_auth_token: type: string sms_twilio_content_sid: type: string sms_twilio_message_service_sid: type: string sms_twilio_verify_account_sid: type: string sms_twilio_verify_auth_token: type: string sms_twilio_verify_message_service_sid: type: string sms_vonage_api_key: type: string sms_vonage_api_secret: type: string sms_vonage_from: type: string sms_template: type: string hook_mfa_verification_attempt_enabled: type: boolean hook_mfa_verification_attempt_uri: type: string hook_mfa_verification_attempt_secrets: type: string hook_password_verification_attempt_enabled: type: boolean hook_password_verification_attempt_uri: type: string hook_password_verification_attempt_secrets: type: string hook_custom_access_token_enabled: type: boolean hook_custom_access_token_uri: type: string hook_custom_access_token_secrets: type: string hook_send_sms_enabled: type: boolean hook_send_sms_uri: type: string hook_send_sms_secrets: type: string hook_send_email_enabled: type: boolean hook_send_email_uri: type: string hook_send_email_secrets: type: string external_apple_enabled: type: boolean external_apple_client_id: type: string external_apple_secret: type: string external_apple_additional_client_ids: type: string external_azure_enabled: type: boolean external_azure_client_id: type: string external_azure_secret: type: string external_azure_url: type: string external_bitbucket_enabled: type: boolean external_bitbucket_client_id: type: string external_bitbucket_secret: type: string external_discord_enabled: type: boolean external_discord_client_id: type: string external_discord_secret: type: string external_facebook_enabled: type: boolean external_facebook_client_id: type: string external_facebook_secret: type: string external_figma_enabled: type: boolean external_figma_client_id: type: string external_figma_secret: type: string external_github_enabled: type: boolean external_github_client_id: type: string external_github_secret: type: string external_gitlab_enabled: type: boolean external_gitlab_client_id: type: string external_gitlab_secret: type: string external_gitlab_url: type: string external_google_enabled: type: boolean external_google_client_id: type: string external_google_secret: type: string external_google_additional_client_ids: type: string external_google_skip_nonce_check: type: boolean external_kakao_enabled: type: boolean external_kakao_client_id: type: string external_kakao_secret: type: string external_keycloak_enabled: type: boolean external_keycloak_client_id: type: string external_keycloak_secret: type: string external_keycloak_url: type: string external_linkedin_oidc_enabled: type: boolean external_linkedin_oidc_client_id: type: string external_linkedin_oidc_secret: type: string external_slack_oidc_enabled: type: boolean external_slack_oidc_client_id: type: string external_slack_oidc_secret: type: string external_notion_enabled: type: boolean external_notion_client_id: type: string external_notion_secret: type: string external_slack_enabled: type: boolean external_slack_client_id: type: string external_slack_secret: type: string external_spotify_enabled: type: boolean external_spotify_client_id: type: string external_spotify_secret: type: string external_twitch_enabled: type: boolean external_twitch_client_id: type: string external_twitch_secret: type: string external_twitter_enabled: type: boolean external_twitter_client_id: type: string external_twitter_secret: type: string external_workos_enabled: type: boolean external_workos_client_id: type: string external_workos_secret: type: string external_workos_url: type: string external_zoom_enabled: type: boolean external_zoom_client_id: type: string external_zoom_secret: type: string mfa_totp_enroll_enabled: type: boolean mfa_totp_verify_enabled: type: boolean mfa_web_authn_enroll_enabled: type: boolean mfa_web_authn_verify_enabled: type: boolean mfa_phone_enroll_enabled: type: boolean mfa_phone_verify_enabled: type: boolean mfa_phone_template: type: string CreateThirdPartyAuthBody: type: object properties: oidc_issuer_url: type: string jwks_url: type: string custom_jwks: type: object ThirdPartyAuth: type: object properties: id: type: string type: type: string oidc_issuer_url: type: string nullable: true jwks_url: type: string nullable: true custom_jwks: type: object nullable: true resolved_jwks: type: object nullable: true inserted_at: type: string updated_at: type: string resolved_at: type: string nullable: true required: - id - type - inserted_at - updated_at ProjectAvailableRestoreVersion: type: object properties: version: type: string release_channel: type: string enum: - internal - alpha - beta - ga - withdrawn - preview postgres_engine: type: string enum: - '13' - '14' - '15' - '17' - 17-oriole required: - version - release_channel - postgres_engine GetProjectAvailableRestoreVersionsResponse: type: object properties: available_versions: type: array items: $ref: '#/components/schemas/ProjectAvailableRestoreVersion' required: - available_versions RestoreProjectBodyDto: type: object properties: {} hideDefinitions: - release_channel - postgres_engine V1AnalyticsResponse: type: object properties: error: oneOf: - properties: code: type: number errors: type: array items: properties: domain: type: string location: type: string locationType: type: string message: type: string reason: type: string message: type: string status: type: string - type: string result: type: array items: type: object V1RunQueryBody: type: object properties: query: type: string required: - query GetProjectDbMetadataResponseDto: type: object properties: databases: type: array items: type: object properties: name: type: string schemas: type: array items: type: object properties: name: type: string required: - name additionalProperties: true required: - name - schemas additionalProperties: true required: - databases FunctionResponse: type: object properties: version: type: integer created_at: type: integer format: int64 updated_at: type: integer format: int64 id: type: string slug: type: string name: type: string status: enum: - ACTIVE - REMOVED - THROTTLED type: string verify_jwt: type: boolean import_map: type: boolean entrypoint_path: type: string import_map_path: type: string compute_multiplier: type: number required: - version - created_at - updated_at - id - slug - name - status V1CreateFunctionBody: type: object properties: slug: type: string pattern: /^[A-Za-z0-9_-]+$/ name: type: string body: type: string verify_jwt: type: boolean compute_multiplier: type: number minimum: 1 maximum: 4 required: - slug - name - body BulkUpdateFunctionBody: type: object properties: version: type: integer created_at: type: integer format: int64 id: type: string slug: type: string name: type: string status: enum: - ACTIVE - REMOVED - THROTTLED type: string verify_jwt: type: boolean import_map: type: boolean entrypoint_path: type: string import_map_path: type: string required: - version - id - slug - name - status BulkUpdateFunctionResponse: type: object properties: functions: type: array items: $ref: '#/components/schemas/FunctionResponse' required: - functions FunctionDeployMetadata: type: object properties: entrypoint_path: type: string import_map_path: type: string static_patterns: type: array items: type: string verify_jwt: type: boolean name: type: string required: - entrypoint_path FunctionDeployBody: type: object properties: file: type: array items: type: string format: binary metadata: $ref: '#/components/schemas/FunctionDeployMetadata' required: - file - metadata DeployFunctionResponse: type: object properties: version: type: integer created_at: type: integer format: int64 updated_at: type: integer format: int64 id: type: string slug: type: string name: type: string status: enum: - ACTIVE - REMOVED - THROTTLED type: string verify_jwt: type: boolean import_map: type: boolean entrypoint_path: type: string import_map_path: type: string compute_multiplier: type: number required: - version - id - slug - name - status FunctionSlugResponse: type: object properties: version: type: integer created_at: type: integer format: int64 updated_at: type: integer format: int64 id: type: string slug: type: string name: type: string status: enum: - ACTIVE - REMOVED - THROTTLED type: string verify_jwt: type: boolean import_map: type: boolean entrypoint_path: type: string import_map_path: type: string compute_multiplier: type: number required: - version - created_at - updated_at - id - slug - name - status V1UpdateFunctionBody: type: object properties: name: type: string body: type: string verify_jwt: type: boolean compute_multiplier: type: number minimum: 1 maximum: 4 V1StorageBucketResponse: type: object properties: id: type: string name: type: string owner: type: string created_at: type: string updated_at: type: string public: type: boolean required: - id - name - owner - created_at - updated_at - public AttributeValue: type: object properties: default: oneOf: - type: object - type: number - type: string - type: boolean name: type: string names: type: array items: type: string array: type: boolean AttributeMapping: type: object properties: keys: type: object additionalProperties: $ref: '#/components/schemas/AttributeValue' required: - keys CreateProviderBody: type: object properties: type: type: string enum: - saml description: What type of provider will be created metadata_xml: type: string metadata_url: type: string domains: type: array items: type: string attribute_mapping: $ref: '#/components/schemas/AttributeMapping' required: - type SamlDescriptor: type: object properties: id: type: string entity_id: type: string metadata_url: type: string metadata_xml: type: string attribute_mapping: $ref: '#/components/schemas/AttributeMapping' required: - id - entity_id Domain: type: object properties: id: type: string domain: type: string created_at: type: string updated_at: type: string required: - id CreateProviderResponse: type: object properties: id: type: string saml: $ref: '#/components/schemas/SamlDescriptor' domains: type: array items: $ref: '#/components/schemas/Domain' created_at: type: string updated_at: type: string required: - id Provider: type: object properties: id: type: string saml: $ref: '#/components/schemas/SamlDescriptor' domains: type: array items: $ref: '#/components/schemas/Domain' created_at: type: string updated_at: type: string required: - id ListProvidersResponse: type: object properties: items: type: array items: $ref: '#/components/schemas/Provider' required: - items GetProviderResponse: type: object properties: id: type: string saml: $ref: '#/components/schemas/SamlDescriptor' domains: type: array items: $ref: '#/components/schemas/Domain' created_at: type: string updated_at: type: string required: - id UpdateProviderBody: type: object properties: metadata_xml: type: string metadata_url: type: string domains: type: array items: type: string attribute_mapping: $ref: '#/components/schemas/AttributeMapping' UpdateProviderResponse: type: object properties: id: type: string saml: $ref: '#/components/schemas/SamlDescriptor' domains: type: array items: $ref: '#/components/schemas/Domain' created_at: type: string updated_at: type: string required: - id DeleteProviderResponse: type: object properties: id: type: string saml: $ref: '#/components/schemas/SamlDescriptor' domains: type: array items: $ref: '#/components/schemas/Domain' created_at: type: string updated_at: type: string required: - id V1Backup: type: object properties: status: type: string enum: - COMPLETED - FAILED - PENDING - REMOVED - ARCHIVED - CANCELLED is_physical_backup: type: boolean inserted_at: type: string required: - status - is_physical_backup - inserted_at V1PhysicalBackup: type: object properties: earliest_physical_backup_date_unix: type: integer format: int64 latest_physical_backup_date_unix: type: integer format: int64 V1BackupsResponse: type: object properties: region: type: string walg_enabled: type: boolean pitr_enabled: type: boolean backups: type: array items: $ref: '#/components/schemas/V1Backup' physical_backup_data: $ref: '#/components/schemas/V1PhysicalBackup' required: - region - walg_enabled - pitr_enabled - backups - physical_backup_data V1RestorePitrBody: type: object properties: recovery_time_target_unix: type: integer minimum: 0 format: int64 required: - recovery_time_target_unix V1OrganizationMemberResponse: type: object properties: user_id: type: string user_name: type: string email: type: string role_name: type: string mfa_enabled: type: boolean required: - user_id - user_name - role_name - mfa_enabled BillingPlanId: type: string enum: - free - pro - team - enterprise V1OrganizationSlugResponse: type: object properties: plan: $ref: '#/components/schemas/BillingPlanId' opt_in_tags: type: array items: type: string enum: - AI_SQL_GENERATOR_OPT_IN allowed_release_channels: type: array items: $ref: '#/components/schemas/ReleaseChannel' id: type: string name: type: string required: - opt_in_tags - allowed_release_channels - id - name