Management API Reference

Management API

Manage your Supabase organizations and projects programmatically.

Authentication

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 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 to set up OAuth2 for your application.

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

All API requests must be authenticated and made over HTTPS.

Rate limits

The rate limit for Management API is 60 requests per one minute per user, and applies cumulatively across all requests made with your personal access tokens.

If you exceed this limit, all Management API calls for the next minute will be blocked, resulting in a HTTP 429 response.

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 pages.


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.

Path parameters

  • refRequiredstring

    Project ref

Response codes

  • 200
  • 403

Response (200)

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

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.

Path parameters

  • refRequiredstring

    Project ref

Query parameters

  • lint_typeOptionalenum

Response codes

  • 200
  • 403

Response (200)

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

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.

Path parameters

  • refRequiredstring

    Project ref

Query parameters

  • sqlOptionalstring
  • iso_timestamp_startOptionalstring
  • iso_timestamp_endOptionalstring

Response codes

  • 200
  • 403

Response (200)

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

Gets project's usage api counts

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

Path parameters

  • refRequiredstring

    Project ref

Query parameters

  • intervalOptionalenum

Response codes

  • 200
  • 403
  • 500

Response (200)

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

Gets project's usage api requests count

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

Path parameters

  • refRequiredstring

    Project ref

Response codes

  • 200
  • 500

Response (200)

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

Creates a new SSO provider

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

Path parameters

  • refRequiredstring

    Project ref

Body

  • typeRequiredenum
  • metadata_xmlOptionalstring
  • metadata_urlOptionalstring
  • domainsOptionalArray<string>
  • attribute_mappingOptionalobject

Response codes

  • 201
  • 403
  • 404

Response (201)

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

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

Path parameters

  • refRequiredstring

    Project ref

Response codes

  • 201
  • 403

Response (201)

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

Create a new signing key for the project in standby status

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

Path parameters

  • refRequiredstring

    Project ref

Body

  • algorithmRequiredenum
  • statusOptionalenum
  • private_jwkOptionalone of the following options

Response codes

  • 201
  • 403

Response (201)

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

Creates a new third-party auth integration

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

Path parameters

  • refRequiredstring

    Project ref

Body

  • oidc_issuer_urlOptionalstring
  • jwks_urlOptionalstring
  • custom_jwksOptional

Response codes

  • 201
  • 403

Response (201)

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

Removes a SSO provider by its UUID

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

Path parameters

  • refRequiredstring

    Project ref

  • provider_idRequiredstring

Response codes

  • 200
  • 403
  • 404

Response (200)

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

Removes a third-party auth integration

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

Path parameters

  • refRequiredstring

    Project ref

  • tpa_idRequiredstring

Response codes

  • 200
  • 403

Response (200)

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

Gets a SSO provider by its UUID

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

Path parameters

  • refRequiredstring

    Project ref

  • provider_idRequiredstring

Response codes

  • 200
  • 403
  • 404

Response (200)

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

Gets project's auth config

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

Path parameters

  • refRequiredstring

    Project ref

Response codes

  • 200
  • 403
  • 500

Response (200)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
{ "api_max_request_duration": 42, "db_max_pool_size": 42, "disable_signup": true, "external_anonymous_users_enabled": true, "external_apple_additional_client_ids": "lorem", "external_apple_client_id": "lorem", "external_apple_enabled": true, "external_apple_secret": "lorem", "external_azure_client_id": "lorem", "external_azure_enabled": true, "external_azure_secret": "lorem", "external_azure_url": "lorem", "external_bitbucket_client_id": "lorem", "external_bitbucket_enabled": true, "external_bitbucket_secret": "lorem", "external_discord_client_id": "lorem", "external_discord_enabled": true, "external_discord_secret": "lorem", "external_email_enabled": true, "external_facebook_client_id": "lorem", "external_facebook_enabled": true, "external_facebook_secret": "lorem", "external_figma_client_id": "lorem", "external_figma_enabled": true, "external_figma_secret": "lorem", "external_github_client_id": "lorem", "external_github_enabled": true, "external_github_secret": "lorem", "external_gitlab_client_id": "lorem", "external_gitlab_enabled": true, "external_gitlab_secret": "lorem", "external_gitlab_url": "lorem", "external_google_additional_client_ids": "lorem", "external_google_client_id": "lorem", "external_google_enabled": true, "external_google_secret": "lorem", "external_google_skip_nonce_check": true, "external_kakao_client_id": "lorem", "external_kakao_enabled": true, "external_kakao_secret": "lorem", "external_keycloak_client_id": "lorem", "external_keycloak_enabled": true, "external_keycloak_secret": "lorem", "external_keycloak_url": "lorem", "external_linkedin_oidc_client_id": "lorem", "external_linkedin_oidc_enabled": true, "external_linkedin_oidc_secret": "lorem", "external_slack_oidc_client_id": "lorem", "external_slack_oidc_enabled": true, "external_slack_oidc_secret": "lorem", "external_notion_client_id": "lorem", "external_notion_enabled": true, "external_notion_secret": "lorem", "external_phone_enabled": true, "external_slack_client_id": "lorem", "external_slack_enabled": true, "external_slack_secret": "lorem", "external_spotify_client_id": "lorem", "external_spotify_enabled": true, "external_spotify_secret": "lorem", "external_twitch_client_id": "lorem", "external_twitch_enabled": true, "external_twitch_secret": "lorem", "external_twitter_client_id": "lorem", "external_twitter_enabled": true, "external_twitter_secret": "lorem", "external_workos_client_id": "lorem", "external_workos_enabled": true, "external_workos_secret": "lorem", "external_workos_url": "lorem", "external_web3_solana_enabled": true, "external_zoom_client_id": "lorem", "external_zoom_enabled": true, "external_zoom_secret": "lorem", "hook_custom_access_token_enabled": true, "hook_custom_access_token_uri": "lorem", "hook_custom_access_token_secrets": "lorem", "hook_mfa_verification_attempt_enabled": true, "hook_mfa_verification_attempt_uri": "lorem", "hook_mfa_verification_attempt_secrets": "lorem", "hook_password_verification_attempt_enabled": true, "hook_password_verification_attempt_uri": "lorem", "hook_password_verification_attempt_secrets": "lorem", "hook_send_sms_enabled": true, "hook_send_sms_uri": "lorem", "hook_send_sms_secrets": "lorem", "hook_send_email_enabled": true, "hook_send_email_uri": "lorem", "hook_send_email_secrets": "lorem", "hook_before_user_created_enabled": true, "hook_before_user_created_uri": "lorem", "hook_before_user_created_secrets": "lorem", "jwt_exp": 42, "mailer_allow_unverified_email_sign_ins": true, "mailer_autoconfirm": true, "mailer_otp_exp": 42, "mailer_otp_length": 42, "mailer_secure_email_change_enabled": true, "mailer_subjects_confirmation": "lorem", "mailer_subjects_email_change": "lorem", "mailer_subjects_invite": "lorem", "mailer_subjects_magic_link": "lorem", "mailer_subjects_reauthentication": "lorem", "mailer_subjects_recovery": "lorem", "mailer_templates_confirmation_content": "lorem", "mailer_templates_email_change_content": "lorem", "mailer_templates_invite_content": "lorem", "mailer_templates_magic_link_content": "lorem", "mailer_templates_reauthentication_content": "lorem", "mailer_templates_recovery_content": "lorem", "mfa_max_enrolled_factors": 42, "mfa_totp_enroll_enabled": true, "mfa_totp_verify_enabled": true, "mfa_phone_enroll_enabled": true, "mfa_phone_verify_enabled": true, "mfa_web_authn_enroll_enabled": true, "mfa_web_authn_verify_enabled": true, "mfa_phone_otp_length": 42, "mfa_phone_template": "lorem", "mfa_phone_max_frequency": 42, "password_hibp_enabled": true, "password_min_length": 42, "password_required_characters": "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ:0123456789", "rate_limit_anonymous_users": 42, "rate_limit_email_sent": 42, "rate_limit_sms_sent": 42, "rate_limit_token_refresh": 42, "rate_limit_verify": 42, "rate_limit_otp": 42, "rate_limit_web3": 42, "refresh_token_rotation_enabled": true, "saml_enabled": true, "saml_external_url": "lorem", "saml_allow_encrypted_assertions": true, "security_captcha_enabled": true, "security_captcha_provider": "turnstile", "security_captcha_secret": "lorem", "security_manual_linking_enabled": true, "security_refresh_token_reuse_interval": 42, "security_update_password_require_reauthentication": true, "sessions_inactivity_timeout": 42, "sessions_single_per_user": true, "sessions_tags": "lorem", "sessions_timebox": 42, "site_url": "lorem", "sms_autoconfirm": true, "sms_max_frequency": 42, "sms_messagebird_access_key": "lorem", "sms_messagebird_originator": "lorem", "sms_otp_exp": 42, "sms_otp_length": 42, "sms_provider": "messagebird", "sms_template": "lorem", "sms_test_otp": "lorem", "sms_test_otp_valid_until": "2021-12-31T23:34:00Z", "sms_textlocal_api_key": "lorem", "sms_textlocal_sender": "lorem", "sms_twilio_account_sid": "lorem", "sms_twilio_auth_token": "lorem", "sms_twilio_content_sid": "lorem", "sms_twilio_message_service_sid": "lorem", "sms_twilio_verify_account_sid": "lorem", "sms_twilio_verify_auth_token": "lorem", "sms_twilio_verify_message_service_sid": "lorem", "sms_vonage_api_key": "lorem", "sms_vonage_api_secret": "lorem", "sms_vonage_from": "lorem", "smtp_admin_email": "jon.snow@targaryen.com", "smtp_host": "lorem", "smtp_max_frequency": 42, "smtp_pass": "lorem", "smtp_port": "lorem", "smtp_sender_name": "lorem", "smtp_user": "lorem", "uri_allow_list": "lorem"}

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

