Management API Reference

# Management API

Manage your Supabase organizations and projects programmatically.

## Authentication [\#](/content/docs/reference/api/v1-cancel-a-project-restoration\#authentication/index.html)

All API requests require an access token to be included in the Authorization header: `Authorization Bearer <access_token>`.

There are two ways to generate an access token:

1. **Personal access token (PAT):**
PATs are long-lived tokens that you manually generate to access the Management API. They are useful for automating workflows or developing against the Management API. PATs carry the same privileges as your user account, so be sure to keep it secret.

To generate or manage your personal access tokens, visit your [account](/content/dashboard/account/tokens/index.html) page.

2. **OAuth2:**
OAuth2 allows your application to generate tokens on behalf of a Supabase user, providing secure and limited access to their account without requiring their credentials. Use this if you're building a third-party app that needs to create or manage Supabase projects on behalf of your users. Tokens generated via OAuth2 are short-lived and tied to specific scopes to ensure your app can only perform actions that are explicitly approved by the user.

See [Build a Supabase Integration](/content/docs/guides/integrations/build-a-supabase-integration/index.html) to set up OAuth2 for your application.

```
1
curl https://api.supabase.com/v1/projects \
2
  -H "Authorization: Bearer sbp_bdd0••••••••••••••••••••••••••••••••4f23"
```

All API requests must be authenticated and made over HTTPS.

## Rate limits [\#](/content/docs/reference/api/v1-cancel-a-project-restoration\#rate-limits/index.html)

Rate limits are applied to prevent abuse and ensure fair usage of the Management API. Rate limits are based on a per-user, per-scope model, meaning each user gets independent rate limits for each project and organization they interact with.

### Standard rate limit [\#](/content/docs/reference/api/v1-cancel-a-project-restoration\#standard-rate-limit/index.html)

| Limit | Duration | Scope |
| --- | --- | --- |
| 120 requests | 1 minute | Per user, per project/organization |

When you exceed this rate limit, all subsequent API calls will return a `429 Too Many Requests` response for the remainder of the minute. Once the time window expires, your request quota resets and you can make requests again.

### Rate limit scope [\#](/content/docs/reference/api/v1-cancel-a-project-restoration\#rate-limit-scope/index.html)

Rate limits are applied with per-user + per-scope isolation:

- **Project scope**: Rate limits apply independently to each project. Requests to one project do not count toward the limit of another project.
- **Organization scope**: Rate limits apply independently to each organization. Requests to one organization do not count toward the limit of another organization.

This means you can make 120 requests to Project A and 120 requests to Project B within the same minute without hitting rate limits, as they are tracked separately.

### Rate limit response headers [\#](/content/docs/reference/api/v1-cancel-a-project-restoration\#rate-limit-response-headers/index.html)

