Files
supabase/apps/docs/spec/api_v1_openapi.json
Katerina Skroumpelou a5fc052704 docs: update js client libs docs (#38595)
* docs: update js client libs docs

* chore: update test snapshot for specs

* ci(docs): run tests on spec changes

---------

Co-authored-by: Charis Lam <26616127+charislam@users.noreply.github.com>
2025-09-11 12:14:27 +01:00

8054 lines
285 KiB
JSON

{
"openapi": "3.0.0",
"paths": {
"/v1/branches/{branch_id_or_ref}": {
"get": {
"description": "Fetches configurations of the specified database branch",
"operationId": "v1-get-a-branch-config",
"parameters": [
{
"name": "branch_id_or_ref",
"required": true,
"in": "path",
"description": "Branch ID",
"schema": {
"oneOf": [
{
"type": "string",
"minLength": 20,
"maxLength": 20,
"pattern": "^[a-z]+$",
"description": "Project ref"
},
{ "type": "string", "format": "uuid", "deprecated": true }
]
}
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": { "$ref": "#/components/schemas/BranchDetailResponse" }
}
}
},
"500": { "description": "Failed to retrieve database branch" }
},
"security": [{ "bearer": [] }],
"summary": "Get database branch config",
"tags": ["Environments"]
},
"patch": {
"description": "Updates the configuration of the specified database branch",
"operationId": "v1-update-a-branch-config",
"parameters": [
{
"name": "branch_id_or_ref",
"required": true,
"in": "path",
"description": "Branch ID",
"schema": {
"oneOf": [
{
"type": "string",
"minLength": 20,
"maxLength": 20,
"pattern": "^[a-z]+$",
"description": "Project ref"
},
{ "type": "string", "format": "uuid", "deprecated": true }
]
}
}
],
"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" }
},
"security": [{ "bearer": [] }],
"summary": "Update database branch config",
"tags": ["Environments"]
},
"delete": {
"description": "Deletes the specified database branch",
"operationId": "v1-delete-a-branch",
"parameters": [
{
"name": "branch_id_or_ref",
"required": true,
"in": "path",
"description": "Branch ID",
"schema": {
"oneOf": [
{
"type": "string",
"minLength": 20,
"maxLength": 20,
"pattern": "^[a-z]+$",
"description": "Project ref"
},
{ "type": "string", "format": "uuid", "deprecated": true }
]
}
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": { "$ref": "#/components/schemas/BranchDeleteResponse" }
}
}
},
"500": { "description": "Failed to delete database branch" }
},
"security": [{ "bearer": [] }],
"summary": "Delete a database branch",
"tags": ["Environments"]
}
},
"/v1/branches/{branch_id_or_ref}/push": {
"post": {
"description": "Pushes the specified database branch",
"operationId": "v1-push-a-branch",
"parameters": [
{
"name": "branch_id_or_ref",
"required": true,
"in": "path",
"description": "Branch ID",
"schema": {
"oneOf": [
{
"type": "string",
"minLength": 20,
"maxLength": 20,
"pattern": "^[a-z]+$",
"description": "Project ref"
},
{ "type": "string", "format": "uuid", "deprecated": true }
]
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": { "schema": { "$ref": "#/components/schemas/BranchActionBody" } }
}
},
"responses": {
"201": {
"description": "",
"content": {
"application/json": {
"schema": { "$ref": "#/components/schemas/BranchUpdateResponse" }
}
}
},
"500": { "description": "Failed to push database branch" }
},
"security": [{ "bearer": [] }],
"summary": "Pushes a database branch",
"tags": ["Environments"]
}
},
"/v1/branches/{branch_id_or_ref}/merge": {
"post": {
"description": "Merges the specified database branch",
"operationId": "v1-merge-a-branch",
"parameters": [
{
"name": "branch_id_or_ref",
"required": true,
"in": "path",
"description": "Branch ID",
"schema": {
"oneOf": [
{
"type": "string",
"minLength": 20,
"maxLength": 20,
"pattern": "^[a-z]+$",
"description": "Project ref"
},
{ "type": "string", "format": "uuid", "deprecated": true }
]
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": { "schema": { "$ref": "#/components/schemas/BranchActionBody" } }
}
},
"responses": {
"201": {
"description": "",
"content": {
"application/json": {
"schema": { "$ref": "#/components/schemas/BranchUpdateResponse" }
}
}
},
"500": { "description": "Failed to merge database branch" }
},
"security": [{ "bearer": [] }],
"summary": "Merges a database branch",
"tags": ["Environments"]
}
},
"/v1/branches/{branch_id_or_ref}/reset": {
"post": {
"description": "Resets the specified database branch",
"operationId": "v1-reset-a-branch",
"parameters": [
{
"name": "branch_id_or_ref",
"required": true,
"in": "path",
"description": "Branch ID",
"schema": {
"oneOf": [
{
"type": "string",
"minLength": 20,
"maxLength": 20,
"pattern": "^[a-z]+$",
"description": "Project ref"
},
{ "type": "string", "format": "uuid", "deprecated": true }
]
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": { "schema": { "$ref": "#/components/schemas/BranchActionBody" } }
}
},
"responses": {
"201": {
"description": "",
"content": {
"application/json": {
"schema": { "$ref": "#/components/schemas/BranchUpdateResponse" }
}
}
},
"500": { "description": "Failed to reset database branch" }
},
"security": [{ "bearer": [] }],
"summary": "Resets a database branch",
"tags": ["Environments"]
}
},
"/v1/branches/{branch_id_or_ref}/diff": {
"get": {
"description": "Diffs the specified database branch",
"operationId": "v1-diff-a-branch",
"parameters": [
{
"name": "branch_id_or_ref",
"required": true,
"in": "path",
"description": "Branch ID",
"schema": {
"oneOf": [
{
"type": "string",
"minLength": 20,
"maxLength": 20,
"pattern": "^[a-z]+$",
"description": "Project ref"
},
{ "type": "string", "format": "uuid", "deprecated": true }
]
}
},
{
"name": "included_schemas",
"required": false,
"in": "query",
"schema": { "type": "string" }
}
],
"responses": {
"200": {
"content": { "text/plain": { "schema": { "type": "string" } } },
"description": ""
},
"500": { "description": "Failed to diff database branch" }
},
"security": [{ "bearer": [] }],
"summary": "[Beta] Diffs a database branch",
"tags": ["Environments"]
}
},
"/v1/projects": {
"get": {
"description": "Returns a list of all projects you've previously created.",
"operationId": "v1-list-all-projects",
"parameters": [],
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": { "$ref": "#/components/schemas/V1ProjectWithDatabaseResponse" }
}
}
}
}
},
"security": [{ "bearer": [] }],
"summary": "List all projects",
"tags": ["Projects"]
},
"post": {
"operationId": "v1-create-a-project",
"parameters": [],
"requestBody": {
"required": true,
"content": {
"application/json": { "schema": { "$ref": "#/components/schemas/V1CreateProjectBody" } }
}
},
"responses": {
"201": {
"description": "",
"content": {
"application/json": { "schema": { "$ref": "#/components/schemas/V1ProjectResponse" } }
}
}
},
"security": [{ "bearer": [] }],
"summary": "Create a project",
"tags": ["Projects"]
}
},
"/v1/organizations": {
"get": {
"description": "Returns a list of organizations that you currently belong to.",
"operationId": "v1-list-all-organizations",
"parameters": [],
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": { "$ref": "#/components/schemas/OrganizationResponseV1" }
}
}
}
},
"500": { "description": "Unexpected error listing organizations" }
},
"security": [{ "bearer": [] }],
"summary": "List all organizations",
"tags": ["Organizations"]
},
"post": {
"operationId": "v1-create-an-organization",
"parameters": [],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": { "$ref": "#/components/schemas/CreateOrganizationV1" }
}
}
},
"responses": {
"201": {
"description": "",
"content": {
"application/json": {
"schema": { "$ref": "#/components/schemas/OrganizationResponseV1" }
}
}
},
"500": { "description": "Unexpected error creating an organization" }
},
"security": [{ "bearer": [] }],
"summary": "Create an organization",
"tags": ["Organizations"]
}
},
"/v1/oauth/authorize": {
"get": {
"operationId": "v1-authorize-user",
"parameters": [
{
"name": "client_id",
"required": true,
"in": "query",
"schema": { "format": "uuid", "type": "string" }
},
{
"name": "response_type",
"required": true,
"in": "query",
"schema": { "type": "string", "enum": ["code", "token", "id_token token"] }
},
{
"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": { "type": "string", "enum": ["plain", "sha256", "S256"] }
},
{
"name": "organization_slug",
"required": false,
"in": "query",
"description": "Organization slug",
"schema": { "pattern": "^[\\w-]+$", "type": "string" }
},
{
"name": "resource",
"required": false,
"in": "query",
"description": "Resource indicator for MCP (Model Context Protocol) clients",
"schema": { "type": "string", "enum": ["https://api.supabase.io/mcp"] }
}
],
"responses": { "204": { "description": "" } },
"security": [{ "oauth2": ["read"] }],
"summary": "[Beta] Authorize user through oauth",
"tags": ["OAuth"]
}
},
"/v1/oauth/token": {
"post": {
"operationId": "v1-exchange-oauth-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" }
}
}
}
},
"security": [{ "oauth2": ["write"] }],
"summary": "[Beta] Exchange auth code for user's access and refresh token",
"tags": ["OAuth"]
}
},
"/v1/oauth/revoke": {
"post": {
"operationId": "v1-revoke-token",
"parameters": [],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": { "$ref": "#/components/schemas/OAuthRevokeTokenBody" }
}
}
},
"responses": { "204": { "description": "" } },
"security": [{ "oauth2": ["write"] }],
"summary": "[Beta] Revoke oauth app authorization and it's corresponding tokens",
"tags": ["OAuth"]
}
},
"/v1/oauth/authorize/project-claim": {
"get": {
"description": "Initiates the OAuth authorization flow for the specified provider. After successful authentication, the user can claim ownership of the specified project.",
"operationId": "v1-oauth-authorize-project-claim",
"parameters": [
{
"name": "project_ref",
"required": true,
"in": "query",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
},
{
"name": "client_id",
"required": true,
"in": "query",
"schema": { "format": "uuid", "type": "string" }
},
{
"name": "response_type",
"required": true,
"in": "query",
"schema": { "type": "string", "enum": ["code", "token", "id_token token"] }
},
{
"name": "redirect_uri",
"required": true,
"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": { "type": "string", "enum": ["plain", "sha256", "S256"] }
}
],
"responses": { "204": { "description": "" } },
"security": [{ "bearer": [] }],
"summary": "Authorize user through oauth and claim a project",
"tags": ["OAuth"],
"x-internal": true
}
},
"/v1/snippets": {
"get": {
"operationId": "v1-list-all-snippets",
"parameters": [
{
"name": "project_ref",
"required": false,
"in": "query",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
},
{ "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" }
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json": { "schema": { "$ref": "#/components/schemas/SnippetList" } }
}
},
"500": { "description": "Failed to list user's SQL snippets" }
},
"security": [{ "bearer": [] }],
"summary": "Lists SQL snippets for the logged in user",
"tags": ["Database"]
}
},
"/v1/snippets/{id}": {
"get": {
"operationId": "v1-get-a-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" }
},
"security": [{ "bearer": [] }],
"summary": "Gets a specific SQL snippet",
"tags": ["Database"]
}
},
"/v1/projects/{ref}/api-keys": {
"get": {
"operationId": "v1-get-project-api-keys",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
},
{
"name": "reveal",
"required": false,
"in": "query",
"description": "Boolean string, true or false",
"schema": { "type": "boolean" }
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": { "$ref": "#/components/schemas/ApiKeyResponse" }
}
}
}
},
"403": { "description": "" }
},
"security": [{ "bearer": [] }],
"summary": "Get project api keys",
"tags": ["Secrets"]
},
"post": {
"operationId": "v1-create-project-api-key",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
},
{
"name": "reveal",
"required": false,
"in": "query",
"description": "Boolean string, true or false",
"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" } }
}
},
"403": { "description": "" }
},
"security": [{ "bearer": [] }],
"summary": "Creates a new API key for the project",
"tags": ["Secrets"]
}
},
"/v1/projects/{ref}/api-keys/legacy": {
"get": {
"operationId": "v1-get-project-legacy-api-keys",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": { "$ref": "#/components/schemas/LegacyApiKeysResponse" }
}
}
},
"403": { "description": "" }
},
"security": [{ "bearer": [] }],
"summary": "Check whether JWT based legacy (anon, service_role) API keys are enabled. This API endpoint will be removed in the future, check for HTTP 404 Not Found.",
"tags": ["Secrets"]
},
"put": {
"operationId": "v1-update-project-legacy-api-keys",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
},
{
"name": "enabled",
"required": true,
"in": "query",
"description": "Boolean string, true or false",
"schema": { "type": "boolean" }
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": { "$ref": "#/components/schemas/LegacyApiKeysResponse" }
}
}
},
"403": { "description": "" }
},
"security": [{ "bearer": [] }],
"summary": "Disable or re-enable JWT based legacy (anon, service_role) API keys. This API endpoint will be removed in the future, check for HTTP 404 Not Found.",
"tags": ["Secrets"]
}
},
"/v1/projects/{ref}/api-keys/{id}": {
"patch": {
"operationId": "v1-update-project-api-key",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
},
{
"name": "id",
"required": true,
"in": "path",
"schema": { "format": "uuid", "type": "string" }
},
{
"name": "reveal",
"required": false,
"in": "query",
"description": "Boolean string, true or false",
"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" } }
}
},
"403": { "description": "" }
},
"security": [{ "bearer": [] }],
"summary": "Updates an API key for the project",
"tags": ["Secrets"]
},
"get": {
"operationId": "v1-get-project-api-key",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
},
{
"name": "id",
"required": true,
"in": "path",
"schema": { "format": "uuid", "type": "string" }
},
{
"name": "reveal",
"required": false,
"in": "query",
"description": "Boolean string, true or false",
"schema": { "type": "boolean" }
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json": { "schema": { "$ref": "#/components/schemas/ApiKeyResponse" } }
}
},
"403": { "description": "" }
},
"security": [{ "bearer": [] }],
"summary": "Get API key",
"tags": ["Secrets"]
},
"delete": {
"operationId": "v1-delete-project-api-key",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
},
{
"name": "id",
"required": true,
"in": "path",
"schema": { "format": "uuid", "type": "string" }
},
{
"name": "reveal",
"required": false,
"in": "query",
"description": "Boolean string, true or false",
"schema": { "type": "boolean" }
},
{
"name": "was_compromised",
"required": false,
"in": "query",
"description": "Boolean string, true or false",
"schema": { "type": "boolean" }
},
{ "name": "reason", "required": false, "in": "query", "schema": { "type": "string" } }
],
"responses": {
"200": {
"description": "",
"content": {
"application/json": { "schema": { "$ref": "#/components/schemas/ApiKeyResponse" } }
}
},
"403": { "description": "" }
},
"security": [{ "bearer": [] }],
"summary": "Deletes an API key for the project",
"tags": ["Secrets"]
}
},
"/v1/projects/{ref}/branches": {
"get": {
"description": "Returns all database branches of the specified project.",
"operationId": "v1-list-all-branches",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": { "$ref": "#/components/schemas/BranchResponse" }
}
}
}
},
"403": { "description": "" },
"500": { "description": "Failed to retrieve database branches" }
},
"security": [{ "bearer": [] }],
"summary": "List all database branches",
"tags": ["Environments"]
},
"post": {
"description": "Creates a database branch from the specified project.",
"operationId": "v1-create-a-branch",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
}
],
"requestBody": {
"required": true,
"content": {
"application/json": { "schema": { "$ref": "#/components/schemas/CreateBranchBody" } }
}
},
"responses": {
"201": {
"description": "",
"content": {
"application/json": { "schema": { "$ref": "#/components/schemas/BranchResponse" } }
}
},
"403": { "description": "" },
"500": { "description": "Failed to create database branch" }
},
"security": [{ "bearer": [] }],
"summary": "Create a database branch",
"tags": ["Environments"]
},
"delete": {
"description": "Disables preview branching for the specified project",
"operationId": "v1-disable-preview-branching",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
}
],
"responses": {
"200": { "description": "" },
"403": { "description": "" },
"500": { "description": "Failed to disable preview branching" }
},
"security": [{ "bearer": [] }],
"summary": "Disables preview branching",
"tags": ["Environments"]
}
},
"/v1/projects/{ref}/branches/{name}": {
"get": {
"description": "Fetches the specified database branch by its name.",
"operationId": "v1-get-a-branch",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
},
{ "name": "name", "required": true, "in": "path", "schema": { "type": "string" } }
],
"responses": {
"200": {
"description": "",
"content": {
"application/json": { "schema": { "$ref": "#/components/schemas/BranchResponse" } }
}
},
"403": { "description": "" },
"500": { "description": "Failed to fetch database branch" }
},
"security": [{ "bearer": [] }],
"summary": "Get a database branch",
"tags": ["Environments"]
}
},
"/v1/projects/{ref}/custom-hostname": {
"get": {
"operationId": "v1-get-hostname-config",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "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" }
},
"security": [{ "bearer": [] }],
"summary": "[Beta] Gets project's custom hostname config",
"tags": ["Domains"]
},
"delete": {
"operationId": "v1-Delete hostname config",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
}
],
"responses": {
"200": { "description": "" },
"403": { "description": "" },
"500": { "description": "Failed to delete project custom hostname configuration" }
},
"security": [{ "bearer": [] }],
"summary": "[Beta] Deletes a project's custom hostname configuration",
"tags": ["Domains"]
}
},
"/v1/projects/{ref}/custom-hostname/initialize": {
"post": {
"operationId": "v1-update-hostname-config",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "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" }
},
"security": [{ "bearer": [] }],
"summary": "[Beta] Updates project's custom hostname configuration",
"tags": ["Domains"]
}
},
"/v1/projects/{ref}/custom-hostname/reverify": {
"post": {
"operationId": "v1-verify-dns-config",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
}
],
"responses": {
"201": {
"description": "",
"content": {
"application/json": {
"schema": { "$ref": "#/components/schemas/UpdateCustomHostnameResponse" }
}
}
},
"403": { "description": "" },
"500": { "description": "Failed to verify project custom hostname configuration" }
},
"security": [{ "bearer": [] }],
"summary": "[Beta] Attempts to verify the DNS configuration for project's custom hostname configuration",
"tags": ["Domains"]
}
},
"/v1/projects/{ref}/custom-hostname/activate": {
"post": {
"operationId": "v1-activate-custom-hostname",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
}
],
"responses": {
"201": {
"description": "",
"content": {
"application/json": {
"schema": { "$ref": "#/components/schemas/UpdateCustomHostnameResponse" }
}
}
},
"403": { "description": "" },
"500": { "description": "Failed to activate project custom hostname configuration" }
},
"security": [{ "bearer": [] }],
"summary": "[Beta] Activates a custom hostname for a project.",
"tags": ["Domains"]
}
},
"/v1/projects/{ref}/network-bans/retrieve": {
"post": {
"operationId": "v1-list-all-network-bans",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
}
],
"responses": {
"201": {
"description": "",
"content": {
"application/json": {
"schema": { "$ref": "#/components/schemas/NetworkBanResponse" }
}
}
},
"403": { "description": "" },
"500": { "description": "Failed to retrieve project's network bans" }
},
"security": [{ "bearer": [] }],
"summary": "[Beta] Gets project's network bans",
"tags": ["Projects"]
}
},
"/v1/projects/{ref}/network-bans/retrieve/enriched": {
"post": {
"operationId": "v1-list-all-network-bans-enriched",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
}
],
"responses": {
"201": {
"description": "",
"content": {
"application/json": {
"schema": { "$ref": "#/components/schemas/NetworkBanResponseEnriched" }
}
}
},
"403": { "description": "" },
"500": { "description": "Failed to retrieve project's enriched network bans" }
},
"security": [{ "bearer": [] }],
"summary": "[Beta] Gets project's network bans with additional information about which databases they affect",
"tags": ["Projects"]
}
},
"/v1/projects/{ref}/network-bans": {
"delete": {
"operationId": "v1-delete-network-bans",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "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." }
},
"security": [{ "bearer": [] }],
"summary": "[Beta] Remove network bans.",
"tags": ["Projects"]
}
},
"/v1/projects/{ref}/network-restrictions": {
"get": {
"operationId": "v1-get-network-restrictions",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": { "$ref": "#/components/schemas/NetworkRestrictionsResponse" }
}
}
},
"403": { "description": "" },
"500": { "description": "Failed to retrieve project's network restrictions" }
},
"security": [{ "bearer": [] }],
"summary": "[Beta] Gets project's network restrictions",
"tags": ["Projects"]
},
"patch": {
"operationId": "v1-patch-network-restrictions",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": { "$ref": "#/components/schemas/NetworkRestrictionsPatchRequest" }
}
}
},
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": { "$ref": "#/components/schemas/NetworkRestrictionsV2Response" }
}
}
},
"403": { "description": "" },
"500": { "description": "Failed to update project network restrictions" }
},
"security": [{ "bearer": [] }],
"summary": "[Alpha] Updates project's network restrictions by adding or removing CIDRs",
"tags": ["Projects"]
}
},
"/v1/projects/{ref}/network-restrictions/apply": {
"post": {
"operationId": "v1-update-network-restrictions",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "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" }
},
"security": [{ "bearer": [] }],
"summary": "[Beta] Updates project's network restrictions",
"tags": ["Projects"]
}
},
"/v1/projects/{ref}/pgsodium": {
"get": {
"operationId": "v1-get-pgsodium-config",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": { "$ref": "#/components/schemas/PgsodiumConfigResponse" }
}
}
},
"403": { "description": "" },
"500": { "description": "Failed to retrieve project's pgsodium config" }
},
"security": [{ "bearer": [] }],
"summary": "[Beta] Gets project's pgsodium config",
"tags": ["Secrets"]
},
"put": {
"operationId": "v1-update-pgsodium-config",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "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" }
},
"security": [{ "bearer": [] }],
"summary": "[Beta] Updates project's pgsodium config. Updating the root_key can cause all data encrypted with the older key to become inaccessible.",
"tags": ["Secrets"]
}
},
"/v1/projects/{ref}/postgrest": {
"get": {
"operationId": "v1-get-postgrest-service-config",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": { "$ref": "#/components/schemas/PostgrestConfigWithJWTSecretResponse" }
}
}
},
"403": { "description": "" },
"500": { "description": "Failed to retrieve project's postgrest config" }
},
"security": [{ "bearer": [] }],
"summary": "Gets project's postgrest config",
"tags": ["Rest"]
},
"patch": {
"operationId": "v1-update-postgrest-service-config",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": { "$ref": "#/components/schemas/V1UpdatePostgrestConfigBody" }
}
}
},
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": { "$ref": "#/components/schemas/V1PostgrestConfigResponse" }
}
}
},
"403": { "description": "" },
"500": { "description": "Failed to update project's postgrest config" }
},
"security": [{ "bearer": [] }],
"summary": "Updates project's postgrest config",
"tags": ["Rest"]
}
},
"/v1/projects/{ref}": {
"get": {
"operationId": "v1-get-project",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": { "$ref": "#/components/schemas/V1ProjectWithDatabaseResponse" }
}
}
},
"403": { "description": "" },
"500": { "description": "Failed to retrieve project" }
},
"security": [{ "bearer": [] }],
"summary": "Gets a specific project that belongs to the authenticated user",
"tags": ["Projects"]
},
"delete": {
"operationId": "v1-delete-a-project",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": { "$ref": "#/components/schemas/V1ProjectRefResponse" }
}
}
},
"403": { "description": "" }
},
"security": [{ "bearer": [] }],
"summary": "Deletes the given project",
"tags": ["Projects"]
}
},
"/v1/projects/{ref}/secrets": {
"get": {
"description": "Returns all secrets you've previously added to the specified project.",
"operationId": "v1-list-all-secrets",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "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" }
},
"security": [{ "bearer": [] }],
"summary": "List all secrets",
"tags": ["Secrets"]
},
"post": {
"description": "Creates multiple secrets and adds them to the specified project.",
"operationId": "v1-bulk-create-secrets",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
}
],
"requestBody": {
"required": true,
"content": {
"application/json": { "schema": { "$ref": "#/components/schemas/CreateSecretBody" } }
}
},
"responses": {
"201": { "description": "" },
"403": { "description": "" },
"500": { "description": "Failed to create project's secrets" }
},
"security": [{ "bearer": [] }],
"summary": "Bulk create secrets",
"tags": ["Secrets"]
},
"delete": {
"description": "Deletes all secrets with the given names from the specified project",
"operationId": "v1-bulk-delete-secrets",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
}
],
"requestBody": {
"required": true,
"content": {
"application/json": { "schema": { "type": "array", "items": { "type": "string" } } }
}
},
"responses": {
"200": { "description": "" },
"403": { "description": "" },
"500": { "description": "Failed to delete secrets with given names" }
},
"security": [{ "bearer": [] }],
"summary": "Bulk delete secrets",
"tags": ["Secrets"]
}
},
"/v1/projects/{ref}/ssl-enforcement": {
"get": {
"operationId": "v1-get-ssl-enforcement-config",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "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" }
},
"security": [{ "bearer": [] }],
"summary": "[Beta] Get project's SSL enforcement configuration.",
"tags": ["Database"]
},
"put": {
"operationId": "v1-update-ssl-enforcement-config",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "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." }
},
"security": [{ "bearer": [] }],
"summary": "[Beta] Update project's SSL enforcement configuration.",
"tags": ["Database"]
}
},
"/v1/projects/{ref}/types/typescript": {
"get": {
"description": "Returns the TypeScript types of your schema for use with supabase-js.",
"operationId": "v1-generate-typescript-types",
"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, "pattern": "^[a-z]+$", "type": "string" }
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": { "$ref": "#/components/schemas/TypescriptResponse" }
}
}
},
"403": { "description": "" },
"500": { "description": "Failed to generate TypeScript types" }
},
"security": [{ "bearer": [] }],
"summary": "Generate TypeScript types",
"tags": ["Database"]
}
},
"/v1/projects/{ref}/vanity-subdomain": {
"get": {
"operationId": "v1-get-vanity-subdomain-config",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": { "$ref": "#/components/schemas/VanitySubdomainConfigResponse" }
}
}
},
"403": { "description": "" },
"500": { "description": "Failed to get project vanity subdomain configuration" }
},
"security": [{ "bearer": [] }],
"summary": "[Beta] Gets current vanity subdomain config",
"tags": ["Domains"]
},
"delete": {
"operationId": "v1-deactivate-vanity-subdomain-config",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
}
],
"responses": {
"200": { "description": "" },
"403": { "description": "" },
"500": { "description": "Failed to delete project vanity subdomain configuration" }
},
"security": [{ "bearer": [] }],
"summary": "[Beta] Deletes a project's vanity subdomain configuration",
"tags": ["Domains"]
}
},
"/v1/projects/{ref}/vanity-subdomain/check-availability": {
"post": {
"operationId": "v1-check-vanity-subdomain-availability",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "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" }
},
"security": [{ "bearer": [] }],
"summary": "[Beta] Checks vanity subdomain availability",
"tags": ["Domains"]
}
},
"/v1/projects/{ref}/vanity-subdomain/activate": {
"post": {
"operationId": "v1-activate-vanity-subdomain-config",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "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" }
},
"security": [{ "bearer": [] }],
"summary": "[Beta] Activates a vanity subdomain for a project.",
"tags": ["Domains"]
}
},
"/v1/projects/{ref}/upgrade": {
"post": {
"operationId": "v1-upgrade-postgres-version",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "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" }
},
"security": [{ "bearer": [] }],
"summary": "[Beta] Upgrades the project's Postgres version",
"tags": ["Projects"]
}
},
"/v1/projects/{ref}/upgrade/eligibility": {
"get": {
"operationId": "v1-get-postgres-upgrade-eligibility",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": { "$ref": "#/components/schemas/ProjectUpgradeEligibilityResponse" }
}
}
},
"403": { "description": "" },
"500": { "description": "Failed to determine project upgrade eligibility" }
},
"security": [{ "bearer": [] }],
"summary": "[Beta] Returns the project's eligibility for upgrades",
"tags": ["Projects"]
}
},
"/v1/projects/{ref}/upgrade/status": {
"get": {
"operationId": "v1-get-postgres-upgrade-status",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "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" }
},
"security": [{ "bearer": [] }],
"summary": "[Beta] Gets the latest status of the project's upgrade",
"tags": ["Projects"]
}
},
"/v1/projects/{ref}/readonly": {
"get": {
"operationId": "v1-get-readonly-mode-status",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": { "$ref": "#/components/schemas/ReadOnlyStatusResponse" }
}
}
},
"403": { "description": "" },
"500": { "description": "Failed to get project readonly mode status" }
},
"security": [{ "bearer": [] }],
"summary": "Returns project's readonly mode status",
"tags": ["Database"]
}
},
"/v1/projects/{ref}/readonly/temporary-disable": {
"post": {
"operationId": "v1-disable-readonly-mode-temporarily",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
}
],
"responses": {
"201": { "description": "" },
"403": { "description": "" },
"500": { "description": "Failed to disable project's readonly mode" }
},
"security": [{ "bearer": [] }],
"summary": "Disables project's readonly mode for the next 15 minutes",
"tags": ["Database"]
}
},
"/v1/projects/{ref}/read-replicas/setup": {
"post": {
"operationId": "v1-setup-a-read-replica",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "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" }
},
"security": [{ "bearer": [] }],
"summary": "[Beta] Set up a read replica",
"tags": ["Database"]
}
},
"/v1/projects/{ref}/read-replicas/remove": {
"post": {
"operationId": "v1-remove-a-read-replica",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "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" }
},
"security": [{ "bearer": [] }],
"summary": "[Beta] Remove a read replica",
"tags": ["Database"]
}
},
"/v1/projects/{ref}/health": {
"get": {
"operationId": "v1-get-services-health",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
},
{
"name": "services",
"required": true,
"in": "query",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"auth",
"db",
"db_postgres_user",
"pooler",
"realtime",
"rest",
"storage",
"pg_bouncer"
]
}
}
},
{
"name": "timeout_ms",
"required": false,
"in": "query",
"schema": { "minimum": 0, "maximum": 10000, "type": "integer" }
}
],
"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" }
},
"security": [{ "bearer": [] }],
"summary": "Gets project's service health status",
"tags": ["Projects"]
}
},
"/v1/projects/{ref}/config/auth/signing-keys/legacy": {
"post": {
"operationId": "v1-create-legacy-signing-key",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
}
],
"responses": {
"201": {
"description": "",
"content": {
"application/json": {
"schema": { "$ref": "#/components/schemas/SigningKeyResponse" }
}
}
},
"403": { "description": "" }
},
"security": [{ "bearer": [] }],
"summary": "Set up the project's existing JWT secret as an in_use JWT signing key. This endpoint will be removed in the future always check for HTTP 404 Not Found.",
"tags": ["Auth"]
},
"get": {
"operationId": "v1-get-legacy-signing-key",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": { "$ref": "#/components/schemas/SigningKeyResponse" }
}
}
},
"403": { "description": "" }
},
"security": [{ "bearer": [] }],
"summary": "Get the signing key information for the JWT secret imported as signing key for this project. This endpoint will be removed in the future, check for HTTP 404 Not Found.",
"tags": ["Auth"]
}
},
"/v1/projects/{ref}/config/auth/signing-keys": {
"post": {
"operationId": "v1-create-project-signing-key",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": { "$ref": "#/components/schemas/CreateSigningKeyBody" }
}
}
},
"responses": {
"201": {
"description": "",
"content": {
"application/json": {
"schema": { "$ref": "#/components/schemas/SigningKeyResponse" }
}
}
},
"403": { "description": "" }
},
"security": [{ "bearer": [] }],
"summary": "Create a new signing key for the project in standby status",
"tags": ["Auth"]
},
"get": {
"operationId": "v1-get-project-signing-keys",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": { "$ref": "#/components/schemas/SigningKeysResponse" }
}
}
},
"403": { "description": "" }
},
"security": [{ "bearer": [] }],
"summary": "List all signing keys for the project",
"tags": ["Auth"]
}
},
"/v1/projects/{ref}/config/auth/signing-keys/{id}": {
"get": {
"operationId": "v1-get-project-signing-key",
"parameters": [
{
"name": "id",
"required": true,
"in": "path",
"schema": { "format": "uuid", "type": "string" }
},
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": { "$ref": "#/components/schemas/SigningKeyResponse" }
}
}
},
"403": { "description": "" }
},
"security": [{ "bearer": [] }],
"summary": "Get information about a signing key",
"tags": ["Auth"]
},
"delete": {
"operationId": "v1-remove-project-signing-key",
"parameters": [
{
"name": "id",
"required": true,
"in": "path",
"schema": { "format": "uuid", "type": "string" }
},
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": { "$ref": "#/components/schemas/SigningKeyResponse" }
}
}
},
"403": { "description": "" }
},
"security": [{ "bearer": [] }],
"summary": "Remove a signing key from a project. Only possible if the key has been in revoked status for a while.",
"tags": ["Auth"]
},
"patch": {
"operationId": "v1-update-project-signing-key",
"parameters": [
{
"name": "id",
"required": true,
"in": "path",
"schema": { "format": "uuid", "type": "string" }
},
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": { "$ref": "#/components/schemas/UpdateSigningKeyBody" }
}
}
},
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": { "$ref": "#/components/schemas/SigningKeyResponse" }
}
}
},
"403": { "description": "" }
},
"security": [{ "bearer": [] }],
"summary": "Update a signing key, mainly its status",
"tags": ["Auth"]
}
},
"/v1/projects/{ref}/config/storage": {
"get": {
"operationId": "v1-get-storage-config",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": { "$ref": "#/components/schemas/StorageConfigResponse" }
}
}
},
"403": { "description": "" },
"500": { "description": "Failed to retrieve project's storage config" }
},
"security": [{ "bearer": [] }],
"summary": "Gets project's storage config",
"tags": ["Storage"]
},
"patch": {
"operationId": "v1-update-storage-config",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "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" }
},
"security": [{ "bearer": [] }],
"summary": "Updates project's storage config",
"tags": ["Storage"]
}
},
"/v1/projects/{ref}/config/database/postgres": {
"get": {
"operationId": "v1-get-postgres-config",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": { "$ref": "#/components/schemas/PostgresConfigResponse" }
}
}
},
"403": { "description": "" },
"500": { "description": "Failed to retrieve project's Postgres config" }
},
"security": [{ "bearer": [] }],
"summary": "Gets project's Postgres config",
"tags": ["Database"]
},
"put": {
"operationId": "v1-update-postgres-config",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "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" }
},
"security": [{ "bearer": [] }],
"summary": "Updates project's Postgres config",
"tags": ["Database"]
}
},
"/v1/projects/{ref}/config/database/pgbouncer": {
"get": {
"operationId": "v1-get-project-pgbouncer-config",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": { "$ref": "#/components/schemas/V1PgbouncerConfigResponse" }
}
}
},
"403": { "description": "" },
"500": { "description": "Failed to retrieve project's pgbouncer config" }
},
"summary": "Get project's pgbouncer config",
"tags": ["Database"]
}
},
"/v1/projects/{ref}/config/database/pooler": {
"get": {
"operationId": "v1-get-pooler-config",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": { "$ref": "#/components/schemas/SupavisorConfigResponse" }
}
}
}
},
"403": { "description": "" },
"500": { "description": "Failed to retrieve project's supavisor config" }
},
"security": [{ "bearer": [] }],
"summary": "Gets project's supavisor config",
"tags": ["Database"]
},
"patch": {
"operationId": "v1-update-pooler-config",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "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" }
},
"security": [{ "bearer": [] }],
"summary": "Updates project's supavisor config",
"tags": ["Database"]
}
},
"/v1/projects/{ref}/config/auth": {
"get": {
"operationId": "v1-get-auth-service-config",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": { "$ref": "#/components/schemas/AuthConfigResponse" }
}
}
},
"403": { "description": "" },
"500": { "description": "Failed to retrieve project's auth config" }
},
"security": [{ "bearer": [] }],
"summary": "Gets project's auth config",
"tags": ["Auth"]
},
"patch": {
"operationId": "v1-update-auth-service-config",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "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" }
},
"security": [{ "bearer": [] }],
"summary": "Updates a project's auth config",
"tags": ["Auth"]
}
},
"/v1/projects/{ref}/config/auth/third-party-auth": {
"post": {
"operationId": "v1-create-project-tpa-integration",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "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": "" }
},
"security": [{ "bearer": [] }],
"summary": "Creates a new third-party auth integration",
"tags": ["Auth"]
},
"get": {
"operationId": "v1-list-project-tpa-integrations",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": { "$ref": "#/components/schemas/ThirdPartyAuth" }
}
}
}
},
"403": { "description": "" }
},
"security": [{ "bearer": [] }],
"summary": "Lists all third-party auth integrations",
"tags": ["Auth"]
}
},
"/v1/projects/{ref}/config/auth/third-party-auth/{tpa_id}": {
"delete": {
"operationId": "v1-delete-project-tpa-integration",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
},
{
"name": "tpa_id",
"required": true,
"in": "path",
"schema": { "format": "uuid", "type": "string" }
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json": { "schema": { "$ref": "#/components/schemas/ThirdPartyAuth" } }
}
},
"403": { "description": "" }
},
"security": [{ "bearer": [] }],
"summary": "Removes a third-party auth integration",
"tags": ["Auth"]
},
"get": {
"operationId": "v1-get-project-tpa-integration",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
},
{
"name": "tpa_id",
"required": true,
"in": "path",
"schema": { "format": "uuid", "type": "string" }
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json": { "schema": { "$ref": "#/components/schemas/ThirdPartyAuth" } }
}
},
"403": { "description": "" }
},
"security": [{ "bearer": [] }],
"summary": "Get a third-party integration",
"tags": ["Auth"]
}
},
"/v1/projects/{ref}/pause": {
"post": {
"operationId": "v1-pause-a-project",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
}
],
"responses": { "200": { "description": "" }, "403": { "description": "" } },
"security": [{ "bearer": [] }],
"summary": "Pauses the given project",
"tags": ["Projects"]
}
},
"/v1/projects/{ref}/restore": {
"get": {
"operationId": "v1-list-available-restore-versions",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/GetProjectAvailableRestoreVersionsResponse"
}
}
}
},
"403": { "description": "" }
},
"security": [{ "bearer": [] }],
"summary": "Lists available restore versions for the given project",
"tags": ["Projects"]
},
"post": {
"operationId": "v1-restore-a-project",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
}
],
"responses": { "200": { "description": "" }, "403": { "description": "" } },
"security": [{ "bearer": [] }],
"summary": "Restores the given project",
"tags": ["Projects"]
}
},
"/v1/projects/{ref}/restore/cancel": {
"post": {
"operationId": "v1-cancel-a-project-restoration",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
}
],
"responses": { "200": { "description": "" }, "403": { "description": "" } },
"security": [{ "bearer": [] }],
"summary": "Cancels the given project restoration",
"tags": ["Projects"]
}
},
"/v1/projects/{ref}/billing/addons": {
"get": {
"operationId": "v1-list-project-addons",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": { "$ref": "#/components/schemas/ListProjectAddonsResponse" }
}
}
},
"403": { "description": "" },
"500": { "description": "Failed to list project addons" }
},
"security": [{ "bearer": [] }],
"summary": "Lists project addons",
"tags": ["Billing"]
},
"patch": {
"operationId": "v1-apply-project-addon",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": { "$ref": "#/components/schemas/ApplyProjectAddonBody" }
}
}
},
"responses": {
"200": { "description": "" },
"403": { "description": "" },
"500": { "description": "Failed to apply project addon" }
},
"security": [{ "bearer": [] }],
"summary": "Applies project addon",
"tags": ["Billing"]
}
},
"/v1/projects/{ref}/billing/addons/{addon_variant}": {
"delete": {
"operationId": "v1-remove-project-addon",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
},
{
"name": "addon_variant",
"required": true,
"in": "path",
"schema": {
"oneOf": [
{
"type": "string",
"enum": [
"ci_micro",
"ci_small",
"ci_medium",
"ci_large",
"ci_xlarge",
"ci_2xlarge",
"ci_4xlarge",
"ci_8xlarge",
"ci_12xlarge",
"ci_16xlarge",
"ci_24xlarge",
"ci_24xlarge_optimized_cpu",
"ci_24xlarge_optimized_memory",
"ci_24xlarge_high_memory",
"ci_48xlarge",
"ci_48xlarge_optimized_cpu",
"ci_48xlarge_optimized_memory",
"ci_48xlarge_high_memory"
]
},
{ "type": "string", "enum": ["cd_default"] },
{ "type": "string", "enum": ["pitr_7", "pitr_14", "pitr_28"] },
{ "type": "string", "enum": ["ipv4_default"] }
]
}
}
],
"responses": {
"200": { "description": "" },
"403": { "description": "" },
"500": { "description": "Failed to remove project addon" }
},
"security": [{ "bearer": [] }],
"summary": "Removes project addon",
"tags": ["Billing"]
}
},
"/v1/projects/{ref}/claim-token": {
"get": {
"operationId": "v1-get-project-claim-token",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": { "$ref": "#/components/schemas/ProjectClaimTokenResponse" }
}
}
},
"403": { "description": "" }
},
"security": [{ "bearer": [] }],
"summary": "Gets project claim token",
"tags": ["Projects"],
"x-internal": true
},
"post": {
"operationId": "v1-create-project-claim-token",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": { "$ref": "#/components/schemas/CreateProjectClaimTokenResponse" }
}
}
},
"403": { "description": "" }
},
"security": [{ "bearer": [] }],
"summary": "Creates project claim token",
"tags": ["Projects"],
"x-internal": true
},
"delete": {
"operationId": "v1-delete-project-claim-token",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
}
],
"responses": { "204": { "description": "" }, "403": { "description": "" } },
"security": [{ "bearer": [] }],
"summary": "Revokes project claim token",
"tags": ["Projects"],
"x-internal": true
}
},
"/v1/projects/{ref}/advisors/performance": {
"get": {
"deprecated": true,
"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.",
"operationId": "v1-get-performance-advisors",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": { "$ref": "#/components/schemas/V1ProjectAdvisorsResponse" }
}
}
},
"403": { "description": "" }
},
"security": [{ "bearer": [] }],
"summary": "Gets project performance advisors.",
"tags": ["Advisors"]
}
},
"/v1/projects/{ref}/advisors/security": {
"get": {
"deprecated": true,
"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.",
"operationId": "v1-get-security-advisors",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
},
{
"name": "lint_type",
"required": false,
"in": "query",
"schema": { "type": "string", "enum": ["sql"] }
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": { "$ref": "#/components/schemas/V1ProjectAdvisorsResponse" }
}
}
},
"403": { "description": "" }
},
"security": [{ "bearer": [] }],
"summary": "Gets project security advisors.",
"tags": ["Advisors"]
}
},
"/v1/projects/{ref}/analytics/endpoints/logs.all": {
"get": {
"description": "Executes a SQL query on the project's logs.\n\nEither the 'iso_timestamp_start' and 'iso_timestamp_end' parameters must be provided.\nIf both are not provided, only the last 1 minute of logs will be queried.\nThe timestamp range must be no more than 24 hours and is rounded to the nearest minute. If the range is more than 24 hours, a validation error will be thrown.\n",
"operationId": "v1-get-project-logs",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
},
{ "name": "sql", "required": false, "in": "query", "schema": { "type": "string" } },
{
"name": "iso_timestamp_start",
"required": false,
"in": "query",
"schema": { "format": "date-time", "type": "string" }
},
{
"name": "iso_timestamp_end",
"required": false,
"in": "query",
"schema": { "format": "date-time", "type": "string" }
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json": { "schema": { "$ref": "#/components/schemas/AnalyticsResponse" } }
}
},
"403": { "description": "" }
},
"security": [{ "bearer": [] }],
"summary": "Gets project's logs",
"tags": ["Analytics"]
}
},
"/v1/projects/{ref}/analytics/endpoints/usage.api-counts": {
"get": {
"operationId": "v1-get-project-usage-api-count",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
},
{
"name": "interval",
"required": false,
"in": "query",
"schema": {
"type": "string",
"enum": ["15min", "30min", "1hr", "3hr", "1day", "3day", "7day"]
}
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": { "$ref": "#/components/schemas/V1GetUsageApiCountResponse" }
}
}
},
"403": { "description": "" },
"500": { "description": "Failed to get project's usage api counts" }
},
"security": [{ "bearer": [] }],
"summary": "Gets project's usage api counts",
"tags": ["Analytics"]
}
},
"/v1/projects/{ref}/analytics/endpoints/usage.api-requests-count": {
"get": {
"operationId": "v1-get-project-usage-request-count",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": { "$ref": "#/components/schemas/V1GetUsageApiRequestsCountResponse" }
}
}
},
"403": { "description": "" },
"500": { "description": "Failed to get project's usage api requests count" }
},
"security": [{ "bearer": [] }],
"summary": "Gets project's usage api requests count",
"tags": ["Analytics"]
}
},
"/v1/projects/{ref}/analytics/endpoints/functions.combined-stats": {
"get": {
"operationId": "v1-get-project-function-combined-stats",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
},
{
"name": "interval",
"required": true,
"in": "query",
"schema": { "type": "string", "enum": ["15min", "1hr", "3hr", "1day"] }
},
{ "name": "function_id", "required": true, "in": "query", "schema": { "type": "string" } }
],
"responses": {
"200": {
"description": "",
"content": {
"application/json": { "schema": { "$ref": "#/components/schemas/AnalyticsResponse" } }
}
},
"403": { "description": "" },
"500": { "description": "Failed to get project's function combined statistics" }
},
"security": [{ "bearer": [] }],
"summary": "Gets a project's function combined statistics",
"tags": ["Analytics"]
}
},
"/v1/projects/{ref}/cli/login-role": {
"post": {
"operationId": "v1-create-login-role",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
}
],
"requestBody": {
"required": true,
"content": {
"application/json": { "schema": { "$ref": "#/components/schemas/CreateRoleBody" } }
}
},
"responses": {
"201": {
"description": "",
"content": {
"application/json": {
"schema": { "$ref": "#/components/schemas/CreateRoleResponse" }
}
}
},
"403": { "description": "" },
"500": { "description": "Failed to create login role" }
},
"security": [{ "bearer": [] }],
"summary": "[Beta] Create a login role for CLI with temporary password",
"tags": ["Database"]
},
"delete": {
"operationId": "v1-delete-login-roles",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": { "$ref": "#/components/schemas/DeleteRolesResponse" }
}
}
},
"403": { "description": "" },
"500": { "description": "Failed to delete login roles" }
},
"security": [{ "bearer": [] }],
"summary": "[Beta] Delete existing login roles used by CLI",
"tags": ["Database"]
}
},
"/v1/projects/{ref}/database/migrations": {
"get": {
"description": "Only available to selected partner OAuth apps",
"operationId": "v1-list-migration-history",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": { "$ref": "#/components/schemas/V1ListMigrationsResponse" }
}
}
},
"403": { "description": "" },
"500": { "description": "Failed to list database migrations" }
},
"security": [{ "bearer": [] }],
"summary": "[Beta] List applied migration versions",
"tags": ["Database"]
},
"post": {
"description": "Only available to selected partner OAuth apps",
"operationId": "v1-apply-a-migration",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
},
{
"name": "Idempotency-Key",
"required": false,
"in": "header",
"description": "A unique key to ensure the same migration is tracked only once.",
"schema": { "type": "string" }
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": { "$ref": "#/components/schemas/V1CreateMigrationBody" }
}
}
},
"responses": {
"200": { "description": "" },
"403": { "description": "" },
"500": { "description": "Failed to apply database migration" }
},
"security": [{ "bearer": [] }],
"summary": "[Beta] Apply a database migration",
"tags": ["Database"]
},
"put": {
"description": "Only available to selected partner OAuth apps",
"operationId": "v1-upsert-a-migration",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
},
{
"name": "Idempotency-Key",
"required": false,
"in": "header",
"description": "A unique key to ensure the same migration is tracked only once.",
"schema": { "type": "string" }
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": { "$ref": "#/components/schemas/V1UpsertMigrationBody" }
}
}
},
"responses": {
"200": { "description": "" },
"403": { "description": "" },
"500": { "description": "Failed to upsert database migration" }
},
"security": [{ "bearer": [] }],
"summary": "[Beta] Upsert a database migration without applying",
"tags": ["Database"]
}
},
"/v1/projects/{ref}/database/query": {
"post": {
"operationId": "v1-run-a-query",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
}
],
"requestBody": {
"required": true,
"content": {
"application/json": { "schema": { "$ref": "#/components/schemas/V1RunQueryBody" } }
}
},
"responses": {
"201": { "description": "" },
"403": { "description": "" },
"500": { "description": "Failed to run sql query" }
},
"security": [{ "bearer": [] }],
"summary": "[Beta] Run sql query",
"tags": ["Database"]
}
},
"/v1/projects/{ref}/database/webhooks/enable": {
"post": {
"operationId": "v1-enable-database-webhook",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
}
],
"responses": {
"201": { "description": "" },
"403": { "description": "" },
"500": { "description": "Failed to enable Database Webhooks on the project" }
},
"security": [{ "bearer": [] }],
"summary": "[Beta] Enables Database Webhooks on the project",
"tags": ["Database"]
}
},
"/v1/projects/{ref}/database/context": {
"get": {
"deprecated": true,
"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.",
"operationId": "v1-get-database-metadata",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": { "$ref": "#/components/schemas/GetProjectDbMetadataResponse" }
}
}
},
"403": { "description": "" }
},
"security": [{ "bearer": [] }],
"summary": "Gets database metadata for the given project.",
"tags": ["Database"]
}
},
"/v1/projects/{ref}/database/jit": {
"get": {
"description": "Mappings of roles a user can assume in the project database",
"operationId": "v1-get-jit-access",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json": { "schema": { "$ref": "#/components/schemas/JitAccessResponse" } }
}
},
"403": { "description": "" },
"500": { "description": "Failed to list database jit access" }
},
"security": [{ "bearer": [] }],
"summary": "Get user-id to role mappings for JIT access",
"tags": ["Database"]
},
"post": {
"description": "Authorizes the request to assume a role in the project database",
"operationId": "v1-authorize-jit-access",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": { "$ref": "#/components/schemas/AuthorizeJitAccessBody" }
}
}
},
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": { "$ref": "#/components/schemas/JitAuthorizeAccessResponse" }
}
}
},
"403": { "description": "" },
"500": { "description": "Failed to authorize database jit access" }
},
"security": [{ "bearer": [] }],
"summary": "Authorize user-id to role mappings for JIT access",
"tags": ["Database"]
},
"put": {
"description": "Modifies the roles that can be assumed and for how long",
"operationId": "v1-update-jit-access",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
}
],
"requestBody": {
"required": true,
"content": {
"application/json": { "schema": { "$ref": "#/components/schemas/UpdateJitAccessBody" } }
}
},
"responses": {
"200": {
"description": "",
"content": {
"application/json": { "schema": { "$ref": "#/components/schemas/JitAccessResponse" } }
}
},
"403": { "description": "" },
"500": { "description": "Failed to upsert database migration" }
},
"security": [{ "bearer": [] }],
"summary": "Updates a user mapping for JIT access",
"tags": ["Database"]
}
},
"/v1/projects/{ref}/database/jit/list": {
"get": {
"description": "Mappings of roles a user can assume in the project database",
"operationId": "v1-list-jit-access",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": { "$ref": "#/components/schemas/JitListAccessResponse" }
}
}
},
"403": { "description": "" },
"500": { "description": "Failed to list database jit access" }
},
"security": [{ "bearer": [] }],
"summary": "List all user-id to role mappings for JIT access",
"tags": ["Database"]
}
},
"/v1/projects/{ref}/database/jit/{user_id}": {
"delete": {
"description": "Remove JIT mappings of a user, revoking all JIT database access",
"operationId": "v1-delete-jit-access",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
},
{
"name": "user_id",
"required": true,
"in": "path",
"schema": { "format": "uuid", "type": "string" }
}
],
"responses": {
"200": { "description": "" },
"403": { "description": "" },
"500": { "description": "Failed to remove JIT access" }
},
"security": [{ "bearer": [] }],
"summary": "Delete JIT access by user-id",
"tags": ["Database"]
}
},
"/v1/projects/{ref}/functions": {
"get": {
"description": "Returns all functions you've previously added to the specified project.",
"operationId": "v1-list-all-functions",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "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" }
},
"security": [{ "bearer": [] }],
"summary": "List all functions",
"tags": ["Edge Functions"]
},
"post": {
"deprecated": true,
"description": "This endpoint is deprecated - use the deploy endpoint. Creates a function and adds it to the specified project.",
"operationId": "v1-create-a-function",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "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",
"description": "Boolean string, true or false",
"schema": { "type": "boolean" }
},
{
"name": "import_map",
"required": false,
"in": "query",
"description": "Boolean string, true or false",
"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": "ezbr_sha256",
"required": false,
"in": "query",
"schema": { "type": "string" }
}
],
"requestBody": {
"required": true,
"content": {
"application/vnd.denoland.eszip": {
"schema": { "type": "string", "format": "binary" }
},
"application/json": {
"schema": { "$ref": "#/components/schemas/V1CreateFunctionBody" }
}
}
},
"responses": {
"201": {
"description": "",
"content": {
"application/json": { "schema": { "$ref": "#/components/schemas/FunctionResponse" } }
}
},
"402": { "description": "Maximum number of functions reached for Plan" },
"403": { "description": "" },
"500": { "description": "Failed to create project's function" }
},
"security": [{ "bearer": [] }],
"summary": "Create a function",
"tags": ["Edge Functions"]
},
"put": {
"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.",
"operationId": "v1-bulk-update-functions",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": { "$ref": "#/components/schemas/BulkUpdateFunctionBody" }
}
}
},
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": { "$ref": "#/components/schemas/BulkUpdateFunctionResponse" }
}
}
},
"402": { "description": "Maximum number of functions reached for Plan" },
"403": { "description": "" },
"500": { "description": "Failed to update functions" }
},
"security": [{ "bearer": [] }],
"summary": "Bulk update functions",
"tags": ["Edge Functions"]
}
},
"/v1/projects/{ref}/functions/deploy": {
"post": {
"description": "A new endpoint to deploy functions. It will create if function does not exist.",
"operationId": "v1-deploy-a-function",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
},
{
"name": "slug",
"required": false,
"in": "query",
"schema": { "pattern": "^[A-Za-z0-9_-]+$", "type": "string" }
},
{
"name": "bundleOnly",
"required": false,
"in": "query",
"description": "Boolean string, true or false",
"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" }
}
}
},
"402": { "description": "Maximum number of functions reached for Plan" },
"403": { "description": "" },
"500": { "description": "Failed to deploy function" }
},
"security": [{ "bearer": [] }],
"summary": "Deploy a function",
"tags": ["Edge Functions"]
}
},
"/v1/projects/{ref}/functions/{function_slug}": {
"get": {
"description": "Retrieves a function with the specified slug and project.",
"operationId": "v1-get-a-function",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "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" }
},
"security": [{ "bearer": [] }],
"summary": "Retrieve a function",
"tags": ["Edge Functions"]
},
"patch": {
"description": "Updates a function with the specified slug and project.",
"operationId": "v1-update-a-function",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "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",
"description": "Boolean string, true or false",
"schema": { "type": "boolean" }
},
{
"name": "import_map",
"required": false,
"in": "query",
"description": "Boolean string, true or false",
"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": "ezbr_sha256",
"required": false,
"in": "query",
"schema": { "type": "string" }
}
],
"requestBody": {
"required": true,
"content": {
"application/vnd.denoland.eszip": {
"schema": { "type": "string", "format": "binary" }
},
"application/json": {
"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" }
},
"security": [{ "bearer": [] }],
"summary": "Update a function",
"tags": ["Edge Functions"]
},
"delete": {
"description": "Deletes a function with the specified slug from the specified project.",
"operationId": "v1-delete-a-function",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "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" }
},
"security": [{ "bearer": [] }],
"summary": "Delete a function",
"tags": ["Edge Functions"]
}
},
"/v1/projects/{ref}/functions/{function_slug}/body": {
"get": {
"description": "Retrieves a function body for the specified slug and project.",
"operationId": "v1-get-a-function-body",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "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/StreamableFile" } }
}
},
"403": { "description": "" },
"500": { "description": "Failed to retrieve function body with given slug" }
},
"security": [{ "bearer": [] }],
"summary": "Retrieve a function body",
"tags": ["Edge Functions"]
}
},
"/v1/projects/{ref}/storage/buckets": {
"get": {
"operationId": "v1-list-all-buckets",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "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" }
},
"security": [{ "bearer": [] }],
"summary": "Lists all buckets",
"tags": ["Storage"]
}
},
"/v1/projects/{ref}/config/auth/sso/providers": {
"post": {
"operationId": "v1-create-a-sso-provider",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "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" }
},
"security": [{ "bearer": [] }],
"summary": "Creates a new SSO provider",
"tags": ["Auth"]
},
"get": {
"operationId": "v1-list-all-sso-provider",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "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" }
},
"security": [{ "bearer": [] }],
"summary": "Lists all SSO providers",
"tags": ["Auth"]
}
},
"/v1/projects/{ref}/config/auth/sso/providers/{provider_id}": {
"get": {
"operationId": "v1-get-a-sso-provider",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
},
{
"name": "provider_id",
"required": true,
"in": "path",
"schema": { "format": "uuid", "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"
}
},
"security": [{ "bearer": [] }],
"summary": "Gets a SSO provider by its UUID",
"tags": ["Auth"]
},
"put": {
"operationId": "v1-update-a-sso-provider",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
},
{
"name": "provider_id",
"required": true,
"in": "path",
"schema": { "format": "uuid", "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"
}
},
"security": [{ "bearer": [] }],
"summary": "Updates a SSO provider by its UUID",
"tags": ["Auth"]
},
"delete": {
"operationId": "v1-delete-a-sso-provider",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
},
{
"name": "provider_id",
"required": true,
"in": "path",
"schema": { "format": "uuid", "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"
}
},
"security": [{ "bearer": [] }],
"summary": "Removes a SSO provider by its UUID",
"tags": ["Auth"]
}
},
"/v1/projects/{ref}/database/backups": {
"get": {
"operationId": "v1-list-all-backups",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json": { "schema": { "$ref": "#/components/schemas/V1BackupsResponse" } }
}
},
"403": { "description": "" },
"500": { "description": "Failed to get backups" }
},
"security": [{ "bearer": [] }],
"summary": "Lists all backups",
"tags": ["Database"]
}
},
"/v1/projects/{ref}/database/backups/restore-pitr": {
"post": {
"operationId": "v1-restore-pitr-backup",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
}
],
"requestBody": {
"required": true,
"content": {
"application/json": { "schema": { "$ref": "#/components/schemas/V1RestorePitrBody" } }
}
},
"responses": { "201": { "description": "" }, "403": { "description": "" } },
"security": [{ "bearer": [] }],
"summary": "Restores a PITR backup for a database",
"tags": ["Database"]
}
},
"/v1/projects/{ref}/database/backups/restore-point": {
"post": {
"operationId": "v1-create-restore-point",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": { "$ref": "#/components/schemas/V1RestorePointPostBody" }
}
}
},
"responses": {
"201": {
"description": "",
"content": {
"application/json": {
"schema": { "$ref": "#/components/schemas/V1RestorePointResponse" }
}
}
},
"403": { "description": "" }
},
"security": [{ "bearer": [] }],
"summary": "Initiates a creation of a restore point for a database",
"tags": ["Database"],
"x-internal": true
},
"get": {
"operationId": "v1-get-restore-point",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
},
{
"name": "name",
"required": false,
"in": "query",
"schema": { "maxLength": 20, "type": "string" }
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": { "$ref": "#/components/schemas/V1RestorePointResponse" }
}
}
},
"403": { "description": "" },
"500": { "description": "Failed to get requested restore points" }
},
"security": [{ "bearer": [] }],
"summary": "Get restore points for project",
"tags": ["Database"],
"x-internal": true
}
},
"/v1/projects/{ref}/database/backups/undo": {
"post": {
"operationId": "v1-undo",
"parameters": [
{
"name": "ref",
"required": true,
"in": "path",
"description": "Project ref",
"schema": { "minLength": 20, "maxLength": 20, "pattern": "^[a-z]+$", "type": "string" }
}
],
"requestBody": {
"required": true,
"content": {
"application/json": { "schema": { "$ref": "#/components/schemas/V1UndoBody" } }
}
},
"responses": { "201": { "description": "" }, "403": { "description": "" } },
"security": [{ "bearer": [] }],
"summary": "Initiates an undo to a given restore point",
"tags": ["Database"],
"x-internal": true
}
},
"/v1/organizations/{slug}/members": {
"get": {
"operationId": "v1-list-organization-members",
"parameters": [
{
"name": "slug",
"required": true,
"in": "path",
"description": "Organization slug",
"schema": { "pattern": "^[\\w-]+$", "type": "string" }
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": { "$ref": "#/components/schemas/V1OrganizationMemberResponse" }
}
}
}
},
"403": { "description": "" }
},
"security": [{ "bearer": [] }],
"summary": "List members of an organization",
"tags": ["Organizations"]
}
},
"/v1/organizations/{slug}": {
"get": {
"operationId": "v1-get-an-organization",
"parameters": [
{
"name": "slug",
"required": true,
"in": "path",
"description": "Organization slug",
"schema": { "pattern": "^[\\w-]+$", "type": "string" }
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": { "$ref": "#/components/schemas/V1OrganizationSlugResponse" }
}
}
},
"403": { "description": "" }
},
"security": [{ "bearer": [] }],
"summary": "Gets information about the organization",
"tags": ["Organizations"]
}
},
"/v1/organizations/{slug}/project-claim/{token}": {
"get": {
"operationId": "v1-get-organization-project-claim",
"parameters": [
{
"name": "slug",
"required": true,
"in": "path",
"description": "Organization slug",
"schema": { "pattern": "^[\\w-]+$", "type": "string" }
},
{ "name": "token", "required": true, "in": "path", "schema": { "type": "string" } }
],
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": { "$ref": "#/components/schemas/OrganizationProjectClaimResponse" }
}
}
},
"403": { "description": "" }
},
"security": [{ "bearer": [] }],
"summary": "Gets project details for the specified organization and claim token",
"tags": ["Organizations"],
"x-internal": true
},
"post": {
"operationId": "v1-claim-project-for-organization",
"parameters": [
{
"name": "slug",
"required": true,
"in": "path",
"description": "Organization slug",
"schema": { "pattern": "^[\\w-]+$", "type": "string" }
},
{ "name": "token", "required": true, "in": "path", "schema": { "type": "string" } }
],
"responses": { "204": { "description": "" }, "403": { "description": "" } },
"security": [{ "bearer": [] }],
"summary": "Claims project for the specified organization",
"tags": ["Organizations"],
"x-internal": true
}
}
},
"info": {
"title": "Supabase API (v1)",
"description": "Supabase API generated from the OpenAPI specification.<br>Visit [https://supabase.com/docs](https://supabase.com/docs) for a complete documentation.",
"version": "1.0.0",
"contact": {}
},
"tags": [
{ "name": "Advisors", "description": "Advisors related endpoints" },
{ "name": "Analytics", "description": "Analytics related endpoints" },
{ "name": "Auth", "description": "Auth related endpoints" },
{ "name": "Billing", "description": "Billing 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": {
"ref": { "type": "string" },
"postgres_version": { "type": "string" },
"postgres_engine": { "type": "string" },
"release_channel": { "type": "string" },
"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_host": { "type": "string" },
"db_port": { "type": "integer", "minimum": 0, "exclusiveMinimum": true },
"db_user": { "type": "string" },
"db_pass": { "type": "string" },
"jwt_secret": { "type": "string" }
},
"required": [
"ref",
"postgres_version",
"postgres_engine",
"release_channel",
"status",
"db_host",
"db_port"
]
},
"UpdateBranchBody": {
"type": "object",
"properties": {
"branch_name": { "type": "string" },
"git_branch": { "type": "string" },
"reset_on_push": {
"type": "boolean",
"description": "This field is deprecated and will be ignored. Use v1-reset-a-branch endpoint directly instead.",
"deprecated": true
},
"persistent": { "type": "boolean" },
"status": {
"type": "string",
"enum": [
"CREATING_PROJECT",
"RUNNING_MIGRATIONS",
"MIGRATIONS_PASSED",
"MIGRATIONS_FAILED",
"FUNCTIONS_DEPLOYED",
"FUNCTIONS_FAILED"
]
},
"request_review": { "type": "boolean" }
}
},
"BranchResponse": {
"type": "object",
"properties": {
"id": { "type": "string", "format": "uuid" },
"name": { "type": "string" },
"project_ref": { "type": "string" },
"parent_project_ref": { "type": "string" },
"is_default": { "type": "boolean" },
"git_branch": { "type": "string" },
"pr_number": { "type": "integer", "format": "int32" },
"latest_check_run_id": {
"type": "number",
"description": "This field is deprecated and will not be populated.",
"deprecated": true
},
"persistent": { "type": "boolean" },
"status": {
"type": "string",
"enum": [
"CREATING_PROJECT",
"RUNNING_MIGRATIONS",
"MIGRATIONS_PASSED",
"MIGRATIONS_FAILED",
"FUNCTIONS_DEPLOYED",
"FUNCTIONS_FAILED"
]
},
"created_at": { "type": "string", "format": "date-time" },
"updated_at": { "type": "string", "format": "date-time" },
"review_requested_at": { "type": "string", "format": "date-time" },
"with_data": { "type": "boolean" }
},
"required": [
"id",
"name",
"project_ref",
"parent_project_ref",
"is_default",
"persistent",
"status",
"created_at",
"updated_at",
"with_data"
]
},
"BranchDeleteResponse": {
"type": "object",
"properties": { "message": { "type": "string", "enum": ["ok"] } },
"required": ["message"]
},
"BranchActionBody": {
"type": "object",
"properties": { "migration_version": { "type": "string" } }
},
"BranchUpdateResponse": {
"type": "object",
"properties": {
"workflow_run_id": { "type": "string" },
"message": { "type": "string", "enum": ["ok"] }
},
"required": ["workflow_run_id", "message"]
},
"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": {
"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"]
}
},
"required": ["id", "organization_id", "name", "region", "created_at", "status", "database"]
},
"V1CreateProjectBody": {
"type": "object",
"properties": {
"db_pass": { "type": "string", "description": "Database password" },
"name": { "type": "string", "maxLength": 256, "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": [
"pico",
"nano",
"micro",
"small",
"medium",
"large",
"xlarge",
"2xlarge",
"4xlarge",
"8xlarge",
"12xlarge",
"16xlarge",
"24xlarge",
"24xlarge_optimized_memory",
"24xlarge_optimized_cpu",
"24xlarge_high_memory",
"48xlarge",
"48xlarge_optimized_memory",
"48xlarge_optimized_cpu",
"48xlarge_high_memory"
]
},
"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"]
},
"CreateOrganizationV1": {
"type": "object",
"properties": { "name": { "type": "string" } },
"required": ["name"],
"additionalProperties": false
},
"OAuthTokenBody": {
"type": "object",
"properties": {
"grant_type": { "type": "string", "enum": ["authorization_code", "refresh_token"] },
"client_id": { "type": "string", "format": "uuid" },
"client_secret": { "type": "string" },
"code": { "type": "string" },
"code_verifier": { "type": "string" },
"redirect_uri": { "type": "string" },
"refresh_token": { "type": "string" },
"resource": {
"type": "string",
"enum": ["https://api.supabase.io/mcp"],
"description": "Resource indicator for MCP (Model Context Protocol) clients"
}
},
"additionalProperties": false
},
"OAuthTokenResponse": {
"type": "object",
"properties": {
"access_token": { "type": "string" },
"refresh_token": { "type": "string" },
"expires_in": { "type": "integer" },
"token_type": { "type": "string", "enum": ["Bearer"] }
},
"required": ["access_token", "refresh_token", "expires_in", "token_type"],
"additionalProperties": false
},
"OAuthRevokeTokenBody": {
"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
},
"SnippetList": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"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": {
"type": "object",
"properties": { "id": { "type": "number" }, "name": { "type": "string" } },
"required": ["id", "name"]
},
"owner": {
"type": "object",
"properties": { "id": { "type": "number" }, "username": { "type": "string" } },
"required": ["id", "username"]
},
"updated_by": {
"type": "object",
"properties": { "id": { "type": "number" }, "username": { "type": "string" } },
"required": ["id", "username"]
}
},
"required": [
"id",
"inserted_at",
"updated_at",
"type",
"visibility",
"name",
"description",
"project",
"owner",
"updated_by"
]
}
},
"cursor": { "type": "string" }
},
"required": ["data"]
},
"SnippetResponse": {
"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": {
"type": "object",
"properties": { "id": { "type": "number" }, "name": { "type": "string" } },
"required": ["id", "name"]
},
"owner": {
"type": "object",
"properties": { "id": { "type": "number" }, "username": { "type": "string" } },
"required": ["id", "username"]
},
"updated_by": {
"type": "object",
"properties": { "id": { "type": "number" }, "username": { "type": "string" } },
"required": ["id", "username"]
},
"content": {
"type": "object",
"properties": {
"favorite": { "type": "boolean" },
"schema_version": { "type": "string" },
"sql": { "type": "string" }
},
"required": ["favorite", "schema_version", "sql"]
}
},
"required": [
"id",
"inserted_at",
"updated_at",
"type",
"visibility",
"name",
"description",
"project",
"owner",
"updated_by",
"content"
]
},
"ApiKeyResponse": {
"type": "object",
"properties": {
"api_key": { "type": "string", "nullable": true },
"id": { "type": "string", "nullable": true },
"type": {
"type": "string",
"enum": ["legacy", "publishable", "secret"],
"nullable": true
},
"prefix": { "type": "string", "nullable": true },
"name": { "type": "string" },
"description": { "type": "string", "nullable": true },
"hash": { "type": "string", "nullable": true },
"secret_jwt_template": { "type": "object", "additionalProperties": {}, "nullable": true },
"inserted_at": { "type": "string", "format": "date-time", "nullable": true },
"updated_at": { "type": "string", "format": "date-time", "nullable": true }
},
"required": ["name"]
},
"LegacyApiKeysResponse": {
"type": "object",
"properties": { "enabled": { "type": "boolean" } },
"required": ["enabled"]
},
"CreateApiKeyBody": {
"type": "object",
"properties": {
"type": { "type": "string", "enum": ["publishable", "secret"] },
"name": {
"type": "string",
"minLength": 4,
"maxLength": 64,
"pattern": "^[a-z_][a-z0-9_]+$"
},
"description": { "type": "string", "nullable": true },
"secret_jwt_template": { "type": "object", "additionalProperties": {}, "nullable": true }
},
"required": ["type", "name"]
},
"UpdateApiKeyBody": {
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 4,
"maxLength": 64,
"pattern": "^[a-z_][a-z0-9_]+$"
},
"description": { "type": "string", "nullable": true },
"secret_jwt_template": { "type": "object", "additionalProperties": {}, "nullable": true }
}
},
"CreateBranchBody": {
"type": "object",
"properties": {
"branch_name": { "type": "string", "minLength": 1 },
"git_branch": { "type": "string" },
"is_default": { "type": "boolean" },
"persistent": { "type": "boolean" },
"region": { "type": "string" },
"desired_instance_size": {
"type": "string",
"enum": [
"pico",
"nano",
"micro",
"small",
"medium",
"large",
"xlarge",
"2xlarge",
"4xlarge",
"8xlarge",
"12xlarge",
"16xlarge",
"24xlarge",
"24xlarge_optimized_memory",
"24xlarge_optimized_cpu",
"24xlarge_high_memory",
"48xlarge",
"48xlarge_optimized_memory",
"48xlarge_optimized_cpu",
"48xlarge_high_memory"
]
},
"release_channel": {
"type": "string",
"enum": ["internal", "alpha", "beta", "ga", "withdrawn", "preview"],
"description": "Release channel. If not provided, GA will be used."
},
"postgres_engine": {
"type": "string",
"enum": ["15", "17", "17-oriole"],
"description": "Postgres engine version. If not provided, the latest version will be used."
},
"secrets": { "type": "object", "additionalProperties": { "type": "string" } },
"with_data": { "type": "boolean" }
},
"required": ["branch_name"]
},
"UpdateCustomHostnameResponse": {
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"1_not_started",
"2_initiated",
"3_challenge_verified",
"4_origin_setup_completed",
"5_services_reconfigured"
]
},
"custom_hostname": { "type": "string" },
"data": {
"type": "object",
"properties": {
"success": { "type": "boolean" },
"errors": {
"type": "array",
"items": { "description": "Any JSON-serializable value" }
},
"messages": {
"type": "array",
"items": { "description": "Any JSON-serializable value" }
},
"result": {
"type": "object",
"properties": {
"id": { "type": "string" },
"hostname": { "type": "string" },
"ssl": {
"type": "object",
"properties": {
"status": { "type": "string" },
"validation_records": {
"type": "array",
"items": {
"type": "object",
"properties": {
"txt_name": { "type": "string" },
"txt_value": { "type": "string" }
},
"required": ["txt_name", "txt_value"]
}
},
"validation_errors": {
"type": "array",
"items": {
"type": "object",
"properties": { "message": { "type": "string" } },
"required": ["message"]
}
}
},
"required": ["status", "validation_records"]
},
"ownership_verification": {
"type": "object",
"properties": {
"type": { "type": "string" },
"name": { "type": "string" },
"value": { "type": "string" }
},
"required": ["type", "name", "value"]
},
"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"
]
}
},
"required": ["success", "errors", "messages", "result"]
}
},
"required": ["status", "custom_hostname", "data"]
},
"UpdateCustomHostnameBody": {
"type": "object",
"properties": { "custom_hostname": { "type": "string", "minLength": 1 } },
"required": ["custom_hostname"]
},
"NetworkBanResponse": {
"type": "object",
"properties": {
"banned_ipv4_addresses": { "type": "array", "items": { "type": "string" } }
},
"required": ["banned_ipv4_addresses"]
},
"NetworkBanResponseEnriched": {
"type": "object",
"properties": {
"banned_ipv4_addresses": {
"type": "array",
"items": {
"type": "object",
"properties": {
"banned_address": { "type": "string" },
"identifier": { "type": "string" },
"type": { "type": "string" }
},
"required": ["banned_address", "identifier", "type"]
}
}
},
"required": ["banned_ipv4_addresses"]
},
"RemoveNetworkBanRequest": {
"type": "object",
"properties": {
"ipv4_addresses": {
"type": "array",
"items": { "type": "string" },
"description": "List of IP addresses to unban."
},
"requester_ip": {
"default": false,
"type": "boolean",
"description": "Include requester's public IP in the list of addresses to unban."
},
"identifier": { "type": "string" }
},
"required": ["ipv4_addresses"]
},
"NetworkRestrictionsResponse": {
"type": "object",
"properties": {
"entitlement": { "type": "string", "enum": ["disallowed", "allowed"] },
"config": {
"type": "object",
"properties": {
"dbAllowedCidrs": { "type": "array", "items": { "type": "string" } },
"dbAllowedCidrsV6": { "type": "array", "items": { "type": "string" } }
},
"description": "At any given point in time, this is the config that the user has requested be applied to their project. The `status` field indicates if it has been applied to the project, or is pending. When an updated config is received, the applied config is moved to `old_config`."
},
"old_config": {
"type": "object",
"properties": {
"dbAllowedCidrs": { "type": "array", "items": { "type": "string" } },
"dbAllowedCidrsV6": { "type": "array", "items": { "type": "string" } }
},
"description": "Populated when a new config has been received, but not registered as successfully applied to a project."
},
"status": { "type": "string", "enum": ["stored", "applied"] },
"updated_at": { "type": "string", "format": "date-time" },
"applied_at": { "type": "string", "format": "date-time" }
},
"required": ["entitlement", "config", "status"]
},
"NetworkRestrictionsRequest": {
"type": "object",
"properties": {
"dbAllowedCidrs": { "type": "array", "items": { "type": "string" } },
"dbAllowedCidrsV6": { "type": "array", "items": { "type": "string" } }
}
},
"NetworkRestrictionsPatchRequest": {
"type": "object",
"properties": {
"add": {
"type": "object",
"properties": {
"dbAllowedCidrs": { "type": "array", "items": { "type": "string" } },
"dbAllowedCidrsV6": { "type": "array", "items": { "type": "string" } }
}
},
"remove": {
"type": "object",
"properties": {
"dbAllowedCidrs": { "type": "array", "items": { "type": "string" } },
"dbAllowedCidrsV6": { "type": "array", "items": { "type": "string" } }
}
}
}
},
"NetworkRestrictionsV2Response": {
"type": "object",
"properties": {
"entitlement": { "type": "string", "enum": ["disallowed", "allowed"] },
"config": {
"type": "object",
"properties": {
"dbAllowedCidrs": {
"type": "array",
"items": {
"type": "object",
"properties": {
"address": { "type": "string" },
"type": { "type": "string", "enum": ["v4", "v6"] }
},
"required": ["address", "type"]
}
}
},
"description": "At any given point in time, this is the config that the user has requested be applied to their project. The `status` field indicates if it has been applied to the project, or is pending. When an updated config is received, the applied config is moved to `old_config`."
},
"old_config": {
"type": "object",
"properties": {
"dbAllowedCidrs": {
"type": "array",
"items": {
"type": "object",
"properties": {
"address": { "type": "string" },
"type": { "type": "string", "enum": ["v4", "v6"] }
},
"required": ["address", "type"]
}
}
},
"description": "Populated when a new config has been received, but not registered as successfully applied to a project."
},
"updated_at": { "type": "string", "format": "date-time" },
"applied_at": { "type": "string", "format": "date-time" },
"status": { "type": "string", "enum": ["stored", "applied"] }
},
"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": {
"db_schema": { "type": "string" },
"max_rows": { "type": "integer" },
"db_extra_search_path": { "type": "string" },
"db_pool": {
"type": "integer",
"nullable": true,
"description": "If `null`, the value is automatically configured based on compute size."
},
"jwt_secret": { "type": "string" }
},
"required": ["db_schema", "max_rows", "db_extra_search_path", "db_pool"]
},
"V1UpdatePostgrestConfigBody": {
"type": "object",
"properties": {
"db_extra_search_path": { "type": "string" },
"db_schema": { "type": "string" },
"max_rows": { "type": "integer", "minimum": 0, "maximum": 1000000 },
"db_pool": { "type": "integer", "minimum": 0, "maximum": 1000 }
}
},
"V1PostgrestConfigResponse": {
"type": "object",
"properties": {
"db_schema": { "type": "string" },
"max_rows": { "type": "integer" },
"db_extra_search_path": { "type": "string" },
"db_pool": {
"type": "integer",
"nullable": true,
"description": "If `null`, the value is automatically configured based on compute size."
}
},
"required": ["db_schema", "max_rows", "db_extra_search_path", "db_pool"]
},
"V1ProjectRefResponse": {
"type": "object",
"properties": {
"id": { "type": "integer" },
"ref": { "type": "string" },
"name": { "type": "string" }
},
"required": ["id", "ref", "name"]
},
"SecretResponse": {
"type": "object",
"properties": {
"name": { "type": "string" },
"value": { "type": "string" },
"updated_at": { "type": "string" }
},
"required": ["name", "value"]
},
"CreateSecretBody": {
"type": "array",
"items": {
"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"]
}
},
"SslEnforcementResponse": {
"type": "object",
"properties": {
"currentConfig": {
"type": "object",
"properties": { "database": { "type": "boolean" } },
"required": ["database"]
},
"appliedSuccessfully": { "type": "boolean" }
},
"required": ["currentConfig", "appliedSuccessfully"]
},
"SslEnforcementRequest": {
"type": "object",
"properties": {
"requestedConfig": {
"type": "object",
"properties": { "database": { "type": "boolean" } },
"required": ["database"]
}
},
"required": ["requestedConfig"]
},
"TypescriptResponse": {
"type": "object",
"properties": { "types": { "type": "string" } },
"required": ["types"]
},
"VanitySubdomainConfigResponse": {
"type": "object",
"properties": {
"status": { "type": "string", "enum": ["not-used", "custom-domain-used", "active"] },
"custom_domain": { "type": "string", "minLength": 1 }
},
"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": {
"target_version": { "type": "string" },
"release_channel": {
"type": "string",
"enum": ["internal", "alpha", "beta", "ga", "withdrawn", "preview"]
}
},
"required": ["target_version"]
},
"ProjectUpgradeInitiateResponse": {
"type": "object",
"properties": { "tracking_id": { "type": "string" } },
"required": ["tracking_id"]
},
"ProjectUpgradeEligibilityResponse": {
"type": "object",
"properties": {
"eligible": { "type": "boolean" },
"current_app_version": { "type": "string" },
"current_app_version_release_channel": {
"type": "string",
"enum": ["internal", "alpha", "beta", "ga", "withdrawn", "preview"]
},
"latest_app_version": { "type": "string" },
"target_upgrade_versions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"postgres_version": {
"type": "string",
"enum": ["13", "14", "15", "17", "17-oriole"]
},
"release_channel": {
"type": "string",
"enum": ["internal", "alpha", "beta", "ga", "withdrawn", "preview"]
},
"app_version": { "type": "string" }
},
"required": ["postgres_version", "release_channel", "app_version"]
}
},
"duration_estimate_hours": { "type": "number" },
"legacy_auth_custom_roles": { "type": "array", "items": { "type": "string" } },
"objects_to_be_dropped": { "type": "array", "items": { "type": "string" } },
"unsupported_extensions": { "type": "array", "items": { "type": "string" } },
"user_defined_objects_in_internal_schemas": {
"type": "array",
"items": { "type": "string" }
}
},
"required": [
"eligible",
"current_app_version",
"current_app_version_release_channel",
"latest_app_version",
"target_upgrade_versions",
"duration_estimate_hours",
"legacy_auth_custom_roles",
"objects_to_be_dropped",
"unsupported_extensions",
"user_defined_objects_in_internal_schemas"
]
},
"DatabaseUpgradeStatusResponse": {
"type": "object",
"properties": {
"databaseUpgradeStatus": {
"type": "object",
"properties": {
"initiated_at": { "type": "string" },
"latest_status_at": { "type": "string" },
"target_version": { "type": "number" },
"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"
]
},
"status": { "type": "number" }
},
"required": ["initiated_at", "latest_status_at", "target_version", "status"],
"nullable": true
}
},
"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"]
},
"V1ServiceHealthResponse": {
"type": "object",
"properties": {
"name": {
"type": "string",
"enum": [
"auth",
"db",
"db_postgres_user",
"pooler",
"realtime",
"rest",
"storage",
"pg_bouncer"
]
},
"healthy": { "type": "boolean" },
"status": { "type": "string", "enum": ["COMING_UP", "ACTIVE_HEALTHY", "UNHEALTHY"] },
"info": {
"oneOf": [
{
"type": "object",
"properties": {
"name": { "type": "string", "enum": ["GoTrue"] },
"version": { "type": "string" },
"description": { "type": "string" }
},
"required": ["name", "version", "description"]
},
{
"type": "object",
"properties": {
"healthy": { "type": "boolean" },
"db_connected": { "type": "boolean" },
"connected_cluster": { "type": "integer" }
},
"required": ["healthy", "db_connected", "connected_cluster"]
}
]
},
"error": { "type": "string" }
},
"required": ["name", "healthy", "status"]
},
"SigningKeyResponse": {
"type": "object",
"properties": {
"id": { "type": "string", "format": "uuid" },
"algorithm": { "type": "string", "enum": ["EdDSA", "ES256", "RS256", "HS256"] },
"status": {
"type": "string",
"enum": ["in_use", "previously_used", "revoked", "standby"]
},
"public_jwk": { "nullable": true },
"created_at": { "type": "string", "format": "date-time" },
"updated_at": { "type": "string", "format": "date-time" }
},
"required": ["id", "algorithm", "status", "created_at", "updated_at"],
"additionalProperties": false
},
"CreateSigningKeyBody": {
"type": "object",
"properties": {
"algorithm": { "type": "string", "enum": ["EdDSA", "ES256", "RS256", "HS256"] },
"status": { "type": "string", "enum": ["in_use", "standby"] },
"private_jwk": {
"discriminator": { "propertyName": "kty" },
"oneOf": [
{
"type": "object",
"properties": {
"kty": { "type": "string", "enum": ["RSA"] },
"n": { "type": "string" },
"e": { "type": "string", "enum": ["AQAB"] },
"d": { "type": "string" },
"p": { "type": "string" },
"q": { "type": "string" },
"dp": { "type": "string" },
"dq": { "type": "string" },
"qi": { "type": "string" }
},
"required": ["kty", "n", "e", "d", "p", "q", "dp", "dq", "qi"],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"kty": { "type": "string", "enum": ["EC"] },
"crv": { "type": "string", "enum": ["P-256"] },
"x": { "type": "string" },
"y": { "type": "string" },
"d": { "type": "string" }
},
"required": ["kty", "crv", "x", "y", "d"],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"kty": { "type": "string", "enum": ["OKP"] },
"crv": { "type": "string", "enum": ["Ed25519"] },
"x": { "type": "string" },
"d": { "type": "string" }
},
"required": ["kty", "crv", "x", "d"],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"kty": { "type": "string", "enum": ["oct"] },
"k": { "type": "string", "minLength": 16 }
},
"required": ["kty", "k"],
"additionalProperties": false
}
]
}
},
"required": ["algorithm"],
"additionalProperties": false
},
"SigningKeysResponse": {
"type": "object",
"properties": {
"keys": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": { "type": "string", "format": "uuid" },
"algorithm": { "type": "string", "enum": ["EdDSA", "ES256", "RS256", "HS256"] },
"status": {
"type": "string",
"enum": ["in_use", "previously_used", "revoked", "standby"]
},
"public_jwk": { "nullable": true },
"created_at": { "type": "string", "format": "date-time" },
"updated_at": { "type": "string", "format": "date-time" }
},
"required": ["id", "algorithm", "status", "created_at", "updated_at"],
"additionalProperties": false
}
}
},
"required": ["keys"],
"additionalProperties": false
},
"UpdateSigningKeyBody": {
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": ["in_use", "previously_used", "revoked", "standby"]
}
},
"required": ["status"],
"additionalProperties": false
},
"StorageConfigResponse": {
"type": "object",
"properties": {
"fileSizeLimit": { "type": "integer", "format": "int64" },
"features": {
"type": "object",
"properties": {
"imageTransformation": {
"type": "object",
"properties": { "enabled": { "type": "boolean" } },
"required": ["enabled"]
},
"s3Protocol": {
"type": "object",
"properties": { "enabled": { "type": "boolean" } },
"required": ["enabled"]
},
"icebergCatalog": {
"type": "object",
"properties": { "enabled": { "type": "boolean" } },
"required": ["enabled"]
}
},
"required": ["imageTransformation", "s3Protocol"]
},
"capabilities": {
"type": "object",
"properties": {
"list_v2": { "type": "boolean" },
"iceberg_catalog": { "type": "boolean" }
},
"required": ["list_v2", "iceberg_catalog"]
},
"external": {
"type": "object",
"properties": { "upstreamTarget": { "type": "string", "enum": ["main", "canary"] } },
"required": ["upstreamTarget"]
}
},
"required": ["fileSizeLimit", "features", "capabilities", "external"]
},
"UpdateStorageConfigBody": {
"type": "object",
"properties": {
"fileSizeLimit": {
"type": "integer",
"minimum": 0,
"maximum": 536870912000,
"format": "int64"
},
"features": {
"type": "object",
"properties": {
"imageTransformation": {
"type": "object",
"properties": { "enabled": { "type": "boolean" } },
"required": ["enabled"]
},
"s3Protocol": {
"type": "object",
"properties": { "enabled": { "type": "boolean" } },
"required": ["enabled"]
},
"icebergCatalog": {
"type": "object",
"properties": { "enabled": { "type": "boolean" } },
"required": ["enabled"]
}
},
"required": ["imageTransformation", "s3Protocol"]
},
"external": {
"type": "object",
"properties": { "upstreamTarget": { "type": "string", "enum": ["main", "canary"] } },
"required": ["upstreamTarget"]
}
},
"additionalProperties": false
},
"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 },
"session_replication_role": { "type": "string", "enum": ["origin", "replica", "local"] },
"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" }
}
},
"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 },
"session_replication_role": { "type": "string", "enum": ["origin", "replica", "local"] },
"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" }
},
"additionalProperties": false
},
"V1PgbouncerConfigResponse": {
"type": "object",
"properties": {
"default_pool_size": { "type": "integer" },
"ignore_startup_parameters": { "type": "string" },
"max_client_conn": { "type": "integer" },
"pool_mode": { "type": "string", "enum": ["transaction", "session", "statement"] },
"connection_string": { "type": "string" },
"server_idle_timeout": { "type": "integer" },
"server_lifetime": { "type": "integer" },
"query_wait_timeout": { "type": "integer" },
"reserve_pool_size": { "type": "integer" }
}
},
"SupavisorConfigResponse": {
"type": "object",
"properties": {
"identifier": { "type": "string" },
"database_type": { "type": "string", "enum": ["PRIMARY", "READ_REPLICA"] },
"is_using_scram_auth": { "type": "boolean" },
"db_user": { "type": "string" },
"db_host": { "type": "string" },
"db_port": { "type": "integer" },
"db_name": { "type": "string" },
"connection_string": { "type": "string" },
"connectionString": { "type": "string", "description": "Use connection_string instead" },
"default_pool_size": { "type": "integer", "nullable": true },
"max_client_conn": { "type": "integer", "nullable": true },
"pool_mode": { "type": "string", "enum": ["transaction", "session"] }
},
"required": [
"identifier",
"database_type",
"is_using_scram_auth",
"db_user",
"db_host",
"db_port",
"db_name",
"connection_string",
"connectionString",
"default_pool_size",
"max_client_conn",
"pool_mode"
]
},
"UpdateSupavisorConfigBody": {
"type": "object",
"properties": {
"default_pool_size": {
"type": "integer",
"minimum": 0,
"maximum": 3000,
"nullable": true
},
"pool_mode": {
"type": "string",
"enum": ["transaction", "session"],
"description": "Dedicated pooler mode for the project"
}
}
},
"UpdateSupavisorConfigResponse": {
"type": "object",
"properties": {
"default_pool_size": { "type": "integer", "nullable": true },
"pool_mode": { "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 },
"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_web3_solana_enabled": { "type": "boolean", "nullable": true },
"external_web3_ethereum_enabled": { "type": "boolean", "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 },
"hook_before_user_created_enabled": { "type": "boolean", "nullable": true },
"hook_before_user_created_uri": { "type": "string", "nullable": true },
"hook_before_user_created_secrets": { "type": "string", "nullable": true },
"jwt_exp": { "type": "integer", "nullable": true },
"mailer_allow_unverified_email_sign_ins": { "type": "boolean", "nullable": true },
"mailer_autoconfirm": { "type": "boolean", "nullable": true },
"mailer_otp_exp": { "type": "integer" },
"mailer_otp_length": { "type": "integer", "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_max_enrolled_factors": { "type": "integer", "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_otp_length": { "type": "integer" },
"mfa_phone_template": { "type": "string", "nullable": true },
"mfa_phone_max_frequency": { "type": "integer", "nullable": true },
"nimbus_oauth_client_id": { "type": "string", "nullable": true },
"nimbus_oauth_client_secret": { "type": "string", "nullable": true },
"password_hibp_enabled": { "type": "boolean", "nullable": true },
"password_min_length": { "type": "integer", "nullable": true },
"password_required_characters": {
"type": "string",
"enum": [
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ:0123456789",
"abcdefghijklmnopqrstuvwxyz:ABCDEFGHIJKLMNOPQRSTUVWXYZ:0123456789",
"abcdefghijklmnopqrstuvwxyz:ABCDEFGHIJKLMNOPQRSTUVWXYZ:0123456789:!@#$%^&*()_+-=[]{};'\\\\:\"|<>?,./`~",
""
],
"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 },
"rate_limit_web3": { "type": "integer", "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",
"enum": ["turnstile", "hcaptcha"],
"nullable": true
},
"security_captcha_secret": { "type": "string", "nullable": true },
"security_manual_linking_enabled": { "type": "boolean", "nullable": true },
"security_refresh_token_reuse_interval": { "type": "integer", "nullable": true },
"security_update_password_require_reauthentication": {
"type": "boolean",
"nullable": true
},
"sessions_inactivity_timeout": { "type": "integer", "nullable": true },
"sessions_single_per_user": { "type": "boolean", "nullable": true },
"sessions_tags": { "type": "string", "nullable": true },
"sessions_timebox": { "type": "integer", "nullable": true },
"site_url": { "type": "string", "nullable": true },
"sms_autoconfirm": { "type": "boolean", "nullable": true },
"sms_max_frequency": { "type": "integer", "nullable": true },
"sms_messagebird_access_key": { "type": "string", "nullable": true },
"sms_messagebird_originator": { "type": "string", "nullable": true },
"sms_otp_exp": { "type": "integer", "nullable": true },
"sms_otp_length": { "type": "integer" },
"sms_provider": {
"type": "string",
"enum": ["messagebird", "textlocal", "twilio", "twilio_verify", "vonage"],
"nullable": true
},
"sms_template": { "type": "string", "nullable": true },
"sms_test_otp": { "type": "string", "nullable": true },
"sms_test_otp_valid_until": { "type": "string", "format": "date-time", "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", "format": "email", "nullable": true },
"smtp_host": { "type": "string", "nullable": true },
"smtp_max_frequency": { "type": "integer", "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",
"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_web3_solana_enabled",
"external_web3_ethereum_enabled",
"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",
"hook_before_user_created_enabled",
"hook_before_user_created_uri",
"hook_before_user_created_secrets",
"jwt_exp",
"mailer_allow_unverified_email_sign_ins",
"mailer_autoconfirm",
"mailer_otp_exp",
"mailer_otp_length",
"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_max_enrolled_factors",
"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_otp_length",
"mfa_phone_template",
"mfa_phone_max_frequency",
"nimbus_oauth_client_id",
"nimbus_oauth_client_secret",
"password_hibp_enabled",
"password_min_length",
"password_required_characters",
"rate_limit_anonymous_users",
"rate_limit_email_sent",
"rate_limit_sms_sent",
"rate_limit_token_refresh",
"rate_limit_verify",
"rate_limit_otp",
"rate_limit_web3",
"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_refresh_token_reuse_interval",
"security_update_password_require_reauthentication",
"sessions_inactivity_timeout",
"sessions_single_per_user",
"sessions_tags",
"sessions_timebox",
"site_url",
"sms_autoconfirm",
"sms_max_frequency",
"sms_messagebird_access_key",
"sms_messagebird_originator",
"sms_otp_exp",
"sms_otp_length",
"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_max_frequency",
"smtp_pass",
"smtp_port",
"smtp_sender_name",
"smtp_user",
"uri_allow_list"
]
},
"UpdateAuthConfigBody": {
"type": "object",
"properties": {
"site_url": { "type": "string", "pattern": "^[^,]+$", "nullable": true },
"disable_signup": { "type": "boolean", "nullable": true },
"jwt_exp": { "type": "integer", "minimum": 0, "maximum": 604800, "nullable": true },
"smtp_admin_email": { "type": "string", "format": "email", "nullable": true },
"smtp_host": { "type": "string", "nullable": true },
"smtp_port": { "type": "string", "nullable": true },
"smtp_user": { "type": "string", "nullable": true },
"smtp_pass": { "type": "string", "nullable": true },
"smtp_max_frequency": {
"type": "integer",
"minimum": 0,
"maximum": 32767,
"nullable": true
},
"smtp_sender_name": { "type": "string", "nullable": true },
"mailer_allow_unverified_email_sign_ins": { "type": "boolean", "nullable": true },
"mailer_autoconfirm": { "type": "boolean", "nullable": true },
"mailer_subjects_invite": { "type": "string", "nullable": true },
"mailer_subjects_confirmation": { "type": "string", "nullable": true },
"mailer_subjects_recovery": { "type": "string", "nullable": true },
"mailer_subjects_email_change": { "type": "string", "nullable": true },
"mailer_subjects_magic_link": { "type": "string", "nullable": true },
"mailer_subjects_reauthentication": { "type": "string", "nullable": true },
"mailer_templates_invite_content": { "type": "string", "nullable": true },
"mailer_templates_confirmation_content": { "type": "string", "nullable": true },
"mailer_templates_recovery_content": { "type": "string", "nullable": true },
"mailer_templates_email_change_content": { "type": "string", "nullable": true },
"mailer_templates_magic_link_content": { "type": "string", "nullable": true },
"mailer_templates_reauthentication_content": { "type": "string", "nullable": true },
"mfa_max_enrolled_factors": {
"type": "integer",
"minimum": 0,
"maximum": 2147483647,
"nullable": true
},
"uri_allow_list": { "type": "string", "nullable": true },
"external_anonymous_users_enabled": { "type": "boolean", "nullable": true },
"external_email_enabled": { "type": "boolean", "nullable": true },
"external_phone_enabled": { "type": "boolean", "nullable": true },
"saml_enabled": { "type": "boolean", "nullable": true },
"saml_external_url": { "type": "string", "pattern": "^[^,]+$", "nullable": true },
"security_captcha_enabled": { "type": "boolean", "nullable": true },
"security_captcha_provider": {
"type": "string",
"enum": ["turnstile", "hcaptcha"],
"nullable": true
},
"security_captcha_secret": { "type": "string", "nullable": true },
"sessions_timebox": { "type": "integer", "minimum": 0, "nullable": true },
"sessions_inactivity_timeout": { "type": "integer", "minimum": 0, "nullable": true },
"sessions_single_per_user": { "type": "boolean", "nullable": true },
"sessions_tags": {
"type": "string",
"pattern": "^\\s*([a-zA-Z0-9_-]+(\\s*,+\\s*)?)*\\s*$",
"nullable": true
},
"rate_limit_anonymous_users": {
"type": "integer",
"minimum": 1,
"maximum": 2147483647,
"nullable": true
},
"rate_limit_email_sent": {
"type": "integer",
"minimum": 1,
"maximum": 2147483647,
"nullable": true
},
"rate_limit_sms_sent": {
"type": "integer",
"minimum": 1,
"maximum": 2147483647,
"nullable": true
},
"rate_limit_verify": {
"type": "integer",
"minimum": 1,
"maximum": 2147483647,
"nullable": true
},
"rate_limit_token_refresh": {
"type": "integer",
"minimum": 1,
"maximum": 2147483647,
"nullable": true
},
"rate_limit_otp": {
"type": "integer",
"minimum": 1,
"maximum": 2147483647,
"nullable": true
},
"rate_limit_web3": {
"type": "integer",
"minimum": 1,
"maximum": 2147483647,
"nullable": true
},
"mailer_secure_email_change_enabled": { "type": "boolean", "nullable": true },
"refresh_token_rotation_enabled": { "type": "boolean", "nullable": true },
"password_hibp_enabled": { "type": "boolean", "nullable": true },
"password_min_length": {
"type": "integer",
"minimum": 6,
"maximum": 32767,
"nullable": true
},
"password_required_characters": {
"type": "string",
"enum": [
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ:0123456789",
"abcdefghijklmnopqrstuvwxyz:ABCDEFGHIJKLMNOPQRSTUVWXYZ:0123456789",
"abcdefghijklmnopqrstuvwxyz:ABCDEFGHIJKLMNOPQRSTUVWXYZ:0123456789:!@#$%^&*()_+-=[]{};'\\\\:\"|<>?,./`~",
""
],
"nullable": true
},
"security_manual_linking_enabled": { "type": "boolean", "nullable": true },
"security_update_password_require_reauthentication": {
"type": "boolean",
"nullable": true
},
"security_refresh_token_reuse_interval": {
"type": "integer",
"minimum": 0,
"maximum": 2147483647,
"nullable": true
},
"mailer_otp_exp": { "type": "integer", "minimum": 0, "maximum": 2147483647 },
"mailer_otp_length": { "type": "integer", "minimum": 6, "maximum": 10, "nullable": true },
"sms_autoconfirm": { "type": "boolean", "nullable": true },
"sms_max_frequency": {
"type": "integer",
"minimum": 0,
"maximum": 32767,
"nullable": true
},
"sms_otp_exp": {
"type": "integer",
"minimum": 0,
"maximum": 2147483647,
"nullable": true
},
"sms_otp_length": { "type": "integer", "minimum": 0, "maximum": 32767 },
"sms_provider": {
"type": "string",
"enum": ["messagebird", "textlocal", "twilio", "twilio_verify", "vonage"],
"nullable": true
},
"sms_messagebird_access_key": { "type": "string", "nullable": true },
"sms_messagebird_originator": { "type": "string", "nullable": true },
"sms_test_otp": {
"type": "string",
"pattern": "^([0-9]{1,15}=[0-9]+,?)*$",
"nullable": true
},
"sms_test_otp_valid_until": { "type": "string", "format": "date-time", "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 },
"sms_template": { "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_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_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 },
"hook_before_user_created_enabled": { "type": "boolean", "nullable": true },
"hook_before_user_created_uri": { "type": "string", "nullable": true },
"hook_before_user_created_secrets": { "type": "string", "nullable": true },
"external_apple_enabled": { "type": "boolean", "nullable": true },
"external_apple_client_id": { "type": "string", "nullable": true },
"external_apple_secret": { "type": "string", "nullable": true },
"external_apple_additional_client_ids": { "type": "string", "nullable": true },
"external_azure_enabled": { "type": "boolean", "nullable": true },
"external_azure_client_id": { "type": "string", "nullable": true },
"external_azure_secret": { "type": "string", "nullable": true },
"external_azure_url": { "type": "string", "nullable": true },
"external_bitbucket_enabled": { "type": "boolean", "nullable": true },
"external_bitbucket_client_id": { "type": "string", "nullable": true },
"external_bitbucket_secret": { "type": "string", "nullable": true },
"external_discord_enabled": { "type": "boolean", "nullable": true },
"external_discord_client_id": { "type": "string", "nullable": true },
"external_discord_secret": { "type": "string", "nullable": true },
"external_facebook_enabled": { "type": "boolean", "nullable": true },
"external_facebook_client_id": { "type": "string", "nullable": true },
"external_facebook_secret": { "type": "string", "nullable": true },
"external_figma_enabled": { "type": "boolean", "nullable": true },
"external_figma_client_id": { "type": "string", "nullable": true },
"external_figma_secret": { "type": "string", "nullable": true },
"external_github_enabled": { "type": "boolean", "nullable": true },
"external_github_client_id": { "type": "string", "nullable": true },
"external_github_secret": { "type": "string", "nullable": true },
"external_gitlab_enabled": { "type": "boolean", "nullable": true },
"external_gitlab_client_id": { "type": "string", "nullable": true },
"external_gitlab_secret": { "type": "string", "nullable": true },
"external_gitlab_url": { "type": "string", "nullable": true },
"external_google_enabled": { "type": "boolean", "nullable": true },
"external_google_client_id": { "type": "string", "nullable": true },
"external_google_secret": { "type": "string", "nullable": true },
"external_google_additional_client_ids": { "type": "string", "nullable": true },
"external_google_skip_nonce_check": { "type": "boolean", "nullable": true },
"external_kakao_enabled": { "type": "boolean", "nullable": true },
"external_kakao_client_id": { "type": "string", "nullable": true },
"external_kakao_secret": { "type": "string", "nullable": true },
"external_keycloak_enabled": { "type": "boolean", "nullable": true },
"external_keycloak_client_id": { "type": "string", "nullable": true },
"external_keycloak_secret": { "type": "string", "nullable": true },
"external_keycloak_url": { "type": "string", "nullable": true },
"external_linkedin_oidc_enabled": { "type": "boolean", "nullable": true },
"external_linkedin_oidc_client_id": { "type": "string", "nullable": true },
"external_linkedin_oidc_secret": { "type": "string", "nullable": true },
"external_slack_oidc_enabled": { "type": "boolean", "nullable": true },
"external_slack_oidc_client_id": { "type": "string", "nullable": true },
"external_slack_oidc_secret": { "type": "string", "nullable": true },
"external_notion_enabled": { "type": "boolean", "nullable": true },
"external_notion_client_id": { "type": "string", "nullable": true },
"external_notion_secret": { "type": "string", "nullable": true },
"external_slack_enabled": { "type": "boolean", "nullable": true },
"external_slack_client_id": { "type": "string", "nullable": true },
"external_slack_secret": { "type": "string", "nullable": true },
"external_spotify_enabled": { "type": "boolean", "nullable": true },
"external_spotify_client_id": { "type": "string", "nullable": true },
"external_spotify_secret": { "type": "string", "nullable": true },
"external_twitch_enabled": { "type": "boolean", "nullable": true },
"external_twitch_client_id": { "type": "string", "nullable": true },
"external_twitch_secret": { "type": "string", "nullable": true },
"external_twitter_enabled": { "type": "boolean", "nullable": true },
"external_twitter_client_id": { "type": "string", "nullable": true },
"external_twitter_secret": { "type": "string", "nullable": true },
"external_workos_enabled": { "type": "boolean", "nullable": true },
"external_workos_client_id": { "type": "string", "nullable": true },
"external_workos_secret": { "type": "string", "nullable": true },
"external_workos_url": { "type": "string", "nullable": true },
"external_web3_solana_enabled": { "type": "boolean", "nullable": true },
"external_web3_ethereum_enabled": { "type": "boolean", "nullable": true },
"external_zoom_enabled": { "type": "boolean", "nullable": true },
"external_zoom_client_id": { "type": "string", "nullable": true },
"external_zoom_secret": { "type": "string", "nullable": true },
"db_max_pool_size": { "type": "integer", "nullable": true },
"api_max_request_duration": { "type": "integer", "nullable": true },
"mfa_totp_enroll_enabled": { "type": "boolean", "nullable": true },
"mfa_totp_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_enroll_enabled": { "type": "boolean", "nullable": true },
"mfa_phone_verify_enabled": { "type": "boolean", "nullable": true },
"mfa_phone_max_frequency": {
"type": "integer",
"minimum": 0,
"maximum": 32767,
"nullable": true
},
"mfa_phone_otp_length": {
"type": "integer",
"minimum": 0,
"maximum": 32767,
"nullable": true
},
"mfa_phone_template": { "type": "string", "nullable": true },
"nimbus_oauth_client_id": { "type": "string", "nullable": true },
"nimbus_oauth_client_secret": { "type": "string", "nullable": true }
}
},
"CreateThirdPartyAuthBody": {
"type": "object",
"properties": {
"oidc_issuer_url": { "type": "string" },
"jwks_url": { "type": "string" },
"custom_jwks": {}
}
},
"ThirdPartyAuth": {
"type": "object",
"properties": {
"id": { "type": "string", "format": "uuid" },
"type": { "type": "string" },
"oidc_issuer_url": { "type": "string", "nullable": true },
"jwks_url": { "type": "string", "nullable": true },
"custom_jwks": { "nullable": true },
"resolved_jwks": { "nullable": true },
"inserted_at": { "type": "string" },
"updated_at": { "type": "string" },
"resolved_at": { "type": "string", "nullable": true }
},
"required": ["id", "type", "inserted_at", "updated_at"]
},
"GetProjectAvailableRestoreVersionsResponse": {
"type": "object",
"properties": {
"available_versions": {
"type": "array",
"items": {
"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"]
}
}
},
"required": ["available_versions"]
},
"ListProjectAddonsResponse": {
"type": "object",
"properties": {
"selected_addons": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"custom_domain",
"compute_instance",
"pitr",
"ipv4",
"auth_mfa_phone",
"auth_mfa_web_authn",
"log_drain"
]
},
"variant": {
"type": "object",
"properties": {
"id": {
"oneOf": [
{
"type": "string",
"enum": [
"ci_micro",
"ci_small",
"ci_medium",
"ci_large",
"ci_xlarge",
"ci_2xlarge",
"ci_4xlarge",
"ci_8xlarge",
"ci_12xlarge",
"ci_16xlarge",
"ci_24xlarge",
"ci_24xlarge_optimized_cpu",
"ci_24xlarge_optimized_memory",
"ci_24xlarge_high_memory",
"ci_48xlarge",
"ci_48xlarge_optimized_cpu",
"ci_48xlarge_optimized_memory",
"ci_48xlarge_high_memory"
]
},
{ "type": "string", "enum": ["cd_default"] },
{ "type": "string", "enum": ["pitr_7", "pitr_14", "pitr_28"] },
{ "type": "string", "enum": ["ipv4_default"] },
{ "type": "string", "enum": ["auth_mfa_phone_default"] },
{ "type": "string", "enum": ["auth_mfa_web_authn_default"] },
{ "type": "string", "enum": ["log_drain_default"] }
]
},
"name": { "type": "string" },
"price": {
"type": "object",
"properties": {
"description": { "type": "string" },
"type": { "type": "string", "enum": ["fixed", "usage"] },
"interval": { "type": "string", "enum": ["monthly", "hourly"] },
"amount": { "type": "number" }
},
"required": ["description", "type", "interval", "amount"]
},
"meta": { "description": "Any JSON-serializable value" }
},
"required": ["id", "name", "price"]
}
},
"required": ["type", "variant"]
}
},
"available_addons": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"custom_domain",
"compute_instance",
"pitr",
"ipv4",
"auth_mfa_phone",
"auth_mfa_web_authn",
"log_drain"
]
},
"name": { "type": "string" },
"variants": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"oneOf": [
{
"type": "string",
"enum": [
"ci_micro",
"ci_small",
"ci_medium",
"ci_large",
"ci_xlarge",
"ci_2xlarge",
"ci_4xlarge",
"ci_8xlarge",
"ci_12xlarge",
"ci_16xlarge",
"ci_24xlarge",
"ci_24xlarge_optimized_cpu",
"ci_24xlarge_optimized_memory",
"ci_24xlarge_high_memory",
"ci_48xlarge",
"ci_48xlarge_optimized_cpu",
"ci_48xlarge_optimized_memory",
"ci_48xlarge_high_memory"
]
},
{ "type": "string", "enum": ["cd_default"] },
{ "type": "string", "enum": ["pitr_7", "pitr_14", "pitr_28"] },
{ "type": "string", "enum": ["ipv4_default"] },
{ "type": "string", "enum": ["auth_mfa_phone_default"] },
{ "type": "string", "enum": ["auth_mfa_web_authn_default"] },
{ "type": "string", "enum": ["log_drain_default"] }
]
},
"name": { "type": "string" },
"price": {
"type": "object",
"properties": {
"description": { "type": "string" },
"type": { "type": "string", "enum": ["fixed", "usage"] },
"interval": { "type": "string", "enum": ["monthly", "hourly"] },
"amount": { "type": "number" }
},
"required": ["description", "type", "interval", "amount"]
},
"meta": { "description": "Any JSON-serializable value" }
},
"required": ["id", "name", "price"]
}
}
},
"required": ["type", "name", "variants"]
}
}
},
"required": ["selected_addons", "available_addons"]
},
"ApplyProjectAddonBody": {
"type": "object",
"properties": {
"addon_variant": {
"oneOf": [
{
"type": "string",
"enum": [
"ci_micro",
"ci_small",
"ci_medium",
"ci_large",
"ci_xlarge",
"ci_2xlarge",
"ci_4xlarge",
"ci_8xlarge",
"ci_12xlarge",
"ci_16xlarge",
"ci_24xlarge",
"ci_24xlarge_optimized_cpu",
"ci_24xlarge_optimized_memory",
"ci_24xlarge_high_memory",
"ci_48xlarge",
"ci_48xlarge_optimized_cpu",
"ci_48xlarge_optimized_memory",
"ci_48xlarge_high_memory"
]
},
{ "type": "string", "enum": ["cd_default"] },
{ "type": "string", "enum": ["pitr_7", "pitr_14", "pitr_28"] },
{ "type": "string", "enum": ["ipv4_default"] }
]
},
"addon_type": {
"type": "string",
"enum": [
"custom_domain",
"compute_instance",
"pitr",
"ipv4",
"auth_mfa_phone",
"auth_mfa_web_authn",
"log_drain"
]
}
},
"required": ["addon_variant", "addon_type"]
},
"ProjectClaimTokenResponse": {
"type": "object",
"properties": {
"token_alias": { "type": "string" },
"expires_at": { "type": "string" },
"created_at": { "type": "string" },
"created_by": { "type": "string", "format": "uuid" }
},
"required": ["token_alias", "expires_at", "created_at", "created_by"]
},
"CreateProjectClaimTokenResponse": {
"type": "object",
"properties": {
"token": { "type": "string" },
"token_alias": { "type": "string" },
"expires_at": { "type": "string" },
"created_at": { "type": "string" },
"created_by": { "type": "string", "format": "uuid" }
},
"required": ["token", "token_alias", "expires_at", "created_at", "created_by"]
},
"V1ProjectAdvisorsResponse": {
"type": "object",
"properties": {
"lints": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"enum": [
"unindexed_foreign_keys",
"auth_users_exposed",
"auth_rls_initplan",
"no_primary_key",
"unused_index",
"multiple_permissive_policies",
"policy_exists_rls_disabled",
"rls_enabled_no_policy",
"duplicate_index",
"security_definer_view",
"function_search_path_mutable",
"rls_disabled_in_public",
"extension_in_public",
"rls_references_user_metadata",
"materialized_view_in_api",
"foreign_table_in_api",
"unsupported_reg_types",
"auth_otp_long_expiry",
"auth_otp_short_length",
"ssl_not_enforced",
"network_restrictions_not_set",
"password_requirements_min_length",
"pitr_not_enabled",
"auth_leaked_password_protection",
"auth_insufficient_mfa_options",
"auth_password_policy_missing",
"leaked_service_key",
"no_backup_admin",
"vulnerable_postgres_version"
]
},
"title": { "type": "string" },
"level": { "type": "string", "enum": ["ERROR", "WARN", "INFO"] },
"facing": { "type": "string", "enum": ["EXTERNAL"] },
"categories": {
"type": "array",
"items": { "type": "string", "enum": ["PERFORMANCE", "SECURITY"] }
},
"description": { "type": "string" },
"detail": { "type": "string" },
"remediation": { "type": "string" },
"metadata": {
"type": "object",
"properties": {
"schema": { "type": "string" },
"name": { "type": "string" },
"entity": { "type": "string" },
"type": {
"type": "string",
"enum": ["table", "view", "auth", "function", "extension", "compliance"]
},
"fkey_name": { "type": "string" },
"fkey_columns": { "type": "array", "items": { "type": "number" } }
}
},
"cache_key": { "type": "string" }
},
"required": [
"name",
"title",
"level",
"facing",
"categories",
"description",
"detail",
"remediation",
"cache_key"
]
}
}
},
"required": ["lints"]
},
"AnalyticsResponse": {
"type": "object",
"properties": {
"result": { "type": "array", "items": {} },
"error": {
"oneOf": [
{ "type": "string" },
{
"type": "object",
"properties": {
"code": { "type": "number" },
"errors": {
"type": "array",
"items": {
"type": "object",
"properties": {
"domain": { "type": "string" },
"location": { "type": "string" },
"locationType": { "type": "string" },
"message": { "type": "string" },
"reason": { "type": "string" }
},
"required": ["domain", "location", "locationType", "message", "reason"]
}
},
"message": { "type": "string" },
"status": { "type": "string" }
},
"required": ["code", "errors", "message", "status"]
}
]
}
}
},
"V1GetUsageApiCountResponse": {
"type": "object",
"properties": {
"result": {
"type": "array",
"items": {
"type": "object",
"properties": {
"timestamp": { "type": "string", "format": "date-time" },
"total_auth_requests": { "type": "number" },
"total_realtime_requests": { "type": "number" },
"total_rest_requests": { "type": "number" },
"total_storage_requests": { "type": "number" }
},
"required": [
"timestamp",
"total_auth_requests",
"total_realtime_requests",
"total_rest_requests",
"total_storage_requests"
]
}
},
"error": {
"oneOf": [
{ "type": "string" },
{
"type": "object",
"properties": {
"code": { "type": "number" },
"errors": {
"type": "array",
"items": {
"type": "object",
"properties": {
"domain": { "type": "string" },
"location": { "type": "string" },
"locationType": { "type": "string" },
"message": { "type": "string" },
"reason": { "type": "string" }
},
"required": ["domain", "location", "locationType", "message", "reason"]
}
},
"message": { "type": "string" },
"status": { "type": "string" }
},
"required": ["code", "errors", "message", "status"]
}
]
}
}
},
"V1GetUsageApiRequestsCountResponse": {
"type": "object",
"properties": {
"result": {
"type": "array",
"items": {
"type": "object",
"properties": { "count": { "type": "number" } },
"required": ["count"]
}
},
"error": {
"oneOf": [
{ "type": "string" },
{
"type": "object",
"properties": {
"code": { "type": "number" },
"errors": {
"type": "array",
"items": {
"type": "object",
"properties": {
"domain": { "type": "string" },
"location": { "type": "string" },
"locationType": { "type": "string" },
"message": { "type": "string" },
"reason": { "type": "string" }
},
"required": ["domain", "location", "locationType", "message", "reason"]
}
},
"message": { "type": "string" },
"status": { "type": "string" }
},
"required": ["code", "errors", "message", "status"]
}
]
}
}
},
"CreateRoleBody": {
"type": "object",
"properties": { "read_only": { "type": "boolean" } },
"required": ["read_only"]
},
"CreateRoleResponse": {
"type": "object",
"properties": {
"role": { "type": "string", "minLength": 1 },
"password": { "type": "string", "minLength": 1 },
"ttl_seconds": { "type": "integer", "minimum": 1, "format": "int64" }
},
"required": ["role", "password", "ttl_seconds"]
},
"DeleteRolesResponse": {
"type": "object",
"properties": { "message": { "type": "string", "enum": ["ok"] } },
"required": ["message"]
},
"V1ListMigrationsResponse": {
"type": "array",
"items": {
"type": "object",
"properties": {
"version": { "type": "string", "minLength": 1 },
"name": { "type": "string" }
},
"required": ["version"]
}
},
"V1CreateMigrationBody": {
"type": "object",
"properties": {
"query": { "type": "string", "minLength": 1 },
"name": { "type": "string" }
},
"required": ["query"]
},
"V1UpsertMigrationBody": {
"type": "object",
"properties": {
"query": { "type": "string", "minLength": 1 },
"name": { "type": "string" }
},
"required": ["query"]
},
"V1RunQueryBody": {
"type": "object",
"properties": {
"query": { "type": "string", "minLength": 1 },
"read_only": { "type": "boolean" }
},
"required": ["query"]
},
"GetProjectDbMetadataResponse": {
"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"]
},
"JitAccessResponse": {
"type": "object",
"properties": {
"user_id": { "type": "string", "format": "uuid" },
"user_roles": {
"type": "array",
"items": {
"type": "object",
"properties": {
"role": { "type": "string", "minLength": 1 },
"expires_at": { "type": "number" },
"allowed_networks": {
"type": "object",
"properties": {
"allowed_cidrs": {
"type": "array",
"items": {
"type": "object",
"properties": { "cidr": { "type": "string" } },
"required": ["cidr"]
}
},
"allowed_cidrs_v6": {
"type": "array",
"items": {
"type": "object",
"properties": { "cidr": { "type": "string" } },
"required": ["cidr"]
}
}
}
}
},
"required": ["role"]
}
}
},
"required": ["user_id", "user_roles"]
},
"AuthorizeJitAccessBody": {
"type": "object",
"properties": {
"role": { "type": "string", "minLength": 1 },
"rhost": { "type": "string", "minLength": 1 }
},
"required": ["role", "rhost"]
},
"JitAuthorizeAccessResponse": {
"type": "object",
"properties": {
"user_id": { "type": "string", "format": "uuid" },
"user_role": {
"type": "object",
"properties": {
"role": { "type": "string", "minLength": 1 },
"expires_at": { "type": "number" },
"allowed_networks": {
"type": "object",
"properties": {
"allowed_cidrs": {
"type": "array",
"items": {
"type": "object",
"properties": { "cidr": { "type": "string" } },
"required": ["cidr"]
}
},
"allowed_cidrs_v6": {
"type": "array",
"items": {
"type": "object",
"properties": { "cidr": { "type": "string" } },
"required": ["cidr"]
}
}
}
}
},
"required": ["role"]
}
},
"required": ["user_id", "user_role"]
},
"JitListAccessResponse": {
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"user_id": { "type": "string", "format": "uuid" },
"user_roles": {
"type": "array",
"items": {
"type": "object",
"properties": {
"role": { "type": "string", "minLength": 1 },
"expires_at": { "type": "number" },
"allowed_networks": {
"type": "object",
"properties": {
"allowed_cidrs": {
"type": "array",
"items": {
"type": "object",
"properties": { "cidr": { "type": "string" } },
"required": ["cidr"]
}
},
"allowed_cidrs_v6": {
"type": "array",
"items": {
"type": "object",
"properties": { "cidr": { "type": "string" } },
"required": ["cidr"]
}
}
}
}
},
"required": ["role"]
}
}
},
"required": ["user_id", "user_roles"]
}
}
},
"required": ["items"]
},
"UpdateJitAccessBody": {
"type": "object",
"properties": {
"user_id": { "type": "string", "format": "uuid", "minLength": 1 },
"roles": {
"type": "array",
"items": {
"type": "object",
"properties": {
"role": { "type": "string", "minLength": 1 },
"expires_at": { "type": "number" },
"allowed_networks": {
"type": "object",
"properties": {
"allowed_cidrs": {
"type": "array",
"items": {
"type": "object",
"properties": { "cidr": { "type": "string" } },
"required": ["cidr"]
}
},
"allowed_cidrs_v6": {
"type": "array",
"items": {
"type": "object",
"properties": { "cidr": { "type": "string" } },
"required": ["cidr"]
}
}
}
}
},
"required": ["role"]
}
}
},
"required": ["user_id", "roles"]
},
"FunctionResponse": {
"type": "object",
"properties": {
"id": { "type": "string" },
"slug": { "type": "string" },
"name": { "type": "string" },
"status": { "type": "string", "enum": ["ACTIVE", "REMOVED", "THROTTLED"] },
"version": { "type": "integer" },
"created_at": { "type": "integer", "format": "int64" },
"updated_at": { "type": "integer", "format": "int64" },
"verify_jwt": { "type": "boolean" },
"import_map": { "type": "boolean" },
"entrypoint_path": { "type": "string" },
"import_map_path": { "type": "string" },
"ezbr_sha256": { "type": "string" }
},
"required": ["id", "slug", "name", "status", "version", "created_at", "updated_at"]
},
"V1CreateFunctionBody": {
"type": "object",
"properties": {
"slug": { "type": "string", "pattern": "^[A-Za-z0-9_-]+$" },
"name": { "type": "string" },
"body": { "type": "string" },
"verify_jwt": { "type": "boolean" }
},
"required": ["slug", "name", "body"]
},
"BulkUpdateFunctionBody": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": { "type": "string" },
"slug": { "type": "string", "pattern": "^[A-Za-z0-9_-]+$" },
"name": { "type": "string" },
"status": { "type": "string", "enum": ["ACTIVE", "REMOVED", "THROTTLED"] },
"version": { "type": "integer" },
"created_at": { "type": "integer", "format": "int64" },
"verify_jwt": { "type": "boolean" },
"import_map": { "type": "boolean" },
"entrypoint_path": { "type": "string" },
"import_map_path": { "type": "string" },
"ezbr_sha256": { "type": "string" }
},
"required": ["id", "slug", "name", "status", "version"]
}
},
"BulkUpdateFunctionResponse": {
"type": "object",
"properties": {
"functions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": { "type": "string" },
"slug": { "type": "string" },
"name": { "type": "string" },
"status": { "type": "string", "enum": ["ACTIVE", "REMOVED", "THROTTLED"] },
"version": { "type": "integer" },
"created_at": { "type": "integer", "format": "int64" },
"updated_at": { "type": "integer", "format": "int64" },
"verify_jwt": { "type": "boolean" },
"import_map": { "type": "boolean" },
"entrypoint_path": { "type": "string" },
"import_map_path": { "type": "string" },
"ezbr_sha256": { "type": "string" }
},
"required": ["id", "slug", "name", "status", "version", "created_at", "updated_at"]
}
}
},
"required": ["functions"]
},
"FunctionDeployBody": {
"type": "object",
"properties": {
"file": { "type": "array", "items": { "type": "string", "format": "binary" } },
"metadata": {
"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"]
}
},
"required": ["metadata"]
},
"DeployFunctionResponse": {
"type": "object",
"properties": {
"id": { "type": "string" },
"slug": { "type": "string" },
"name": { "type": "string" },
"status": { "type": "string", "enum": ["ACTIVE", "REMOVED", "THROTTLED"] },
"version": { "type": "integer" },
"created_at": { "type": "integer", "format": "int64" },
"updated_at": { "type": "integer", "format": "int64" },
"verify_jwt": { "type": "boolean" },
"import_map": { "type": "boolean" },
"entrypoint_path": { "type": "string" },
"import_map_path": { "type": "string" },
"ezbr_sha256": { "type": "string" }
},
"required": ["id", "slug", "name", "status", "version"]
},
"FunctionSlugResponse": {
"type": "object",
"properties": {
"id": { "type": "string" },
"slug": { "type": "string" },
"name": { "type": "string" },
"status": { "type": "string", "enum": ["ACTIVE", "REMOVED", "THROTTLED"] },
"version": { "type": "integer" },
"created_at": { "type": "integer", "format": "int64" },
"updated_at": { "type": "integer", "format": "int64" },
"verify_jwt": { "type": "boolean" },
"import_map": { "type": "boolean" },
"entrypoint_path": { "type": "string" },
"import_map_path": { "type": "string" },
"ezbr_sha256": { "type": "string" }
},
"required": ["id", "slug", "name", "status", "version", "created_at", "updated_at"]
},
"StreamableFile": { "type": "object", "properties": {} },
"V1UpdateFunctionBody": {
"type": "object",
"properties": {
"name": { "type": "string" },
"body": { "type": "string" },
"verify_jwt": { "type": "boolean" }
}
},
"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"]
},
"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": {
"type": "object",
"properties": {
"keys": {
"type": "object",
"additionalProperties": {
"type": "object",
"properties": {
"name": { "type": "string" },
"names": { "type": "array", "items": { "type": "string" } },
"default": {
"oneOf": [
{ "type": "object", "properties": {} },
{ "type": "number" },
{ "type": "string" },
{ "type": "boolean" }
]
},
"array": { "type": "boolean" }
}
}
}
},
"required": ["keys"]
},
"name_id_format": {
"type": "string",
"enum": [
"urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified",
"urn:oasis:names:tc:SAML:2.0:nameid-format:transient",
"urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress",
"urn:oasis:names:tc:SAML:2.0:nameid-format:persistent"
]
}
},
"required": ["type"]
},
"CreateProviderResponse": {
"type": "object",
"properties": {
"id": { "type": "string" },
"saml": {
"type": "object",
"properties": {
"id": { "type": "string" },
"entity_id": { "type": "string" },
"metadata_url": { "type": "string" },
"metadata_xml": { "type": "string" },
"attribute_mapping": {
"type": "object",
"properties": {
"keys": {
"type": "object",
"additionalProperties": {
"type": "object",
"properties": {
"name": { "type": "string" },
"names": { "type": "array", "items": { "type": "string" } },
"default": {
"oneOf": [
{ "type": "object", "properties": {} },
{ "type": "number" },
{ "type": "string" },
{ "type": "boolean" }
]
},
"array": { "type": "boolean" }
}
}
}
},
"required": ["keys"]
},
"name_id_format": {
"type": "string",
"enum": [
"urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified",
"urn:oasis:names:tc:SAML:2.0:nameid-format:transient",
"urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress",
"urn:oasis:names:tc:SAML:2.0:nameid-format:persistent"
]
}
},
"required": ["id", "entity_id"]
},
"domains": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": { "type": "string" },
"domain": { "type": "string" },
"created_at": { "type": "string" },
"updated_at": { "type": "string" }
},
"required": ["id"]
}
},
"created_at": { "type": "string" },
"updated_at": { "type": "string" }
},
"required": ["id"]
},
"ListProvidersResponse": {
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": { "type": "string" },
"saml": {
"type": "object",
"properties": {
"id": { "type": "string" },
"entity_id": { "type": "string" },
"metadata_url": { "type": "string" },
"metadata_xml": { "type": "string" },
"attribute_mapping": {
"type": "object",
"properties": {
"keys": {
"type": "object",
"additionalProperties": {
"type": "object",
"properties": {
"name": { "type": "string" },
"names": { "type": "array", "items": { "type": "string" } },
"default": {
"oneOf": [
{ "type": "object", "properties": {} },
{ "type": "number" },
{ "type": "string" },
{ "type": "boolean" }
]
},
"array": { "type": "boolean" }
}
}
}
},
"required": ["keys"]
},
"name_id_format": {
"type": "string",
"enum": [
"urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified",
"urn:oasis:names:tc:SAML:2.0:nameid-format:transient",
"urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress",
"urn:oasis:names:tc:SAML:2.0:nameid-format:persistent"
]
}
},
"required": ["id", "entity_id"]
},
"domains": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": { "type": "string" },
"domain": { "type": "string" },
"created_at": { "type": "string" },
"updated_at": { "type": "string" }
},
"required": ["id"]
}
},
"created_at": { "type": "string" },
"updated_at": { "type": "string" }
},
"required": ["id"]
}
}
},
"required": ["items"]
},
"GetProviderResponse": {
"type": "object",
"properties": {
"id": { "type": "string" },
"saml": {
"type": "object",
"properties": {
"id": { "type": "string" },
"entity_id": { "type": "string" },
"metadata_url": { "type": "string" },
"metadata_xml": { "type": "string" },
"attribute_mapping": {
"type": "object",
"properties": {
"keys": {
"type": "object",
"additionalProperties": {
"type": "object",
"properties": {
"name": { "type": "string" },
"names": { "type": "array", "items": { "type": "string" } },
"default": {
"oneOf": [
{ "type": "object", "properties": {} },
{ "type": "number" },
{ "type": "string" },
{ "type": "boolean" }
]
},
"array": { "type": "boolean" }
}
}
}
},
"required": ["keys"]
},
"name_id_format": {
"type": "string",
"enum": [
"urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified",
"urn:oasis:names:tc:SAML:2.0:nameid-format:transient",
"urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress",
"urn:oasis:names:tc:SAML:2.0:nameid-format:persistent"
]
}
},
"required": ["id", "entity_id"]
},
"domains": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": { "type": "string" },
"domain": { "type": "string" },
"created_at": { "type": "string" },
"updated_at": { "type": "string" }
},
"required": ["id"]
}
},
"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": {
"type": "object",
"properties": {
"keys": {
"type": "object",
"additionalProperties": {
"type": "object",
"properties": {
"name": { "type": "string" },
"names": { "type": "array", "items": { "type": "string" } },
"default": {
"oneOf": [
{ "type": "object", "properties": {} },
{ "type": "number" },
{ "type": "string" },
{ "type": "boolean" }
]
},
"array": { "type": "boolean" }
}
}
}
},
"required": ["keys"]
},
"name_id_format": {
"type": "string",
"enum": [
"urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified",
"urn:oasis:names:tc:SAML:2.0:nameid-format:transient",
"urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress",
"urn:oasis:names:tc:SAML:2.0:nameid-format:persistent"
]
}
}
},
"UpdateProviderResponse": {
"type": "object",
"properties": {
"id": { "type": "string" },
"saml": {
"type": "object",
"properties": {
"id": { "type": "string" },
"entity_id": { "type": "string" },
"metadata_url": { "type": "string" },
"metadata_xml": { "type": "string" },
"attribute_mapping": {
"type": "object",
"properties": {
"keys": {
"type": "object",
"additionalProperties": {
"type": "object",
"properties": {
"name": { "type": "string" },
"names": { "type": "array", "items": { "type": "string" } },
"default": {
"oneOf": [
{ "type": "object", "properties": {} },
{ "type": "number" },
{ "type": "string" },
{ "type": "boolean" }
]
},
"array": { "type": "boolean" }
}
}
}
},
"required": ["keys"]
},
"name_id_format": {
"type": "string",
"enum": [
"urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified",
"urn:oasis:names:tc:SAML:2.0:nameid-format:transient",
"urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress",
"urn:oasis:names:tc:SAML:2.0:nameid-format:persistent"
]
}
},
"required": ["id", "entity_id"]
},
"domains": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": { "type": "string" },
"domain": { "type": "string" },
"created_at": { "type": "string" },
"updated_at": { "type": "string" }
},
"required": ["id"]
}
},
"created_at": { "type": "string" },
"updated_at": { "type": "string" }
},
"required": ["id"]
},
"DeleteProviderResponse": {
"type": "object",
"properties": {
"id": { "type": "string" },
"saml": {
"type": "object",
"properties": {
"id": { "type": "string" },
"entity_id": { "type": "string" },
"metadata_url": { "type": "string" },
"metadata_xml": { "type": "string" },
"attribute_mapping": {
"type": "object",
"properties": {
"keys": {
"type": "object",
"additionalProperties": {
"type": "object",
"properties": {
"name": { "type": "string" },
"names": { "type": "array", "items": { "type": "string" } },
"default": {
"oneOf": [
{ "type": "object", "properties": {} },
{ "type": "number" },
{ "type": "string" },
{ "type": "boolean" }
]
},
"array": { "type": "boolean" }
}
}
}
},
"required": ["keys"]
},
"name_id_format": {
"type": "string",
"enum": [
"urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified",
"urn:oasis:names:tc:SAML:2.0:nameid-format:transient",
"urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress",
"urn:oasis:names:tc:SAML:2.0:nameid-format:persistent"
]
}
},
"required": ["id", "entity_id"]
},
"domains": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": { "type": "string" },
"domain": { "type": "string" },
"created_at": { "type": "string" },
"updated_at": { "type": "string" }
},
"required": ["id"]
}
},
"created_at": { "type": "string" },
"updated_at": { "type": "string" }
},
"required": ["id"]
},
"V1BackupsResponse": {
"type": "object",
"properties": {
"region": { "type": "string" },
"walg_enabled": { "type": "boolean" },
"pitr_enabled": { "type": "boolean" },
"backups": {
"type": "array",
"items": {
"type": "object",
"properties": {
"is_physical_backup": { "type": "boolean" },
"status": {
"type": "string",
"enum": ["COMPLETED", "FAILED", "PENDING", "REMOVED", "ARCHIVED", "CANCELLED"]
},
"inserted_at": { "type": "string" }
},
"required": ["is_physical_backup", "status", "inserted_at"]
}
},
"physical_backup_data": {
"type": "object",
"properties": {
"earliest_physical_backup_date_unix": { "type": "integer" },
"latest_physical_backup_date_unix": { "type": "integer" }
}
}
},
"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"]
},
"V1RestorePointPostBody": {
"type": "object",
"properties": { "name": { "type": "string", "maxLength": 20 } },
"required": ["name"]
},
"V1RestorePointResponse": {
"type": "object",
"properties": {
"name": { "type": "string" },
"status": { "type": "string", "enum": ["AVAILABLE", "PENDING", "REMOVED"] }
},
"required": ["name", "status"]
},
"V1UndoBody": {
"type": "object",
"properties": { "name": { "type": "string", "maxLength": 20 } },
"required": ["name"]
},
"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"]
},
"V1OrganizationSlugResponse": {
"type": "object",
"properties": {
"id": { "type": "string" },
"name": { "type": "string" },
"plan": { "type": "string", "enum": ["free", "pro", "team", "enterprise"] },
"opt_in_tags": {
"type": "array",
"items": {
"type": "string",
"enum": [
"AI_SQL_GENERATOR_OPT_IN",
"AI_DATA_GENERATOR_OPT_IN",
"AI_LOG_GENERATOR_OPT_IN"
]
}
},
"allowed_release_channels": {
"type": "array",
"items": {
"type": "string",
"enum": ["internal", "alpha", "beta", "ga", "withdrawn", "preview"]
}
}
},
"required": ["id", "name", "opt_in_tags", "allowed_release_channels"]
},
"OrganizationProjectClaimResponse": {
"type": "object",
"properties": {
"project": {
"type": "object",
"properties": { "ref": { "type": "string" }, "name": { "type": "string" } },
"required": ["ref", "name"]
},
"preview": {
"type": "object",
"properties": {
"valid": { "type": "boolean" },
"warnings": {
"type": "array",
"items": {
"type": "object",
"properties": { "key": { "type": "string" }, "message": { "type": "string" } },
"required": ["key", "message"]
}
},
"errors": {
"type": "array",
"items": {
"type": "object",
"properties": { "key": { "type": "string" }, "message": { "type": "string" } },
"required": ["key", "message"]
}
},
"info": {
"type": "array",
"items": {
"type": "object",
"properties": { "key": { "type": "string" }, "message": { "type": "string" } },
"required": ["key", "message"]
}
},
"members_exceeding_free_project_limit": {
"type": "array",
"items": {
"type": "object",
"properties": { "name": { "type": "string" }, "limit": { "type": "number" } },
"required": ["name", "limit"]
}
},
"target_organization_eligible": { "type": "boolean", "nullable": true },
"target_organization_has_free_project_slots": { "type": "boolean", "nullable": true },
"source_subscription_plan": {
"type": "string",
"enum": ["free", "pro", "team", "enterprise"]
},
"target_subscription_plan": {
"type": "string",
"enum": ["free", "pro", "team", "enterprise"],
"nullable": true
}
},
"required": [
"valid",
"warnings",
"errors",
"info",
"members_exceeding_free_project_limit",
"target_organization_eligible",
"target_organization_has_free_project_slots",
"source_subscription_plan",
"target_subscription_plan"
]
},
"expires_at": { "type": "string" },
"created_at": { "type": "string" },
"created_by": { "type": "string", "format": "uuid" }
},
"required": ["project", "preview", "expires_at", "created_at", "created_by"]
}
}
}
}