Path parameters

  • refRequiredstring

    Project ref

Response codes

  • 200
  • 403

Response (200)

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

Get information about a signing key

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

Path parameters

  • idRequiredstring
  • refRequiredstring

    Project ref

Response codes

  • 200
  • 403

Response (200)

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

List all signing keys for the project

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

Path parameters

  • refRequiredstring

    Project ref

Response codes

  • 200
  • 403

Response (200)

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

Get a third-party integration

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

Path parameters

  • refRequiredstring

    Project ref

  • tpa_idRequiredstring

Response codes

  • 200
  • 403

Response (200)

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

Lists all SSO providers

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

Path parameters

  • refRequiredstring

    Project ref

Response codes

  • 200
  • 403
  • 404

Response (200)

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

Lists all third-party auth integrations

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

Path parameters

  • refRequiredstring

    Project ref

Response codes

  • 200
  • 403

Response (200)

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

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}

Path parameters

  • idRequiredstring
  • refRequiredstring

    Project ref

Response codes

  • 200
  • 403

Response (200)

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

Updates a SSO provider by its UUID

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

Path parameters

  • refRequiredstring

    Project ref

  • provider_idRequiredstring

Body

  • metadata_xmlOptionalstring
  • metadata_urlOptionalstring
  • domainsOptionalArray<string>
  • attribute_mappingOptionalobject

Response codes

  • 200
  • 403
  • 404

Response (200)

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

Updates a project's auth config

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

Path parameters

  • refRequiredstring

    Project ref

