{ "openapi": "3.0.0", "info": { "title": "Supabase API (v1)", "description": "", "version": "1.0.0", "contact": {} }, "servers": [], "tags": [ { "name": "organizations", "description": "Organization endpoints" }, { "name": "projects", "description": "Project endpoints" } ], "paths": { "/v1/branches/{branch_id}": { "get": { "operationId": "getBranchDetails", "summary": "Get database branch config", "description": "Fetches configurations of the specified database branch", "parameters": [ { "name": "branch_id", "required": true, "in": "path", "description": "Branch ID", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "db_port": { "type": "integer" }, "ref": { "type": "string" }, "postgres_version": { "type": "string" }, "status": { "enum": [ "ACTIVE_HEALTHY", "ACTIVE_UNHEALTHY", "COMING_UP", "GOING_DOWN", "INACTIVE", "INIT_FAILED", "REMOVED", "RESTORING", "UNKNOWN", "UPGRADING", "PAUSING" ], "type": "string" }, "db_host": { "type": "string" }, "db_user": { "type": "string" }, "db_pass": { "type": "string" }, "jwt_secret": { "type": "string" } }, "required": [ "db_port", "ref", "postgres_version", "status", "db_host" ] } } } }, "500": { "description": "Failed to update database branch" } }, "tags": [ "database branches (beta)" ], "security": [ { "bearer": [] } ] }, "patch": { "operationId": "updateBranch", "summary": "Update database branch config", "description": "Updates the configuration of the specified database branch", "parameters": [ { "name": "branch_id", "required": true, "in": "path", "description": "Branch ID", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "branch_name": { "type": "string" }, "git_branch": { "type": "string" } } } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "project_ref": { "type": "string" }, "parent_project_ref": { "type": "string" }, "is_default": { "type": "boolean" }, "git_branch": { "type": "string" }, "created_at": { "type": "string" }, "updated_at": { "type": "string" } }, "required": [ "id", "name", "project_ref", "parent_project_ref", "is_default", "created_at", "updated_at" ] } } } }, "500": { "description": "Failed to update database branch" } }, "tags": [ "database branches (beta)" ], "security": [ { "bearer": [] } ] }, "delete": { "operationId": "deleteBranch", "summary": "Delete a database branch", "description": "Deletes the specified database branch", "parameters": [ { "name": "branch_id", "required": true, "in": "path", "description": "Branch ID", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" }, "500": { "description": "Failed to delete database branch" } }, "tags": [ "database branches (beta)" ], "security": [ { "bearer": [] } ] } }, "/v1/projects": { "get": { "operationId": "getProjects", "summary": "List all projects", "description": "Returns a list of all projects you've previously created.", "parameters": [], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "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" }, "database": { "type": "object", "properties": { "host": { "type": "string", "description": "Database host" }, "version": { "type": "string", "description": "Database version" } }, "required": [ "host", "version" ] } }, "required": [ "id", "organization_id", "name", "region", "created_at" ] } } } } } }, "tags": [ "projects" ], "security": [ { "bearer": [] } ] }, "post": { "operationId": "createProject", "summary": "Create a project", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "db_pass": { "type": "string", "description": "Database password" }, "name": { "type": "string", "description": "Name of your project, should not contain dots" }, "organization_id": { "type": "string", "description": "Slug of your organization" }, "plan": { "type": "string", "enum": [ "free", "pro" ], "description": "Subscription plan", "example": "free" }, "region": { "type": "string", "enum": [ "us-east-1", "us-west-1", "us-west-2", "ap-southeast-1", "ap-northeast-1", "ap-northeast-2", "ap-southeast-2", "eu-west-1", "eu-west-2", "eu-west-3", "eu-central-1", "ca-central-1", "ap-south-1", "sa-east-1" ], "description": "Region you want your server to reside in", "example": "us-east-1" }, "kps_enabled": { "type": "boolean" } }, "required": [ "db_pass", "name", "organization_id", "plan", "region" ] } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "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" }, "database": { "type": "object", "properties": { "host": { "type": "string", "description": "Database host" }, "version": { "type": "string", "description": "Database version" } }, "required": [ "host", "version" ] } }, "required": [ "id", "organization_id", "name", "region", "created_at" ] } } } }, "201": { "description": "", "content": { "application/json": { "schema": { "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" }, "database": { "type": "object", "properties": { "host": { "type": "string", "description": "Database host" }, "version": { "type": "string", "description": "Database version" } }, "required": [ "host", "version" ] } }, "required": [ "id", "organization_id", "name", "region", "created_at" ] } } } } }, "tags": [ "projects" ], "security": [ { "bearer": [] } ] } }, "/v1/organizations": { "get": { "operationId": "getOrganizations", "summary": "List all organizations", "description": "Returns a list of organizations that you currently belong to.", "parameters": [], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" } }, "required": [ "id", "name" ] } } } } }, "500": { "description": "Unexpected error listing organizations" } }, "tags": [ "organizations" ], "security": [ { "bearer": [] } ] }, "post": { "operationId": "createOrganization", "summary": "Create an organization", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "type": "string" } }, "required": [ "name" ] } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" } }, "required": [ "id", "name" ] } } } }, "500": { "description": "Unexpected error creating an organization" } }, "tags": [ "organizations" ], "security": [ { "bearer": [] } ] } }, "/v1/oauth/authorize": { "get": { "operationId": "authorize", "summary": "Authorize user through oauth", "parameters": [ { "name": "client_id", "required": true, "in": "query", "schema": { "type": "string" } }, { "name": "response_type", "required": true, "in": "query", "schema": { "enum": [ "code", "token", "id_token token" ], "type": "string" } }, { "name": "redirect_uri", "required": true, "in": "query", "schema": { "type": "string" } }, { "name": "scope", "required": 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": { "enum": [ "plain", "sha256", "S256" ], "type": "string" } } ], "responses": { "303": { "description": "" } }, "tags": [ "oauth (beta)" ] } }, "/v1/oauth/token": { "post": { "operationId": "token", "summary": "Exchange auth code for user's access and refresh token", "parameters": [], "requestBody": { "required": true, "content": { "application/x-www-form-urlencoded": { "schema": { "type": "object", "properties": { "grant_type": { "enum": [ "authorization_code", "refresh_token" ], "type": "string" }, "client_id": { "type": "string" }, "client_secret": { "type": "string" }, "code": { "type": "string" }, "code_verifier": { "type": "string" }, "redirect_uri": { "type": "string" }, "refresh_token": { "type": "string" } }, "required": [ "grant_type", "client_id", "client_secret" ] } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "token_type": { "type": "string", "enum": [ "Bearer" ] }, "access_token": { "type": "string" }, "refresh_token": { "type": "string" }, "expires_in": { "type": "number" } }, "required": [ "token_type", "access_token", "refresh_token", "expires_in" ] } } } } }, "tags": [ "oauth (beta)" ] } }, "/v1/projects/{ref}/api-keys": { "get": { "operationId": "getProjectApiKeys", "parameters": [ { "name": "ref", "required": true, "in": "path", "description": "Project ref", "schema": { "minLength": 20, "maxLength": 20, "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string" }, "api_key": { "type": "string" } }, "required": [ "name", "api_key" ] } } } } }, "403": { "description": "" } }, "tags": [ "projects" ], "security": [ { "bearer": [] } ] } }, "/v1/projects/{ref}/branches": { "get": { "operationId": "getBranches", "summary": "List all database branches", "description": "Returns all database branches of the specified project.", "parameters": [ { "name": "ref", "required": true, "in": "path", "description": "Project ref", "schema": { "minLength": 20, "maxLength": 20, "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "project_ref": { "type": "string" }, "parent_project_ref": { "type": "string" }, "is_default": { "type": "boolean" }, "git_branch": { "type": "string" }, "created_at": { "type": "string" }, "updated_at": { "type": "string" } }, "required": [ "id", "name", "project_ref", "parent_project_ref", "is_default", "created_at", "updated_at" ] } } } } }, "500": { "description": "Failed to retrieve database branches" } }, "tags": [ "database branches (beta)" ], "security": [ { "bearer": [] } ] }, "post": { "operationId": "createBranch", "summary": "Create a database branch", "description": "Creates a database branch from the specified project.", "parameters": [ { "name": "ref", "required": true, "in": "path", "description": "Project ref", "schema": { "minLength": 20, "maxLength": 20, "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "branch_name": { "type": "string" }, "git_branch": { "type": "string" }, "region": { "type": "string" } }, "required": [ "branch_name" ] } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "project_ref": { "type": "string" }, "parent_project_ref": { "type": "string" }, "is_default": { "type": "boolean" }, "git_branch": { "type": "string" }, "created_at": { "type": "string" }, "updated_at": { "type": "string" } }, "required": [ "id", "name", "project_ref", "parent_project_ref", "is_default", "created_at", "updated_at" ] } } } }, "500": { "description": "Failed to create database branch" } }, "tags": [ "database branches (beta)" ], "security": [ { "bearer": [] } ] }, "delete": { "operationId": "disableBranch", "summary": "Disables preview branching", "description": "Disables preview branching for the specified project", "parameters": [ { "name": "ref", "required": true, "in": "path", "description": "Project ref", "schema": { "minLength": 20, "maxLength": 20, "type": "string" } } ], "responses": { "200": { "description": "" }, "500": { "description": "Failed to disable preview branching" } }, "tags": [ "database branches (beta)" ], "security": [ { "bearer": [] } ] } }, "/v1/projects/{ref}/custom-hostname": { "get": { "operationId": "getCustomHostnameConfig", "summary": "Gets project's custom hostname config", "parameters": [ { "name": "ref", "required": true, "in": "path", "description": "Project ref", "schema": { "minLength": 20, "maxLength": 20, "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "enum": [ "1_not_started", "2_initiated", "3_challenge_verified", "4_origin_setup_completed", "5_services_reconfigured" ], "type": "string" }, "custom_hostname": { "type": "string" }, "data": { "type": "object" } }, "required": [ "status", "custom_hostname", "data" ] } } } }, "403": { "description": "" }, "500": { "description": "Failed to retrieve project's custom hostname config" } }, "tags": [ "custom hostname (beta)" ], "security": [ { "bearer": [] } ] }, "delete": { "operationId": "removeCustomHostnameConfig", "summary": "Deletes a project's custom hostname configuration", "parameters": [ { "name": "ref", "required": true, "in": "path", "description": "Project ref", "schema": { "minLength": 20, "maxLength": 20, "type": "string" } } ], "responses": { "200": { "description": "" }, "403": { "description": "" }, "500": { "description": "Failed to delete project custom hostname configuration" } }, "tags": [ "custom hostname (beta)" ], "security": [ { "bearer": [] } ] } }, "/v1/projects/{ref}/custom-hostname/initialize": { "post": { "operationId": "createCustomHostnameConfig", "summary": "Updates project's custom hostname configuration", "parameters": [ { "name": "ref", "required": true, "in": "path", "description": "Project ref", "schema": { "minLength": 20, "maxLength": 20, "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "custom_hostname": { "type": "string" } }, "required": [ "custom_hostname" ] } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "enum": [ "1_not_started", "2_initiated", "3_challenge_verified", "4_origin_setup_completed", "5_services_reconfigured" ], "type": "string" }, "custom_hostname": { "type": "string" }, "data": { "type": "object" } }, "required": [ "status", "custom_hostname", "data" ] } } } }, "403": { "description": "" }, "500": { "description": "Failed to update project custom hostname configuration" } }, "tags": [ "custom hostname (beta)" ], "security": [ { "bearer": [] } ] } }, "/v1/projects/{ref}/custom-hostname/reverify": { "post": { "operationId": "reverify", "summary": "Attempts to verify the DNS configuration for project's custom hostname configuration", "parameters": [ { "name": "ref", "required": true, "in": "path", "description": "Project ref", "schema": { "minLength": 20, "maxLength": 20, "type": "string" } } ], "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "enum": [ "1_not_started", "2_initiated", "3_challenge_verified", "4_origin_setup_completed", "5_services_reconfigured" ], "type": "string" }, "custom_hostname": { "type": "string" }, "data": { "type": "object" } }, "required": [ "status", "custom_hostname", "data" ] } } } }, "403": { "description": "" }, "500": { "description": "Failed to verify project custom hostname configuration" } }, "tags": [ "custom hostname (beta)" ], "security": [ { "bearer": [] } ] } }, "/v1/projects/{ref}/custom-hostname/activate": { "post": { "operationId": "activate", "summary": "Activates a custom hostname for a project.", "parameters": [ { "name": "ref", "required": true, "in": "path", "description": "Project ref", "schema": { "minLength": 20, "maxLength": 20, "type": "string" } } ], "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "enum": [ "1_not_started", "2_initiated", "3_challenge_verified", "4_origin_setup_completed", "5_services_reconfigured" ], "type": "string" }, "custom_hostname": { "type": "string" }, "data": { "type": "object" } }, "required": [ "status", "custom_hostname", "data" ] } } } }, "403": { "description": "" }, "500": { "description": "Failed to activate project custom hostname configuration" } }, "tags": [ "custom hostname (beta)" ], "security": [ { "bearer": [] } ] } }, "/v1/projects/{ref}/network-bans/retrieve": { "post": { "operationId": "getNetworkBans", "summary": "Gets project's network bans", "parameters": [ { "name": "ref", "required": true, "in": "path", "description": "Project ref", "schema": { "minLength": 20, "maxLength": 20, "type": "string" } } ], "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "banned_ipv4_addresses": { "type": "array", "items": { "type": "string" } } }, "required": [ "banned_ipv4_addresses" ] } } } }, "403": { "description": "" }, "500": { "description": "Failed to retrieve project's network bans" } }, "tags": [ "network bans (beta)" ], "security": [ { "bearer": [] } ] } }, "/v1/projects/{ref}/network-bans": { "delete": { "operationId": "removeNetworkBan", "summary": "Remove network bans.", "parameters": [ { "name": "ref", "required": true, "in": "path", "description": "Project ref", "schema": { "minLength": 20, "maxLength": 20, "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "ipv4_addresses": { "type": "array", "items": { "type": "string" } } }, "required": [ "ipv4_addresses" ] } } } }, "responses": { "200": { "description": "" }, "403": { "description": "" }, "500": { "description": "Failed to remove network bans." } }, "tags": [ "network bans (beta)" ], "security": [ { "bearer": [] } ] } }, "/v1/projects/{ref}/network-restrictions": { "get": { "operationId": "getNetworkRestrictions", "summary": "Gets project's network restrictions", "parameters": [ { "name": "ref", "required": true, "in": "path", "description": "Project ref", "schema": { "minLength": 20, "maxLength": 20, "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "entitlement": { "enum": [ "disallowed", "allowed" ], "type": "string" }, "config": { "type": "object", "properties": { "dbAllowedCidrs": { "type": "array", "items": { "type": "string" } } }, "required": [ "dbAllowedCidrs" ] }, "old_config": { "type": "object", "properties": { "dbAllowedCidrs": { "type": "array", "items": { "type": "string" } } }, "required": [ "dbAllowedCidrs" ] }, "status": { "enum": [ "stored", "applied" ], "type": "string" } }, "required": [ "entitlement", "config", "status" ] } } } }, "403": { "description": "" }, "500": { "description": "Failed to retrieve project's network restrictions" } }, "tags": [ "network restrictions (beta)" ], "security": [ { "bearer": [] } ] } }, "/v1/projects/{ref}/network-restrictions/apply": { "post": { "operationId": "applyNetworkRestrictions", "summary": "Updates project's network restrictions", "parameters": [ { "name": "ref", "required": true, "in": "path", "description": "Project ref", "schema": { "minLength": 20, "maxLength": 20, "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "dbAllowedCidrs": { "type": "array", "items": { "type": "string" } } }, "required": [ "dbAllowedCidrs" ] } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "entitlement": { "enum": [ "disallowed", "allowed" ], "type": "string" }, "config": { "type": "object", "properties": { "dbAllowedCidrs": { "type": "array", "items": { "type": "string" } } }, "required": [ "dbAllowedCidrs" ] }, "old_config": { "type": "object", "properties": { "dbAllowedCidrs": { "type": "array", "items": { "type": "string" } } }, "required": [ "dbAllowedCidrs" ] }, "status": { "enum": [ "stored", "applied" ], "type": "string" } }, "required": [ "entitlement", "config", "status" ] } } } }, "403": { "description": "" }, "500": { "description": "Failed to update project network restrictions" } }, "tags": [ "network restrictions (beta)" ], "security": [ { "bearer": [] } ] } }, "/v1/projects/{ref}/pgsodium": { "get": { "operationId": "getPgsodiumConfig", "summary": "Gets project's pgsodium config", "parameters": [ { "name": "ref", "required": true, "in": "path", "description": "Project ref", "schema": { "minLength": 20, "maxLength": 20, "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "root_key": { "type": "string" } }, "required": [ "root_key" ] } } } }, "403": { "description": "" }, "500": { "description": "Failed to retrieve project's pgsodium config" } }, "tags": [ "pgsodium (beta)" ], "security": [ { "bearer": [] } ] }, "put": { "operationId": "updatePgsodiumConfig", "summary": "Updates project's pgsodium config. Updating the root_key can cause all data encrypted with the older key to become inaccessible.", "parameters": [ { "name": "ref", "required": true, "in": "path", "description": "Project ref", "schema": { "minLength": 20, "maxLength": 20, "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "root_key": { "type": "string" } }, "required": [ "root_key" ] } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "root_key": { "type": "string" } }, "required": [ "root_key" ] } } } }, "403": { "description": "" }, "500": { "description": "Failed to update project's pgsodium config" } }, "tags": [ "pgsodium (beta)" ], "security": [ { "bearer": [] } ] } }, "/v1/projects/{ref}/postgrest": { "get": { "operationId": "getPostgRESTConfig", "summary": "Gets project's postgrest config", "parameters": [ { "name": "ref", "required": true, "in": "path", "description": "Project ref", "schema": { "minLength": 20, "maxLength": 20, "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "max_rows": { "type": "integer" }, "db_schema": { "type": "string" }, "db_extra_search_path": { "type": "string" }, "jwt_secret": { "type": "string" } }, "required": [ "max_rows", "db_schema", "db_extra_search_path" ] } } } }, "403": { "description": "" }, "500": { "description": "Failed to retrieve project's postgrest config" } }, "tags": [ "services" ], "security": [ { "bearer": [] } ] }, "patch": { "operationId": "updatePostgRESTConfig", "summary": "Updates project's postgrest config", "parameters": [ { "name": "ref", "required": true, "in": "path", "description": "Project ref", "schema": { "minLength": 20, "maxLength": 20, "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "max_rows": { "type": "integer", "minimum": 0, "maximum": 1000000 }, "db_extra_search_path": { "type": "string" }, "db_schema": { "type": "string" } } } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "max_rows": { "type": "integer" }, "db_schema": { "type": "string" }, "db_extra_search_path": { "type": "string" } }, "required": [ "max_rows", "db_schema", "db_extra_search_path" ] } } } }, "403": { "description": "" }, "500": { "description": "Failed to update project's postgrest config" } }, "tags": [ "services" ], "security": [ { "bearer": [] } ] } }, "/v1/projects/{ref}/secrets": { "get": { "operationId": "getSecrets", "summary": "List all secrets", "description": "Returns all secrets you've previously added to the specified project.", "parameters": [ { "name": "ref", "required": true, "in": "path", "description": "Project ref", "schema": { "minLength": 20, "maxLength": 20, "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string" }, "value": { "type": "string" } }, "required": [ "name", "value" ] } } } } }, "403": { "description": "" }, "500": { "description": "Failed to retrieve project's secrets" } }, "tags": [ "secrets" ], "security": [ { "apiKeyHeader": [], "apiKeyParam": [] }, { "bearer": [] } ] }, "post": { "operationId": "createSecrets", "summary": "Bulk create secrets", "description": "Creates multiple secrets and adds them to the specified project.", "parameters": [ { "name": "ref", "required": true, "in": "path", "description": "Project ref", "schema": { "minLength": 20, "maxLength": 20, "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string" }, "value": { "type": "string", "pattern": "/^(?!SUPABASE_).*/" } }, "required": [ "name", "value" ] } } } } }, "responses": { "201": { "description": "" }, "403": { "description": "" }, "500": { "description": "Failed to create project's secrets" } }, "tags": [ "secrets" ], "security": [ { "apiKeyHeader": [], "apiKeyParam": [] }, { "bearer": [] } ] }, "delete": { "operationId": "deleteSecrets", "summary": "Bulk delete secrets", "description": "Deletes all secrets with the given names from the specified project", "parameters": [ { "name": "ref", "required": true, "in": "path", "description": "Project ref", "schema": { "minLength": 20, "maxLength": 20, "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "string" } } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object" } } } }, "403": { "description": "" }, "500": { "description": "Failed to delete secrets with given names" } }, "tags": [ "secrets" ], "security": [ { "apiKeyHeader": [], "apiKeyParam": [] }, { "bearer": [] } ] } }, "/v1/projects/{ref}/ssl-enforcement": { "get": { "operationId": "getSslEnforcementConfig", "summary": "Get project's SSL enforcement configuration.", "parameters": [ { "name": "ref", "required": true, "in": "path", "description": "Project ref", "schema": { "minLength": 20, "maxLength": 20, "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "currentConfig": { "type": "object", "properties": { "database": { "type": "boolean" } }, "required": [ "database" ] }, "appliedSuccessfully": { "type": "boolean" } }, "required": [ "currentConfig", "appliedSuccessfully" ] } } } }, "403": { "description": "" }, "500": { "description": "Failed to retrieve project's SSL enforcement config" } }, "tags": [ "ssl enforcement (beta)" ], "security": [ { "bearer": [] } ] }, "put": { "operationId": "updateSslEnforcementConfig", "summary": "Update project's SSL enforcement configuration.", "parameters": [ { "name": "ref", "required": true, "in": "path", "description": "Project ref", "schema": { "minLength": 20, "maxLength": 20, "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "requestedConfig": { "type": "object", "properties": { "database": { "type": "boolean" } }, "required": [ "database" ] } }, "required": [ "requestedConfig" ] } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "currentConfig": { "type": "object", "properties": { "database": { "type": "boolean" } }, "required": [ "database" ] }, "appliedSuccessfully": { "type": "boolean" } }, "required": [ "currentConfig", "appliedSuccessfully" ] } } } }, "403": { "description": "" }, "500": { "description": "Failed to update project's SSL enforcement configuration." } }, "tags": [ "ssl enforcement (beta)" ], "security": [ { "bearer": [] } ] } }, "/v1/projects/{ref}/types/typescript": { "get": { "operationId": "getTypescriptTypes", "summary": "Generate TypeScript types", "description": "Returns the TypeScript types of your schema for use with supabase-js.", "parameters": [ { "name": "included_schemas", "required": false, "in": "query", "schema": { "default": "public", "type": "string" } }, { "name": "ref", "required": true, "in": "path", "description": "Project ref", "schema": { "minLength": 20, "maxLength": 20, "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "types": { "type": "string" } }, "required": [ "types" ] } } } }, "403": { "description": "" }, "500": { "description": "Failed to generate TypeScript types" } }, "tags": [ "projects" ], "security": [ { "apiKeyHeader": [], "apiKeyParam": [] }, { "bearer": [] } ] } }, "/v1/projects/{ref}/vanity-subdomain": { "get": { "operationId": "getVanitySubdomainConfig", "summary": "Gets current vanity subdomain config", "parameters": [ { "name": "ref", "required": true, "in": "path", "description": "Project ref", "schema": { "minLength": 20, "maxLength": 20, "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "enum": [ "not-used", "custom-domain-used", "active" ], "type": "string" }, "custom_domain": { "type": "string" } }, "required": [ "status" ] } } } }, "403": { "description": "" }, "500": { "description": "Failed to get project vanity subdomain configuration" } }, "tags": [ "vanity subdomain (beta)" ], "security": [ { "bearer": [] } ] }, "delete": { "operationId": "removeVanitySubdomainConfig", "summary": "Deletes a project's vanity subdomain configuration", "parameters": [ { "name": "ref", "required": true, "in": "path", "description": "Project ref", "schema": { "minLength": 20, "maxLength": 20, "type": "string" } } ], "responses": { "200": { "description": "" }, "403": { "description": "" }, "500": { "description": "Failed to delete project vanity subdomain configuration" } }, "tags": [ "vanity subdomain (beta)" ], "security": [ { "bearer": [] } ] } }, "/v1/projects/{ref}/vanity-subdomain/check-availability": { "post": { "operationId": "checkVanitySubdomainAvailability", "summary": "Checks vanity subdomain availability", "parameters": [ { "name": "ref", "required": true, "in": "path", "description": "Project ref", "schema": { "minLength": 20, "maxLength": 20, "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "vanity_subdomain": { "type": "string" } }, "required": [ "vanity_subdomain" ] } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "available": { "type": "boolean" } }, "required": [ "available" ] } } } }, "403": { "description": "" }, "500": { "description": "Failed to check project vanity subdomain configuration" } }, "tags": [ "vanity subdomain (beta)" ], "security": [ { "bearer": [] } ] } }, "/v1/projects/{ref}/vanity-subdomain/activate": { "post": { "operationId": "activateVanitySubdomainPlease", "summary": "Activates a vanity subdomain for a project.", "parameters": [ { "name": "ref", "required": true, "in": "path", "description": "Project ref", "schema": { "minLength": 20, "maxLength": 20, "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "vanity_subdomain": { "type": "string" } }, "required": [ "vanity_subdomain" ] } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "custom_domain": { "type": "string" } }, "required": [ "custom_domain" ] } } } }, "403": { "description": "" }, "500": { "description": "Failed to activate project vanity subdomain configuration" } }, "tags": [ "vanity subdomain (beta)" ], "security": [ { "bearer": [] } ] } }, "/v1/projects/{ref}/upgrade": { "post": { "operationId": "upgradeProject", "summary": "Upgrades the project's Postgres version", "parameters": [ { "name": "ref", "required": true, "in": "path", "description": "Project ref", "schema": { "minLength": 20, "maxLength": 20, "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "target_version": { "type": "number" } }, "required": [ "target_version" ] } } } }, "responses": { "201": { "description": "" }, "403": { "description": "" }, "500": { "description": "Failed to initiate project upgrade" } }, "tags": [ "database version upgrade (beta)" ], "security": [ { "bearer": [] } ] } }, "/v1/projects/{ref}/upgrade/eligibility": { "get": { "operationId": "upgradeEligibilityInformation", "summary": "Returns the project's eligibility for upgrades", "parameters": [ { "name": "ref", "required": true, "in": "path", "description": "Project ref", "schema": { "minLength": 20, "maxLength": 20, "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "eligible": { "type": "boolean" }, "current_app_version": { "type": "string" }, "latest_app_version": { "type": "string" }, "target_upgrade_versions": { "type": "array", "items": { "type": "object", "properties": { "postgres_version": { "type": "number" }, "app_version": { "type": "string" } }, "required": [ "postgres_version", "app_version" ] } }, "requires_manual_intervention": { "type": "string", "nullable": true }, "potential_breaking_changes": { "type": "array", "items": { "type": "string" } } }, "required": [ "eligible", "current_app_version", "latest_app_version", "target_upgrade_versions", "requires_manual_intervention", "potential_breaking_changes" ] } } } }, "403": { "description": "" }, "500": { "description": "Failed to determine project upgrade eligibility" } }, "tags": [ "database version upgrade (beta)" ], "security": [ { "bearer": [] } ] } }, "/v1/projects/{ref}/upgrade/status": { "get": { "operationId": "getUpgradeStatus", "summary": "Gets the latest status of the project's upgrade", "parameters": [ { "name": "ref", "required": true, "in": "path", "description": "Project ref", "schema": { "minLength": 20, "maxLength": 20, "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "databaseUpgradeStatus": { "nullable": true, "allOf": [ { "type": "object", "properties": { "initiated_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" ] }, "progress": { "type": "string", "enum": [ "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" ] }, "status": { "type": "number", "enum": [ 0, 1, 2 ] } }, "required": [ "initiated_at", "target_version", "status" ] } ] } }, "required": [ "databaseUpgradeStatus" ] } } } }, "403": { "description": "" }, "500": { "description": "Failed to retrieve project upgrade status" } }, "tags": [ "database version upgrade (beta)" ], "security": [ { "bearer": [] } ] } }, "/v1/projects/{ref}/readonly": { "get": { "operationId": "getReadOnlyModeStatus", "summary": "Returns project's readonly mode status", "parameters": [ { "name": "ref", "required": true, "in": "path", "description": "Project ref", "schema": { "minLength": 20, "maxLength": 20, "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "enabled": { "type": "boolean" }, "override_enabled": { "type": "boolean" }, "override_active_until": { "type": "string" } }, "required": [ "enabled", "override_enabled", "override_active_until" ] } } } }, "500": { "description": "Failed to get project readonly mode status" } }, "tags": [ "database readonly mode" ], "security": [ { "bearer": [] } ] } }, "/v1/projects/{ref}/readonly/temporary-disable": { "post": { "operationId": "temporarilyDisableReadonlyMode", "summary": "Disables project's readonly mode for the next 15 minutes", "parameters": [ { "name": "ref", "required": true, "in": "path", "description": "Project ref", "schema": { "minLength": 20, "maxLength": 20, "type": "string" } } ], "responses": { "201": { "description": "" }, "500": { "description": "Failed to disable project's readonly mode" } }, "tags": [ "database readonly mode" ], "security": [ { "bearer": [] } ] } }, "/v1/projects/{ref}/config/database/postgres": { "get": { "operationId": "getConfig", "summary": "Gets project's Postgres config", "parameters": [ { "name": "ref", "required": true, "in": "path", "description": "Project ref", "schema": { "minLength": 20, "maxLength": 20, "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "statement_timeout": { "type": "string" }, "effective_cache_size": { "type": "string" }, "maintenance_work_mem": { "type": "string" }, "max_connections": { "type": "integer", "minimum": 1, "maximum": 262143 }, "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_worker_processes": { "type": "integer", "minimum": 0, "maximum": 262143 }, "shared_buffers": { "type": "string" }, "work_mem": { "type": "string" }, "session_replication_role": { "enum": [ "origin", "replica", "local" ], "type": "string" } } } } } }, "500": { "description": "Failed to retrieve project's Postgres config" } }, "tags": [ "projects config" ], "security": [ { "bearer": [] }, { "bearer": [] } ] }, "put": { "operationId": "updateConfig", "summary": "Updates project's Postgres config", "parameters": [ { "name": "ref", "required": true, "in": "path", "description": "Project ref", "schema": { "minLength": 20, "maxLength": 20, "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "statement_timeout": { "type": "string" }, "effective_cache_size": { "type": "string" }, "maintenance_work_mem": { "type": "string" }, "max_connections": { "type": "integer", "minimum": 1, "maximum": 262143 }, "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_worker_processes": { "type": "integer", "minimum": 0, "maximum": 262143 }, "shared_buffers": { "type": "string" }, "work_mem": { "type": "string" }, "session_replication_role": { "enum": [ "origin", "replica", "local" ], "type": "string" } } } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "statement_timeout": { "type": "string" }, "effective_cache_size": { "type": "string" }, "maintenance_work_mem": { "type": "string" }, "max_connections": { "type": "integer", "minimum": 1, "maximum": 262143 }, "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_worker_processes": { "type": "integer", "minimum": 0, "maximum": 262143 }, "shared_buffers": { "type": "string" }, "work_mem": { "type": "string" }, "session_replication_role": { "enum": [ "origin", "replica", "local" ], "type": "string" } } } } } }, "500": { "description": "Failed to update project's Postgres config" } }, "tags": [ "projects config" ], "security": [ { "bearer": [] }, { "bearer": [] } ] } }, "/v1/projects/{ref}/config/database/pgbouncer": { "get": { "operationId": "getPgbouncerConfig", "summary": "Gets project's pgbouncer config", "parameters": [ { "name": "ref", "required": true, "in": "path", "description": "Project ref", "schema": { "minLength": 20, "maxLength": 20, "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "db_dns_name": { "type": "string" }, "db_host": { "type": "string" }, "db_name": { "type": "string" }, "db_port": { "type": "number" }, "db_ssl": { "type": "boolean" }, "db_user": { "type": "string" }, "default_pool_size": { "type": "number" }, "ignore_startup_parameters": { "type": "string" }, "inserted_at": { "type": "string" }, "pgbouncer_enabled": { "type": "boolean" }, "supavisor_enabled": { "type": "boolean" }, "pgbouncer_status": { "enum": [ "COMING_DOWN", "COMING_UP", "DISABLED", "ENABLED", "RELOADING" ], "type": "string" }, "pool_mode": { "enum": [ "transaction", "session", "statement" ], "type": "string" }, "max_client_conn": { "type": "number", "nullable": true }, "connectionString": { "type": "string" } }, "required": [ "db_dns_name", "db_host", "db_name", "db_port", "db_ssl", "db_user", "ignore_startup_parameters", "inserted_at", "pgbouncer_enabled", "supavisor_enabled", "pgbouncer_status", "pool_mode", "connectionString" ] } } } }, "500": { "description": "Failed to retrieve project's pgbouncer config" } }, "tags": [ "projects config" ], "security": [ { "bearer": [] } ] }, "patch": { "operationId": "updatePgbouncerConfig", "summary": "Updates project's pgbouncer config", "parameters": [ { "name": "ref", "required": true, "in": "path", "description": "Project ref", "schema": { "minLength": 20, "maxLength": 20, "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "default_pool_size": { "type": "integer", "minimum": 0, "maximum": 1000 }, "max_client_conn": { "type": "integer", "nullable": true, "minimum": 0, "maximum": 18000 }, "ignore_startup_parameters": { "type": "string" }, "pgbouncer_enabled": { "type": "boolean" }, "pool_mode": { "enum": [ "transaction", "session", "statement" ], "type": "string" } }, "required": [ "ignore_startup_parameters", "pgbouncer_enabled", "pool_mode" ] } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "default_pool_size": { "type": "integer", "minimum": 0, "maximum": 1000 }, "max_client_conn": { "type": "integer", "nullable": true, "minimum": 0, "maximum": 18000 }, "ignore_startup_parameters": { "type": "string" }, "pgbouncer_enabled": { "type": "boolean" }, "pool_mode": { "enum": [ "transaction", "session", "statement" ], "type": "string" }, "pgbouncer_status": { "enum": [ "COMING_DOWN", "COMING_UP", "DISABLED", "ENABLED", "RELOADING" ], "type": "string" } }, "required": [ "ignore_startup_parameters", "pgbouncer_enabled", "pool_mode", "pgbouncer_status" ] } } } }, "403": { "description": "" }, "500": { "description": "Failed to update project's pgbouncer config" } }, "tags": [ "projects config" ], "security": [ { "bearer": [] } ] } }, "/v1/projects/{ref}/config/auth": { "get": { "operationId": "getV1AuthConfig", "summary": "Gets project's auth config", "parameters": [ { "name": "ref", "required": true, "in": "path", "description": "Project ref", "schema": { "minLength": 20, "maxLength": 20, "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "smtp_admin_email": { "type": "string" }, "smtp_host": { "type": "string" }, "smtp_port": { "type": "string" }, "smtp_user": { "type": "string" }, "smtp_pass": { "type": "string" }, "smtp_max_frequency": { "type": "number" }, "smtp_sender_name": { "type": "string" }, "rate_limit_email_sent": { "type": "number", "minimum": 0, "maximum": 2147483647 } } } } } }, "403": { "description": "" }, "500": { "description": "Failed to retrieve project's auth config" } }, "tags": [ "projects config" ], "security": [ { "bearer": [] } ] }, "patch": { "operationId": "updateV1AuthConfig", "summary": "Updates a project's auth config", "parameters": [ { "name": "ref", "required": true, "in": "path", "description": "Project ref", "schema": { "minLength": 20, "maxLength": 20, "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "smtp_admin_email": { "type": "string" }, "smtp_host": { "type": "string" }, "smtp_port": { "type": "string" }, "smtp_user": { "type": "string" }, "smtp_pass": { "type": "string" }, "smtp_max_frequency": { "type": "number" }, "smtp_sender_name": { "type": "string" }, "rate_limit_email_sent": { "type": "number", "minimum": 0, "maximum": 2147483647 } } } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "smtp_admin_email": { "type": "string" }, "smtp_host": { "type": "string" }, "smtp_port": { "type": "string" }, "smtp_user": { "type": "string" }, "smtp_pass": { "type": "string" }, "smtp_max_frequency": { "type": "number" }, "smtp_sender_name": { "type": "string" }, "rate_limit_email_sent": { "type": "number", "minimum": 0, "maximum": 2147483647 } } } } } }, "403": { "description": "" }, "500": { "description": "Failed to update project's auth config" } }, "tags": [ "projects config" ], "security": [ { "bearer": [] } ] } }, "/v1/projects/{ref}/database/query": { "post": { "operationId": "v1RunQuery", "summary": "Run sql query", "parameters": [ { "name": "ref", "required": true, "in": "path", "description": "Project ref", "schema": { "minLength": 20, "maxLength": 20, "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "query": { "type": "string" } }, "required": [ "query" ] } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "type": "object" } } } }, "403": { "description": "" }, "500": { "description": "Failed to run sql query" } }, "tags": [ "projects (beta)" ], "security": [ { "bearer": [] } ] } }, "/v1/projects/{ref}/database/webhooks/enable": { "post": { "operationId": "v1EnableDatabaseWebhooks", "summary": "Enables Database Webhooks on the project", "parameters": [ { "name": "ref", "required": true, "in": "path", "description": "Project ref", "schema": { "minLength": 20, "maxLength": 20, "type": "string" } } ], "responses": { "201": { "description": "" }, "403": { "description": "" }, "500": { "description": "Failed to enable Database Webhooks on the project" } }, "tags": [ "projects (beta)" ], "security": [ { "bearer": [] } ] } }, "/v1/projects/{ref}/functions": { "post": { "operationId": "createFunction", "summary": "Create a function", "description": "Creates a function and adds it to the specified project.", "parameters": [ { "name": "ref", "required": true, "in": "path", "description": "Project ref", "schema": { "minLength": 20, "maxLength": 20, "type": "string" } }, { "name": "slug", "required": false, "in": "query", "schema": { "pattern": "/^[A-Za-z0-9_-]+$/", "type": "string" } }, { "name": "name", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "verify_jwt", "required": false, "in": "query", "schema": { "type": "boolean" } }, { "name": "import_map", "required": false, "in": "query", "schema": { "type": "boolean" } }, { "name": "entrypoint_path", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "import_map_path", "required": false, "in": "query", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "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" ] } }, "application/vnd.denoland.eszip": { "schema": { "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" ] } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "slug": { "type": "string" }, "name": { "type": "string" }, "status": { "enum": [ "ACTIVE", "REMOVED", "THROTTLED" ], "type": "string" }, "version": { "type": "number" }, "created_at": { "type": "number" }, "updated_at": { "type": "number" }, "verify_jwt": { "type": "boolean" }, "import_map": { "type": "boolean" }, "entrypoint_path": { "type": "string" }, "import_map_path": { "type": "string" } }, "required": [ "id", "slug", "name", "status", "version", "created_at", "updated_at" ] } } } }, "403": { "description": "" }, "500": { "description": "Failed to create project's function" } }, "tags": [ "functions" ], "security": [ { "apiKeyHeader": [], "apiKeyParam": [] }, { "bearer": [] } ] }, "get": { "operationId": "getFunctions", "summary": "List all functions", "description": "Returns all functions you've previously added to the specified project.", "parameters": [ { "name": "ref", "required": true, "in": "path", "description": "Project ref", "schema": { "minLength": 20, "maxLength": 20, "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "slug": { "type": "string" }, "name": { "type": "string" }, "status": { "enum": [ "ACTIVE", "REMOVED", "THROTTLED" ], "type": "string" }, "version": { "type": "number" }, "created_at": { "type": "number" }, "updated_at": { "type": "number" }, "verify_jwt": { "type": "boolean" }, "import_map": { "type": "boolean" }, "entrypoint_path": { "type": "string" }, "import_map_path": { "type": "string" } }, "required": [ "id", "slug", "name", "status", "version", "created_at", "updated_at" ] } } } } }, "403": { "description": "" }, "500": { "description": "Failed to retrieve project's functions" } }, "tags": [ "functions" ], "security": [ { "apiKeyHeader": [], "apiKeyParam": [] }, { "bearer": [] } ] } }, "/v1/projects/{ref}/functions/{function_slug}": { "get": { "operationId": "getFunction", "summary": "Retrieve a function", "description": "Retrieves a function with the specified slug and project.", "parameters": [ { "name": "ref", "required": true, "in": "path", "description": "Project ref", "schema": { "minLength": 20, "maxLength": 20, "type": "string" } }, { "name": "function_slug", "required": true, "in": "path", "description": "Function slug", "schema": { "pattern": "/^[A-Za-z0-9_-]+$/", "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "slug": { "type": "string" }, "name": { "type": "string" }, "status": { "enum": [ "ACTIVE", "REMOVED", "THROTTLED" ], "type": "string" }, "version": { "type": "number" }, "created_at": { "type": "number" }, "updated_at": { "type": "number" }, "verify_jwt": { "type": "boolean" }, "import_map": { "type": "boolean" }, "entrypoint_path": { "type": "string" }, "import_map_path": { "type": "string" } }, "required": [ "id", "slug", "name", "status", "version", "created_at", "updated_at" ] } } } }, "403": { "description": "" }, "500": { "description": "Failed to retrieve function with given slug" } }, "tags": [ "functions" ], "security": [ { "apiKeyHeader": [], "apiKeyParam": [] }, { "bearer": [] } ] }, "patch": { "operationId": "updateFunction", "summary": "Update a function", "description": "Updates a function with the specified slug and project.", "parameters": [ { "name": "ref", "required": true, "in": "path", "description": "Project ref", "schema": { "minLength": 20, "maxLength": 20, "type": "string" } }, { "name": "function_slug", "required": true, "in": "path", "description": "Function slug", "schema": { "pattern": "/^[A-Za-z0-9_-]+$/", "type": "string" } }, { "name": "slug", "required": false, "in": "query", "schema": { "pattern": "/^[A-Za-z0-9_-]+$/", "type": "string" } }, { "name": "name", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "verify_jwt", "required": false, "in": "query", "schema": { "type": "boolean" } }, { "name": "import_map", "required": false, "in": "query", "schema": { "type": "boolean" } }, { "name": "entrypoint_path", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "import_map_path", "required": false, "in": "query", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "type": "string" }, "body": { "type": "string" }, "verify_jwt": { "type": "boolean" } } } }, "application/vnd.denoland.eszip": { "schema": { "type": "object", "properties": { "name": { "type": "string" }, "body": { "type": "string" }, "verify_jwt": { "type": "boolean" } } } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "slug": { "type": "string" }, "name": { "type": "string" }, "status": { "enum": [ "ACTIVE", "REMOVED", "THROTTLED" ], "type": "string" }, "version": { "type": "number" }, "created_at": { "type": "number" }, "updated_at": { "type": "number" }, "verify_jwt": { "type": "boolean" }, "import_map": { "type": "boolean" }, "entrypoint_path": { "type": "string" }, "import_map_path": { "type": "string" } }, "required": [ "id", "slug", "name", "status", "version", "created_at", "updated_at" ] } } } }, "403": { "description": "" }, "500": { "description": "Failed to update function with given slug" } }, "tags": [ "functions" ], "security": [ { "apiKeyHeader": [], "apiKeyParam": [] }, { "bearer": [] } ] }, "delete": { "operationId": "deleteFunction", "summary": "Delete a function", "description": "Deletes a function with the specified slug from the specified project.", "parameters": [ { "name": "ref", "required": true, "in": "path", "description": "Project ref", "schema": { "minLength": 20, "maxLength": 20, "type": "string" } }, { "name": "function_slug", "required": true, "in": "path", "description": "Function slug", "schema": { "pattern": "/^[A-Za-z0-9_-]+$/", "type": "string" } } ], "responses": { "200": { "description": "" }, "403": { "description": "" }, "500": { "description": "Failed to delete function with given slug" } }, "tags": [ "functions" ], "security": [ { "apiKeyHeader": [], "apiKeyParam": [] }, { "bearer": [] } ] } }, "/v1/projects/{ref}/functions/{function_slug}/body": { "get": { "operationId": "getFunctionBody", "summary": "Retrieve a function body", "description": "Retrieves a function body for the specified slug and project.", "parameters": [ { "name": "ref", "required": true, "in": "path", "description": "Project ref", "schema": { "minLength": 20, "maxLength": 20, "type": "string" } }, { "name": "function_slug", "required": true, "in": "path", "description": "Function slug", "schema": { "pattern": "/^[A-Za-z0-9_-]+$/", "type": "string" } } ], "responses": { "200": { "description": "" }, "403": { "description": "" }, "500": { "description": "Failed to retrieve function body with given slug" } }, "tags": [ "functions" ], "security": [ { "apiKeyHeader": [], "apiKeyParam": [] }, { "bearer": [] } ] } }, "/v1/projects/{ref}/config/auth/sso/providers": { "post": { "operationId": "createProviderForProject", "summary": "Creates a new SSO provider", "parameters": [ { "name": "ref", "required": true, "in": "path", "description": "Project ref", "schema": { "minLength": 20, "maxLength": 20, "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "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": { "default": { "oneOf": [ { "type": "object" }, { "type": "number" }, { "type": "string" }, { "type": "boolean" } ] }, "name": { "type": "string" }, "names": { "type": "array", "items": { "type": "string" } } } } } }, "required": [ "keys" ] } }, "required": [ "type" ] } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "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": { "default": { "oneOf": [ { "type": "object" }, { "type": "number" }, { "type": "string" }, { "type": "boolean" } ] }, "name": { "type": "string" }, "names": { "type": "array", "items": { "type": "string" } } } } } }, "required": [ "keys" ] } }, "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" ] } } } }, "403": { "description": "" }, "404": { "description": "SAML 2.0 support is not enabled for this project" } }, "tags": [ "sso" ], "security": [ { "bearer": [] } ] }, "get": { "operationId": "listAllProviders", "summary": "Lists all SSO providers", "parameters": [ { "name": "ref", "required": true, "in": "path", "description": "Project ref", "schema": { "minLength": 20, "maxLength": 20, "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "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": { "default": { "oneOf": [ { "type": "object" }, { "type": "number" }, { "type": "string" }, { "type": "boolean" } ] }, "name": { "type": "string" }, "names": { "type": "array", "items": { "type": "string" } } } } } }, "required": [ "keys" ] } }, "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" ] } } } }, "403": { "description": "" }, "404": { "description": "SAML 2.0 support is not enabled for this project" } }, "tags": [ "sso" ], "security": [ { "bearer": [] } ] } }, "/v1/projects/{ref}/config/auth/sso/providers/{provider_id}": { "get": { "operationId": "getProviderById", "summary": "Gets a SSO provider by its UUID", "parameters": [ { "name": "ref", "required": true, "in": "path", "description": "Project ref", "schema": { "minLength": 20, "maxLength": 20, "type": "string" } }, { "name": "provider_id", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "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": { "default": { "oneOf": [ { "type": "object" }, { "type": "number" }, { "type": "string" }, { "type": "boolean" } ] }, "name": { "type": "string" }, "names": { "type": "array", "items": { "type": "string" } } } } } }, "required": [ "keys" ] } }, "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" ] } } } }, "403": { "description": "" }, "404": { "description": "Either SAML 2.0 was not enabled for this project, or the provider does not exist" } }, "tags": [ "sso" ], "security": [ { "bearer": [] } ] }, "put": { "operationId": "updateProviderById", "summary": "Updates a SSO provider by its UUID", "parameters": [ { "name": "ref", "required": true, "in": "path", "description": "Project ref", "schema": { "minLength": 20, "maxLength": 20, "type": "string" } }, { "name": "provider_id", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "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": { "default": { "oneOf": [ { "type": "object" }, { "type": "number" }, { "type": "string" }, { "type": "boolean" } ] }, "name": { "type": "string" }, "names": { "type": "array", "items": { "type": "string" } } } } } }, "required": [ "keys" ] } } } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "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": { "default": { "oneOf": [ { "type": "object" }, { "type": "number" }, { "type": "string" }, { "type": "boolean" } ] }, "name": { "type": "string" }, "names": { "type": "array", "items": { "type": "string" } } } } } }, "required": [ "keys" ] } }, "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" ] } } } }, "403": { "description": "" }, "404": { "description": "Either SAML 2.0 was not enabled for this project, or the provider does not exist" } }, "tags": [ "sso" ], "security": [ { "bearer": [] } ] }, "delete": { "operationId": "removeProviderById", "summary": "Removes a SSO provider by its UUID", "parameters": [ { "name": "ref", "required": true, "in": "path", "description": "Project ref", "schema": { "minLength": 20, "maxLength": 20, "type": "string" } }, { "name": "provider_id", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "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": { "default": { "oneOf": [ { "type": "object" }, { "type": "number" }, { "type": "string" }, { "type": "boolean" } ] }, "name": { "type": "string" }, "names": { "type": "array", "items": { "type": "string" } } } } } }, "required": [ "keys" ] } }, "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" ] } } } }, "403": { "description": "" }, "404": { "description": "Either SAML 2.0 was not enabled for this project, or the provider does not exist" } }, "tags": [ "sso" ], "security": [ { "bearer": [] } ] } } }, "components": { "securitySchemes": { "bearer": { "scheme": "bearer", "bearerFormat": "JWT", "type": "http" } }, "schemas": { "BranchDetailResponse": { "type": "object", "properties": { "db_port": { "type": "integer" }, "ref": { "type": "string" }, "postgres_version": { "type": "string" }, "status": { "enum": [ "ACTIVE_HEALTHY", "ACTIVE_UNHEALTHY", "COMING_UP", "GOING_DOWN", "INACTIVE", "INIT_FAILED", "REMOVED", "RESTORING", "UNKNOWN", "UPGRADING", "PAUSING" ], "type": "string" }, "db_host": { "type": "string" }, "db_user": { "type": "string" }, "db_pass": { "type": "string" }, "jwt_secret": { "type": "string" } }, "required": [ "db_port", "ref", "postgres_version", "status", "db_host" ] }, "UpdateBranchBody": { "type": "object", "properties": { "branch_name": { "type": "string" }, "git_branch": { "type": "string" } } }, "BranchResponse": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "project_ref": { "type": "string" }, "parent_project_ref": { "type": "string" }, "is_default": { "type": "boolean" }, "git_branch": { "type": "string" }, "created_at": { "type": "string" }, "updated_at": { "type": "string" } }, "required": [ "id", "name", "project_ref", "parent_project_ref", "is_default", "created_at", "updated_at" ] }, "DatabaseResponse": { "type": "object", "properties": { "host": { "type": "string", "description": "Database host" }, "version": { "type": "string", "description": "Database version" } }, "required": [ "host", "version" ] }, "ProjectResponse": { "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" }, "database": { "type": "object", "properties": { "host": { "type": "string", "description": "Database host" }, "version": { "type": "string", "description": "Database version" } }, "required": [ "host", "version" ] } }, "required": [ "id", "organization_id", "name", "region", "created_at" ] }, "CreateProjectBody": { "type": "object", "properties": { "db_pass": { "type": "string", "description": "Database password" }, "name": { "type": "string", "description": "Name of your project, should not contain dots" }, "organization_id": { "type": "string", "description": "Slug of your organization" }, "plan": { "type": "string", "enum": [ "free", "pro" ], "description": "Subscription plan", "example": "free" }, "region": { "type": "string", "enum": [ "us-east-1", "us-west-1", "us-west-2", "ap-southeast-1", "ap-northeast-1", "ap-northeast-2", "ap-southeast-2", "eu-west-1", "eu-west-2", "eu-west-3", "eu-central-1", "ca-central-1", "ap-south-1", "sa-east-1" ], "description": "Region you want your server to reside in", "example": "us-east-1" }, "kps_enabled": { "type": "boolean" } }, "required": [ "db_pass", "name", "organization_id", "plan", "region" ] }, "OrganizationResponse": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" } }, "required": [ "id", "name" ] }, "CreateOrganizationBody": { "type": "object", "properties": { "name": { "type": "string" } }, "required": [ "name" ] }, "OAuthTokenBody": { "type": "object", "properties": { "grant_type": { "enum": [ "authorization_code", "refresh_token" ], "type": "string" }, "client_id": { "type": "string" }, "client_secret": { "type": "string" }, "code": { "type": "string" }, "code_verifier": { "type": "string" }, "redirect_uri": { "type": "string" }, "refresh_token": { "type": "string" } }, "required": [ "grant_type", "client_id", "client_secret" ] }, "OAuthTokenResponse": { "type": "object", "properties": { "token_type": { "type": "string", "enum": [ "Bearer" ] }, "access_token": { "type": "string" }, "refresh_token": { "type": "string" }, "expires_in": { "type": "number" } }, "required": [ "token_type", "access_token", "refresh_token", "expires_in" ] }, "ApiKeyResponse": { "type": "object", "properties": { "name": { "type": "string" }, "api_key": { "type": "string" } }, "required": [ "name", "api_key" ] }, "CreateBranchBody": { "type": "object", "properties": { "branch_name": { "type": "string" }, "git_branch": { "type": "string" }, "region": { "type": "string" } }, "required": [ "branch_name" ] }, "UpdateCustomHostnameResponse": { "type": "object", "properties": { "status": { "enum": [ "1_not_started", "2_initiated", "3_challenge_verified", "4_origin_setup_completed", "5_services_reconfigured" ], "type": "string" }, "custom_hostname": { "type": "string" }, "data": { "type": "object" } }, "required": [ "status", "custom_hostname", "data" ] }, "UpdateCustomHostnameBody": { "type": "object", "properties": { "custom_hostname": { "type": "string" } }, "required": [ "custom_hostname" ] }, "NetworkBanResponse": { "type": "object", "properties": { "banned_ipv4_addresses": { "type": "array", "items": { "type": "string" } } }, "required": [ "banned_ipv4_addresses" ] }, "RemoveNetworkBanRequest": { "type": "object", "properties": { "ipv4_addresses": { "type": "array", "items": { "type": "string" } } }, "required": [ "ipv4_addresses" ] }, "NetworkRestrictionsRequest": { "type": "object", "properties": { "dbAllowedCidrs": { "type": "array", "items": { "type": "string" } } }, "required": [ "dbAllowedCidrs" ] }, "NetworkRestrictionsResponse": { "type": "object", "properties": { "entitlement": { "enum": [ "disallowed", "allowed" ], "type": "string" }, "config": { "type": "object", "properties": { "dbAllowedCidrs": { "type": "array", "items": { "type": "string" } } }, "required": [ "dbAllowedCidrs" ] }, "old_config": { "type": "object", "properties": { "dbAllowedCidrs": { "type": "array", "items": { "type": "string" } } }, "required": [ "dbAllowedCidrs" ] }, "status": { "enum": [ "stored", "applied" ], "type": "string" } }, "required": [ "entitlement", "config", "status" ] }, "PgsodiumConfigResponse": { "type": "object", "properties": { "root_key": { "type": "string" } }, "required": [ "root_key" ] }, "UpdatePgsodiumConfigBody": { "type": "object", "properties": { "root_key": { "type": "string" } }, "required": [ "root_key" ] }, "PostgrestConfigWithJWTSecretResponse": { "type": "object", "properties": { "max_rows": { "type": "integer" }, "db_schema": { "type": "string" }, "db_extra_search_path": { "type": "string" }, "jwt_secret": { "type": "string" } }, "required": [ "max_rows", "db_schema", "db_extra_search_path" ] }, "UpdatePostgrestConfigBody": { "type": "object", "properties": { "max_rows": { "type": "integer", "minimum": 0, "maximum": 1000000 }, "db_extra_search_path": { "type": "string" }, "db_schema": { "type": "string" } } }, "PostgrestConfigResponse": { "type": "object", "properties": { "max_rows": { "type": "integer" }, "db_schema": { "type": "string" }, "db_extra_search_path": { "type": "string" } }, "required": [ "max_rows", "db_schema", "db_extra_search_path" ] }, "SecretResponse": { "type": "object", "properties": { "name": { "type": "string" }, "value": { "type": "string" } }, "required": [ "name", "value" ] }, "CreateSecretBody": { "type": "object", "properties": { "name": { "type": "string" }, "value": { "type": "string", "pattern": "/^(?!SUPABASE_).*/" } }, "required": [ "name", "value" ] }, "SslEnforcements": { "type": "object", "properties": { "database": { "type": "boolean" } }, "required": [ "database" ] }, "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": { "enum": [ "not-used", "custom-domain-used", "active" ], "type": "string" }, "custom_domain": { "type": "string" } }, "required": [ "status" ] }, "VanitySubdomainBody": { "type": "object", "properties": { "vanity_subdomain": { "type": "string" } }, "required": [ "vanity_subdomain" ] }, "SubdomainAvailabilityResponse": { "type": "object", "properties": { "available": { "type": "boolean" } }, "required": [ "available" ] }, "ActivateVanitySubdomainResponse": { "type": "object", "properties": { "custom_domain": { "type": "string" } }, "required": [ "custom_domain" ] }, "UpgradeDatabaseBody": { "type": "object", "properties": { "target_version": { "type": "number" } }, "required": [ "target_version" ] }, "ProjectVersion": { "type": "object", "properties": { "postgres_version": { "type": "number" }, "app_version": { "type": "string" } }, "required": [ "postgres_version", "app_version" ] }, "ProjectUpgradeEligibilityResponse": { "type": "object", "properties": { "eligible": { "type": "boolean" }, "current_app_version": { "type": "string" }, "latest_app_version": { "type": "string" }, "target_upgrade_versions": { "type": "array", "items": { "type": "object", "properties": { "postgres_version": { "type": "number" }, "app_version": { "type": "string" } }, "required": [ "postgres_version", "app_version" ] } }, "requires_manual_intervention": { "type": "string", "nullable": true }, "potential_breaking_changes": { "type": "array", "items": { "type": "string" } } }, "required": [ "eligible", "current_app_version", "latest_app_version", "target_upgrade_versions", "requires_manual_intervention", "potential_breaking_changes" ] }, "DatabaseUpgradeStatus": { "type": "object", "properties": { "initiated_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" ] }, "progress": { "type": "string", "enum": [ "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" ] }, "status": { "type": "number", "enum": [ 0, 1, 2 ] } }, "required": [ "initiated_at", "target_version", "status" ] }, "DatabaseUpgradeStatusResponse": { "type": "object", "properties": { "databaseUpgradeStatus": { "nullable": true, "allOf": [ { "type": "object", "properties": { "initiated_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" ] }, "progress": { "type": "string", "enum": [ "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" ] }, "status": { "type": "number", "enum": [ 0, 1, 2 ] } }, "required": [ "initiated_at", "target_version", "status" ] } ] } }, "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" ] }, "PostgresConfigResponse": { "type": "object", "properties": { "statement_timeout": { "type": "string" }, "effective_cache_size": { "type": "string" }, "maintenance_work_mem": { "type": "string" }, "max_connections": { "type": "integer", "minimum": 1, "maximum": 262143 }, "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_worker_processes": { "type": "integer", "minimum": 0, "maximum": 262143 }, "shared_buffers": { "type": "string" }, "work_mem": { "type": "string" }, "session_replication_role": { "enum": [ "origin", "replica", "local" ], "type": "string" } } }, "UpdatePostgresConfigBody": { "type": "object", "properties": { "statement_timeout": { "type": "string" }, "effective_cache_size": { "type": "string" }, "maintenance_work_mem": { "type": "string" }, "max_connections": { "type": "integer", "minimum": 1, "maximum": 262143 }, "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_worker_processes": { "type": "integer", "minimum": 0, "maximum": 262143 }, "shared_buffers": { "type": "string" }, "work_mem": { "type": "string" }, "session_replication_role": { "enum": [ "origin", "replica", "local" ], "type": "string" } } }, "ProjectPgBouncerConfig": { "type": "object", "properties": { "db_dns_name": { "type": "string" }, "db_host": { "type": "string" }, "db_name": { "type": "string" }, "db_port": { "type": "number" }, "db_ssl": { "type": "boolean" }, "db_user": { "type": "string" }, "default_pool_size": { "type": "number" }, "ignore_startup_parameters": { "type": "string" }, "inserted_at": { "type": "string" }, "pgbouncer_enabled": { "type": "boolean" }, "supavisor_enabled": { "type": "boolean" }, "pgbouncer_status": { "enum": [ "COMING_DOWN", "COMING_UP", "DISABLED", "ENABLED", "RELOADING" ], "type": "string" }, "pool_mode": { "enum": [ "transaction", "session", "statement" ], "type": "string" }, "max_client_conn": { "type": "number", "nullable": true }, "connectionString": { "type": "string" } }, "required": [ "db_dns_name", "db_host", "db_name", "db_port", "db_ssl", "db_user", "ignore_startup_parameters", "inserted_at", "pgbouncer_enabled", "supavisor_enabled", "pgbouncer_status", "pool_mode", "connectionString" ] }, "UpdatePgbouncerConfigBody": { "type": "object", "properties": { "default_pool_size": { "type": "integer", "minimum": 0, "maximum": 1000 }, "max_client_conn": { "type": "integer", "nullable": true, "minimum": 0, "maximum": 18000 }, "ignore_startup_parameters": { "type": "string" }, "pgbouncer_enabled": { "type": "boolean" }, "pool_mode": { "enum": [ "transaction", "session", "statement" ], "type": "string" } }, "required": [ "ignore_startup_parameters", "pgbouncer_enabled", "pool_mode" ] }, "UpdatePoolingConfigResponse": { "type": "object", "properties": { "default_pool_size": { "type": "integer", "minimum": 0, "maximum": 1000 }, "max_client_conn": { "type": "integer", "nullable": true, "minimum": 0, "maximum": 18000 }, "ignore_startup_parameters": { "type": "string" }, "pgbouncer_enabled": { "type": "boolean" }, "pool_mode": { "enum": [ "transaction", "session", "statement" ], "type": "string" }, "pgbouncer_status": { "enum": [ "COMING_DOWN", "COMING_UP", "DISABLED", "ENABLED", "RELOADING" ], "type": "string" } }, "required": [ "ignore_startup_parameters", "pgbouncer_enabled", "pool_mode", "pgbouncer_status" ] }, "AuthConfigResponse": { "type": "object", "properties": { "smtp_admin_email": { "type": "string" }, "smtp_host": { "type": "string" }, "smtp_port": { "type": "string" }, "smtp_user": { "type": "string" }, "smtp_pass": { "type": "string" }, "smtp_max_frequency": { "type": "number" }, "smtp_sender_name": { "type": "string" }, "rate_limit_email_sent": { "type": "number", "minimum": 0, "maximum": 2147483647 } } }, "UpdateAuthConfigBody": { "type": "object", "properties": { "smtp_admin_email": { "type": "string" }, "smtp_host": { "type": "string" }, "smtp_port": { "type": "string" }, "smtp_user": { "type": "string" }, "smtp_pass": { "type": "string" }, "smtp_max_frequency": { "type": "number" }, "smtp_sender_name": { "type": "string" }, "rate_limit_email_sent": { "type": "number", "minimum": 0, "maximum": 2147483647 } } }, "RunQueryBody": { "type": "object", "properties": { "query": { "type": "string" } }, "required": [ "query" ] }, "CreateFunctionBody": { "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" ] }, "FunctionResponse": { "type": "object", "properties": { "id": { "type": "string" }, "slug": { "type": "string" }, "name": { "type": "string" }, "status": { "enum": [ "ACTIVE", "REMOVED", "THROTTLED" ], "type": "string" }, "version": { "type": "number" }, "created_at": { "type": "number" }, "updated_at": { "type": "number" }, "verify_jwt": { "type": "boolean" }, "import_map": { "type": "boolean" }, "entrypoint_path": { "type": "string" }, "import_map_path": { "type": "string" } }, "required": [ "id", "slug", "name", "status", "version", "created_at", "updated_at" ] }, "FunctionSlugResponse": { "type": "object", "properties": { "id": { "type": "string" }, "slug": { "type": "string" }, "name": { "type": "string" }, "status": { "enum": [ "ACTIVE", "REMOVED", "THROTTLED" ], "type": "string" }, "version": { "type": "number" }, "created_at": { "type": "number" }, "updated_at": { "type": "number" }, "verify_jwt": { "type": "boolean" }, "import_map": { "type": "boolean" }, "entrypoint_path": { "type": "string" }, "import_map_path": { "type": "string" } }, "required": [ "id", "slug", "name", "status", "version", "created_at", "updated_at" ] }, "UpdateFunctionBody": { "type": "object", "properties": { "name": { "type": "string" }, "body": { "type": "string" }, "verify_jwt": { "type": "boolean" } } }, "AttributeValue": { "type": "object", "properties": { "default": { "oneOf": [ { "type": "object" }, { "type": "number" }, { "type": "string" }, { "type": "boolean" } ] }, "name": { "type": "string" }, "names": { "type": "array", "items": { "type": "string" } } } }, "AttributeMapping": { "type": "object", "properties": { "keys": { "type": "object", "additionalProperties": { "type": "object", "properties": { "default": { "oneOf": [ { "type": "object" }, { "type": "number" }, { "type": "string" }, { "type": "boolean" } ] }, "name": { "type": "string" }, "names": { "type": "array", "items": { "type": "string" } } } } } }, "required": [ "keys" ] }, "CreateProviderBody": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "saml" ], "description": "What type of provider will be created" }, "metadata_xml": { "type": "string" }, "metadata_url": { "type": "string" }, "domains": { "type": "array", "items": { "type": "string" } }, "attribute_mapping": { "type": "object", "properties": { "keys": { "type": "object", "additionalProperties": { "type": "object", "properties": { "default": { "oneOf": [ { "type": "object" }, { "type": "number" }, { "type": "string" }, { "type": "boolean" } ] }, "name": { "type": "string" }, "names": { "type": "array", "items": { "type": "string" } } } } } }, "required": [ "keys" ] } }, "required": [ "type" ] }, "SamlDescriptor": { "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": { "default": { "oneOf": [ { "type": "object" }, { "type": "number" }, { "type": "string" }, { "type": "boolean" } ] }, "name": { "type": "string" }, "names": { "type": "array", "items": { "type": "string" } } } } } }, "required": [ "keys" ] } }, "required": [ "id", "entity_id" ] }, "Domain": { "type": "object", "properties": { "id": { "type": "string" }, "domain": { "type": "string" }, "created_at": { "type": "string" }, "updated_at": { "type": "string" } }, "required": [ "id" ] }, "CreateProviderResponse": { "type": "object", "properties": { "id": { "type": "string" }, "saml": { "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": { "default": { "oneOf": [ { "type": "object" }, { "type": "number" }, { "type": "string" }, { "type": "boolean" } ] }, "name": { "type": "string" }, "names": { "type": "array", "items": { "type": "string" } } } } } }, "required": [ "keys" ] } }, "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" ] }, "Provider": { "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": { "default": { "oneOf": [ { "type": "object" }, { "type": "number" }, { "type": "string" }, { "type": "boolean" } ] }, "name": { "type": "string" }, "names": { "type": "array", "items": { "type": "string" } } } } } }, "required": [ "keys" ] } }, "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": { "default": { "oneOf": [ { "type": "object" }, { "type": "number" }, { "type": "string" }, { "type": "boolean" } ] }, "name": { "type": "string" }, "names": { "type": "array", "items": { "type": "string" } } } } } }, "required": [ "keys" ] } }, "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": { "default": { "oneOf": [ { "type": "object" }, { "type": "number" }, { "type": "string" }, { "type": "boolean" } ] }, "name": { "type": "string" }, "names": { "type": "array", "items": { "type": "string" } } } } } }, "required": [ "keys" ] } }, "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": { "default": { "oneOf": [ { "type": "object" }, { "type": "number" }, { "type": "string" }, { "type": "boolean" } ] }, "name": { "type": "string" }, "names": { "type": "array", "items": { "type": "string" } } } } } }, "required": [ "keys" ] } } }, "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": { "default": { "oneOf": [ { "type": "object" }, { "type": "number" }, { "type": "string" }, { "type": "boolean" } ] }, "name": { "type": "string" }, "names": { "type": "array", "items": { "type": "string" } } } } } }, "required": [ "keys" ] } }, "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": { "default": { "oneOf": [ { "type": "object" }, { "type": "number" }, { "type": "string" }, { "type": "boolean" } ] }, "name": { "type": "string" }, "names": { "type": "array", "items": { "type": "string" } } } } } }, "required": [ "keys" ] } }, "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" ] } } } }