Every API response includes rate limit information following official [HTTP specification headers](https://datatracker.ietf.org/doc/html/draft-ietf-httpapi-ratelimit-headers):

- `X-RateLimit-Limit` \- The maximum number of requests allowed in the current time window
- `X-RateLimit-Remaining` \- The number of requests remaining before you hit the rate limit
- `X-RateLimit-Reset` \- The number of seconds remaining until your rate limit resets

You can use these headers to monitor your usage and implement proactive rate limit handling before receiving a 429 response.

### How rate limits are tracked [\#](/content/docs/reference/api/v1-cancel-a-project-restoration\#how-rate-limits-are-tracked/index.html)

Your requests are identified and tracked using one of the following identifiers, in this order of priority:

1. **OAuth App ID** \- If your request is authenticated via an OAuth application
2. **User ID** \- If your request is authenticated with a personal access token
3. **IP Address** \- If your request is unauthenticated (extracted from request headers)

Each identifier is combined with the scope (project or organization) to create a unique tracking key. This ensures that rate limits are isolated per user and per scope, preventing one project or organization from affecting another.

### Endpoint exceptions [\#](/content/docs/reference/api/v1-cancel-a-project-restoration\#endpoint-exceptions/index.html)

Some endpoints have stricter rate limits than the standard 120 requests per minute to prevent abuse of resource-intensive operations:

| Endpoint | Limit | Duration | Reason |
| --- | --- | --- | --- |
| `GET /v1/projects/:ref/endpoints/logs.all` | 30 requests | 1 minute | Analytics log queries are computationally expensive |
| `GET /v1/projects/:ref/endpoints/usage.api-counts` | 30 requests | 1 minute | Analytics aggregation is computationally expensive |
| `GET /v1/projects/:ref/endpoints/usage.api-requests-count` | 30 requests | 1 minute | Analytics aggregation is computationally expensive |
| `GET /v1/projects/:ref/database/context` | 10 requests | 1 minute | Database context operations are resource-intensive |
| `GET /v1/projects/:ref/database/context` | 1 request | 1 second | Burst limit to prevent rapid successive requests |
| `POST /v1/projects/:ref/config/custom-hostname/initialize` | 10 requests | 1 minute | These operations are expensive |
| `POST /v1/projects/:ref/config/custom-hostname/reverify` | 10 requests | 1 minute | These operations are expensive |
| `DELETE /v1/projects/:ref/config/custom-hostname` | 10 requests | 1 minute | These operations are expensive |
| `GET /v1/projects/:ref/config/vanity-subdomain` | 10 requests | 1 minute | These operations are expensive |

**Note:** The `GET /v1/projects/:ref/database/context` endpoint has dual rate limiting. You can make up to 10 requests per minute, but also no more than 1 request per second to prevent burst traffic.

### Best practices [\#](/content/docs/reference/api/v1-cancel-a-project-restoration\#best-practices/index.html)

- **Monitor rate limit headers** \- Check the `X-RateLimit-Remaining` header to see how many requests you have left. When it approaches 0, slow down your requests to avoid hitting the limit.
- **Implement exponential backoff** \- When you receive a 429 response, wait before retrying. You can use the `X-RateLimit-Reset` header (seconds) to determine exactly how long to wait.
- **Batch operations** \- Where possible, combine multiple operations into fewer API calls to reduce your request count.
- **Be mindful of expensive endpoints** \- Analytics, database context, and domain endpoints have stricter limits, so use them judiciously.

The Management API is subject to our fair-use policy. All resources created via the API are subject to the pricing detailed on our [Pricing](/content/pricing/index.html) pages.

Additional links

- [OpenAPI Docs](https://api.supabase.com/api/v1)
- [OpenAPI Spec](https://api.supabase.com/api/v1-json)
- [Report bugs and issues](https://github.com/supabase/supabase)

* * *

## Gets project performance advisors.  deprecated

get`/v1/projects/{ref}/advisors/performance`

This is an **experimental** endpoint. It is subject to change or removal in future versions. Use it with caution, as it may not remain supported or stable.

### OAuth scopes

- database:read

### The fine-grained token must include the following permissions to access this endpoint:

- advisors\_read

### Path parameters

- ref

Required

string

Project ref

Details

### Response codes

- 200
- 401
- 403
- 429

### Response (200)

exampleschema

```
1
{
2
  "lints": [\
3\
    {\
4\
      "name": "unindexed_foreign_keys",\
5\
      "title": "lorem",\
6\
      "level": "ERROR",\
7\
      "facing": "EXTERNAL",\
8\
      "categories": [\
9\
        "PERFORMANCE"\
10\
      ],\
11\
      "description": "lorem",\
12\
      "detail": "lorem",\
13\
      "remediation": "lorem",\
14\
      "metadata": {\
15\
        "schema": "lorem",\
16\
        "name": "lorem",\
17\
        "entity": "lorem",\
18\
        "type": "table",\
19\
        "fkey_name": "lorem",\
20\
        "fkey_columns": [\
21\
          42\
22\
        ]\
23\
      },\
24\
      "cache_key": "lorem"\
25\
    }\
26\
  ]
27
}
```

* * *

## Gets project security advisors.  deprecated

get`/v1/projects/{ref}/advisors/security`

This is an **experimental** endpoint. It is subject to change or removal in future versions. Use it with caution, as it may not remain supported or stable.

### OAuth scopes

- database:read

### The fine-grained token must include the following permissions to access this endpoint:

- advisors\_read

### Path parameters

- ref

Required

string

Project ref

Details

### Query parameters

- lint\_type

Optional

enum

Accepted values

### Response codes

- 200
- 401
- 403
- 429

### Response (200)

exampleschema

* * *

## Gets a project's function combined statistics

get`/v1/projects/{ref}/analytics/endpoints/functions.combined-stats`

### The fine-grained token must include the following permissions to access this endpoint:

- analytics\_usage\_read

### Path parameters

- ref

Required

string

Project ref

Details

### Query parameters

- interval

Required

enum

Accepted values

- function\_id

Required

string

### Response codes

- 200
- 401
- 403
- 429
- 500

### Response (200)

exampleschema

```
1
{
2
  "result": [\
3\
    null\
4\
  ],
5
  "error": "lorem"
6
}
```

* * *

## Gets project's logs

get`/v1/projects/{ref}/analytics/endpoints/logs.all`

Executes a SQL query on the project's logs.

Either the `iso_timestamp_start` and `iso_timestamp_end` parameters must be provided.
If both are not provided, only the last 1 minute of logs will be queried.
The timestamp range must be no more than 24 hours and is rounded to the nearest minute. If the range is more than 24 hours, a validation error will be thrown.

Note: Unless the `sql` parameter is provided, only edge\_logs will be queried. See the [log query docs](/content/docs/guides/telemetry/logs?queryGroups=product&product=postgres&queryGroups=source&source=edge_logs#querying-with-the-logs-explorer:~:text=logs%20from%20the-,Sources,-drop%2Ddown%3A/index.html) for all available sources.

### OAuth scopes

- analytics:read

### The fine-grained token must include the following permissions to access this endpoint:

- analytics\_logs\_read

### Path parameters

- ref

Required

string

Project ref

Details

### Query parameters

- sql

Optional

string

Custom SQL query to execute on the logs. See [querying logs](/content/docs/guides/telemetry/logs?queryGroups=product&product=postgres&queryGroups=source&source=edge_logs#querying-with-the-logs-explorer/index.html) for more details.

- iso\_timestamp\_start

Optional

string

- iso\_timestamp\_end

Optional

string

### Response codes

- 200
- 401
- 403
- 429

### Response (200)

exampleschema

```
1
{
2
  "result": [\
3\
    null\
4\
  ],
5
  "error": "lorem"
6
}
```

* * *

## Gets project's usage api counts

get`/v1/projects/{ref}/analytics/endpoints/usage.api-counts`

### The fine-grained token must include the following permissions to access this endpoint:

- analytics\_usage\_read

### Path parameters

- ref

Required

string

Project ref

Details

### Query parameters

- interval

Optional

enum

Accepted values

### Response codes

- 200
- 401
- 403
- 429
- 500

### Response (200)

exampleschema

```
1
{
2
  "result": [\
3\
    {\
4\
      "timestamp": "2021-12-31T23:34:00Z",\
5\
      "total_auth_requests": 42,\
6\
      "total_realtime_requests": 42,\
7\
      "total_rest_requests": 42,\
8\
      "total_storage_requests": 42\
9\
    }\
10\
  ],
11
  "error": "lorem"
12
}
```

* * *

## Gets project's usage api requests count

get`/v1/projects/{ref}/analytics/endpoints/usage.api-requests-count`

### The fine-grained token must include the following permissions to access this endpoint:

- analytics\_usage\_read

### Path parameters

- ref

Required

string

Project ref

Details

### Response codes

- 200
- 401
- 403
- 429
- 500

### Response (200)

exampleschema

```
1
{
2
  "result": [\
3\
    {\
4\
      "count": 42\
5\
    }\
6\
  ],
7
  "error": "lorem"
8
}
```

* * *

## Creates a new SSO provider

post`/v1/projects/{ref}/config/auth/sso/providers`

### OAuth scopes

- auth:write

### The fine-grained token must include the following permissions to access this endpoint:

- auth\_config\_write

### Path parameters

- ref

Required

string

Project ref

Details

### Body

application/json

- type

Required

enum

Accepted values

- metadata\_xml

Optional

string

- metadata\_url

Optional

string

- domains

Optional

Array<string>

- attribute\_mapping

Optional

object

Object schema

- name\_id\_format

Optional

enum

Accepted values

### Response codes

- 201
- 401
- 403
- 404
- 429

### Response (201)

exampleschema

```
1
{
2
  "id": "lorem",
3
  "saml": {
4
    "id": "lorem",
5
    "entity_id": "lorem",
6
    "metadata_url": "lorem",
7
    "metadata_xml": "lorem",
8
    "attribute_mapping": {
9
      "keys": {
10
        "property1": {
11
          "name": "lorem",
12
          "names": [\
13\
            "lorem"\
14\
          ],
15
          "default": {},
16
          "array": true
17
        },
18
        "property2": {
19
          "name": "lorem",
20
          "names": [\
21\
            "lorem"\
22\
          ],
23
          "default": {},
24
          "array": true
25
        }
26
      }
27
    },
28
    "name_id_format": "urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified"
29
  },
30
  "domains": [\
31\
    {\
32\
      "id": "lorem",\
33\
      "domain": "lorem",\
34\
      "created_at": "lorem",\
35\
      "updated_at": "lorem"\
36\
    }\
37\
  ],
38
  "created_at": "lorem",
39
  "updated_at": "lorem"
40
}
```

* * *

## Set up the project's existing JWT secret as an in\_use JWT signing key. This endpoint will be removed in the future always check for HTTP 404 Not Found.

post`/v1/projects/{ref}/config/auth/signing-keys/legacy`

### OAuth scopes

- secrets:write

### The fine-grained token must include the following permissions to access this endpoint:

- auth\_signing\_keys\_write

### Path parameters

- ref

Required

string

Project ref

Details

### Response codes

- 201
- 401
- 403
- 429

### Response (201)

exampleschema

```
1
{
2
  "id": "fbdf5a53-161e-4460-98ad-0e39408d8689",
3
  "algorithm": "EdDSA",
4
  "status": "in_use",
5
  "public_jwk": null,
6
  "created_at": "2021-12-31T23:34:00Z",
7
  "updated_at": "2021-12-31T23:34:00Z"
8
}
```

* * *

## Create a new signing key for the project in standby status

post`/v1/projects/{ref}/config/auth/signing-keys`

### OAuth scopes

- secrets:write

### The fine-grained token must include the following permissions to access this endpoint:

- auth\_signing\_keys\_write

### Path parameters

- ref

Required

string

Project ref

Details

### Body

application/json

- algorithm

Required

enum

Accepted values

- status

Optional

enum

Accepted values

- private\_jwk

Optional

one of the following options

Options

### Response codes

- 201
- 401
- 403
- 429

### Response (201)

exampleschema

* * *

## Creates a new third-party auth integration

post`/v1/projects/{ref}/config/auth/third-party-auth`

### OAuth scopes

- auth:write

### The fine-grained token must include the following permissions to access this endpoint:

- auth\_config\_write

### Path parameters

- ref

Required

string

Project ref

Details

### Body

application/json

- oidc\_issuer\_url

Optional

string

- jwks\_url

Optional

string

- custom\_jwks

Optional

unknown

Details

### Response codes

- 201
- 401
- 403
- 429

### Response (201)

exampleschema

```
1
{
2
  "id": "fbdf5a53-161e-4460-98ad-0e39408d8689",
3
  "type": "lorem",
4
  "oidc_issuer_url": "lorem",
5
  "jwks_url": "lorem",
6
  "custom_jwks": null,
7
  "resolved_jwks": null,
8
  "inserted_at": "lorem",
9
  "updated_at": "lorem",
10
  "resolved_at": "lorem"
11
}
```

* * *

## Removes a SSO provider by its UUID

delete`/v1/projects/{ref}/config/auth/sso/providers/{provider_id}`

### OAuth scopes

- auth:write

### The fine-grained token must include the following permissions to access this endpoint:

- auth\_config\_write

### Path parameters

- ref

Required

string

Project ref

Details

- provider\_id

Required

string

### Response codes

- 200
- 401
- 403
- 404
- 429

### Response (200)

exampleschema

* * *

## Removes a third-party auth integration

delete`/v1/projects/{ref}/config/auth/third-party-auth/{tpa_id}`

### OAuth scopes

- auth:write

### The fine-grained token must include the following permissions to access this endpoint:

- auth\_config\_write

### Path parameters

- ref

Required

string

Project ref

Details

- tpa\_id

Required

string

### Response codes

- 200
- 401
- 403
- 429

### Response (200)

exampleschema

* * *

## Gets a SSO provider by its UUID

get`/v1/projects/{ref}/config/auth/sso/providers/{provider_id}`

### OAuth scopes

- auth:read

### The fine-grained token must include the following permissions to access this endpoint:

- auth\_config\_read

### Path parameters

- ref

Required

string

Project ref

Details

- provider\_id

Required

string

### Response codes

- 200
- 401
- 403
- 404
- 429

### Response (200)

exampleschema

* * *

## Gets project's auth config

get`/v1/projects/{ref}/config/auth`

### OAuth scopes

- auth:read

### The fine-grained token must include the following permissions to access this endpoint:

- auth\_config\_read

### Path parameters

- ref

Required

string

Project ref

Details

### Response codes

- 200
- 401
- 403
- 429
- 500

### Response (200)

exampleschema

```
1
{
2
  "api_max_request_duration": 42,
3
  "db_max_pool_size": 42,
4
  "db_max_pool_size_unit": "connections",
5
  "disable_signup": true,
6
  "external_anonymous_users_enabled": true,
7
  "external_apple_additional_client_ids": "lorem",
8
  "external_apple_client_id": "lorem",
9
  "external_apple_email_optional": true,
10
  "external_apple_enabled": true,
11
  "external_apple_secret": "lorem",
12
  "external_azure_client_id": "lorem",
13
  "external_azure_email_optional": true,
14
  "external_azure_enabled": true,
15
  "external_azure_secret": "lorem",
16
  "external_azure_url": "lorem",
17
  "external_bitbucket_client_id": "lorem",
18
  "external_bitbucket_email_optional": true,
19
  "external_bitbucket_enabled": true,
20
  "external_bitbucket_secret": "lorem",
21
  "external_discord_client_id": "lorem",
22
  "external_discord_email_optional": true,
23
  "external_discord_enabled": true,
24
  "external_discord_secret": "lorem",
25
  "external_email_enabled": true,
26
  "external_facebook_client_id": "lorem",
27
  "external_facebook_email_optional": true,
28
  "external_facebook_enabled": true,
29
  "external_facebook_secret": "lorem",
30
  "external_figma_client_id": "lorem",
31
  "external_figma_email_optional": true,
32
  "external_figma_enabled": true,
33
  "external_figma_secret": "lorem",
34
  "external_github_client_id": "lorem",
35
  "external_github_email_optional": true,
36
  "external_github_enabled": true,
37
  "external_github_secret": "lorem",
38
  "external_gitlab_client_id": "lorem",
39
  "external_gitlab_email_optional": true,
40
  "external_gitlab_enabled": true,
41
  "external_gitlab_secret": "lorem",
42
  "external_gitlab_url": "lorem",
43
  "external_google_additional_client_ids": "lorem",
44
  "external_google_client_id": "lorem",
45
  "external_google_email_optional": true,
46
  "external_google_enabled": true,
47
  "external_google_secret": "lorem",
48
  "external_google_skip_nonce_check": true,
49
  "external_kakao_client_id": "lorem",
50
  "external_kakao_email_optional": true,
51
  "external_kakao_enabled": true,
52
  "external_kakao_secret": "lorem",
53
  "external_keycloak_client_id": "lorem",
54
  "external_keycloak_email_optional": true,
55
  "external_keycloak_enabled": true,
56
  "external_keycloak_secret": "lorem",
57
  "external_keycloak_url": "lorem",
58
  "external_linkedin_oidc_client_id": "lorem",
59
  "external_linkedin_oidc_email_optional": true,
60
  "external_linkedin_oidc_enabled": true,
61
  "external_linkedin_oidc_secret": "lorem",
62
  "external_slack_oidc_client_id": "lorem",
63
  "external_slack_oidc_email_optional": true,
64
  "external_slack_oidc_enabled": true,
65
  "external_slack_oidc_secret": "lorem",
66
  "external_notion_client_id": "lorem",
67
  "external_notion_email_optional": true,
68
  "external_notion_enabled": true,
69
  "external_notion_secret": "lorem",
70
  "external_phone_enabled": true,
71
  "external_slack_client_id": "lorem",
72
  "external_slack_email_optional": true,
73
  "external_slack_enabled": true,
74
  "external_slack_secret": "lorem",
75
  "external_spotify_client_id": "lorem",
76
  "external_spotify_email_optional": true,
77
  "external_spotify_enabled": true,
78
  "external_spotify_secret": "lorem",
79
  "external_twitch_client_id": "lorem",
80
  "external_twitch_email_optional": true,
81
  "external_twitch_enabled": true,
82
  "external_twitch_secret": "lorem",
83
  "external_twitter_client_id": "lorem",
84
  "external_twitter_email_optional": true,
85
  "external_twitter_enabled": true,
86
  "external_twitter_secret": "lorem",
87
  "external_x_client_id": "lorem",
88
  "external_x_email_optional": true,
89
  "external_x_enabled": true,
90
  "external_x_secret": "lorem",
91
  "external_workos_client_id": "lorem",
92
  "external_workos_enabled": true,
93
  "external_workos_secret": "lorem",
94
  "external_workos_url": "lorem",
95
  "external_web3_solana_enabled": true,
96
  "external_web3_ethereum_enabled": true,
97
  "external_zoom_client_id": "lorem",
98
  "external_zoom_email_optional": true,
99
  "external_zoom_enabled": true,
100
  "external_zoom_secret": "lorem",
101
  "hook_custom_access_token_enabled": true,
102
  "hook_custom_access_token_uri": "lorem",
103
  "hook_custom_access_token_secrets": "lorem",
104
  "hook_mfa_verification_attempt_enabled": true,
105
  "hook_mfa_verification_attempt_uri": "lorem",
106
  "hook_mfa_verification_attempt_secrets": "lorem",
107
  "hook_password_verification_attempt_enabled": true,
108
  "hook_password_verification_attempt_uri": "lorem",
109
  "hook_password_verification_attempt_secrets": "lorem",
110
  "hook_send_sms_enabled": true,
111
  "hook_send_sms_uri": "lorem",
112
  "hook_send_sms_secrets": "lorem",
113
  "hook_send_email_enabled": true,
114
  "hook_send_email_uri": "lorem",
115
  "hook_send_email_secrets": "lorem",
116
  "hook_before_user_created_enabled": true,
117
  "hook_before_user_created_uri": "lorem",
118
  "hook_before_user_created_secrets": "lorem",
119
  "hook_after_user_created_enabled": true,
120
  "hook_after_user_created_uri": "lorem",
121
  "hook_after_user_created_secrets": "lorem",
122
  "jwt_exp": 42,
123
  "mailer_allow_unverified_email_sign_ins": true,
124
  "mailer_autoconfirm": true,
125
  "mailer_otp_exp": 42,
126
  "mailer_otp_length": 42,
127
  "mailer_secure_email_change_enabled": true,
128
  "mailer_subjects_confirmation": "lorem",
129
  "mailer_subjects_email_change": "lorem",
130
  "mailer_subjects_invite": "lorem",
131
  "mailer_subjects_magic_link": "lorem",
132
  "mailer_subjects_reauthentication": "lorem",
133
  "mailer_subjects_recovery": "lorem",
134
  "mailer_subjects_password_changed_notification": "lorem",
135
  "mailer_subjects_email_changed_notification": "lorem",
136
  "mailer_subjects_phone_changed_notification": "lorem",
137
  "mailer_subjects_mfa_factor_enrolled_notification": "lorem",
138
  "mailer_subjects_mfa_factor_unenrolled_notification": "lorem",
139
  "mailer_subjects_identity_linked_notification": "lorem",
140
  "mailer_subjects_identity_unlinked_notification": "lorem",
141
  "mailer_templates_confirmation_content": "lorem",
142
  "mailer_templates_email_change_content": "lorem",
143
  "mailer_templates_invite_content": "lorem",
144
  "mailer_templates_magic_link_content": "lorem",
145
  "mailer_templates_reauthentication_content": "lorem",
146
  "mailer_templates_recovery_content": "lorem",
147
  "mailer_templates_password_changed_notification_content": "lorem",
148
  "mailer_templates_email_changed_notification_content": "lorem",
149
  "mailer_templates_phone_changed_notification_content": "lorem",
150
  "mailer_templates_mfa_factor_enrolled_notification_content": "lorem",
151
  "mailer_templates_mfa_factor_unenrolled_notification_content": "lorem",
152
  "mailer_templates_identity_linked_notification_content": "lorem",
153
  "mailer_templates_identity_unlinked_notification_content": "lorem",
154
  "mailer_notifications_password_changed_enabled": true,
155
  "mailer_notifications_email_changed_enabled": true,
156
  "mailer_notifications_phone_changed_enabled": true,
157
  "mailer_notifications_mfa_factor_enrolled_enabled": true,
158
  "mailer_notifications_mfa_factor_unenrolled_enabled": true,
159
  "mailer_notifications_identity_linked_enabled": true,
160
  "mailer_notifications_identity_unlinked_enabled": true,
161
  "mfa_max_enrolled_factors": 42,
162
  "mfa_totp_enroll_enabled": true,
163
  "mfa_totp_verify_enabled": true,
164
  "mfa_phone_enroll_enabled": true,
165
  "mfa_phone_verify_enabled": true,
166
  "mfa_web_authn_enroll_enabled": true,
167
  "mfa_web_authn_verify_enabled": true,
168
  "passkey_enabled": true,
169
  "webauthn_rp_display_name": "lorem",
170
  "webauthn_rp_id": "lorem",
171
  "webauthn_rp_origins": "lorem",
172
  "mfa_phone_otp_length": 42,
173
  "mfa_phone_template": "lorem",
174
  "mfa_phone_max_frequency": 42,
175
  "nimbus_oauth_client_id": "lorem",
176
  "nimbus_oauth_email_optional": true,
177
  "nimbus_oauth_client_secret": "lorem",
178
  "password_hibp_enabled": true,
179
  "password_min_length": 42,
180
  "password_required_characters": "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ:0123456789",
181
  "rate_limit_anonymous_users": 42,
182
  "rate_limit_email_sent": 42,
183
  "rate_limit_sms_sent": 42,
184
  "rate_limit_token_refresh": 42,
185
  "rate_limit_verify": 42,
186
  "rate_limit_otp": 42,
187
  "rate_limit_web3": 42,
188
  "refresh_token_rotation_enabled": true,
189
  "saml_enabled": true,
190
  "saml_external_url": "lorem",
191
  "saml_allow_encrypted_assertions": true,
192
  "security_sb_forwarded_for_enabled": true,
193
  "security_captcha_enabled": true,
194
  "security_captcha_provider": "turnstile",
195
  "security_captcha_secret": "lorem",
196
  "security_manual_linking_enabled": true,
197
  "security_refresh_token_reuse_interval": 42,
198
  "security_update_password_require_reauthentication": true,
199
  "sessions_inactivity_timeout": 42,
200
  "sessions_single_per_user": true,
201
  "sessions_tags": "lorem",
202
  "sessions_timebox": 42,
203
  "site_url": "lorem",
204
  "sms_autoconfirm": true,
205
  "sms_max_frequency": 42,
206
  "sms_messagebird_access_key": "lorem",
207
  "sms_messagebird_originator": "lorem",
208
  "sms_otp_exp": 42,
209
  "sms_otp_length": 42,
210
  "sms_provider": "messagebird",
211
  "sms_template": "lorem",
212
  "sms_test_otp": "lorem",
213
  "sms_test_otp_valid_until": "2021-12-31T23:34:00Z",
214
  "sms_textlocal_api_key": "lorem",
215
  "sms_textlocal_sender": "lorem",
216
  "sms_twilio_account_sid": "lorem",
217
  "sms_twilio_auth_token": "lorem",
218
  "sms_twilio_content_sid": "lorem",
219
  "sms_twilio_message_service_sid": "lorem",
220
  "sms_twilio_verify_account_sid": "lorem",
221
  "sms_twilio_verify_auth_token": "lorem",
222
  "sms_twilio_verify_message_service_sid": "lorem",
223
  "sms_vonage_api_key": "lorem",
224
  "sms_vonage_api_secret": "lorem",
225
  "sms_vonage_from": "lorem",
226
  "smtp_admin_email": "jon.snow@targaryen.com",
227
  "smtp_host": "lorem",
228
  "smtp_max_frequency": 42,
229
  "smtp_pass": "lorem",
230
  "smtp_port": "lorem",
231
  "smtp_sender_name": "lorem",
232
  "smtp_user": "lorem",
233
  "uri_allow_list": "lorem",
234
  "oauth_server_enabled": true,
235
  "oauth_server_allow_dynamic_registration": true,
236
  "oauth_server_authorization_path": "lorem",
237
  "custom_oauth_enabled": true,
238
  "custom_oauth_max_providers": 42
239
}
```

* * *

## Get the signing key information for the JWT secret imported as signing key for this project. This endpoint will be removed in the future, check for HTTP 404 Not Found.

get`/v1/projects/{ref}/config/auth/signing-keys/legacy`

### OAuth scopes

- secrets:read

### The fine-grained token must include the following permissions to access this endpoint:

- auth\_signing\_keys\_read

### Path parameters

- ref

Required

string

Project ref

Details

### Response codes

- 200
- 401
- 403
- 429

### Response (200)

exampleschema

* * *

## Get information about a signing key

get`/v1/projects/{ref}/config/auth/signing-keys/{id}`

### The fine-grained token must include the following permissions to access this endpoint:

- auth\_signing\_keys\_read

### Path parameters

- id

Required

string

- ref

Required

string

Project ref

Details

### Response codes

- 200
- 401
- 403
- 429

### Response (200)

exampleschema

* * *

## List all signing keys for the project

get`/v1/projects/{ref}/config/auth/signing-keys`

### OAuth scopes

- secrets:read

### The fine-grained token must include the following permissions to access this endpoint:

- auth\_signing\_keys\_read

### Path parameters

- ref

Required

string

Project ref

Details

### Response codes

- 200
- 401
- 403
- 429

### Response (200)

exampleschema

```
1
{
2
  "keys": [\
3\
    {\
4\
      "id": "fbdf5a53-161e-4460-98ad-0e39408d8689",\
5\
      "algorithm": "EdDSA",\
6\
      "status": "in_use",\
7\
      "public_jwk": null,\
8\
      "created_at": "2021-12-31T23:34:00Z",\
9\
      "updated_at": "2021-12-31T23:34:00Z"\
10\
    }\
11\
  ]
12
}
```

* * *

## Get a third-party integration

get`/v1/projects/{ref}/config/auth/third-party-auth/{tpa_id}`

### OAuth scopes

- auth:read

### The fine-grained token must include the following permissions to access this endpoint:

- auth\_config\_read

### Path parameters

- ref

Required

string

Project ref

Details

- tpa\_id

Required

string

### Response codes

- 200
- 401
- 403
- 429

### Response (200)

exampleschema

* * *

## Lists all SSO providers

get`/v1/projects/{ref}/config/auth/sso/providers`

### OAuth scopes

- auth:read

### The fine-grained token must include the following permissions to access this endpoint:

- auth\_config\_read

### Path parameters

- ref

Required

string

Project ref

Details

### Response codes

- 200
- 401
- 403
- 404
- 429

### Response (200)

exampleschema

```
1
{
2
  "items": [\
3\
    {\
4\
      "id": "lorem",\
5\
      "saml": {\
6\
        "id": "lorem",\
7\
        "entity_id": "lorem",\
8\
        "metadata_url": "lorem",\
9\
        "metadata_xml": "lorem",\
10\
        "attribute_mapping": {\
11\
          "keys": {\
12\
            "property1": {\
13\
              "name": "lorem",\
14\
              "names": [\
15\
                "lorem"\
16\
              ],\
17\
              "default": {},\
18\
              "array": true\
19\
            },\
20\
            "property2": {\
21\
              "name": "lorem",\
22\
              "names": [\
23\
                "lorem"\
24\
              ],\
25\
              "default": {},\
26\
              "array": true\
27\
            }\
28\
          }\
29\
        },\
30\
        "name_id_format": "urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified"\
31\
      },\
32\
      "domains": [\
33\
        {\
34\
          "id": "lorem",\
35\
          "domain": "lorem",\
36\
          "created_at": "lorem",\
37\
          "updated_at": "lorem"\
38\
        }\
39\
      ],\
40\
      "created_at": "lorem",\
41\
      "updated_at": "lorem"\
42\
    }\
43\
  ]
44
}
```

* * *

## Lists all third-party auth integrations

get`/v1/projects/{ref}/config/auth/third-party-auth`

### OAuth scopes

- auth:read

### The fine-grained token must include the following permissions to access this endpoint:

- auth\_config\_read

### Path parameters

- ref

Required

string

Project ref

Details

### Response codes

- 200
- 401
- 403
- 429

### Response (200)

exampleschema

```
1
[\
2\
  {\
3\
    "id": "fbdf5a53-161e-4460-98ad-0e39408d8689",\
4\
    "type": "lorem",\
5\
    "oidc_issuer_url": "lorem",\
6\
    "jwks_url": "lorem",\
7\
    "custom_jwks": null,\
8\
    "resolved_jwks": null,\
9\
    "inserted_at": "lorem",\
10\
    "updated_at": "lorem",\
11\
    "resolved_at": "lorem"\
12\
  }\
13\
]
```

* * *

## Remove a signing key from a project. Only possible if the key has been in revoked status for a while.

delete`/v1/projects/{ref}/config/auth/signing-keys/{id}`

### OAuth scopes

- secrets:write

### The fine-grained token must include the following permissions to access this endpoint:

- auth\_signing\_keys\_write

### Path parameters

- id

Required

string

- ref

Required

string

Project ref

Details

### Response codes

- 200
- 401
- 403
- 429

### Response (200)

exampleschema

* * *

## Updates a SSO provider by its UUID

put`/v1/projects/{ref}/config/auth/sso/providers/{provider_id}`

### OAuth scopes

- auth:write

### The fine-grained token must include the following permissions to access this endpoint:

- auth\_config\_write

### Path parameters

- ref

Required

string

Project ref

Details

- provider\_id

Required

string

### Body

application/json

- metadata\_xml

Optional

string

- metadata\_url

Optional

string

- domains

Optional

Array<string>

- attribute\_mapping

Optional

object

Object schema

- name\_id\_format

Optional

enum

Accepted values

### Response codes

- 200
- 401
- 403
- 404
- 429

### Response (200)

exampleschema

* * *

## Updates a project's auth config

patch`/v1/projects/{ref}/config/auth`

### OAuth scopes

- auth:write

### The fine-grained token must include the following permissions to access this endpoint:

- auth\_config\_write
- project\_admin\_write

### Path parameters

- ref

Required

string

Project ref

Details

### Body

application/json

- site\_url

Optional

string

Details

- disable\_signup

Optional

boolean

- jwt\_exp

Optional

integer

- smtp\_admin\_email

Optional

string

- smtp\_host

Optional

string

- smtp\_port

Optional

string

- smtp\_user

Optional

string

- smtp\_pass

Optional

string

- smtp\_max\_frequency

Optional

integer

- smtp\_sender\_name

Optional

string

- mailer\_allow\_unverified\_email\_sign\_ins

Optional

boolean

- mailer\_autoconfirm

Optional

boolean

- mailer\_subjects\_invite

Optional

string

- mailer\_subjects\_confirmation

Optional

string

- mailer\_subjects\_recovery

Optional

string

- mailer\_subjects\_email\_change

Optional

string

- mailer\_subjects\_magic\_link

Optional

string

- mailer\_subjects\_reauthentication

Optional

string

- mailer\_subjects\_password\_changed\_notification

Optional

string

- mailer\_subjects\_email\_changed\_notification

Optional

string

- mailer\_subjects\_phone\_changed\_notification

Optional

string

- mailer\_subjects\_mfa\_factor\_enrolled\_notification

Optional

string

- mailer\_subjects\_mfa\_factor\_unenrolled\_notification

Optional

string

- mailer\_subjects\_identity\_linked\_notification

Optional

string

- mailer\_subjects\_identity\_unlinked\_notification

Optional

string

- mailer\_templates\_invite\_content

Optional

string

- mailer\_templates\_confirmation\_content

Optional

string

- mailer\_templates\_recovery\_content

Optional

string

- mailer\_templates\_email\_change\_content

Optional

string

- mailer\_templates\_magic\_link\_content

Optional

string

- mailer\_templates\_reauthentication\_content

Optional

string

- mailer\_templates\_password\_changed\_notification\_content

Optional

string

- mailer\_templates\_email\_changed\_notification\_content

Optional

string

- mailer\_templates\_phone\_changed\_notification\_content

Optional

string

- mailer\_templates\_mfa\_factor\_enrolled\_notification\_content

Optional

string

- mailer\_templates\_mfa\_factor\_unenrolled\_notification\_content

Optional

string

- mailer\_templates\_identity\_linked\_notification\_content

Optional

string

- mailer\_templates\_identity\_unlinked\_notification\_content

Optional

string

- mailer\_notifications\_password\_changed\_enabled

Optional

boolean

- mailer\_notifications\_email\_changed\_enabled

Optional

boolean

- mailer\_notifications\_phone\_changed\_enabled

Optional

boolean

- mailer\_notifications\_mfa\_factor\_enrolled\_enabled

Optional

boolean

- mailer\_notifications\_mfa\_factor\_unenrolled\_enabled

Optional

boolean

- mailer\_notifications\_identity\_linked\_enabled

Optional

boolean

- mailer\_notifications\_identity\_unlinked\_enabled

Optional

boolean

- mfa\_max\_enrolled\_factors

Optional

integer

- uri\_allow\_list

Optional

string

- external\_anonymous\_users\_enabled

Optional

boolean

- external\_email\_enabled

Optional

boolean

- external\_phone\_enabled

Optional

boolean

- saml\_enabled

Optional

boolean

- saml\_external\_url

Optional

string

Details

- security\_sb\_forwarded\_for\_enabled

Optional

boolean

- security\_captcha\_enabled

Optional

boolean

- security\_captcha\_provider

Optional

enum

Accepted values

- security\_captcha\_secret

Optional

string

- sessions\_timebox

Optional

number

- sessions\_inactivity\_timeout

Optional

number

- sessions\_single\_per\_user

Optional

boolean

- sessions\_tags

Optional

string

Details

- rate\_limit\_anonymous\_users

Optional

integer

- rate\_limit\_email\_sent

Optional

integer

- rate\_limit\_sms\_sent

Optional

integer

- rate\_limit\_verify

Optional

integer

- rate\_limit\_token\_refresh

Optional

integer

- rate\_limit\_otp

Optional

integer

- rate\_limit\_web3

Optional

integer

- mailer\_secure\_email\_change\_enabled

Optional

boolean

- refresh\_token\_rotation\_enabled

Optional

boolean

- password\_hibp\_enabled

Optional

boolean

- password\_min\_length

Optional

integer

- password\_required\_characters

Optional

enum

Accepted values

- security\_manual\_linking\_enabled

Optional

boolean

- security\_update\_password\_require\_reauthentication

Optional

boolean

- security\_refresh\_token\_reuse\_interval

Optional

integer

- mailer\_otp\_exp

Optional

integer

- mailer\_otp\_length

Optional

integer

- sms\_autoconfirm

Optional

boolean

- sms\_max\_frequency

Optional

integer

- sms\_otp\_exp

Optional

integer

- sms\_otp\_length

Optional

integer

- sms\_provider

Optional

enum

Accepted values

- sms\_messagebird\_access\_key

Optional

string

- sms\_messagebird\_originator

Optional

string

- sms\_test\_otp

Optional

string

Details

- sms\_test\_otp\_valid\_until

Optional

string

- sms\_textlocal\_api\_key

Optional

string

- sms\_textlocal\_sender

Optional

string

- sms\_twilio\_account\_sid

Optional

string

- sms\_twilio\_auth\_token

Optional

string

- sms\_twilio\_content\_sid

Optional

string

- sms\_twilio\_message\_service\_sid

Optional

string

- sms\_twilio\_verify\_account\_sid

Optional

string

- sms\_twilio\_verify\_auth\_token

Optional

string

- sms\_twilio\_verify\_message\_service\_sid

Optional

string

- sms\_vonage\_api\_key

Optional

string

- sms\_vonage\_api\_secret

Optional

string

- sms\_vonage\_from

Optional

string

- sms\_template

Optional

string

- hook\_mfa\_verification\_attempt\_enabled

Optional

boolean

- hook\_mfa\_verification\_attempt\_uri

Optional

string

- hook\_mfa\_verification\_attempt\_secrets

Optional

string

- hook\_password\_verification\_attempt\_enabled

Optional

boolean

- hook\_password\_verification\_attempt\_uri

Optional

string

- hook\_password\_verification\_attempt\_secrets

Optional

string

- hook\_custom\_access\_token\_enabled

Optional

boolean

- hook\_custom\_access\_token\_uri

Optional

string

- hook\_custom\_access\_token\_secrets

Optional

string

- hook\_send\_sms\_enabled

Optional

boolean

- hook\_send\_sms\_uri

Optional

string

- hook\_send\_sms\_secrets

Optional

string

- hook\_send\_email\_enabled

Optional

boolean

- hook\_send\_email\_uri

Optional

string

- hook\_send\_email\_secrets

Optional

string

- hook\_before\_user\_created\_enabled

Optional

boolean

- hook\_before\_user\_created\_uri

Optional

string

- hook\_before\_user\_created\_secrets

Optional

string

- hook\_after\_user\_created\_enabled

Optional

boolean

- hook\_after\_user\_created\_uri

Optional

string

- hook\_after\_user\_created\_secrets

Optional

string

- external\_apple\_enabled

Optional

boolean

- external\_apple\_client\_id

Optional

string

- external\_apple\_email\_optional

Optional

boolean

- external\_apple\_secret

Optional

string

- external\_apple\_additional\_client\_ids

Optional

string

- external\_azure\_enabled

Optional

boolean

- external\_azure\_client\_id

Optional

string

- external\_azure\_email\_optional

Optional

boolean

- external\_azure\_secret

Optional

string

- external\_azure\_url

Optional

string

- external\_bitbucket\_enabled

Optional

boolean

- external\_bitbucket\_client\_id

Optional

string

- external\_bitbucket\_email\_optional

Optional

boolean

- external\_bitbucket\_secret

Optional

string

- external\_discord\_enabled

Optional

boolean

- external\_discord\_client\_id

Optional

string

- external\_discord\_email\_optional

Optional

boolean

- external\_discord\_secret

Optional

string

- external\_facebook\_enabled

Optional

boolean

- external\_facebook\_client\_id

Optional

string

- external\_facebook\_email\_optional

Optional

boolean

- external\_facebook\_secret

Optional

string

- external\_figma\_enabled

Optional

boolean

- external\_figma\_client\_id

Optional

string

- external\_figma\_email\_optional

Optional

boolean

- external\_figma\_secret

Optional

string

- external\_github\_enabled

Optional

boolean

- external\_github\_client\_id

Optional

string

- external\_github\_email\_optional

Optional

boolean

- external\_github\_secret

Optional

string

- external\_gitlab\_enabled

Optional

boolean

- external\_gitlab\_client\_id

Optional

string

- external\_gitlab\_email\_optional

Optional

boolean

- external\_gitlab\_secret

Optional

string

- external\_gitlab\_url

Optional

string

- external\_google\_enabled

Optional

boolean

- external\_google\_client\_id

Optional

string

- external\_google\_email\_optional

Optional

boolean

- external\_google\_secret

Optional

string

- external\_google\_additional\_client\_ids

Optional

string

- external\_google\_skip\_nonce\_check

Optional

boolean

- external\_kakao\_enabled

Optional

boolean

- external\_kakao\_client\_id

Optional

string

- external\_kakao\_email\_optional

Optional

boolean

- external\_kakao\_secret

Optional

string

- external\_keycloak\_enabled

Optional

boolean

- external\_keycloak\_client\_id

Optional

string

- external\_keycloak\_email\_optional

Optional

boolean

- external\_keycloak\_secret

Optional

string

- external\_keycloak\_url

Optional

string

- external\_linkedin\_oidc\_enabled

Optional

boolean

- external\_linkedin\_oidc\_client\_id

Optional

string

- external\_linkedin\_oidc\_email\_optional

Optional

boolean

- external\_linkedin\_oidc\_secret

Optional

string

- external\_slack\_oidc\_enabled

Optional

boolean

- external\_slack\_oidc\_client\_id

Optional

string

- external\_slack\_oidc\_email\_optional

Optional

boolean

- external\_slack\_oidc\_secret

Optional

string

- external\_notion\_enabled

Optional

boolean

- external\_notion\_client\_id

Optional

string

- external\_notion\_email\_optional

Optional

boolean

- external\_notion\_secret

Optional

string

- external\_slack\_enabled

Optional

boolean

- external\_slack\_client\_id

Optional

string

- external\_slack\_email\_optional

Optional

boolean

- external\_slack\_secret

Optional

string

- external\_spotify\_enabled

Optional

boolean

- external\_spotify\_client\_id

Optional

string

- external\_spotify\_email\_optional

Optional

boolean

- external\_spotify\_secret

Optional

string

- external\_twitch\_enabled

Optional

boolean

- external\_twitch\_client\_id

Optional

string

- external\_twitch\_email\_optional

Optional

boolean

- external\_twitch\_secret

Optional

string

- external\_twitter\_enabled

Optional

boolean

- external\_twitter\_client\_id

Optional

string

- external\_twitter\_email\_optional

Optional

boolean

- external\_twitter\_secret

Optional

string

- external\_x\_enabled

Optional

boolean

- external\_x\_client\_id

Optional

string

- external\_x\_email\_optional

Optional

boolean

- external\_x\_secret

Optional

string

- external\_workos\_enabled

Optional

boolean

- external\_workos\_client\_id

Optional

string

- external\_workos\_secret

Optional

string

- external\_workos\_url

Optional

string

- external\_web3\_solana\_enabled

Optional

boolean

- external\_web3\_ethereum\_enabled

Optional

boolean

- external\_zoom\_enabled

Optional

boolean

- external\_zoom\_client\_id

Optional

string

- external\_zoom\_email\_optional

Optional

boolean

- external\_zoom\_secret

Optional

string

- db\_max\_pool\_size

Optional

integer

- db\_max\_pool\_size\_unit

Optional

enum

Accepted values

- api\_max\_request\_duration

Optional

integer

- mfa\_totp\_enroll\_enabled

Optional

boolean

- mfa\_totp\_verify\_enabled

Optional

boolean

- mfa\_web\_authn\_enroll\_enabled

Optional

boolean

- mfa\_web\_authn\_verify\_enabled

Optional

boolean

- passkey\_enabled

Optional

boolean

- webauthn\_rp\_display\_name

Optional

string

- webauthn\_rp\_id

Optional

string

- webauthn\_rp\_origins

Optional

string

- mfa\_phone\_enroll\_enabled

Optional

boolean

- mfa\_phone\_verify\_enabled

Optional

boolean

- mfa\_phone\_max\_frequency

Optional

integer

- mfa\_phone\_otp\_length

Optional

integer

- mfa\_phone\_template

Optional

string

- nimbus\_oauth\_client\_id

Optional

string

- nimbus\_oauth\_client\_secret

Optional

string

- oauth\_server\_enabled

Optional

boolean

- oauth\_server\_allow\_dynamic\_registration

Optional

boolean

- oauth\_server\_authorization\_path

Optional

string

- custom\_oauth\_enabled

Optional

boolean

### Response codes

- 200
- 401
- 403
- 429
- 500

### Response (200)

exampleschema

* * *

## Update a signing key, mainly its status

patch`/v1/projects/{ref}/config/auth/signing-keys/{id}`

### OAuth scopes

- secrets:write

### The fine-grained token must include the following permissions to access this endpoint:

- auth\_signing\_keys\_write

### Path parameters

- id

Required

string

- ref

Required

string

Project ref

Details

### Body

application/json

- status

Required

enum

Accepted values

### Response codes

- 200
- 401
- 403
- 429

### Response (200)

exampleschema

* * *

## Apply or update billing addons, including compute instance size

patch`/v1/projects/{ref}/billing/addons`

Selects an addon variant, for example scaling the project’s compute instance up or down, and applies it to the project.

### The fine-grained token must include the following permissions to access this endpoint:

- infra\_add\_ons\_write

### Path parameters

- ref

Required

string

Project ref

Details

### Body

application/json

- addon\_variant

Required

one of the following options

Options

- addon\_type

Required

enum

Accepted values

### Response codes

- 200
- 401
- 403
- 429
- 500

### Response (200)

schema

```
1
{}
```

* * *

## List billing addons and compute instance selections

get`/v1/projects/{ref}/billing/addons`

Returns the billing addons that are currently applied, including the active compute instance size, and lists every addon option that can be provisioned with pricing metadata.

### The fine-grained token must include the following permissions to access this endpoint:

- infra\_add\_ons\_read

### Path parameters

- ref

Required

string

Project ref

Details

### Response codes

- 200
- 401
- 403
- 429
- 500

### Response (200)

exampleschema

```
1
{
2
  "selected_addons": [\
3\
    {\
4\
      "type": "custom_domain",\
5\
      "variant": {\
6\
        "id": "ci_micro",\
7\
        "name": "lorem",\
8\
        "price": {\
9\
          "description": "lorem",\
10\
          "type": "fixed",\
11\
          "interval": "monthly",\
12\
          "amount": 42\
13\
        },\
14\
        "meta": null\
15\
      }\
16\
    }\
17\
  ],
18
  "available_addons": [\
19\
    {\
20\
      "type": "custom_domain",\
21\
      "name": "lorem",\
22\
      "variants": [\
23\
        {\
24\
          "id": "ci_micro",\
25\
          "name": "lorem",\
26\
          "price": {\
27\
            "description": "lorem",\
28\
            "type": "fixed",\
29\
            "interval": "monthly",\
30\
            "amount": 42\
31\
          },\
32\
          "meta": null\
33\
        }\
34\
      ]\
35\
    }\
36\
  ]
37
}
```

* * *

## Remove billing addons or revert compute instance sizing

delete`/v1/projects/{ref}/billing/addons/{addon_variant}`

Disables the selected addon variant, including rolling the compute instance back to its previous size.

### The fine-grained token must include the following permissions to access this endpoint:

- infra\_add\_ons\_write

### Path parameters

- ref

Required

string

Project ref

Details

- addon\_variant

Required

one of the following options

Options

### Response codes

- 200
- 401
- 403
- 429
- 500

### Response (200)

schema

```
1
{}
```

* * *

## Apply a database migration

post`/v1/projects/{ref}/database/migrations`

Only available to selected partner OAuth apps

### OAuth scopes

- database:write

### The fine-grained token must include the following permissions to access this endpoint:

- database\_migrations\_write

### Path parameters

- ref

Required

string

Project ref

Details

### Body

application/json

- query

Required

string

Details

- name

Optional

string

- rollback

Optional

string

### Response codes

- 200
- 401
- 403
- 429
- 500

### Response (200)

schema

```
1
{}
```

* * *

## Authorize user-id to role mappings for JIT access

post`/v1/projects/{ref}/database/jit`

Authorizes the request to assume a role in the project database

### OAuth scopes

- database:read

### The fine-grained token must include the following permissions to access this endpoint:

- database\_jit\_read

### Path parameters

- ref

Required

string

Project ref

Details

### Body

application/json

- role

Required

string

Details

- rhost

Required

string

Details

### Response codes

- 200
- 401
- 403
- 429
- 500

### Response (200)

exampleschema

```
1
{
2
  "user_id": "fbdf5a53-161e-4460-98ad-0e39408d8689",
3
  "user_role": {
4
    "role": "lorem",
5
    "expires_at": 42,
6
    "allowed_networks": {
7
      "allowed_cidrs": [\
8\
        {\
9\
          "cidr": "lorem"\
10\
        }\
11\
      ],
12
      "allowed_cidrs_v6": [\
13\
        {\
14\
          "cidr": "lorem"\
15\
        }\
16\
      ]
17
    }
18
  }
19
}
```

* * *

## \[Beta\] Create a login role for CLI with temporary password

post`/v1/projects/{ref}/cli/login-role`

### OAuth scopes

- database:write

### The fine-grained token must include the following permissions to access this endpoint:

- database\_write

### Path parameters

- ref

Required

string

Project ref

Details

### Body

application/json

- read\_only

Required

boolean

### Response codes

- 201
- 401
- 403
- 429
- 500

### Response (201)

exampleschema

```
1
{
2
  "role": "lorem",
3
  "password": "lorem",
4
  "ttl_seconds": 1
5
}
```

* * *

## Delete JIT access by user-id

delete`/v1/projects/{ref}/database/jit/{user_id}`

Remove JIT mappings of a user, revoking all JIT database access

### The fine-grained token must include the following permissions to access this endpoint:

- database\_jit\_write

### Path parameters

- ref

Required

string

Project ref

Details

- user\_id

Required

string

### Response codes

- 200
- 401
- 403
- 429
- 500

### Response (200)

schema

```
1
{}
```

* * *

## \[Beta\] Delete existing login roles used by CLI

delete`/v1/projects/{ref}/cli/login-role`

### OAuth scopes

- database:write

### The fine-grained token must include the following permissions to access this endpoint:

- database\_write

### Path parameters

- ref

Required

string

Project ref

Details

### Response codes

- 200
- 401
- 403
- 429
- 500

### Response (200)

exampleschema

```
1
{
2
  "message": "ok"
3
}
```

* * *

## Disables project's readonly mode for the next 15 minutes

post`/v1/projects/{ref}/readonly/temporary-disable`

### OAuth scopes

- database:write

### The fine-grained token must include the following permissions to access this endpoint:

- database\_readonly\_config\_write

### Path parameters

- ref

Required

string

Project ref

Details

### Response codes

- 201
- 401
- 403
- 429
- 500

### Response (201)

schema

```
1
{}
```

* * *

## \[Beta\] Enables Database Webhooks on the project

post`/v1/projects/{ref}/database/webhooks/enable`

### OAuth scopes

- database:write

### The fine-grained token must include the following permissions to access this endpoint:

- database\_webhooks\_config\_write

### Path parameters

- ref

Required

string

Project ref

Details

### Response codes

- 201
- 401
- 403
- 429
- 500

### Response (201)

schema

```
1
{}
```

* * *

## Generate TypeScript types

get`/v1/projects/{ref}/types/typescript`

Returns the TypeScript types of your schema for use with supabase-js.

### OAuth scopes

- database:read

### The fine-grained token must include the following permissions to access this endpoint:

- database\_read

### Path parameters

- ref

Required

string

Project ref

Details

### Query parameters

- included\_schemas

Optional

string

### Response codes

- 200
- 401
- 403
- 429
- 500

### Response (200)

exampleschema

```
1
{
2
  "types": "lorem"
3
}
```

* * *

## Fetch an existing entry from migration history

get`/v1/projects/{ref}/database/migrations/{version}`

Only available to selected partner OAuth apps

### OAuth scopes

- database:read

### The fine-grained token must include the following permissions to access this endpoint:

- database\_migrations\_read

### Path parameters

- ref

Required

string

Project ref

Details

- version

Required

string

Details

### Response codes

- 200
- 401
- 403
- 429
- 500

### Response (200)

exampleschema

```
1
{
2
  "version": "lorem",
3
  "name": "lorem",
4
  "statements": [\
5\
    "lorem"\
6\
  ],
7
  "rollback": [\
8\
    "lorem"\
9\
  ],
10
  "created_by": "lorem",
11
  "idempotency_key": "lorem"
12
}
```

* * *

## Gets a specific SQL snippet

get`/v1/snippets/{id}`

### OAuth scopes

- database:read

### The fine-grained token must include the following permissions to access this endpoint:

- snippets\_read

### Path parameters

- id

Required

string

### Response codes

- 200
- 401
- 403
- 429
- 500

### Response (200)

exampleschema

```
1
{
2
  "id": "lorem",
3
  "inserted_at": "lorem",
4
  "updated_at": "lorem",
5
  "type": "sql",
6
  "visibility": "user",
7
  "name": "lorem",
8
  "description": "lorem",
9
  "project": {
10
    "id": 42,
11
    "name": "lorem"
12
  },
13
  "owner": {
14
    "id": 42,
15
    "username": "lorem"
16
  },
17
  "updated_by": {
18
    "id": 42,
19
    "username": "lorem"
20
  },
21
  "favorite": true,
22
  "content": {
23
    "favorite": true,
24
    "schema_version": "lorem",
25
    "sql": "lorem"
26
  }
27
}
```

* * *

## Gets database metadata for the given project.  deprecated

get`/v1/projects/{ref}/database/context`

This is an **experimental** endpoint. It is subject to change or removal in future versions. Use it with caution, as it may not remain supported or stable.

### OAuth scopes

- projects:read

### The fine-grained token must include the following permissions to access this endpoint:

- database\_read

### Path parameters

- ref

Required

string

Project ref

Details

### Response codes

- 200
- 401
- 403
- 429

### Response (200)

exampleschema

```
1
{
2
  "databases": [\
3\
    {\
4\
      "name": "lorem",\
5\
      "schemas": [\
6\
        {\
7\
          "name": "lorem"\
8\
        }\
9\
      ]\
10\
    }\
11\
  ]
12
}
```

* * *

## Get PostgREST OpenAPI spec

get`/v1/projects/{ref}/database/openapi`

Returns the PostgREST OpenAPI specification for the project. This is the replacement for querying `/rest/v1/` directly with the anon key.

### OAuth scopes

- database:read

### The fine-grained token must include the following permissions to access this endpoint:

- database\_read

### Path parameters

- ref

Required

string

Project ref

Details

### Query parameters

- schema

Optional

string

The database schema to generate the OpenAPI spec for

### Response codes

- 200
- 401
- 403
- 429
- 500

### Response (200)

exampleschema

```
1
{}
```

* * *

## Get user-id to role mappings for JIT access

get`/v1/projects/{ref}/database/jit`

Mappings of roles a user can assume in the project database

### OAuth scopes

- database:read

### The fine-grained token must include the following permissions to access this endpoint:

- database\_jit\_read

### Path parameters

- ref

Required

string

Project ref

Details

### Response codes

- 200
- 401
- 403
- 429
- 500

### Response (200)

exampleschema

```
1
{
2
  "user_id": "fbdf5a53-161e-4460-98ad-0e39408d8689",
3
  "user_roles": [\
4\
    {\
5\
      "role": "lorem",\
6\
      "expires_at": 42,\
7\
      "allowed_networks": {\
8\
        "allowed_cidrs": [\
9\
          {\
10\
            "cidr": "lorem"\
11\
          }\
12\
        ],\
13\
        "allowed_cidrs_v6": [\
14\
          {\
15\
            "cidr": "lorem"\
16\
          }\
17\
        ]\
18\
      }\
19\
    }\
20\
  ]
21
}
```

* * *

## \[Beta\] Get project's temporary access configuration.

get`/v1/projects/{ref}/jit-access`

### OAuth scopes

- database:read

### The fine-grained token must include the following permissions to access this endpoint:

- project\_admin\_read

### Path parameters

- ref

Required

string

Project ref

Details

### Response codes

- 200
- 401
- 403
- 429
- 500

### Response (200)

exampleschema

* * *

## Gets project's supavisor config

get`/v1/projects/{ref}/config/database/pooler`

### OAuth scopes

- database:read

### The fine-grained token must include the following permissions to access this endpoint:

- database\_pooling\_config\_read

### Path parameters

- ref

Required

string

Project ref

Details

### Response codes

- 200
- 401
- 403
- 429
- 500

### Response (200)

exampleschema

```
1
[\
2\
  {\
3\
    "identifier": "lorem",\
4\
    "database_type": "PRIMARY",\
5\
    "is_using_scram_auth": true,\
6\
    "db_user": "lorem",\
7\
    "db_host": "lorem",\
8\
    "db_port": 42,\
9\
    "db_name": "lorem",\
10\
    "connection_string": "lorem",\
11\
    "connectionString": "lorem",\
12\
    "default_pool_size": 42,\
13\
    "max_client_conn": 42,\
14\
    "pool_mode": "transaction"\
15\
  }\
16\
]
```

* * *

## Gets project's Postgres config

get`/v1/projects/{ref}/config/database/postgres`

### OAuth scopes

- database:read

### The fine-grained token must include the following permissions to access this endpoint:

- database\_config\_read

### Path parameters

- ref

Required

string

Project ref

Details

### Response codes

- 200
- 401
- 403
- 429
- 500

### Response (200)

exampleschema

```
1
{
2
  "effective_cache_size": "lorem",
3
  "logical_decoding_work_mem": "lorem",
4
  "maintenance_work_mem": "lorem",
5
  "track_activity_query_size": "lorem",
6
  "max_connections": 1,
7
  "max_locks_per_transaction": 10,
8
  "max_parallel_maintenance_workers": 0,
9
  "max_parallel_workers": 0,
10
  "max_parallel_workers_per_gather": 0,
11
  "max_replication_slots": 42,
12
  "max_slot_wal_keep_size": "lorem",
13
  "max_standby_archive_delay": "lorem",
14
  "max_standby_streaming_delay": "lorem",
15
  "max_wal_size": "lorem",
16
  "max_wal_senders": 42,
17
  "max_worker_processes": 0,
18
  "session_replication_role": "origin",
19
  "shared_buffers": "lorem",
20
  "statement_timeout": "444444444444444444444444444444444444444444444444444",
21
  "track_commit_timestamp": true,
22
  "wal_keep_size": "lorem",
23
  "wal_sender_timeout": "444444444444444444444444444444444444444444444444444",
24
  "work_mem": "lorem",
25
  "checkpoint_timeout": "444444444444444444444444444444444444444444444444444",
26
  "hot_standby_feedback": true
27
}
```

* * *

## Get project's pgbouncer config

get`/v1/projects/{ref}/config/database/pgbouncer`

### OAuth scopes

- database:read

### The fine-grained token must include the following permissions to access this endpoint:

- database\_read

### Path parameters

- ref

Required

string

Project ref

Details

### Response codes

- 200
- 401
- 403
- 429
- 500

### Response (200)

exampleschema

```
1
{
2
  "default_pool_size": 42,
3
  "ignore_startup_parameters": "lorem",
4
  "max_client_conn": 42,
5
  "pool_mode": "transaction",
6
  "connection_string": "lorem",
7
  "server_idle_timeout": 42,
8
  "server_lifetime": 42,
9
  "query_wait_timeout": 42,
10
  "reserve_pool_size": 42
11
}
```

* * *

## Returns project's readonly mode status

get`/v1/projects/{ref}/readonly`

### OAuth scopes

- database:read

### The fine-grained token must include the following permissions to access this endpoint:

- database\_readonly\_config\_read

### Path parameters

- ref

Required

string

Project ref

Details

### Response codes

- 200
- 401
- 403
- 429
- 500

### Response (200)

exampleschema

```
1
{
2
  "enabled": true,
3
  "override_enabled": true,
4
  "override_active_until": "lorem"
5
}
```

* * *

## \[Beta\] Get project's SSL enforcement configuration.

get`/v1/projects/{ref}/ssl-enforcement`

### OAuth scopes

- database:read

### The fine-grained token must include the following permissions to access this endpoint:

- database\_ssl\_config\_read

### Path parameters

- ref

Required

string

Project ref

Details

### Response codes

- 200
- 401
- 403
- 429
- 500

### Response (200)

exampleschema

```
1
{
2
  "currentConfig": {
3
    "database": true
4
  },
5
  "appliedSuccessfully": true
6
}
```

* * *

## Lists all backups

get`/v1/projects/{ref}/database/backups`

### OAuth scopes

- database:read

### The fine-grained token must include the following permissions to access this endpoint:

- backups\_read

### Path parameters

- ref

Required

string

Project ref

Details

### Response codes

- 200
- 401
- 403
- 429
- 500

### Response (200)

exampleschema

```
1
{
2
  "region": "lorem",
3
  "walg_enabled": true,
4
  "pitr_enabled": true,
5
  "backups": [\
6\
    {\
7\
      "is_physical_backup": true,\
8\
      "status": "COMPLETED",\
9\
      "inserted_at": "lorem"\
10\
    }\
11\
  ],
12
  "physical_backup_data": {
13
    "earliest_physical_backup_date_unix": 42,
14
    "latest_physical_backup_date_unix": 42
15
  }
16
}
```

* * *

## Lists SQL snippets for the logged in user

get`/v1/snippets`

### OAuth scopes

- database:read

### The fine-grained token must include the following permissions to access this endpoint:

- snippets\_read

### Query parameters

- project\_ref

Optional

string

Project ref

Details

- cursor

Optional

string

- limit

Optional

string

- sort\_by

Optional

enum

Accepted values

- sort\_order

Optional

enum

Accepted values

### Response codes

- 200
- 401
- 403
- 429
- 500

### Response (200)

exampleschema

```
1
{
2
  "data": [\
3\
    {\
4\
      "id": "lorem",\
5\
      "inserted_at": "lorem",\
6\
      "updated_at": "lorem",\
7\
      "type": "sql",\
8\
      "visibility": "user",\
9\
      "name": "lorem",\
10\
      "description": "lorem",\
11\
      "project": {\
12\
        "id": 42,\
13\
        "name": "lorem"\
14\
      },\
15\
      "owner": {\
16\
        "id": 42,\
17\
        "username": "lorem"\
18\
      },\
19\
      "updated_by": {\
20\
        "id": 42,\
21\
        "username": "lorem"\
22\
      },\
23\
      "favorite": true\
24\
    }\
25\
  ],
26
  "cursor": "lorem"
27
}
```

* * *

## List all user-id to role mappings for JIT access

get`/v1/projects/{ref}/database/jit/list`

Mappings of roles a user can assume in the project database

### The fine-grained token must include the following permissions to access this endpoint:

- database\_jit\_read

### Path parameters

- ref

Required

string

Project ref

Details

### Response codes

- 200
- 401
- 403
- 429
- 500

### Response (200)

exampleschema

```
1
{
2
  "items": [\
3\
    {\
4\
      "user_id": "fbdf5a53-161e-4460-98ad-0e39408d8689",\
5\
      "user_roles": [\
6\
        {\
7\
          "role": "lorem",\
8\
          "expires_at": 42,\
9\
          "allowed_networks": {\
10\
            "allowed_cidrs": [\
11\
              {\
12\
                "cidr": "lorem"\
13\
              }\
14\
            ],\
15\
            "allowed_cidrs_v6": [\
16\
              {\
17\
                "cidr": "lorem"\
18\
              }\
19\
            ]\
20\
          }\
21\
        }\
22\
      ]\
23\
    }\
24\
  ]
25
}
```

* * *

## List applied migration versions

get`/v1/projects/{ref}/database/migrations`

Only available to selected partner OAuth apps

### OAuth scopes

- database:read

### The fine-grained token must include the following permissions to access this endpoint:

- database\_migrations\_read

### Path parameters

- ref

Required

string

Project ref

Details

### Response codes

- 200
- 401
- 403
- 429
- 500

### Response (200)

exampleschema

```
1
[\
2\
  {\
3\
    "version": "lorem",\
4\
    "name": "lorem"\
5\
  }\
6\
]
```

* * *

## Patch an existing entry in migration history

patch`/v1/projects/{ref}/database/migrations/{version}`

Only available to selected partner OAuth apps

### OAuth scopes

- database:write

### The fine-grained token must include the following permissions to access this endpoint:

- database\_migrations\_write

### Path parameters

- ref

Required

string

Project ref

Details

- version

Required

string

Details

### Body

application/json

- name

Optional

string

- rollback

Optional

string

### Response codes

- 200
- 401
- 403
- 429
- 500

### Response (200)

schema

```
1
{}
```

* * *

## \[Beta\] Run a sql query as supabase\_read\_only\_user

post`/v1/projects/{ref}/database/query/read-only`

All entity references must be schema qualified.

### OAuth scopes

- database:read

### The fine-grained token must include the following permissions to access this endpoint:

- database\_read

### Path parameters

- ref

Required

string

Project ref

Details

### Body

application/json

- query

Required

string

Details

- parameters

Optional

Array<unknown>

Items

### Response codes

- 201
- 401
- 403
- 429
- 500

### Response (201)

schema

```
1
{}
```

* * *

## \[Beta\] Remove a read replica

post`/v1/projects/{ref}/read-replicas/remove`

### The fine-grained token must include the following permissions to access this endpoint:

- infra\_read\_replicas\_write

### Path parameters

- ref

Required

string

Project ref

Details

### Body

application/json

- database\_identifier

Required

string

### Response codes

- 201
- 401
- 403
- 429
- 500

### Response (201)

schema

```
1
{}
```

* * *

## Restores a PITR backup for a database

post`/v1/projects/{ref}/database/backups/restore-pitr`

### OAuth scopes

- database:write

### The fine-grained token must include the following permissions to access this endpoint:

- backups\_write

### Path parameters

- ref

Required

string

Project ref

Details

### Body

application/json

- recovery\_time\_target\_unix

Required

integer

### Response codes

- 201
- 401
- 403
- 429

### Response (201)

schema

```
1
{}
```

* * *

## Rollback database migrations and remove them from history table

delete`/v1/projects/{ref}/database/migrations`

Only available to selected partner OAuth apps

### OAuth scopes

- database:write

### The fine-grained token must include the following permissions to access this endpoint:

- database\_migrations\_write

### Path parameters

- ref

Required

string

Project ref

Details

### Query parameters

- gte

Required

string

Rollback migrations greater or equal to this version

Details

### Response codes

- 200
- 401
- 403
- 429
- 500

### Response (200)

schema

```
1
{}
```

* * *

## \[Beta\] Run sql query

post`/v1/projects/{ref}/database/query`

### OAuth scopes

- database:write

### The fine-grained token must include the following permissions to access this endpoint:

- database\_write
- or
- database\_read

### Path parameters

- ref

Required

string

Project ref

Details

### Body

application/json

- query

Required

string

Details

- parameters

Optional

Array<unknown>

Items

- read\_only

Optional

boolean

### Response codes

- 201
- 401
- 403
- 429
- 500

### Response (201)

schema

```
1
{}
```

* * *

## \[Beta\] Set up a read replica

post`/v1/projects/{ref}/read-replicas/setup`

### The fine-grained token must include the following permissions to access this endpoint:

- infra\_read\_replicas\_write

### Path parameters

- ref

Required

string

Project ref

Details

### Body

application/json

- read\_replica\_region

Required

enum

Accepted values

### Response codes

- 201
- 401
- 403
- 429
- 500

### Response (201)

schema

```
1
{}
```

* * *

## Updates the database password

patch`/v1/projects/{ref}/database/password`

### OAuth scopes

- database:write

### The fine-grained token must include the following permissions to access this endpoint:

- database\_config\_write

### Path parameters

- ref

Required

string

Project ref

Details

### Body

application/json

- password

Required

string

Details

### Response codes

- 200
- 401
- 403
- 429
- 500

### Response (200)

exampleschema

```
1
{
2
  "message": "lorem"
3
}
```

* * *

## Updates a user mapping for JIT access

put`/v1/projects/{ref}/database/jit`

Modifies the roles that can be assumed and for how long

### The fine-grained token must include the following permissions to access this endpoint:

- database\_jit\_write

### Path parameters

- ref

Required

string

Project ref

Details

### Body

application/json

- user\_id

Required

string

Details

- roles

Required

Array<object>

Items

### Response codes

- 200
- 401
- 403
- 429
- 500

### Response (200)

exampleschema

* * *

## \[Beta\] Update project's temporary access configuration.

put`/v1/projects/{ref}/jit-access`

### OAuth scopes

- database:write

### The fine-grained token must include the following permissions to access this endpoint:

- project\_admin\_write

### Path parameters

- ref

Required

string

Project ref

Details

### Body

application/json

- state

Required

enum

Accepted values

### Response codes

- 200
- 401
- 403
- 429
- 500

### Response (200)

exampleschema

* * *

## Updates project's supavisor config

patch`/v1/projects/{ref}/config/database/pooler`

### OAuth scopes

- database:write

### The fine-grained token must include the following permissions to access this endpoint:

- database\_pooling\_config\_write

### Path parameters

- ref

Required

string

Project ref

Details

### Body

application/json

- default\_pool\_size

Optional

integer

- pool\_mode

Optional

enum

Accepted values

### Response codes

- 200
- 401
- 403
- 429
- 500

### Response (200)

exampleschema

```
1
{
2
  "default_pool_size": 42,
3
  "pool_mode": "lorem"
4
}
```

* * *

## Updates project's Postgres config

put`/v1/projects/{ref}/config/database/postgres`

### OAuth scopes

- database:write

### The fine-grained token must include the following permissions to access this endpoint:

- database\_config\_write

### Path parameters

- ref

Required

string

Project ref

Details

### Body

application/json

- effective\_cache\_size

Optional

string

- logical\_decoding\_work\_mem

Optional

string

- maintenance\_work\_mem

Optional

string

- track\_activity\_query\_size

Optional

string

- max\_connections

Optional

integer

- max\_locks\_per\_transaction

Optional

integer

- max\_parallel\_maintenance\_workers

Optional

integer

- max\_parallel\_workers

Optional

integer

- max\_parallel\_workers\_per\_gather

Optional

integer

- max\_replication\_slots

Optional

integer

- max\_slot\_wal\_keep\_size

Optional

string

- max\_standby\_archive\_delay

Optional

string

- max\_standby\_streaming\_delay

Optional

string

- max\_wal\_size

Optional

string

- max\_wal\_senders

Optional

integer

- max\_worker\_processes

Optional

integer

- session\_replication\_role

Optional

enum

Accepted values

- shared\_buffers

Optional

string

- statement\_timeout

Optional

string

Details

- track\_commit\_timestamp

Optional

boolean

- wal\_keep\_size

Optional

string

- wal\_sender\_timeout

Optional

string

Details

- work\_mem

Optional

string

- checkpoint\_timeout

Optional

string

Details

- hot\_standby\_feedback

Optional

boolean

- restart\_database

Optional

boolean

### Response codes

- 200
- 401
- 403
- 429
- 500

### Response (200)

exampleschema

* * *

## \[Beta\] Update project's SSL enforcement configuration.

put`/v1/projects/{ref}/ssl-enforcement`

### OAuth scopes

- database:write

### The fine-grained token must include the following permissions to access this endpoint:

- database\_ssl\_config\_write

### Path parameters

- ref

Required

string

Project ref

Details

### Body

application/json

- requestedConfig

Required

object

Object schema

### Response codes

- 200
- 401
- 403
- 429
- 500

### Response (200)

exampleschema

```
1
{
2
  "currentConfig": {
3
    "database": true
4
  },
5
  "appliedSuccessfully": true
6
}
```

* * *

## Upsert a database migration without applying

put`/v1/projects/{ref}/database/migrations`

Only available to selected partner OAuth apps

### OAuth scopes

- database:write

### The fine-grained token must include the following permissions to access this endpoint:

- database\_migrations\_write

### Path parameters

- ref

Required

string

Project ref

Details

### Body

application/json

- query

Required

string

Details

- name

Optional

string

- rollback

Optional

string

### Response codes

- 200
- 401
- 403
- 429
- 500

### Response (200)

schema

```
1
{}
```

* * *

## \[Beta\] Activates a custom hostname for a project.

post`/v1/projects/{ref}/custom-hostname/activate`

### OAuth scopes

- domains:write

### The fine-grained token must include the following permissions to access this endpoint:

- custom\_domain\_write

### Path parameters

- ref

Required

string

Project ref

Details

### Response codes

- 201
- 401
- 403
- 429
- 500

### Response (201)

exampleschema

```
1
{
2
  "status": "1_not_started",
3
  "custom_hostname": "lorem",
4
  "data": {
5
    "success": true,
6
    "errors": [\
7\
      null\
8\
    ],
9
    "messages": [\
10\
      null\
11\
    ],
12
    "result": {
13
      "id": "lorem",
14
      "hostname": "lorem",
15
      "ssl": {
16
        "status": "lorem",
17
        "validation_records": [\
18\
          {\
19\
            "txt_name": "lorem",\
20\
            "txt_value": "lorem"\
21\
          }\
22\
        ],
23
        "validation_errors": [\
24\
          {\
25\
            "message": "lorem"\
26\
          }\
27\
        ]
28
      },
29
      "ownership_verification": {
30
        "type": "lorem",
31
        "name": "lorem",
32
        "value": "lorem"
33
      },
34
      "custom_origin_server": "lorem",
35
      "verification_errors": [\
36\
        "lorem"\
37\
      ],
38
      "status": "lorem"
39
    }
40
  }
41
}
```

* * *

## \[Beta\] Activates a vanity subdomain for a project.

post`/v1/projects/{ref}/vanity-subdomain/activate`

### OAuth scopes

- domains:write

### The fine-grained token must include the following permissions to access this endpoint:

- vanity\_subdomain\_write

### Path parameters

- ref

Required

string

Project ref

Details

### Body

application/json

- vanity\_subdomain

Required

string

Details

### Response codes

- 201
- 401
- 403
- 429
- 500

### Response (201)

exampleschema

```
1
{
2
  "custom_domain": "lorem"
3
}
```

* * *

## \[Beta\] Checks vanity subdomain availability

post`/v1/projects/{ref}/vanity-subdomain/check-availability`

### OAuth scopes

- domains:write

### The fine-grained token must include the following permissions to access this endpoint:

- vanity\_subdomain\_write

### Path parameters

- ref

Required

string

Project ref

Details

### Body

application/json

- vanity\_subdomain

Required

string

Details

### Response codes

- 201
- 401
- 403
- 429
- 500

### Response (201)

exampleschema

```
1
{
2
  "available": true
3
}
```

* * *

## \[Beta\] Deletes a project's vanity subdomain configuration

delete`/v1/projects/{ref}/vanity-subdomain`

### OAuth scopes

- domains:write

### The fine-grained token must include the following permissions to access this endpoint:

- vanity\_subdomain\_write

### Path parameters

- ref

Required

string

Project ref

Details

### Response codes

- 200
- 401
- 403
- 429
- 500

### Response (200)

schema

```
1
{}
```

* * *

## \[Beta\] Gets project's custom hostname config

get`/v1/projects/{ref}/custom-hostname`

### OAuth scopes

- domains:read

### The fine-grained token must include the following permissions to access this endpoint:

- custom\_domain\_read

### Path parameters

- ref

Required

string

Project ref

Details

### Response codes

- 200
- 401
- 403
- 429
- 500

### Response (200)

exampleschema

* * *

## \[Beta\] Gets current vanity subdomain config

get`/v1/projects/{ref}/vanity-subdomain`

### OAuth scopes

- domains:read

### The fine-grained token must include the following permissions to access this endpoint:

- vanity\_subdomain\_read

### Path parameters

- ref

Required

string

Project ref

Details

### Response codes

- 200
- 401
- 403
- 429
- 500

### Response (200)

exampleschema

```
1
{
2
  "status": "not-used",
3
  "custom_domain": "lorem"
4
}
```

* * *

## \[Beta\] Updates project's custom hostname configuration

post`/v1/projects/{ref}/custom-hostname/initialize`

### OAuth scopes

- domains:write

### The fine-grained token must include the following permissions to access this endpoint:

- custom\_domain\_write

### Path parameters

- ref

Required

string

Project ref

Details

### Body

application/json

- custom\_hostname

Required

string

Details

### Response codes

- 201
- 401
- 403
- 429
- 500

### Response (201)

exampleschema

* * *

## \[Beta\] Attempts to verify the DNS configuration for project's custom hostname configuration

post`/v1/projects/{ref}/custom-hostname/reverify`

### OAuth scopes

- domains:write

### The fine-grained token must include the following permissions to access this endpoint:

- custom\_domain\_write

### Path parameters

- ref

Required

string

Project ref

Details

### Response codes

- 201
- 401
- 403
- 429
- 500

### Response (201)

exampleschema

* * *

## Bulk update functions

put`/v1/projects/{ref}/functions`

Bulk update functions. It will create a new function or replace existing. The operation is idempotent. NOTE: You will need to manually bump the version.

### OAuth scopes

- edge\_functions:write

### The fine-grained token must include the following permissions to access this endpoint:

- edge\_functions\_write

### Path parameters

- ref

Required

string

Project ref

Details

### Body

application/json

Array of object

Object schema

### Response codes

- 200
- 401
- 402
- 403
- 429
- 500

### Response (200)

exampleschema

```
1
{
2
  "functions": [\
3\
    {\
4\
      "id": "lorem",\
5\
      "slug": "lorem",\
6\
      "name": "lorem",\
7\
      "status": "ACTIVE",\
8\
      "version": 42,\
9\
      "created_at": 42,\
10\
      "updated_at": 42,\
11\
      "verify_jwt": true,\
12\
      "import_map": true,\
13\
      "entrypoint_path": "lorem",\
14\
      "import_map_path": "lorem",\
15\
      "ezbr_sha256": "lorem"\
16\
    }\
17\
  ]
18
}
```

* * *

## Create a function  deprecated

post`/v1/projects/{ref}/functions`

This endpoint is deprecated - use the deploy endpoint. Creates a function and adds it to the specified project.

### OAuth scopes

- edge\_functions:write

### The fine-grained token must include the following permissions to access this endpoint:

- edge\_functions\_write

### Path parameters

- ref

Required

string

Project ref

Details

### Query parameters

- slug

Optional

string

Details

- name

Optional

string

- verify\_jwt

Optional

boolean

Boolean string, true or false

- import\_map

Optional

boolean

Boolean string, true or false

- entrypoint\_path

Optional

string

- import\_map\_path

Optional

string

- ezbr\_sha256

Optional

string

### Body

application/vnd.denoland.eszip

string

- slug

Required

string

Details

- name

Required

string

- body

Required

string

- verify\_jwt

Optional

boolean

### Response codes

- 201
- 401
- 402
- 403
- 429
- 500

### Response (201)

exampleschema

```
1
{
2
  "id": "lorem",
3
  "slug": "lorem",
4
  "name": "lorem",
5
  "status": "ACTIVE",
6
  "version": 42,
7
  "created_at": 42,
8
  "updated_at": 42,
9
  "verify_jwt": true,
10
  "import_map": true,
11
  "entrypoint_path": "lorem",
12
  "import_map_path": "lorem",
13
  "ezbr_sha256": "lorem"
14
}
```

* * *

## Delete a function

delete`/v1/projects/{ref}/functions/{function_slug}`

Deletes a function with the specified slug from the specified project.

### OAuth scopes

- edge\_functions:write

### The fine-grained token must include the following permissions to access this endpoint:

- edge\_functions\_write

### Path parameters

- ref

Required

string

Project ref

Details

- function\_slug

Required

string

Function slug

Details

### Response codes

- 200
- 401
- 403
- 429
- 500

### Response (200)

schema

```
1
{}
```

* * *

## Deploy a function

post`/v1/projects/{ref}/functions/deploy`

A new endpoint to deploy functions. It will create if function does not exist.

### OAuth scopes

- edge\_functions:write

### The fine-grained token must include the following permissions to access this endpoint:

- edge\_functions\_write

### Path parameters

- ref

Required

string

Project ref

Details

### Query parameters

- slug

Optional

string

Details

- bundleOnly

Optional

boolean

Boolean string, true or false

### Body

multipart/form-data

- file

Optional

Array<string>

- metadata

Required

object

Object schema

### Response codes

- 201
- 401
- 402
- 403
- 429
- 500

### Response (201)

exampleschema

* * *

## Retrieve a function

get`/v1/projects/{ref}/functions/{function_slug}`

Retrieves a function with the specified slug and project.

### OAuth scopes

- edge\_functions:read

### The fine-grained token must include the following permissions to access this endpoint:

- edge\_functions\_read

### Path parameters

- ref

Required

string

Project ref

Details

- function\_slug

Required

string

Function slug

Details

### Response codes

- 200
- 401
- 403
- 429
- 500

### Response (200)

exampleschema

* * *

## Retrieve a function body

get`/v1/projects/{ref}/functions/{function_slug}/body`

Retrieves a function body for the specified slug and project.

### OAuth scopes

- edge\_functions:read

### The fine-grained token must include the following permissions to access this endpoint:

- edge\_functions\_read

### Path parameters

- ref

Required

string

Project ref

Details

- function\_slug

Required

string

Function slug

Details

### Response codes

- 200
- 401
- 403
- 429
- 500

### Response (200)

exampleschema

```
1
{}
```

* * *

## List all functions

get`/v1/projects/{ref}/functions`

Returns all functions you've previously added to the specified project.

### OAuth scopes

- edge\_functions:read

### The fine-grained token must include the following permissions to access this endpoint:

- edge\_functions\_read

### Path parameters

- ref

Required

string

Project ref

Details

### Response codes

- 200
- 401
- 403
- 429
- 500

### Response (200)

exampleschema

```
1
[\
2\
  {\
3\
    "id": "lorem",\
4\
    "slug": "lorem",\
5\
    "name": "lorem",\
6\
    "status": "ACTIVE",\
7\
    "version": 42,\
8\
    "created_at": 42,\
9\
    "updated_at": 42,\
10\
    "verify_jwt": true,\
11\
    "import_map": true,\
12\
    "entrypoint_path": "lorem",\
13\
    "import_map_path": "lorem",\
14\
    "ezbr_sha256": "lorem"\
15\
  }\
16\
]
```

* * *

## Update a function

patch`/v1/projects/{ref}/functions/{function_slug}`

Updates a function with the specified slug and project.

### OAuth scopes

- edge\_functions:write

### The fine-grained token must include the following permissions to access this endpoint:

- edge\_functions\_write

### Path parameters

- ref

Required

string

Project ref

Details

- function\_slug

Required

string

Function slug

Details

### Query parameters

- slug

Optional

string

Details

- name

Optional

string

- verify\_jwt

Optional

boolean

Boolean string, true or false

- import\_map

Optional

boolean

Boolean string, true or false

- entrypoint\_path

Optional

string

- import\_map\_path

Optional

string

- ezbr\_sha256

Optional

string

### Body

application/vnd.denoland.eszip

string

- name

Optional

string

- body

Optional

string

- verify\_jwt

Optional

boolean

### Response codes

- 200
- 401
- 403
- 429
- 500

### Response (200)

exampleschema

* * *

## Count the number of action runs

head`/v1/projects/{ref}/actions`

Returns the total number of action runs of the specified project.

### OAuth scopes

- environment:read

### The fine-grained token must include the following permissions to access this endpoint:

- action\_runs\_read

### Path parameters

- ref

Required

string

Project ref

Details

### Response codes

- 200
- 401
- 403
- 429
- 500

### Response (200)

schema

```
1
{}
```

* * *

## Create a database branch

post`/v1/projects/{ref}/branches`

Creates a database branch from the specified project.

### OAuth scopes

- environment:write

### The fine-grained token must include the following permissions to access this endpoint:

- branching\_production\_create
- or
- branching\_development\_create

### Path parameters

- ref

Required

string

Project ref

Details

### Body

application/json

- branch\_name

Required

string

Details

- git\_branch

Optional

string

- is\_default

Optional

boolean

- persistent

Optional

boolean

- region

Optional

string

- desired\_instance\_size

Optional

enum

Accepted values

- release\_channel

Optional

enum

Accepted values

- postgres\_engine

Optional

enum

Accepted values

- secrets

Optional

object

Object schema

- with\_data

Optional

boolean

- notify\_url

Optional

string

### Response codes

- 201
- 500

### Response (201)

exampleschema

```
1
{
2
  "id": "fbdf5a53-161e-4460-98ad-0e39408d8689",
3
  "name": "lorem",
4
  "project_ref": "lorem",
5
  "parent_project_ref": "lorem",
6
  "is_default": true,
7
  "git_branch": "lorem",
8
  "pr_number": 42,
9
  "latest_check_run_id": 42,
10
  "persistent": true,
11
  "status": "CREATING_PROJECT",
12
  "created_at": "2021-12-31T23:34:00Z",
13
  "updated_at": "2021-12-31T23:34:00Z",
14
  "review_requested_at": "2021-12-31T23:34:00Z",
15
  "with_data": true,
16
  "notify_url": "https://github.com/NeuraLegion/brokencrystals",
17
  "deletion_scheduled_at": "2021-12-31T23:34:00Z",
18
  "preview_project_status": "INACTIVE"
19
}
```

* * *

## Delete a database branch

delete`/v1/branches/{branch_id_or_ref}`

Deletes the specified database branch. By default, deletes immediately. Use force=false to schedule deletion with 1-hour grace period (only when soft deletion is enabled).

### OAuth scopes

- environment:write

### The fine-grained token must include the following permissions to access this endpoint:

- branching\_production\_delete
- or
- branching\_development\_delete

### Path parameters

- branch\_id\_or\_ref

Required

one of the following options

Branch ref or deprecated branch ID

Options

### Query parameters

- force

Optional

boolean

If set to false, schedule deletion with 1-hour grace period (only when soft deletion is enabled).

### Response codes

- 200
- 500

### Response (200)

exampleschema

```
1
{
2
  "message": "ok"
3
}
```

* * *

## \[Beta\] Diffs a database branch

get`/v1/branches/{branch_id_or_ref}/diff`

Diffs the specified database branch

### OAuth scopes

- environment:write

### The fine-grained token must include the following permissions to access this endpoint:

- branching\_production\_write
- or
- branching\_development\_write

### Path parameters

- branch\_id\_or\_ref

Required

one of the following options

Branch ref or deprecated branch ID

Options

### Query parameters

- included\_schemas

Optional

string

- pgdelta

Optional

boolean

Use pg-delta instead of Migra for diffing when true

### Response codes

- 200
- 500

### Response (200)

schema

```
1
{}
```

* * *

## Disables preview branching

delete`/v1/projects/{ref}/branches`

Disables preview branching for the specified project

### OAuth scopes

- environment:write

### The fine-grained token must include the following permissions to access this endpoint:

- branching\_production\_delete

### Path parameters

- ref

Required

string

Project ref

Details

### Response codes

- 200
- 401
- 403
- 429
- 500

### Response (200)

schema

```
1
{}
```

* * *

## Get a database branch

get`/v1/projects/{ref}/branches/{name}`

Fetches the specified database branch by its name.

### OAuth scopes

- environment:read

### The fine-grained token must include the following permissions to access this endpoint:

- branching\_production\_read
- or
- branching\_development\_read

### Path parameters

- ref

Required

string

Project ref

Details

- name

Required

string

### Response codes

- 200
- 500

### Response (200)

exampleschema

* * *

## Get database branch config

get`/v1/branches/{branch_id_or_ref}`

Fetches configurations of the specified database branch

### OAuth scopes

- environment:read

### The fine-grained token must include the following permissions to access this endpoint:

- branching\_production\_read
- or
- branching\_development\_read

### Path parameters

- branch\_id\_or\_ref

Required

one of the following options

Branch ref or deprecated branch ID

Options

### Response codes

- 200
- 500

### Response (200)

exampleschema

```
1
{
2
  "ref": "lorem",
3
  "postgres_version": "lorem",
4
  "postgres_engine": "lorem",
5
  "release_channel": "lorem",
6
  "status": "INACTIVE",
7
  "db_host": "lorem",
8
  "db_port": 1,
9
  "db_user": "lorem",
10
  "db_pass": "lorem",
11
  "jwt_secret": "lorem"
12
}
```

* * *

## Get the status of an action run

get`/v1/projects/{ref}/actions/{run_id}`

Returns the current status of the specified action run.

### OAuth scopes

- environment:read

### The fine-grained token must include the following permissions to access this endpoint:

- action\_runs\_read

### Path parameters

- ref

Required

string

Project ref

Details

- run\_id

Required

string

Action Run ID

### Response codes

- 200
- 401
- 403
- 429
- 500

### Response (200)

exampleschema

```
1
{
2
  "id": "lorem",
3
  "branch_id": "lorem",
4
  "run_steps": [\
5\
    {\
6\
      "name": "clone",\
7\
      "status": "CREATED",\
8\
      "created_at": "lorem",\
9\
      "updated_at": "lorem"\
10\
    }\
11\
  ],
12
  "git_config": null,
13
  "workdir": "lorem",
14
  "check_run_id": 42,
15
  "created_at": "lorem",
16
  "updated_at": "lorem"
17
}
```

* * *

## Get the logs of an action run

get`/v1/projects/{ref}/actions/{run_id}/logs`

Returns the logs from the specified action run.

### OAuth scopes

- environment:read

### The fine-grained token must include the following permissions to access this endpoint:

- action\_runs\_read

### Path parameters

- ref

Required

string

Project ref

Details

- run\_id

Required

string

Action Run ID

### Response codes

- 200
- 401
- 403
- 429
- 500

### Response (200)

schema

```
1
{}
```

* * *

## List all action runs

get`/v1/projects/{ref}/actions`

Returns a paginated list of action runs of the specified project.

### OAuth scopes

- environment:read

### The fine-grained token must include the following permissions to access this endpoint:

- action\_runs\_read

### Path parameters

- ref

Required

string

Project ref

Details

### Query parameters

- offset

Optional

number

- limit

Optional

number

### Response codes

- 200
- 401
- 403
- 429
- 500

### Response (200)

exampleschema

```
1
[\
2\
  {\
3\
    "id": "lorem",\
4\
    "branch_id": "lorem",\
5\
    "run_steps": [\
6\
      {\
7\
        "name": "clone",\
8\
        "status": "CREATED",\
9\
        "created_at": "lorem",\
10\
        "updated_at": "lorem"\
11\
      }\
12\
    ],\
13\
    "git_config": null,\
14\
    "workdir": "lorem",\
15\
    "check_run_id": 42,\
16\
    "created_at": "lorem",\
17\
    "updated_at": "lorem"\
18\
  }\
19\
]
```

* * *

## List all database branches

get`/v1/projects/{ref}/branches`

Returns all database branches of the specified project.

### OAuth scopes

- environment:read

### The fine-grained token must include the following permissions to access this endpoint:

- branching\_production\_read
- or
- branching\_development\_read

### Path parameters

- ref

Required

string

Project ref

Details

### Response codes

- 200
- 500

### Response (200)

exampleschema

```
1
[\
2\
  {\
3\
    "id": "fbdf5a53-161e-4460-98ad-0e39408d8689",\
4\
    "name": "lorem",\
5\
    "project_ref": "lorem",\
6\
    "parent_project_ref": "lorem",\
7\
    "is_default": true,\
8\
    "git_branch": "lorem",\
9\
    "pr_number": 42,\
10\
    "latest_check_run_id": 42,\
11\
    "persistent": true,\
12\
    "status": "CREATING_PROJECT",\
13\
    "created_at": "2021-12-31T23:34:00Z",\
14\
    "updated_at": "2021-12-31T23:34:00Z",\
15\
    "review_requested_at": "2021-12-31T23:34:00Z",\
16\
    "with_data": true,\
17\
    "notify_url": "https://github.com/NeuraLegion/brokencrystals",\
18\
    "deletion_scheduled_at": "2021-12-31T23:34:00Z",\
19\
    "preview_project_status": "INACTIVE"\
20\
  }\
21\
]
```

* * *

## Merges a database branch

post`/v1/branches/{branch_id_or_ref}/merge`

Merges the specified database branch

### OAuth scopes

- environment:write

### The fine-grained token must include the following permissions to access this endpoint:

- branching\_production\_write
- or
- branching\_development\_write

### Path parameters

- branch\_id\_or\_ref

Required

one of the following options

Branch ref or deprecated branch ID

Options

### Body

application/json

- migration\_version

Optional

string

### Response codes

- 201
- 500

### Response (201)

exampleschema

```
1
{
2
  "workflow_run_id": "lorem",
3
  "message": "ok"
4
}
```

* * *

## Pushes a database branch

post`/v1/branches/{branch_id_or_ref}/push`

Pushes the specified database branch

### OAuth scopes

- environment:write

### The fine-grained token must include the following permissions to access this endpoint:

- branching\_production\_write
- or
- branching\_development\_write

### Path parameters

- branch\_id\_or\_ref

Required

one of the following options

Branch ref or deprecated branch ID

Options

### Body

application/json

- migration\_version

Optional

string

### Response codes

- 201
- 500

### Response (201)

exampleschema

```
1
{
2
  "workflow_run_id": "lorem",
3
  "message": "ok"
4
}
```

* * *

## Resets a database branch

post`/v1/branches/{branch_id_or_ref}/reset`

Resets the specified database branch

### OAuth scopes

- environment:write

### The fine-grained token must include the following permissions to access this endpoint:

- branching\_production\_write
- or
- branching\_development\_write

### Path parameters

- branch\_id\_or\_ref

Required

one of the following options

Branch ref or deprecated branch ID

Options

### Body

application/json

- migration\_version

Optional

string

### Response codes

- 201
- 500

### Response (201)

exampleschema

```
1
{
2
  "workflow_run_id": "lorem",
3
  "message": "ok"
4
}
```

* * *

## Restore a scheduled branch deletion

post`/v1/branches/{branch_id_or_ref}/restore`

Cancels scheduled deletion and restores the branch to active state

### OAuth scopes

- environment:write

### The fine-grained token must include the following permissions to access this endpoint:

- branching\_production\_write
- or
- branching\_development\_write

### Path parameters

- branch\_id\_or\_ref

Required

one of the following options

Branch ref or deprecated branch ID

Options

### Response codes

- 200
- 500

### Response (200)

exampleschema

```
1
{
2
  "message": "Branch restoration initiated"
3
}
```

* * *

## Update database branch config

patch`/v1/branches/{branch_id_or_ref}`

Updates the configuration of the specified database branch

### OAuth scopes

- environment:write

### The fine-grained token must include the following permissions to access this endpoint:

- branching\_production\_write
- or
- branching\_development\_write

### Path parameters

- branch\_id\_or\_ref

Required

one of the following options

Branch ref or deprecated branch ID

Options

### Body

application/json

- branch\_name

Optional

string

- git\_branch

Optional

string

- reset\_on\_push

Optional

Deprecatedboolean

- persistent

Optional

boolean

- status

Optional

enum

Accepted values

- request\_review

Optional

boolean

- notify\_url

Optional

string

### Response codes

- 200
- 500

### Response (200)

exampleschema

* * *

## Update the status of an action run

patch`/v1/projects/{ref}/actions/{run_id}/status`

Updates the status of an ongoing action run.

### OAuth scopes

- environment:write

### The fine-grained token must include the following permissions to access this endpoint:

- action\_runs\_write

### Path parameters

- ref

Required

string

Project ref

Details

- run\_id

Required

string

Action Run ID

### Body

application/json

- clone

Optional

enum

Accepted values

- pull

Optional

enum

Accepted values

- health

Optional

enum

Accepted values

- configure

Optional

enum

Accepted values

- migrate

Optional

enum

Accepted values

- seed

Optional

enum

Accepted values

- deploy

Optional

enum

Accepted values

### Response codes

- 200
- 401
- 403
- 429
- 500

### Response (200)

exampleschema

```
1
{
2
  "message": "ok"
3
}
```

* * *

## \[Beta\] Authorize user through oauth

get`/v1/oauth/authorize`

### Query parameters

- client\_id

Required

string

- response\_type

Required

enum

Accepted values

- redirect\_uri

Required

string

- scope

Optional

string

- state

Optional

string

- response\_mode

Optional

string

- code\_challenge

Optional

string

- code\_challenge\_method

Optional

enum

Accepted values

- organization\_slug

Optional

string

Organization slug

Details

- resource

Optional

string

Resource indicator for MCP (Model Context Protocol) clients

### Response codes

- 204

### Response (204)

schema

```
1
{}
```

* * *

## \[Beta\] Exchange auth code for user's access and refresh token

post`/v1/oauth/token`

### Body

application/x-www-form-urlencoded

- grant\_type

Optional

enum

Accepted values

- client\_id

Optional

string

- client\_secret

Optional

string

- code

Optional

string

- code\_verifier

Optional

string

- redirect\_uri

Optional

string

- refresh\_token

Optional

string

- resource

Optional

string

- scope

Optional

string

### Response codes

- 201

### Response (201)

exampleschema

```
1
{
2
  "access_token": "lorem",
3
  "refresh_token": "lorem",
4
  "expires_in": 42,
5
  "token_type": "Bearer"
6
}
```

* * *

## Authorize user through oauth and claim a project

get`/v1/oauth/authorize/project-claim`

Initiates the OAuth authorization flow for the specified provider. After successful authentication, the user can claim ownership of the specified project.

### The fine-grained token must include the following permissions to access this endpoint:

- organization\_admin\_write
- project\_admin\_write

### Query parameters

- project\_ref

Required

string

Project ref

Details

- client\_id

Required

string

- response\_type

Required

enum

Accepted values

- redirect\_uri

Required

string

- state

Optional

string

- response\_mode

Optional

string

- code\_challenge

Optional

string

- code\_challenge\_method

Optional

enum

Accepted values

### Response codes

- 204
- 401
- 403
- 429

### Response (204)

schema

```
1
{}
```

* * *

## \[Beta\] Revoke oauth app authorization and it's corresponding tokens

post`/v1/oauth/revoke`

### Body

application/json

- client\_id

Required

string

- client\_secret

Required

string

- refresh\_token

Required

string

### Response codes

- 204

### Response (204)

schema

```
1
{}
```

* * *

## Create an organization

post`/v1/organizations`

### The fine-grained token must include the following permissions to access this endpoint:

- organizations\_create

### Body

application/json

- name

Required

string

Details

### Response codes

- 201
- 401
- 403
- 429
- 500

### Response (201)

exampleschema

```
1
{
2
  "id": "lorem",
3
  "slug": "tsrqponmlkjihgfedcba",
4
  "name": "lorem"
5
}
```

* * *

## Gets information about the organization

get`/v1/organizations/{slug}`

### OAuth scopes

- organizations:read

### The fine-grained token must include the following permissions to access this endpoint:

- organization\_admin\_read

### Path parameters

- slug

Required

string

Organization slug

Details

### Response codes

- 200
- 401
- 403
- 429

### Response (200)

exampleschema

```
1
{
2
  "id": "lorem",
3
  "name": "lorem",
4
  "plan": "free",
5
  "opt_in_tags": [\
6\
    "AI_SQL_GENERATOR_OPT_IN"\
7\
  ],
8
  "allowed_release_channels": [\
9\
    "internal"\
10\
  ]
11
}
```

* * *

## Get entitlements for an organization

get`/v1/organizations/{slug}/entitlements`

Returns the entitlements available to the organization based on their plan and any overrides.

### OAuth scopes

- organizations:read

### The fine-grained token must include the following permissions to access this endpoint:

- organization\_admin\_read

### Path parameters

- slug

Required

string

Organization slug

Details

### Response codes

- 200
- 401
- 403
- 429

### Response (200)

exampleschema

```
1
{
2
  "entitlements": [\
3\
    {\
4\
      "feature": {\
5\
        "key": "instances.compute_update_available_sizes",\
6\
        "type": "boolean"\
7\
      },\
8\
      "hasAccess": true,\
9\
      "type": "boolean",\
10\
      "config": {\
11\
        "enabled": true\
12\
      }\
13\
    }\
14\
  ]
15
}
```

* * *

## List all organizations

get`/v1/organizations`

Returns a list of organizations that you currently belong to.

### OAuth scopes

- organizations:read

### The fine-grained token must include the following permissions to access this endpoint:

- organizations\_read

### Response codes

- 200
- 401
- 403
- 429
- 500

### Response (200)

exampleschema

```
1
[\
2\
  {\
3\
    "id": "lorem",\
4\
    "slug": "tsrqponmlkjihgfedcba",\
5\
    "name": "lorem"\
6\
  }\
7\
]
```

* * *

## List members of an organization

get`/v1/organizations/{slug}/members`

### OAuth scopes

- organizations:read

### The fine-grained token must include the following permissions to access this endpoint:

- members\_read

### Path parameters

- slug

Required

string

Organization slug

Details

### Response codes

- 200

### Response (200)

exampleschema

```
1
[\
2\
  {\
3\
    "user_id": "lorem",\
4\
    "user_name": "lorem",\
5\
    "email": "lorem",\
6\
    "role_name": "lorem",\
7\
    "mfa_enabled": true\
8\
  }\
9\
]
```

* * *

## Gets the user's profile

get`/v1/profile`

### Response codes

- 200

### Response (200)

exampleschema

```
1
{
2
  "gotrue_id": "lorem",
3
  "primary_email": "lorem",
4
  "username": "lorem"
5
}
```

* * *

## Cancels the given project restoration

post`/v1/projects/{ref}/restore/cancel`

### OAuth scopes

- projects:write

### The fine-grained token must include the following permissions to access this endpoint:

- project\_admin\_write

### Path parameters

- ref

Required

string

Project ref

Details

### Response codes

- 200
- 401
- 403
- 429

### Response (200)

schema

```
1
{}
```

* * *

## Create a project

post`/v1/projects`

### OAuth scopes

- projects:write

### The fine-grained token must include the following permissions to access this endpoint:

- organization\_projects\_create

### Body

application/json

- db\_pass

Required

string

- name

Required

string

Details

- organization\_id

Optional

Deprecatedstring

- organization\_slug

Required

string

Details

- plan

Optional

Deprecatedenum

Accepted values

- region

Optional

Deprecatedenum

Accepted values

- region\_selection

Optional

one of the following options

Options

- kps\_enabled

Optional

Deprecatedboolean

- desired\_instance\_size

Optional

enum

Accepted values

- template\_url

Optional

string

### Response codes

- 201
- 401
- 403
- 429

### Response (201)

exampleschema

```
1
{
2
  "id": "lorem",
3
  "ref": "abcdefghijklmnopqrst",
4
  "organization_id": "lorem",
5
  "organization_slug": "tsrqponmlkjihgfedcba",
6
  "name": "lorem",
7
  "region": "lorem",
8
  "created_at": "lorem",
9
  "status": "INACTIVE"
10
}
```

* * *

## Deletes the given project

delete`/v1/projects/{ref}`

### OAuth scopes

- projects:write

### The fine-grained token must include the following permissions to access this endpoint:

- project\_admin\_write

### Path parameters

- ref

Required

string

Project ref

Details

### Response codes

- 200
- 401
- 403
- 429

### Response (200)

exampleschema

```
1
{
2
  "id": 42,
3
  "ref": "lorem",
4
  "name": "lorem"
5
}
```

* * *

## \[Beta\] Remove network bans.

delete`/v1/projects/{ref}/network-bans`

### OAuth scopes

- projects:write

### The fine-grained token must include the following permissions to access this endpoint:

- database\_network\_bans\_write

### Path parameters

- ref

Required

string

Project ref

Details

### Body

application/json

- ipv4\_addresses

Required

Array<string>

- requester\_ip

Optional

boolean

- identifier

Optional

string

### Response codes

- 200
- 401
- 403
- 429
- 500

### Response (200)

schema

```
1
{}
```

* * *

## Gets all projects for the given organization

get`/v1/organizations/{slug}/projects`

Returns a paginated list of projects for the specified organization.

This endpoint uses offset-based pagination. Use the `offset` parameter to skip a number of projects and the `limit` parameter to control the number of projects returned per page.

### OAuth scopes

- projects:read

### The fine-grained token must include the following permissions to access this endpoint:

- organization\_projects\_read

### Path parameters

- slug

Required

string

Organization slug

Details

### Query parameters

- offset

Optional

integer

Number of projects to skip

- limit

Optional

integer

Number of projects to return per page

- search

Optional

string

Search projects by name

- sort

Optional

enum

Sort order for projects

Accepted values

- statuses

Optional

string

A comma-separated list of project statuses to filter by.

The following values are supported: `ACTIVE_HEALTHY`, `INACTIVE`.

### Response codes

- 200
- 401
- 403
- 429
- 500

### Response (200)

exampleschema

```
1
{
2
  "projects": [\
3\
    {\
4\
      "ref": "lorem",\
5\
      "name": "lorem",\
6\
      "cloud_provider": "lorem",\
7\
      "region": "lorem",\
8\
      "is_branch": true,\
9\
      "status": "INACTIVE",\
10\
      "inserted_at": "lorem",\
11\
      "databases": [\
12\
        {\
13\
          "infra_compute_size": "pico",\
14\
          "region": "lorem",\
15\
          "status": "ACTIVE_HEALTHY",\
16\
          "cloud_provider": "lorem",\
17\
          "identifier": "lorem",\
18\
          "type": "PRIMARY",\
19\
          "disk_volume_size_gb": 42,\
20\
          "disk_type": "gp3",\
21\
          "disk_throughput_mbps": 42,\
22\
          "disk_last_modified_at": "lorem"\
23\
        }\
24\
      ]\
25\
    }\
26\
  ],
27
  "pagination": {
28
    "count": 42,
29
    "limit": 42,
30
    "offset": 42
31
  }
32
}
```

* * *

## \[Beta\] Gets the list of available regions that can be used for a new project

get`/v1/projects/available-regions`

### OAuth scopes

- organizations:read

### Query parameters

- organization\_slug

Required

string

Slug of your organization

- continent

Optional

enum

Continent code to determine regional recommendations: NA (North America), SA (South America), EU (Europe), AF (Africa), AS (Asia), OC (Oceania), AN (Antarctica)

Accepted values

- desired\_instance\_size

Optional

enum

Desired instance size. Omit this field to always default to the smallest possible size.

Accepted values

### Response codes

- 200

### Response (200)

exampleschema

```
1
{
2
  "recommendations": {
3
    "smartGroup": {
4
      "name": "lorem",
5
      "code": "americas",
6
      "type": "smartGroup"
7
    },
8
    "specific": [\
9\
      {\
10\
        "name": "lorem",\
11\
        "code": "us-east-1",\
12\
        "type": "specific",\
13\
        "provider": "AWS",\
14\
        "status": "capacity"\
15\
      }\
16\
    ]
17
  },
18
  "all": {
19
    "smartGroup": [\
20\
      {\
21\
        "name": "lorem",\
22\
        "code": "americas",\
23\
        "type": "smartGroup"\
24\
      }\
25\
    ],
26
    "specific": [\
27\
      {\
28\
        "name": "lorem",\
29\
        "code": "us-east-1",\
30\
        "type": "specific",\
31\
        "provider": "AWS",\
32\
        "status": "capacity"\
33\
      }\
34\
    ]
35
  }
36
}
```

* * *

## Get database disk attributes

get`/v1/projects/{ref}/config/disk`

### The fine-grained token must include the following permissions to access this endpoint:

- infra\_disk\_config\_read

### Path parameters

- ref

Required

string

Project ref

Details

### Response codes

- 200
- 401
- 403
- 429
- 500

### Response (200)

exampleschema

```
1
{
2
  "attributes": {
3
    "iops": 1,
4
    "size_gb": 1,
5
    "throughput_mibps": 1,
6
    "type": "gp3"
7
  },
8
  "last_modified_at": "lorem"
9
}
```

* * *

## Get disk utilization

get`/v1/projects/{ref}/config/disk/util`

### The fine-grained token must include the following permissions to access this endpoint:

- infra\_disk\_config\_read

### Path parameters

- ref

Required

string

Project ref

Details

### Response codes

- 200
- 401
- 403
- 429
- 500

### Response (200)

exampleschema

```
1
{
2
  "timestamp": "lorem",
3
  "metrics": {
4
    "fs_size_bytes": 42,
5
    "fs_avail_bytes": 42,
6
    "fs_used_bytes": 42
7
  }
8
}
```

* * *

## \[Beta\] Gets project's network restrictions

get`/v1/projects/{ref}/network-restrictions`

### OAuth scopes

- projects:read

### The fine-grained token must include the following permissions to access this endpoint:

- database\_network\_restrictions\_read

### Path parameters

- ref

Required

string

Project ref

Details

### Response codes

- 200
- 401
- 403
- 429
- 500

### Response (200)

exampleschema

```
1
{
2
  "entitlement": "disallowed",
3
  "config": {
4
    "dbAllowedCidrs": [\
5\
      "lorem"\
6\
    ],
7
    "dbAllowedCidrsV6": [\
8\
      "lorem"\
9\
    ]
10
  },
11
  "old_config": {
12
    "dbAllowedCidrs": [\
13\
      "203.0.113.0/24"\
14\
    ],
15
    "dbAllowedCidrsV6": [\
16\
      "2001:db8::/32"\
17\
    ]
18
  },
19
  "status": "stored",
20
  "updated_at": "2021-12-31T23:34:00Z",
21
  "applied_at": "2021-12-31T23:34:00Z"
22
}
```

* * *

## \[Beta\] Returns the project's eligibility for upgrades

get`/v1/projects/{ref}/upgrade/eligibility`

### OAuth scopes

- projects:read

### The fine-grained token must include the following permissions to access this endpoint:

- project\_admin\_read
- database\_read

### Path parameters

- ref

Required

string

Project ref

Details

### Response codes

- 200
- 401
- 403
- 429
- 500

### Response (200)

exampleschema

```
1
{
2
  "eligible": true,
3
  "current_app_version": "lorem",
4
  "current_app_version_release_channel": "internal",
5
  "latest_app_version": "lorem",
6
  "target_upgrade_versions": [\
7\
    {\
8\
      "postgres_version": "13",\
9\
      "release_channel": "internal",\
10\
      "app_version": "lorem"\
11\
    }\
12\
  ],
13
  "duration_estimate_hours": 42,
14
  "legacy_auth_custom_roles": [\
15\
    "lorem"\
16\
  ],
17
  "objects_to_be_dropped": [\
18\
    "lorem"\
19\
  ],
20
  "unsupported_extensions": [\
21\
    "lorem"\
22\
  ],
23
  "user_defined_objects_in_internal_schemas": [\
24\
    "lorem"\
25\
  ],
26
  "validation_errors": [\
27\
    {\
28\
      "type": "objects_depending_on_pg_cron",\
29\
      "dependents": [\
30\
        "lorem"\
31\
      ]\
32\
    }\
33\
  ]
34
}
```

* * *

## \[Beta\] Gets the latest status of the project's upgrade

get`/v1/projects/{ref}/upgrade/status`

### OAuth scopes

- projects:read

### The fine-grained token must include the following permissions to access this endpoint:

- project\_admin\_read
- database\_read

### Path parameters

- ref

Required

string

Project ref

Details

### Query parameters

- tracking\_id

Optional

string

### Response codes

- 200
- 401
- 403
- 429
- 500

### Response (200)

exampleschema

```
1
{
2
  "databaseUpgradeStatus": {
3
    "initiated_at": "lorem",
4
    "latest_status_at": "lorem",
5
    "target_version": 42,
6
    "error": "1_upgraded_instance_launch_failed",
7
    "progress": "0_requested",
8
    "status": 42
9
  }
10
}
```

* * *

## Gets a specific project that belongs to the authenticated user

get`/v1/projects/{ref}`

### OAuth scopes

- projects:read

### The fine-grained token must include the following permissions to access this endpoint:

- project\_admin\_read

### Path parameters

- ref

Required

string

Project ref

Details

### Response codes

- 200
- 401
- 403
- 429
- 500

### Response (200)

exampleschema

```
1
{
2
  "id": "lorem",
3
  "ref": "abcdefghijklmnopqrst",
4
  "organization_id": "lorem",
5
  "organization_slug": "tsrqponmlkjihgfedcba",
6
  "name": "lorem",
7
  "region": "lorem",
8
  "created_at": "lorem",
9
  "status": "INACTIVE",
10
  "database": {
11
    "host": "lorem",
12
    "version": "lorem",
13
    "postgres_engine": "lorem",
14
    "release_channel": "lorem"
15
  }
16
}
```

* * *

## Gets project disk autoscale config

get`/v1/projects/{ref}/config/disk/autoscale`

### The fine-grained token must include the following permissions to access this endpoint:

- infra\_disk\_config\_read

### Path parameters

- ref

Required

string

Project ref

Details

### Response codes

- 200
- 401
- 403
- 429
- 500

### Response (200)

exampleschema

```
1
{
2
  "growth_percent": 1,
3
  "min_increment_gb": 1,
4
  "max_size_gb": 1
5
}
```

* * *

## Gets project's service health status

get`/v1/projects/{ref}/health`

### OAuth scopes

- projects:read

### The fine-grained token must include the following permissions to access this endpoint:

- project\_admin\_read

### Path parameters

- ref

Required

string

Project ref

Details

### Query parameters

- services

Required

Array<enum>

- timeout\_ms

Optional

integer

### Response codes

- 200
- 401
- 403
- 429
- 500

### Response (200)

exampleschema

```
1
[\
2\
  {\
3\
    "name": "auth",\
4\
    "healthy": true,\
5\
    "status": "COMING_UP",\
6\
    "info": {\
7\
      "name": "GoTrue",\
8\
      "version": "lorem",\
9\
      "description": "lorem"\
10\
    },\
11\
    "error": "lorem"\
12\
  }\
13\
]
```

* * *

## \[Beta\] Gets project's network bans

post`/v1/projects/{ref}/network-bans/retrieve`

### OAuth scopes

- projects:read

### The fine-grained token must include the following permissions to access this endpoint:

- database\_network\_bans\_read

### Path parameters

- ref

Required

string

Project ref

Details

### Response codes

- 201
- 401
- 403
- 429
- 500

### Response (201)

exampleschema

```
1
{
2
  "banned_ipv4_addresses": [\
3\
    "lorem"\
4\
  ]
5
}
```

* * *

## \[Beta\] Gets project's network bans with additional information about which databases they affect

post`/v1/projects/{ref}/network-bans/retrieve/enriched`

### OAuth scopes

- projects:read

### The fine-grained token must include the following permissions to access this endpoint:

- database\_network\_bans\_read

### Path parameters

- ref

Required

string

Project ref

Details

### Response codes

- 201
- 401
- 403
- 429
- 500

### Response (201)

exampleschema

```
1
{
2
  "banned_ipv4_addresses": [\
3\
    {\
4\
      "banned_address": "lorem",\
5\
      "identifier": "lorem",\
6\
      "type": "lorem"\
7\
    }\
8\
  ]
9
}
```

* * *

## List all projects

get`/v1/projects`

Returns a list of all projects you've previously created.

### OAuth scopes

- projects:read

### The fine-grained token must include the following permissions to access this endpoint:

- projects\_read

### Response codes

- 200
- 401
- 403
- 429

### Response (200)

exampleschema

```
1
[\
2\
  {\
3\
    "id": "lorem",\
4\
    "ref": "abcdefghijklmnopqrst",\
5\
    "organization_id": "lorem",\
6\
    "organization_slug": "tsrqponmlkjihgfedcba",\
7\
    "name": "lorem",\
8\
    "region": "lorem",\
9\
    "created_at": "lorem",\
10\
    "status": "INACTIVE",\
11\
    "database": {\
12\
      "host": "lorem",\
13\
      "version": "lorem",\
14\
      "postgres_engine": "lorem",\
15\
      "release_channel": "lorem"\
16\
    }\
17\
  }\
18\
]
```

* * *

## Lists available restore versions for the given project

get`/v1/projects/{ref}/restore`

### OAuth scopes

- projects:read

### The fine-grained token must include the following permissions to access this endpoint:

- project\_admin\_read

### Path parameters

- ref

Required

string

Project ref

Details

### Response codes

- 200
- 401
- 403
- 429

### Response (200)

exampleschema

```
1
{
2
  "available_versions": [\
3\
    {\
4\
      "version": "lorem",\
5\
      "release_channel": "internal",\
6\
      "postgres_engine": "13"\
7\
    }\
8\
  ]
9
}
```

* * *

## Modify database disk

post`/v1/projects/{ref}/config/disk`

### The fine-grained token must include the following permissions to access this endpoint:

- infra\_disk\_config\_write

### Path parameters

- ref

Required

string

Project ref

Details

### Body

application/json

- attributes

Required

one of the following options

Options

### Response codes

- 201
- 401
- 403
- 429
- 500

### Response (201)

schema

```
1
{}
```

* * *

## \[Alpha\] Updates project's network restrictions by adding or removing CIDRs

patch`/v1/projects/{ref}/network-restrictions`

### OAuth scopes

- projects:write

### The fine-grained token must include the following permissions to access this endpoint:

- database\_network\_restrictions\_write

### Path parameters

- ref

Required

string

Project ref

Details

### Body

application/json

- add

Optional

object

Object schema

- remove

Optional

object

Object schema

### Response codes

- 200
- 401
- 403
- 429
- 500

### Response (200)

exampleschema

```
1
{
2
  "entitlement": "disallowed",
3
  "config": {
4
    "dbAllowedCidrs": [\
5\
      {\
6\
        "address": "lorem",\
7\
        "type": "v4"\
8\
      }\
9\
    ]
10
  },
11
  "old_config": {
12
    "dbAllowedCidrs": [\
13\
      {\
14\
        "address": "lorem",\
15\
        "type": "v4"\
16\
      }\
17\
    ]
18
  },
19
  "updated_at": "2021-12-31T23:34:00Z",
20
  "applied_at": "2021-12-31T23:34:00Z",
21
  "status": "stored"
22
}
```

* * *

## Pauses the given project

post`/v1/projects/{ref}/pause`

### OAuth scopes

- projects:write

### The fine-grained token must include the following permissions to access this endpoint:

- project\_admin\_write

### Path parameters

- ref

Required

string

Project ref

Details

### Response codes

- 200
- 401
- 403
- 429

### Response (200)

schema

```
1
{}
```

* * *

## Restores the given project

post`/v1/projects/{ref}/restore`

### OAuth scopes

- projects:write

### The fine-grained token must include the following permissions to access this endpoint:

- project\_admin\_write

### Path parameters

- ref

Required

string

Project ref

Details

### Response codes

- 200
- 401
- 403
- 429

### Response (200)

schema

```
1
{}
```

* * *

## Updates the given project

patch`/v1/projects/{ref}`

### OAuth scopes

- projects:write

### The fine-grained token must include the following permissions to access this endpoint:

- project\_admin\_write

### Path parameters

- ref

Required

string

Project ref

Details

### Body

application/json

- name

Required

string

Details

### Response codes

- 200
- 401
- 403
- 429
- 500

### Response (200)

exampleschema

```
1
{
2
  "id": 42,
3
  "ref": "lorem",
4
  "name": "lorem"
5
}
```

* * *

## \[Beta\] Updates project's network restrictions

post`/v1/projects/{ref}/network-restrictions/apply`

### OAuth scopes

- projects:write

### The fine-grained token must include the following permissions to access this endpoint:

- database\_network\_restrictions\_write

### Path parameters

- ref

Required

string

Project ref

Details

### Body

application/json

- dbAllowedCidrs

Optional

Array<string>

- dbAllowedCidrsV6

Optional

Array<string>

### Response codes

- 201
- 401
- 403
- 429
- 500

### Response (201)

exampleschema

* * *

## \[Beta\] Upgrades the project's Postgres version

post`/v1/projects/{ref}/upgrade`

### OAuth scopes

- projects:write

### The fine-grained token must include the following permissions to access this endpoint:

- project\_admin\_write
- database\_write

### Path parameters

- ref

Required

string

Project ref

Details

### Body

application/json

- target\_version

Required

string

- release\_channel

Optional

enum

Accepted values

### Response codes

- 201
- 401
- 403
- 429
- 500

### Response (201)

exampleschema

```
1
{
2
  "tracking_id": "lorem"
3
}
```

* * *

## Gets realtime configuration

get`/v1/projects/{ref}/config/realtime`

### The fine-grained token must include the following permissions to access this endpoint:

- realtime\_config\_read

### Path parameters

- ref

Required

string

Project ref

Details

### Response codes

- 200
- 401
- 403
- 429

### Response (200)

exampleschema

```
1
{
2
  "private_only": true,
3
  "connection_pool": 1,
4
  "max_concurrent_users": 1,
5
  "max_events_per_second": 1,
6
  "max_bytes_per_second": 1,
7
  "max_channels_per_client": 1,
8
  "max_joins_per_second": 1,
9
  "max_presence_events_per_second": 1,
10
  "max_payload_size_in_kb": 1,
11
  "suspend": true,
12
  "presence_enabled": true
13
}
```

* * *

## Shutdowns realtime connections for a project

post`/v1/projects/{ref}/config/realtime/shutdown`

### The fine-grained token must include the following permissions to access this endpoint:

- realtime\_config\_write

### Path parameters

- ref

Required

string

Project ref

Details

### Response codes

- 204
- 401
- 403
- 404
- 429

### Response (204)

schema

```
1
{}
```

* * *

## Updates realtime configuration

patch`/v1/projects/{ref}/config/realtime`

### The fine-grained token must include the following permissions to access this endpoint:

- realtime\_config\_write

### Path parameters

- ref

Required

string

Project ref

Details

### Body

application/json

- private\_only

Optional

boolean

- connection\_pool

Optional

integer

- max\_concurrent\_users

Optional

integer

- max\_events\_per\_second

Optional

integer

- max\_bytes\_per\_second

Optional

integer

- max\_channels\_per\_client

Optional

integer

- max\_joins\_per\_second

Optional

integer

- max\_presence\_events\_per\_second

Optional

integer

- max\_payload\_size\_in\_kb

Optional

integer

- suspend

Optional

boolean

- presence\_enabled

Optional

boolean

### Response codes

- 204
- 401
- 403
- 429

### Response (204)

schema

```
1
{}
```

* * *

## Gets project's postgrest config

get`/v1/projects/{ref}/postgrest`

### OAuth scopes

- rest:read

### The fine-grained token must include the following permissions to access this endpoint:

- data\_api\_config\_read

### Path parameters

- ref

Required

string

Project ref

Details

### Response codes

- 200
- 401
- 403
- 429
- 500

### Response (200)

exampleschema

```
1
{
2
  "db_schema": "lorem",
3
  "max_rows": 42,
4
  "db_extra_search_path": "lorem",
5
  "db_pool": 42,
6
  "jwt_secret": "lorem"
7
}
```

* * *

## Updates project's postgrest config

patch`/v1/projects/{ref}/postgrest`

### OAuth scopes

- rest:write

### The fine-grained token must include the following permissions to access this endpoint:

- data\_api\_config\_write

### Path parameters

- ref

Required

string

Project ref

Details

### Body

application/json

- db\_extra\_search\_path

Optional

string

- db\_schema

Optional

string

- max\_rows

Optional

integer

- db\_pool

Optional

integer

### Response codes

- 200
- 401
- 403
- 429
- 500

### Response (200)

exampleschema

```
1
{
2
  "db_schema": "lorem",
3
  "max_rows": 42,
4
  "db_extra_search_path": "lorem",
5
  "db_pool": 42
6
}
```

* * *

## Bulk create secrets

post`/v1/projects/{ref}/secrets`

Creates multiple secrets and adds them to the specified project.

### OAuth scopes

- secrets:write

### The fine-grained token must include the following permissions to access this endpoint:

- edge\_functions\_secrets\_write

### Path parameters

- ref

Required

string

Project ref

Details

### Body

application/json

Array of object

Object schema

### Response codes

- 201
- 401
- 403
- 429
- 500

### Response (201)

schema

```
1
{}
```

* * *

## Bulk delete secrets

delete`/v1/projects/{ref}/secrets`

Deletes all secrets with the given names from the specified project

### OAuth scopes

- secrets:write

### The fine-grained token must include the following permissions to access this endpoint:

- edge\_functions\_secrets\_write

### Path parameters

- ref

Required

string

Project ref

Details

### Body

application/json

Array of string

### Response codes

- 200
- 401
- 403
- 429
- 500

### Response (200)

schema

```
1
{}
```

* * *

## Creates a new API key for the project

post`/v1/projects/{ref}/api-keys`

### OAuth scopes

- secrets:write

### The fine-grained token must include the following permissions to access this endpoint:

- api\_gateway\_keys\_write

### Path parameters

- ref

Required

string

Project ref

Details

### Query parameters

- reveal

Optional

boolean

Boolean string, true or false

### Body

application/json

- type

Required

enum

Accepted values

- name

Required

string

Details

- description

Optional

string

- secret\_jwt\_template

Optional

object

Object schema

### Response codes

- 201
- 401
- 403
- 429

### Response (201)

exampleschema

```
1
{
2
  "api_key": "lorem",
3
  "id": "lorem",
4
  "type": "legacy",
5
  "prefix": "lorem",
6
  "name": "lorem",
7
  "description": "lorem",
8
  "hash": "lorem",
9
  "secret_jwt_template": {
10
    "property1": null,
11
    "property2": null
12
  },
13
  "inserted_at": "2021-12-31T23:34:00Z",
14
  "updated_at": "2021-12-31T23:34:00Z"
15
}
```

* * *

## Deletes an API key for the project

delete`/v1/projects/{ref}/api-keys/{id}`

### OAuth scopes

- secrets:write

### The fine-grained token must include the following permissions to access this endpoint:

- api\_gateway\_keys\_write

### Path parameters

- ref

Required

string

Project ref

Details

- id

Required

string

### Query parameters

- reveal

Optional

boolean

Boolean string, true or false

- was\_compromised

Optional

boolean

Boolean string, true or false

- reason

Optional

string

### Response codes

- 200
- 401
- 403
- 429

### Response (200)

exampleschema

* * *

## \[Beta\] Gets project's pgsodium config

get`/v1/projects/{ref}/pgsodium`

### OAuth scopes

- secrets:read

### The fine-grained token must include the following permissions to access this endpoint:

- project\_admin\_write

### Path parameters

- ref

Required

string

Project ref

Details

### Response codes

- 200
- 401
- 403
- 429
- 500

### Response (200)

exampleschema

```
1
{
2
  "root_key": "lorem"
3
}
```

* * *

## Get API key

get`/v1/projects/{ref}/api-keys/{id}`

### OAuth scopes

- secrets:read

### The fine-grained token must include the following permissions to access this endpoint:

- api\_gateway\_keys\_read

### Path parameters

- ref

Required

string

Project ref

Details

- id

Required

string

### Query parameters

- reveal

Optional

boolean

Boolean string, true or false

### Response codes

- 200
- 401
- 403
- 429

### Response (200)

exampleschema

* * *

## Get project api keys

get`/v1/projects/{ref}/api-keys`

### OAuth scopes

- secrets:read

### The fine-grained token must include the following permissions to access this endpoint:

- api\_gateway\_keys\_read

### Path parameters

- ref

Required

string

Project ref

Details

### Query parameters

- reveal

Optional

boolean

Boolean string, true or false

### Response codes

- 200
- 401
- 403
- 429

### Response (200)

exampleschema

```
1
[\
2\
  {\
3\
    "api_key": "lorem",\
4\
    "id": "lorem",\
5\
    "type": "legacy",\
6\
    "prefix": "lorem",\
7\
    "name": "lorem",\
8\
    "description": "lorem",\
9\
    "hash": "lorem",\
10\
    "secret_jwt_template": {\
11\
      "property1": null,\
12\
      "property2": null\
13\
    },\
14\
    "inserted_at": "2021-12-31T23:34:00Z",\
15\
    "updated_at": "2021-12-31T23:34:00Z"\
16\
  }\
17\
]
```

* * *

## Check whether JWT based legacy (anon, service\_role) API keys are enabled. This API endpoint will be removed in the future, check for HTTP 404 Not Found.

get`/v1/projects/{ref}/api-keys/legacy`

### OAuth scopes

- secrets:read

### The fine-grained token must include the following permissions to access this endpoint:

- api\_gateway\_keys\_read

### Path parameters

- ref

Required

string

Project ref

Details

### Response codes

- 200
- 401
- 403
- 429

### Response (200)

exampleschema

```
1
{
2
  "enabled": true
3
}
```

* * *

## List all secrets

get`/v1/projects/{ref}/secrets`

Returns all secrets you've previously added to the specified project.

### OAuth scopes

- secrets:read

### The fine-grained token must include the following permissions to access this endpoint:

- edge\_functions\_secrets\_read

### Path parameters

- ref

Required

string

Project ref

Details

### Response codes

- 200
- 401
- 403
- 429
- 500

### Response (200)

exampleschema

```
1
[\
2\
  {\
3\
    "name": "lorem",\
4\
    "value": "lorem",\
5\
    "updated_at": "lorem"\
6\
  }\
7\
]
```

* * *

## \[Beta\] Updates project's pgsodium config. Updating the root\_key can cause all data encrypted with the older key to become inaccessible.

put`/v1/projects/{ref}/pgsodium`

### OAuth scopes

- secrets:write

### The fine-grained token must include the following permissions to access this endpoint:

- project\_admin\_write

### Path parameters

- ref

Required

string

Project ref

Details

### Body

application/json

- root\_key

Required

string

### Response codes

- 200
- 401
- 403
- 429
- 500

### Response (200)

exampleschema

```
1
{
2
  "root_key": "lorem"
3
}
```

* * *

## Updates an API key for the project

patch`/v1/projects/{ref}/api-keys/{id}`

### OAuth scopes

- secrets:write

### The fine-grained token must include the following permissions to access this endpoint:

- api\_gateway\_keys\_write

### Path parameters

- ref

Required

string

Project ref

Details

- id

Required

string

### Query parameters

- reveal

Optional

boolean

Boolean string, true or false

### Body

application/json

- name

Optional

string

Details

- description

Optional

string

- secret\_jwt\_template

Optional

object

Object schema

### Response codes

- 200
- 401
- 403
- 429

### Response (200)

exampleschema

* * *

## Disable or re-enable JWT based legacy (anon, service\_role) API keys. This API endpoint will be removed in the future, check for HTTP 404 Not Found.

put`/v1/projects/{ref}/api-keys/legacy`

### OAuth scopes

- secrets:write

### The fine-grained token must include the following permissions to access this endpoint:

- api\_gateway\_keys\_write

### Path parameters

- ref

Required

string

Project ref

Details

### Query parameters

- enabled

Required

boolean

Boolean string, true or false

### Response codes

- 200
- 401
- 403
- 429

### Response (200)

exampleschema

```
1
{
2
  "enabled": true
3
}
```

* * *

## Gets project's storage config

get`/v1/projects/{ref}/config/storage`

### The fine-grained token must include the following permissions to access this endpoint:

- storage\_config\_read

### Path parameters

- ref

Required

string

Project ref

Details

### Response codes

- 200
- 401
- 403
- 429
- 500

### Response (200)

exampleschema

```
1
{
2
  "fileSizeLimit": 42,
3
  "features": {
4
    "imageTransformation": {
5
      "enabled": true
6
    },
7
    "s3Protocol": {
8
      "enabled": true
9
    },
10
    "icebergCatalog": {
11
      "enabled": true,
12
      "maxNamespaces": 0,
13
      "maxTables": 0,
14
      "maxCatalogs": 0
15
    },
16
    "vectorBuckets": {
17
      "enabled": true,
18
      "maxBuckets": 0,
19
      "maxIndexes": 0
20
    }
21
  },
22
  "capabilities": {
23
    "list_v2": true,
24
    "iceberg_catalog": true
25
  },
26
  "external": {
27
    "upstreamTarget": "main"
28
  },
29
  "migrationVersion": "lorem",
30
  "databasePoolMode": "lorem"
31
}
```

* * *

## Lists all buckets

get`/v1/projects/{ref}/storage/buckets`

### OAuth scopes

- storage:read

### The fine-grained token must include the following permissions to access this endpoint:

- storage\_read

### Path parameters

- ref

Required

string

Project ref

Details

### Response codes

- 200
- 401
- 403
- 429
- 500

### Response (200)

exampleschema

```
1
[\
2\
  {\
3\
    "id": "lorem",\
4\
    "name": "lorem",\
5\
    "owner": "lorem",\
6\
    "created_at": "lorem",\
7\
    "updated_at": "lorem",\
8\
    "public": true\
9\
  }\
10\
]
```

* * *

## Updates project's storage config

patch`/v1/projects/{ref}/config/storage`

### The fine-grained token must include the following permissions to access this endpoint:

- storage\_config\_write

### Path parameters

- ref

Required

string

Project ref

Details

### Body

application/json

- fileSizeLimit

Optional

integer

- features

Optional

object

Object schema

- external

Optional

object

Object schema

### Response codes

- 200
- 401
- 403
- 429
- 500

### Response (200)

schema

```
1
{}
```