Body

  • site_urlOptionalstring
  • disable_signupOptionalboolean
  • jwt_expOptionalinteger
  • smtp_admin_emailOptionalstring
  • smtp_hostOptionalstring
  • smtp_portOptionalstring
  • smtp_userOptionalstring
  • smtp_passOptionalstring
  • smtp_max_frequencyOptionalinteger
  • smtp_sender_nameOptionalstring
  • mailer_allow_unverified_email_sign_insOptionalboolean
  • mailer_autoconfirmOptionalboolean
  • mailer_subjects_inviteOptionalstring
  • mailer_subjects_confirmationOptionalstring
  • mailer_subjects_recoveryOptionalstring
  • mailer_subjects_email_changeOptionalstring
  • mailer_subjects_magic_linkOptionalstring
  • mailer_subjects_reauthenticationOptionalstring
  • mailer_templates_invite_contentOptionalstring
  • mailer_templates_confirmation_contentOptionalstring
  • mailer_templates_recovery_contentOptionalstring
  • mailer_templates_email_change_contentOptionalstring
  • mailer_templates_magic_link_contentOptionalstring
  • mailer_templates_reauthentication_contentOptionalstring
  • mfa_max_enrolled_factorsOptionalinteger
  • uri_allow_listOptionalstring
  • external_anonymous_users_enabledOptionalboolean
  • external_email_enabledOptionalboolean
  • external_phone_enabledOptionalboolean
  • saml_enabledOptionalboolean
  • saml_external_urlOptionalstring
  • security_captcha_enabledOptionalboolean
  • security_captcha_providerOptionalenum
  • security_captcha_secretOptionalstring
  • sessions_timeboxOptionalinteger
  • sessions_inactivity_timeoutOptionalinteger
  • sessions_single_per_userOptionalboolean
  • sessions_tagsOptionalstring
  • rate_limit_anonymous_usersOptionalinteger
  • rate_limit_email_sentOptionalinteger
  • rate_limit_sms_sentOptionalinteger
  • rate_limit_verifyOptionalinteger
  • rate_limit_token_refreshOptionalinteger
  • rate_limit_otpOptionalinteger
  • rate_limit_web3Optionalinteger
  • mailer_secure_email_change_enabledOptionalboolean
  • refresh_token_rotation_enabledOptionalboolean
  • password_hibp_enabledOptionalboolean
  • password_min_lengthOptionalinteger
  • password_required_charactersOptionalenum
  • security_manual_linking_enabledOptionalboolean
  • security_update_password_require_reauthenticationOptionalboolean
  • security_refresh_token_reuse_intervalOptionalinteger
  • mailer_otp_expOptionalinteger
  • mailer_otp_lengthOptionalinteger
  • sms_autoconfirmOptionalboolean
  • sms_max_frequencyOptionalinteger
  • sms_otp_expOptionalinteger
  • sms_otp_lengthOptionalinteger
  • sms_providerOptionalenum
  • sms_messagebird_access_keyOptionalstring
  • sms_messagebird_originatorOptionalstring
  • sms_test_otpOptionalstring
  • sms_test_otp_valid_untilOptionalstring
  • sms_textlocal_api_keyOptionalstring
  • sms_textlocal_senderOptionalstring
  • sms_twilio_account_sidOptionalstring
  • sms_twilio_auth_tokenOptionalstring
  • sms_twilio_content_sidOptionalstring
  • sms_twilio_message_service_sidOptionalstring
  • sms_twilio_verify_account_sidOptionalstring
  • sms_twilio_verify_auth_tokenOptionalstring
  • sms_twilio_verify_message_service_sidOptionalstring
  • sms_vonage_api_keyOptionalstring
  • sms_vonage_api_secretOptionalstring
  • sms_vonage_fromOptionalstring
  • sms_templateOptionalstring
  • hook_mfa_verification_attempt_enabledOptionalboolean
  • hook_mfa_verification_attempt_uriOptionalstring
  • hook_mfa_verification_attempt_secretsOptionalstring
  • hook_password_verification_attempt_enabledOptionalboolean
  • hook_password_verification_attempt_uriOptionalstring
  • hook_password_verification_attempt_secretsOptionalstring
  • hook_custom_access_token_enabledOptionalboolean
  • hook_custom_access_token_uriOptionalstring
  • hook_custom_access_token_secretsOptionalstring
  • hook_send_sms_enabledOptionalboolean
  • hook_send_sms_uriOptionalstring
  • hook_send_sms_secretsOptionalstring
  • hook_send_email_enabledOptionalboolean
  • hook_send_email_uriOptionalstring
  • hook_send_email_secretsOptionalstring
  • hook_before_user_created_enabledOptionalboolean
  • hook_before_user_created_uriOptionalstring
  • hook_before_user_created_secretsOptionalstring
  • external_apple_enabledOptionalboolean
  • external_apple_client_idOptionalstring
  • external_apple_secretOptionalstring
  • external_apple_additional_client_idsOptionalstring
  • external_azure_enabledOptionalboolean
  • external_azure_client_idOptionalstring
  • external_azure_secretOptionalstring
  • external_azure_urlOptionalstring
  • external_bitbucket_enabledOptionalboolean
  • external_bitbucket_client_idOptionalstring
  • external_bitbucket_secretOptionalstring
  • external_discord_enabledOptionalboolean
  • external_discord_client_idOptionalstring
  • external_discord_secretOptionalstring
  • external_facebook_enabledOptionalboolean
  • external_facebook_client_idOptionalstring
  • external_facebook_secretOptionalstring
  • external_figma_enabledOptionalboolean
  • external_figma_client_idOptionalstring
  • external_figma_secretOptionalstring
  • external_github_enabledOptionalboolean
  • external_github_client_idOptionalstring
  • external_github_secretOptionalstring
  • external_gitlab_enabledOptionalboolean
  • external_gitlab_client_idOptionalstring
  • external_gitlab_secretOptionalstring
  • external_gitlab_urlOptionalstring
  • external_google_enabledOptionalboolean
  • external_google_client_idOptionalstring
  • external_google_secretOptionalstring
  • external_google_additional_client_idsOptionalstring
  • external_google_skip_nonce_checkOptionalboolean
  • external_kakao_enabledOptionalboolean
  • external_kakao_client_idOptionalstring
  • external_kakao_secretOptionalstring
  • external_keycloak_enabledOptionalboolean
  • external_keycloak_client_idOptionalstring
  • external_keycloak_secretOptionalstring
  • external_keycloak_urlOptionalstring
  • external_linkedin_oidc_enabledOptionalboolean
  • external_linkedin_oidc_client_idOptionalstring
  • external_linkedin_oidc_secretOptionalstring
  • external_slack_oidc_enabledOptionalboolean
  • external_slack_oidc_client_idOptionalstring
  • external_slack_oidc_secretOptionalstring
  • external_notion_enabledOptionalboolean
  • external_notion_client_idOptionalstring
  • external_notion_secretOptionalstring
  • external_slack_enabledOptionalboolean
  • external_slack_client_idOptionalstring
  • external_slack_secretOptionalstring
  • external_spotify_enabledOptionalboolean
  • external_spotify_client_idOptionalstring
  • external_spotify_secretOptionalstring
  • external_twitch_enabledOptionalboolean
  • external_twitch_client_idOptionalstring
  • external_twitch_secretOptionalstring
  • external_twitter_enabledOptionalboolean
  • external_twitter_client_idOptionalstring
  • external_twitter_secretOptionalstring
  • external_workos_enabledOptionalboolean
  • external_workos_client_idOptionalstring
  • external_workos_secretOptionalstring
  • external_workos_urlOptionalstring
  • external_web3_solana_enabledOptionalboolean
  • external_zoom_enabledOptionalboolean
  • external_zoom_client_idOptionalstring
  • external_zoom_secretOptionalstring
  • db_max_pool_sizeOptionalinteger
  • api_max_request_durationOptionalinteger
  • mfa_totp_enroll_enabledOptionalboolean
  • mfa_totp_verify_enabledOptionalboolean
  • mfa_web_authn_enroll_enabledOptionalboolean
  • mfa_web_authn_verify_enabledOptionalboolean
  • mfa_phone_enroll_enabledOptionalboolean
  • mfa_phone_verify_enabledOptionalboolean
  • mfa_phone_max_frequencyOptionalinteger
  • mfa_phone_otp_lengthOptionalinteger
  • mfa_phone_templateOptionalstring

Response codes

  • 200
  • 403
  • 500

Response (200)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
{ "api_max_request_duration": 42, "db_max_pool_size": 42, "disable_signup": true, "external_anonymous_users_enabled": true, "external_apple_additional_client_ids": "lorem", "external_apple_client_id": "lorem", "external_apple_enabled": true, "external_apple_secret": "lorem", "external_azure_client_id": "lorem", "external_azure_enabled": true, "external_azure_secret": "lorem", "external_azure_url": "lorem", "external_bitbucket_client_id": "lorem", "external_bitbucket_enabled": true, "external_bitbucket_secret": "lorem", "external_discord_client_id": "lorem", "external_discord_enabled": true, "external_discord_secret": "lorem", "external_email_enabled": true, "external_facebook_client_id": "lorem", "external_facebook_enabled": true, "external_facebook_secret": "lorem", "external_figma_client_id": "lorem", "external_figma_enabled": true, "external_figma_secret": "lorem", "external_github_client_id": "lorem", "external_github_enabled": true, "external_github_secret": "lorem", "external_gitlab_client_id": "lorem", "external_gitlab_enabled": true, "external_gitlab_secret": "lorem", "external_gitlab_url": "lorem", "external_google_additional_client_ids": "lorem", "external_google_client_id": "lorem", "external_google_enabled": true, "external_google_secret": "lorem", "external_google_skip_nonce_check": true, "external_kakao_client_id": "lorem", "external_kakao_enabled": true, "external_kakao_secret": "lorem", "external_keycloak_client_id": "lorem", "external_keycloak_enabled": true, "external_keycloak_secret": "lorem", "external_keycloak_url": "lorem", "external_linkedin_oidc_client_id": "lorem", "external_linkedin_oidc_enabled": true, "external_linkedin_oidc_secret": "lorem", "external_slack_oidc_client_id": "lorem", "external_slack_oidc_enabled": true, "external_slack_oidc_secret": "lorem", "external_notion_client_id": "lorem", "external_notion_enabled": true, "external_notion_secret": "lorem", "external_phone_enabled": true, "external_slack_client_id": "lorem", "external_slack_enabled": true, "external_slack_secret": "lorem", "external_spotify_client_id": "lorem", "external_spotify_enabled": true, "external_spotify_secret": "lorem", "external_twitch_client_id": "lorem", "external_twitch_enabled": true, "external_twitch_secret": "lorem", "external_twitter_client_id": "lorem", "external_twitter_enabled": true, "external_twitter_secret": "lorem", "external_workos_client_id": "lorem", "external_workos_enabled": true, "external_workos_secret": "lorem", "external_workos_url": "lorem", "external_web3_solana_enabled": true, "external_zoom_client_id": "lorem", "external_zoom_enabled": true, "external_zoom_secret": "lorem", "hook_custom_access_token_enabled": true, "hook_custom_access_token_uri": "lorem", "hook_custom_access_token_secrets": "lorem", "hook_mfa_verification_attempt_enabled": true, "hook_mfa_verification_attempt_uri": "lorem", "hook_mfa_verification_attempt_secrets": "lorem", "hook_password_verification_attempt_enabled": true, "hook_password_verification_attempt_uri": "lorem", "hook_password_verification_attempt_secrets": "lorem", "hook_send_sms_enabled": true, "hook_send_sms_uri": "lorem", "hook_send_sms_secrets": "lorem", "hook_send_email_enabled": true, "hook_send_email_uri": "lorem", "hook_send_email_secrets": "lorem", "hook_before_user_created_enabled": true, "hook_before_user_created_uri": "lorem", "hook_before_user_created_secrets": "lorem", "jwt_exp": 42, "mailer_allow_unverified_email_sign_ins": true, "mailer_autoconfirm": true, "mailer_otp_exp": 42, "mailer_otp_length": 42, "mailer_secure_email_change_enabled": true, "mailer_subjects_confirmation": "lorem", "mailer_subjects_email_change": "lorem", "mailer_subjects_invite": "lorem", "mailer_subjects_magic_link": "lorem", "mailer_subjects_reauthentication": "lorem", "mailer_subjects_recovery": "lorem", "mailer_templates_confirmation_content": "lorem", "mailer_templates_email_change_content": "lorem", "mailer_templates_invite_content": "lorem", "mailer_templates_magic_link_content": "lorem", "mailer_templates_reauthentication_content": "lorem", "mailer_templates_recovery_content": "lorem", "mfa_max_enrolled_factors": 42, "mfa_totp_enroll_enabled": true, "mfa_totp_verify_enabled": true, "mfa_phone_enroll_enabled": true, "mfa_phone_verify_enabled": true, "mfa_web_authn_enroll_enabled": true, "mfa_web_authn_verify_enabled": true, "mfa_phone_otp_length": 42, "mfa_phone_template": "lorem", "mfa_phone_max_frequency": 42, "password_hibp_enabled": true, "password_min_length": 42, "password_required_characters": "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ:0123456789", "rate_limit_anonymous_users": 42, "rate_limit_email_sent": 42, "rate_limit_sms_sent": 42, "rate_limit_token_refresh": 42, "rate_limit_verify": 42, "rate_limit_otp": 42, "rate_limit_web3": 42, "refresh_token_rotation_enabled": true, "saml_enabled": true, "saml_external_url": "lorem", "saml_allow_encrypted_assertions": true, "security_captcha_enabled": true, "security_captcha_provider": "turnstile", "security_captcha_secret": "lorem", "security_manual_linking_enabled": true, "security_refresh_token_reuse_interval": 42, "security_update_password_require_reauthentication": true, "sessions_inactivity_timeout": 42, "sessions_single_per_user": true, "sessions_tags": "lorem", "sessions_timebox": 42, "site_url": "lorem", "sms_autoconfirm": true, "sms_max_frequency": 42, "sms_messagebird_access_key": "lorem", "sms_messagebird_originator": "lorem", "sms_otp_exp": 42, "sms_otp_length": 42, "sms_provider": "messagebird", "sms_template": "lorem", "sms_test_otp": "lorem", "sms_test_otp_valid_until": "2021-12-31T23:34:00Z", "sms_textlocal_api_key": "lorem", "sms_textlocal_sender": "lorem", "sms_twilio_account_sid": "lorem", "sms_twilio_auth_token": "lorem", "sms_twilio_content_sid": "lorem", "sms_twilio_message_service_sid": "lorem", "sms_twilio_verify_account_sid": "lorem", "sms_twilio_verify_auth_token": "lorem", "sms_twilio_verify_message_service_sid": "lorem", "sms_vonage_api_key": "lorem", "sms_vonage_api_secret": "lorem", "sms_vonage_from": "lorem", "smtp_admin_email": "jon.snow@targaryen.com", "smtp_host": "lorem", "smtp_max_frequency": 42, "smtp_pass": "lorem", "smtp_port": "lorem", "smtp_sender_name": "lorem", "smtp_user": "lorem", "uri_allow_list": "lorem"}

Update a signing key, mainly its status

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

Path parameters

  • idRequiredstring
  • refRequiredstring

    Project ref

Body

  • statusRequiredenum

Response codes

  • 200
  • 403

Response (200)

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

Applies project addon

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

Path parameters

  • refRequiredstring

    Project ref

Body

  • addon_variantRequiredone of the following options
  • addon_typeRequiredenum

Response codes

  • 200
  • 403
  • 500

Response (200)

1
{}

Lists project addons

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

Path parameters

  • refRequiredstring

    Project ref

Response codes

  • 200
  • 403
  • 500

Response (200)

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

Removes project addon

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

Path parameters

  • refRequiredstring

    Project ref

  • addon_variantRequired

Response codes

  • 200
  • 403
  • 500

Response (200)

1
{}

[Beta] Apply a database migration

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

Only available to selected partner OAuth apps

Path parameters

  • refRequiredstring

    Project ref

Body

  • queryRequiredstring
  • nameOptionalstring

Response codes

  • 200
  • 403
  • 500

Response (200)

1
{}

Initiates a creation of a restore point for a database

post/v1/projects/{ref}/database/backups/restore-point

Path parameters

  • refRequiredstring

    Project ref

Body

  • nameRequiredstring

Response codes

  • 201

Response (201)

1
2
3
4
{ "name": "lorem", "status": "AVAILABLE"}

Disables project's readonly mode for the next 15 minutes

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

Path parameters

  • refRequiredstring

    Project ref

Response codes

  • 201
  • 403
  • 500

Response (201)

1
{}

[Beta] Enables Database Webhooks on the project

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

Path parameters

  • refRequiredstring

    Project ref

Response codes

  • 201
  • 403
  • 500

Response (201)

1
{}

Generate TypeScript types

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

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

Path parameters

  • refRequiredstring

    Project ref

Query parameters

  • included_schemasOptionalstring

Response codes

  • 200
  • 403
  • 500

Response (200)

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

Gets a specific SQL snippet

get/v1/snippets/{id}

Path parameters

  • idRequiredstring

Response codes

  • 200
  • 500

Response (200)

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

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.

Path parameters

  • refRequiredstring

    Project ref

Response codes

  • 200
  • 403

Response (200)

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

Gets project's supavisor config

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

Path parameters

  • refRequiredstring

    Project ref

Response codes

  • 200
  • 500

Response (200)

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

Gets project's Postgres config

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

Path parameters

  • refRequiredstring

    Project ref

Response codes

  • 200
  • 403
  • 500

Response (200)

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

Get project's pgbouncer config

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

Path parameters

  • refRequiredstring

    Project ref

Response codes

  • 200
  • 403
  • 500

Response (200)

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

Returns project's readonly mode status

get/v1/projects/{ref}/readonly

Path parameters

  • refRequiredstring

    Project ref

Response codes

  • 200
  • 403
  • 500

Response (200)

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

Get restore points for project

get/v1/projects/{ref}/database/backups/restore-point

Path parameters

  • refRequiredstring

    Project ref

Query parameters

  • nameOptionalstring

Response codes

  • 200
  • 403
  • 500

Response (200)

1
2
3
4
{ "name": "lorem", "status": "AVAILABLE"}

[Beta] Get project's SSL enforcement configuration.

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

Path parameters

  • refRequiredstring

    Project ref

Response codes

  • 200
  • 403
  • 500

Response (200)

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

Lists all backups

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

Path parameters

  • refRequiredstring

    Project ref

Response codes

  • 200
  • 403
  • 500

Response (200)

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

Lists SQL snippets for the logged in user

get/v1/snippets

Query parameters

  • project_refOptionalstring

    Project ref

  • cursorOptionalstring
  • limitOptionalstring
  • sort_byOptionalenum
  • sort_orderOptionalenum

Response codes

  • 200
  • 500

Response (200)

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

[Beta] List applied migration versions

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

Only available to selected partner OAuth apps

Path parameters

  • refRequiredstring

    Project ref

Response codes

  • 200
  • 403
  • 500

Response (200)

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

[Beta] Remove a read replica

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

Path parameters

  • refRequiredstring

    Project ref

Body

  • database_identifierRequiredstring

Response codes

  • 201
  • 403
  • 500

Response (201)

1
{}

Restores a PITR backup for a database

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

Path parameters

  • refRequiredstring

    Project ref

Body

  • recovery_time_target_unixRequiredinteger

Response codes

  • 201
  • 403

Response (201)

1
{}

[Beta] Run sql query

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

Path parameters

  • refRequiredstring

    Project ref

Body

  • queryRequiredstring
  • read_onlyOptionalboolean

Response codes

  • 201
  • 403
  • 500

Response (201)

1
{}

[Beta] Set up a read replica

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

Path parameters

  • refRequiredstring

    Project ref

Body

  • read_replica_regionRequiredenum

Response codes

  • 201
  • 403
  • 500

Response (201)

1
{}

Initiates an undo to a given restore point

post/v1/projects/{ref}/database/backups/undo

Path parameters

  • refRequiredstring

    Project ref

Body

  • nameRequiredstring

Response codes

  • 201
  • 403

Response (201)

1
{}

Updates project's supavisor config

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

Path parameters

  • refRequiredstring

    Project ref

Body

  • default_pool_sizeOptionalinteger
  • pool_modeOptionalenum

Response codes

  • 200
  • 403
  • 500

Response (200)

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

Updates project's Postgres config

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

Path parameters

  • refRequiredstring

    Project ref

Body

  • effective_cache_sizeOptionalstring
  • logical_decoding_work_memOptionalstring
  • maintenance_work_memOptionalstring
  • track_activity_query_sizeOptionalstring
  • max_connectionsOptionalinteger
  • max_locks_per_transactionOptionalinteger
  • max_parallel_maintenance_workersOptionalinteger
  • max_parallel_workersOptionalinteger
  • max_parallel_workers_per_gatherOptionalinteger
  • max_replication_slotsOptionalinteger
  • max_slot_wal_keep_sizeOptionalstring
  • max_standby_archive_delayOptionalstring
  • max_standby_streaming_delayOptionalstring
  • max_wal_sizeOptionalstring
  • max_wal_sendersOptionalinteger
  • max_worker_processesOptionalinteger
  • session_replication_roleOptionalenum
  • shared_buffersOptionalstring
  • statement_timeoutOptionalstring
  • track_commit_timestampOptionalboolean
  • wal_keep_sizeOptionalstring
  • wal_sender_timeoutOptionalstring
  • work_memOptionalstring
  • restart_databaseOptionalboolean

Response codes

  • 200
  • 403
  • 500

Response (200)

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

[Beta] Update project's SSL enforcement configuration.

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

Path parameters

  • refRequiredstring

    Project ref

Body

  • requestedConfigRequiredobject

Response codes

  • 200
  • 403
  • 500

Response (200)

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

[Beta] Upsert a database migration without applying

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

Only available to selected partner OAuth apps

Path parameters

  • refRequiredstring

    Project ref

Body

  • queryRequiredstring
  • nameOptionalstring

Response codes

  • 200
  • 403
  • 500

Response (200)

1
{}

[Beta] Activates a custom hostname for a project.

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

Path parameters

  • refRequiredstring

    Project ref

Response codes

  • 201
  • 403
  • 500

Response (201)

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

[Beta] Activates a vanity subdomain for a project.

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

Path parameters

  • refRequiredstring

    Project ref

Body

  • vanity_subdomainRequiredstring

Response codes

  • 201
  • 403
  • 500

Response (201)

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

[Beta] Checks vanity subdomain availability

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

Path parameters

  • refRequiredstring

    Project ref

Body

  • vanity_subdomainRequiredstring

Response codes

  • 201
  • 403
  • 500

Response (201)

1
2
3
{ "available": true}

[Beta] Deletes a project's vanity subdomain configuration

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

Path parameters

  • refRequiredstring

    Project ref

Response codes

  • 200
  • 403
  • 500

Response (200)

1
{}

[Beta] Gets project's custom hostname config

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

Path parameters

  • refRequiredstring

    Project ref

Response codes

  • 200
  • 403
  • 500

Response (200)

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

[Beta] Gets current vanity subdomain config

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

Path parameters

  • refRequiredstring

    Project ref

Response codes

  • 200
  • 403
  • 500

Response (200)

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

[Beta] Updates project's custom hostname configuration

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

Path parameters

  • refRequiredstring

    Project ref

Body

  • custom_hostnameRequiredstring

Response codes

  • 201
  • 403
  • 500

Response (201)

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

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

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

Path parameters

  • refRequiredstring

    Project ref

Response codes

  • 201
  • 403
  • 500

Response (201)

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

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.

Path parameters

  • refRequiredstring

    Project ref

Body

Array of object

Response codes

  • 200
  • 403
  • 500

Response (200)

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

Create a functiondeprecated

post/v1/projects/{ref}/functions

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

Path parameters

  • refRequiredstring

    Project ref

Query parameters

  • slugOptionalstring
  • nameOptionalstring
  • verify_jwtOptionalboolean

    Boolean string, true or false

  • import_mapOptionalboolean

    Boolean string, true or false

  • entrypoint_pathOptionalstring
  • import_map_pathOptionalstring
  • ezbr_sha256Optionalstring

Body

string

Response codes

  • 201
  • 403
  • 500

Response (201)

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

Delete a function

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

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

Path parameters

  • refRequiredstring

    Project ref

  • function_slugRequiredstring

    Function slug

Response codes

  • 200
  • 403
  • 500

Response (200)

1
{}

Deploy a function

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

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

Path parameters

  • refRequiredstring

    Project ref

Query parameters

  • slugOptionalstring
  • bundleOnlyOptionalboolean

    Boolean string, true or false

Body

  • fileOptionalArray<string>
  • metadataRequiredobject

Response codes

  • 201
  • 403
  • 500

Response (201)

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

Retrieve a function

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

Retrieves a function with the specified slug and project.

Path parameters

  • refRequiredstring

    Project ref

  • function_slugRequiredstring

    Function slug

Response codes

  • 200
  • 403
  • 500

Response (200)

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

Retrieve a function body

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

Retrieves a function body for the specified slug and project.

Path parameters

  • refRequiredstring

    Project ref

  • function_slugRequiredstring

    Function slug

Response codes

  • 200
  • 403
  • 500

Response (200)

1
{}

List all functions

get/v1/projects/{ref}/functions

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

Path parameters

  • refRequiredstring

    Project ref

Response codes

  • 200
  • 403
  • 500

Response (200)

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

Update a function

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

Updates a function with the specified slug and project.

Path parameters

  • refRequiredstring

    Project ref

  • function_slugRequiredstring

    Function slug

Query parameters

  • slugOptionalstring
  • nameOptionalstring
  • verify_jwtOptionalboolean

    Boolean string, true or false

  • import_mapOptionalboolean

    Boolean string, true or false

  • entrypoint_pathOptionalstring
  • import_map_pathOptionalstring
  • ezbr_sha256Optionalstring

Body

string

Response codes

  • 200
  • 403
  • 500

Response (200)

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

Create a database branch

post/v1/projects/{ref}/branches

Creates a database branch from the specified project.

Path parameters

  • refRequiredstring

    Project ref

Body

  • branch_nameRequiredstring
  • git_branchOptionalstring
  • is_defaultOptionalboolean
  • persistentOptionalboolean
  • regionOptionalstring
  • desired_instance_sizeOptionalenum
  • release_channelOptionalenum
  • postgres_engineOptionalenum
  • secretsOptionalobject
  • with_dataOptionalboolean

Response codes

  • 201
  • 403
  • 500

Response (201)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
{ "id": "fbdf5a53-161e-4460-98ad-0e39408d8689", "name": "lorem", "project_ref": "lorem", "parent_project_ref": "lorem", "is_default": true, "git_branch": "lorem", "pr_number": 42, "latest_check_run_id": 42, "persistent": true, "status": "CREATING_PROJECT", "created_at": "2021-12-31T23:34:00Z", "updated_at": "2021-12-31T23:34:00Z", "review_requested_at": "2021-12-31T23:34:00Z"}

Delete a database branch

delete/v1/branches/{branch_id}

Deletes the specified database branch

Path parameters

  • branch_idRequiredstring

    Branch ID

Response codes

  • 200
  • 500

Response (200)

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

[Beta] Diffs a database branch

get/v1/branches/{branch_id}/diff

Diffs the specified database branch

Path parameters

  • branch_idRequiredstring

    Branch ID

Query parameters

  • included_schemasOptionalstring

Response codes

  • 200
  • 500

Response (200)

1
{}

Disables preview branching

delete/v1/projects/{ref}/branches

Disables preview branching for the specified project

Path parameters

  • refRequiredstring

    Project ref

Response codes

  • 200
  • 403
  • 500

Response (200)

1
{}

Get a database branch

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

Fetches the specified database branch by its name.

Path parameters

  • refRequiredstring

    Project ref

  • nameRequiredstring

Response codes

  • 200
  • 403
  • 500

Response (200)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
{ "id": "fbdf5a53-161e-4460-98ad-0e39408d8689", "name": "lorem", "project_ref": "lorem", "parent_project_ref": "lorem", "is_default": true, "git_branch": "lorem", "pr_number": 42, "latest_check_run_id": 42, "persistent": true, "status": "CREATING_PROJECT", "created_at": "2021-12-31T23:34:00Z", "updated_at": "2021-12-31T23:34:00Z", "review_requested_at": "2021-12-31T23:34:00Z"}

Get database branch config

get/v1/branches/{branch_id}

Fetches configurations of the specified database branch

Path parameters

  • branch_idRequiredstring

    Branch ID

Response codes

  • 200
  • 500

Response (200)

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

List all database branches

get/v1/projects/{ref}/branches

Returns all database branches of the specified project.

Path parameters

  • refRequiredstring

    Project ref

Response codes

  • 200
  • 403
  • 500

Response (200)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[ { "id": "fbdf5a53-161e-4460-98ad-0e39408d8689", "name": "lorem", "project_ref": "lorem", "parent_project_ref": "lorem", "is_default": true, "git_branch": "lorem", "pr_number": 42, "latest_check_run_id": 42, "persistent": true, "status": "CREATING_PROJECT", "created_at": "2021-12-31T23:34:00Z", "updated_at": "2021-12-31T23:34:00Z", "review_requested_at": "2021-12-31T23:34:00Z" }]

Merges a database branch

post/v1/branches/{branch_id}/merge

Merges the specified database branch

Path parameters

  • branch_idRequiredstring

    Branch ID

Body

  • migration_versionOptionalstring

Response codes

  • 201
  • 500

Response (201)

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

Pushes a database branch

post/v1/branches/{branch_id}/push

Pushes the specified database branch

Path parameters

  • branch_idRequiredstring

    Branch ID

Body

  • migration_versionOptionalstring

Response codes

  • 201
  • 500

Response (201)

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

Resets a database branch

post/v1/branches/{branch_id}/reset

Resets the specified database branch

Path parameters

  • branch_idRequiredstring

    Branch ID

Body

  • migration_versionOptionalstring

Response codes

  • 201
  • 500

Response (201)

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

Update database branch config

patch/v1/branches/{branch_id}

Updates the configuration of the specified database branch

Path parameters

  • branch_idRequiredstring

    Branch ID

Body

  • branch_nameOptionalstring
  • git_branchOptionalstring
  • reset_on_pushOptionalDeprecatedboolean
  • persistentOptionalboolean
  • statusOptionalenum
  • request_reviewOptionalboolean

Response codes

  • 200
  • 500

Response (200)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
{ "id": "fbdf5a53-161e-4460-98ad-0e39408d8689", "name": "lorem", "project_ref": "lorem", "parent_project_ref": "lorem", "is_default": true, "git_branch": "lorem", "pr_number": 42, "latest_check_run_id": 42, "persistent": true, "status": "CREATING_PROJECT", "created_at": "2021-12-31T23:34:00Z", "updated_at": "2021-12-31T23:34:00Z", "review_requested_at": "2021-12-31T23:34:00Z"}

[Beta] Authorize user through oauth

get/v1/oauth/authorize

Query parameters

  • client_idRequiredstring
  • response_typeRequiredenum
  • redirect_uriRequiredstring
  • scopeOptionalstring
  • stateOptionalstring
  • response_modeOptionalstring
  • code_challengeOptionalstring
  • code_challenge_methodOptionalenum
  • organization_slugOptionalstring

    Organization slug

Response codes

  • 204

Response (204)

1
{}

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

post/v1/oauth/token

Body

  • grant_typeOptionalenum
  • client_idOptionalstring
  • client_secretOptionalstring
  • codeOptionalstring
  • code_verifierOptionalstring
  • redirect_uriOptionalstring
  • refresh_tokenOptionalstring

Response codes

  • 201

Response (201)

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

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.

Query parameters

  • project_refRequiredstring

    Project ref

  • client_idRequiredstring
  • response_typeRequiredenum
  • redirect_uriRequiredstring
  • stateOptionalstring
  • response_modeOptionalstring
  • code_challengeOptionalstring
  • code_challenge_methodOptionalenum

Response codes

  • 204

Response (204)

1
{}

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

post/v1/oauth/revoke

Body

  • client_idRequiredstring
  • client_secretRequiredstring
  • refresh_tokenRequiredstring

Response codes

  • 204

Response (204)

1
{}

Claims project for the specified organization

post/v1/organizations/{slug}/project-claim/{token}

Path parameters

  • slugRequiredstring

    Organization slug

  • tokenRequiredstring

Response codes

  • 204
  • 403

Response (204)

1
{}

Create an organization

post/v1/organizations

Body

  • nameRequiredstring

Response codes

  • 201
  • 500

Response (201)

1
2
3
4
{ "id": "lorem", "name": "lorem"}

Gets information about the organization

get/v1/organizations/{slug}

Path parameters

  • slugRequiredstring

    Organization slug

Response codes

  • 200
  • 403

Response (200)

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

Gets project details for the specified organization and claim token

get/v1/organizations/{slug}/project-claim/{token}

Path parameters

  • slugRequiredstring

    Organization slug

  • tokenRequiredstring

Response codes

  • 200
  • 403

Response (200)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
{ "project": { "ref": "lorem", "name": "lorem" }, "preview": { "valid": true, "warnings": [ { "key": "lorem", "message": "lorem" } ], "errors": [ { "key": "lorem", "message": "lorem" } ], "info": [ { "key": "lorem", "message": "lorem" } ], "members_exceeding_free_project_limit": [ { "name": "lorem", "limit": 42 } ], "target_organization_eligible": true, "target_organization_has_free_project_slots": true, "source_subscription_plan": "free", "target_subscription_plan": "free" }, "expires_at": "lorem", "created_at": "lorem", "created_by": "fbdf5a53-161e-4460-98ad-0e39408d8689"}

List all organizations

get/v1/organizations

Returns a list of organizations that you currently belong to.

Response codes

  • 200
  • 500

Response (200)

1
2
3
4
5
6
[ { "id": "lorem", "name": "lorem" }]

List members of an organization

get/v1/organizations/{slug}/members

Path parameters

  • slugRequiredstring

    Organization slug

Response codes

  • 200
  • 403

Response (200)

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

Cancels the given project restoration

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

Path parameters

  • refRequiredstring

    Project ref

Response codes

  • 200
  • 403

Response (200)

1
{}

Create a project

post/v1/projects

Body

  • db_passRequiredstring
  • nameRequiredstring
  • organization_idRequiredstring
  • planOptionalDeprecatedenum
  • regionRequiredenum
  • kps_enabledOptionalDeprecatedboolean
  • desired_instance_sizeOptionalenum
  • template_urlOptionalstring

Response codes

  • 201

Response (201)

1
2
3
4
5
6
7
8
{ "id": "lorem", "organization_id": "lorem", "name": "lorem", "region": "us-east-1", "created_at": "2023-03-29T16:32:59Z", "status": "INACTIVE"}

Creates project claim token

post/v1/projects/{ref}/claim-token

Path parameters

  • refRequiredstring

    Project ref

Response codes

  • 200
  • 403

Response (200)

1
2
3
4
5
6
7
{ "token": "lorem", "token_alias": "lorem", "expires_at": "lorem", "created_at": "lorem", "created_by": "fbdf5a53-161e-4460-98ad-0e39408d8689"}

Deletes the given project

delete/v1/projects/{ref}

Path parameters

  • refRequiredstring

    Project ref

Response codes

  • 200
  • 403

Response (200)

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

[Beta] Remove network bans.

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

Path parameters

  • refRequiredstring

    Project ref

Body

  • ipv4_addressesRequiredArray<string>
  • identifierOptionalstring

Response codes

  • 200
  • 403
  • 500

Response (200)

1
{}

Revokes project claim token

delete/v1/projects/{ref}/claim-token

Path parameters

  • refRequiredstring

    Project ref

Response codes

  • 204
  • 403

Response (204)

1
{}

[Beta] Gets project's network restrictions

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

Path parameters

  • refRequiredstring

    Project ref

Response codes

  • 200
  • 403
  • 500

Response (200)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
{ "entitlement": "disallowed", "config": { "dbAllowedCidrs": [ "lorem" ], "dbAllowedCidrsV6": [ "lorem" ] }, "old_config": { "dbAllowedCidrs": [ "lorem" ], "dbAllowedCidrsV6": [ "lorem" ] }, "status": "stored"}

[Beta] Returns the project's eligibility for upgrades

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

Path parameters

  • refRequiredstring

    Project ref

Response codes

  • 200
  • 403
  • 500

Response (200)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
{ "eligible": true, "current_app_version": "lorem", "current_app_version_release_channel": "internal", "latest_app_version": "lorem", "target_upgrade_versions": [ { "postgres_version": "15", "release_channel": "internal", "app_version": "lorem" } ], "duration_estimate_hours": 42, "legacy_auth_custom_roles": [ "lorem" ], "objects_to_be_dropped": [ "lorem" ], "unsupported_extensions": [ "lorem" ], "user_defined_objects_in_internal_schemas": [ "lorem" ]}

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

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

Path parameters

  • refRequiredstring

    Project ref

Query parameters

  • tracking_idOptionalstring

Response codes

  • 200
  • 403
  • 500

Response (200)

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

Gets a specific project that belongs to the authenticated user

get/v1/projects/{ref}

Path parameters

  • refRequiredstring

    Project ref

Response codes

  • 200
  • 403
  • 500

Response (200)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
{ "id": "lorem", "organization_id": "lorem", "name": "lorem", "region": "us-east-1", "created_at": "2023-03-29T16:32:59Z", "status": "INACTIVE", "database": { "host": "lorem", "version": "lorem", "postgres_engine": "lorem", "release_channel": "lorem" }}

Gets project claim token

get/v1/projects/{ref}/claim-token

Path parameters

  • refRequiredstring

    Project ref

Response codes

  • 200
  • 403

Response (200)

1
2
3
4
5
6
{ "token_alias": "lorem", "expires_at": "lorem", "created_at": "lorem", "created_by": "fbdf5a53-161e-4460-98ad-0e39408d8689"}

Gets project's service health status

get/v1/projects/{ref}/health

Path parameters

  • refRequiredstring

    Project ref

Query parameters

  • servicesRequiredArray<enum>
  • timeout_msOptionalinteger

Response codes

  • 200
  • 403
  • 500

Response (200)

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

[Beta] Gets project's network bans

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

Path parameters

  • refRequiredstring

    Project ref

Response codes

  • 201
  • 403
  • 500

Response (201)

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

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

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

Path parameters

  • refRequiredstring

    Project ref

Response codes

  • 201
  • 403
  • 500

Response (201)

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

List all projects

get/v1/projects

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

Response codes

  • 200

Response (200)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[ { "id": "lorem", "organization_id": "lorem", "name": "lorem", "region": "us-east-1", "created_at": "2023-03-29T16:32:59Z", "status": "INACTIVE", "database": { "host": "lorem", "version": "lorem", "postgres_engine": "lorem", "release_channel": "lorem" } }]

Lists available restore versions for the given project

get/v1/projects/{ref}/restore

Path parameters

  • refRequiredstring

    Project ref

Response codes

  • 200
  • 403

Response (200)

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

Pauses the given project

post/v1/projects/{ref}/pause

Path parameters

  • refRequiredstring

    Project ref

Response codes

  • 200
  • 403

Response (200)

1
{}

Restores the given project

post/v1/projects/{ref}/restore

Path parameters

  • refRequiredstring

    Project ref

Response codes

  • 200
  • 403

Response (200)

1
{}

[Beta] Updates project's network restrictions

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

Path parameters

  • refRequiredstring

    Project ref

Body

  • dbAllowedCidrsOptionalArray<string>
  • dbAllowedCidrsV6OptionalArray<string>

Response codes

  • 201
  • 403
  • 500

Response (201)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
{ "entitlement": "disallowed", "config": { "dbAllowedCidrs": [ "lorem" ], "dbAllowedCidrsV6": [ "lorem" ] }, "old_config": { "dbAllowedCidrs": [ "lorem" ], "dbAllowedCidrsV6": [ "lorem" ] }, "status": "stored"}

[Beta] Upgrades the project's Postgres version

post/v1/projects/{ref}/upgrade

Path parameters

  • refRequiredstring

    Project ref

Body

  • target_versionRequiredstring
  • release_channelOptionalenum

Response codes

  • 201
  • 403
  • 500

Response (201)

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

Gets project's postgrest config

get/v1/projects/{ref}/postgrest

Path parameters

  • refRequiredstring

    Project ref

Response codes

  • 200
  • 403
  • 500

Response (200)

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

Updates project's postgrest config

patch/v1/projects/{ref}/postgrest

Path parameters

  • refRequiredstring

    Project ref

Body

  • db_extra_search_pathOptionalstring
  • db_schemaOptionalstring
  • max_rowsOptionalinteger
  • db_poolOptionalinteger

Response codes

  • 200
  • 403
  • 500

Response (200)

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

Bulk create secrets

post/v1/projects/{ref}/secrets

Creates multiple secrets and adds them to the specified project.

Path parameters

  • refRequiredstring

    Project ref

Body

Array of object

Response codes

  • 201
  • 403
  • 500

Response (201)

1
{}

Bulk delete secrets

delete/v1/projects/{ref}/secrets

Deletes all secrets with the given names from the specified project

Path parameters

  • refRequiredstring

    Project ref

Body

Array of string

Response codes

  • 200
  • 403
  • 500

Response (200)

1
{}

Creates a new API key for the project

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

Path parameters

  • refRequiredstring

    Project ref

Query parameters

  • revealOptionalboolean

    Boolean string, true or false

Body

  • typeRequiredenum
  • nameRequiredstring
  • descriptionOptionalstring
  • secret_jwt_templateOptionalobject

Response codes

  • 201
  • 403

Response (201)

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

Deletes an API key for the project

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

Path parameters

  • refRequiredstring

    Project ref

  • idRequiredstring

Query parameters

  • revealOptionalboolean

    Boolean string, true or false

  • was_compromisedOptionalboolean

    Boolean string, true or false

  • reasonOptionalstring

Response codes

  • 200
  • 403

Response (200)

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

[Beta] Gets project's pgsodium config

get/v1/projects/{ref}/pgsodium

Path parameters

  • refRequiredstring

    Project ref

Response codes

  • 200
  • 403
  • 500

Response (200)

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

Get API key

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

Path parameters

  • refRequiredstring

    Project ref

  • idRequiredstring

Query parameters

  • revealOptionalboolean

    Boolean string, true or false

Response codes

  • 200
  • 403

Response (200)

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

Get project api keys

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

Path parameters

  • refRequiredstring

    Project ref

Query parameters

  • revealOptionalboolean

    Boolean string, true or false

Response codes

  • 200
  • 403

Response (200)

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

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

Path parameters

  • refRequiredstring

    Project ref

Response codes

  • 200
  • 403

Response (200)

1
2
3
{ "enabled": true}

List all secrets

get/v1/projects/{ref}/secrets

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

Path parameters

  • refRequiredstring

    Project ref

Response codes

  • 200
  • 403
  • 500

Response (200)

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

[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

Path parameters

  • refRequiredstring

    Project ref

Body

  • root_keyRequiredstring

Response codes

  • 200
  • 403
  • 500

Response (200)

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

Updates an API key for the project

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

Path parameters

  • refRequiredstring

    Project ref

  • idRequiredstring

Query parameters

  • revealOptionalboolean

    Boolean string, true or false

Body

  • nameOptionalstring
  • descriptionOptionalstring
  • secret_jwt_templateOptionalobject

Response codes

  • 200
  • 403

Response (200)

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

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

Path parameters

  • refRequiredstring

    Project ref

Query parameters

  • enabledRequiredboolean

    Boolean string, true or false

Response codes

  • 200
  • 403

Response (200)

1
2
3
{ "enabled": true}

Gets project's storage config

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

Path parameters

  • refRequiredstring

    Project ref

Response codes

  • 200
  • 403
  • 500

Response (200)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
{ "fileSizeLimit": 42, "features": { "imageTransformation": { "enabled": true }, "s3Protocol": { "enabled": true }, "icebergCatalog": { "enabled": true } }}

Lists all buckets

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

Path parameters

  • refRequiredstring

    Project ref

Response codes

  • 200
  • 403
  • 500

Response (200)

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

Updates project's storage config

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

Path parameters

  • refRequiredstring

    Project ref

Body

  • fileSizeLimitOptionalinteger
  • featuresOptionalobject

Response codes

  • 200
  • 403
  • 500

Response (200)

1
{}