管理 API 参考

管理 API

以编程方式管理您的 Supabase 组织和项目。

认证

所有 API 请求都需要在 Authorization 头中包含访问令牌:Authorization Bearer <access_token>

生成访问令牌有两种方式:

  1. 个人访问令牌(PAT): PAT 是长期有效的令牌,您需要手动生成以访问管理 API。它们适用于自动化工作流或针对管理 API 进行开发。PAT 拥有与您用户账户相同的权限,因此请务必保密。

    要生成或管理您的个人访问令牌,请访问您的账户页面。

  2. OAuth2: OAuth2 允许您的应用程序代表 Supabase 用户生成令牌,无需用户凭证即可安全且有限地访问其账户。如果您正在构建需要代表用户创建或管理 Supabase 项目的第三方应用,请使用此方式。通过 OAuth2 生成的令牌是短期的,并且绑定特定权限范围,确保您的应用只能执行用户明确批准的操作。

    请参阅构建 Supabase 集成为您的应用程序设置 OAuth2。

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

所有 API 请求都必须经过认证并通过 HTTPS 发送。

速率限制

管理 API 的速率限制为每分钟每个用户 60 次请求,该限制适用于您使用个人访问令牌发起的所有请求的累计值。

如果超过此限制,接下来一分钟内的所有管理 API 调用都将被阻止,并返回 HTTP 429 响应。

管理 API 受我们的公平使用政策约束。 通过 API 创建的所有资源都需遵守我们定价页面详述的费用标准。


创建新的SSO提供商

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

Path parameters

  • refRequiredstring

    项目引用

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": { "default": {}, "name": "lorem", "names": [ "lorem" ], "array": true }, "property2": { "default": {}, "name": "lorem", "names": [ "lorem" ], "array": true } } } }, "domains": [ { "id": "lorem", "domain": "lorem", "created_at": "lorem", "updated_at": "lorem" } ], "created_at": "lorem", "updated_at": "lorem"}

通过UUID移除单点登录提供程序

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

Path parameters

  • refRequiredstring

    项目引用

  • 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": { "default": {}, "name": "lorem", "names": [ "lorem" ], "array": true }, "property2": { "default": {}, "name": "lorem", "names": [ "lorem" ], "array": true } } } }, "domains": [ { "id": "lorem", "domain": "lorem", "created_at": "lorem", "updated_at": "lorem" } ], "created_at": "lorem", "updated_at": "lorem"}

通过UUID获取单点登录提供商

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

Path parameters

  • refRequiredstring

    项目引用

  • 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": { "default": {}, "name": "lorem", "names": [ "lorem" ], "array": true }, "property2": { "default": {}, "name": "lorem", "names": [ "lorem" ], "array": true } } } }, "domains": [ { "id": "lorem", "domain": "lorem", "created_at": "lorem", "updated_at": "lorem" } ], "created_at": "lorem", "updated_at": "lorem"}

获取项目的认证配置

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

Path parameters

  • refRequiredstring

    项目引用

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
{ "api_max_request_duration": 42, "db_max_pool_size": 42, "jwt_exp": 42, "mailer_otp_exp": 42, "mailer_otp_length": 42, "mfa_max_enrolled_factors": 42, "mfa_phone_otp_length": 42, "mfa_phone_max_frequency": 42, "password_min_length": 42, "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, "security_refresh_token_reuse_interval": 42, "sessions_inactivity_timeout": 42, "sessions_timebox": 42, "sms_max_frequency": 42, "sms_otp_exp": 42, "sms_otp_length": 42, "smtp_max_frequency": 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_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", "mailer_allow_unverified_email_sign_ins": true, "mailer_autoconfirm": true, "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_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_template": "lorem", "password_hibp_enabled": true, "password_required_characters": "lorem", "refresh_token_rotation_enabled": true, "saml_enabled": true, "saml_external_url": "lorem", "saml_allow_encrypted_assertions": true, "security_captcha_enabled": true, "security_captcha_provider": "lorem", "security_captcha_secret": "lorem", "security_manual_linking_enabled": true, "security_update_password_require_reauthentication": true, "sessions_single_per_user": true, "sessions_tags": "lorem", "site_url": "lorem", "sms_autoconfirm": true, "sms_messagebird_access_key": "lorem", "sms_messagebird_originator": "lorem", "sms_provider": "lorem", "sms_template": "lorem", "sms_test_otp": "lorem", "sms_test_otp_valid_until": "lorem", "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": "lorem", "smtp_host": "lorem", "smtp_pass": "lorem", "smtp_port": "lorem", "smtp_sender_name": "lorem", "smtp_user": "lorem", "uri_allow_list": "lorem"}

列出所有单点登录提供商

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

Path parameters

  • refRequiredstring

    项目引用

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": { "default": {}, "name": "lorem", "names": [ "lorem" ], "array": true }, "property2": { "default": {}, "name": "lorem", "names": [ "lorem" ], "array": true } } } }, "domains": [ { "id": "lorem", "domain": "lorem", "created_at": "lorem", "updated_at": "lorem" } ], "created_at": "lorem", "updated_at": "lorem" } ]}

通过UUID更新SSO提供程序

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

Path parameters

  • refRequiredstring

    项目引用

  • 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": { "default": {}, "name": "lorem", "names": [ "lorem" ], "array": true }, "property2": { "default": {}, "name": "lorem", "names": [ "lorem" ], "array": true } } } }, "domains": [ { "id": "lorem", "domain": "lorem", "created_at": "lorem", "updated_at": "lorem" } ], "created_at": "lorem", "updated_at": "lorem"}

更新项目的认证配置

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

Path parameters

  • refRequiredstring

    项目引用

Body

  • jwt_expOptionalinteger
  • smtp_max_frequencyOptionalinteger
  • mfa_max_enrolled_factorsOptionalinteger
  • sessions_timeboxOptionalinteger
  • sessions_inactivity_timeoutOptionalinteger
  • rate_limit_anonymous_usersOptionalinteger
  • rate_limit_email_sentOptionalinteger
  • rate_limit_sms_sentOptionalinteger
  • rate_limit_verifyOptionalinteger
  • rate_limit_token_refreshOptionalinteger
  • rate_limit_otpOptionalinteger
  • password_min_lengthOptionalinteger
  • security_refresh_token_reuse_intervalOptionalinteger
  • mailer_otp_expOptionalinteger
  • mailer_otp_lengthOptionalinteger
  • sms_max_frequencyOptionalinteger
  • sms_otp_expOptionalinteger
  • sms_otp_lengthOptionalinteger
  • db_max_pool_sizeOptionalinteger
  • api_max_request_durationOptionalinteger
  • mfa_phone_max_frequencyOptionalinteger
  • mfa_phone_otp_lengthOptionalinteger
  • site_urlOptionalstring
  • disable_signupOptionalboolean
  • smtp_admin_emailOptionalstring
  • smtp_hostOptionalstring
  • smtp_portOptionalstring
  • smtp_userOptionalstring
  • smtp_passOptionalstring
  • 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
  • uri_allow_listOptionalstring
  • external_anonymous_users_enabledOptionalboolean
  • external_email_enabledOptionalboolean
  • external_phone_enabledOptionalboolean
  • saml_enabledOptionalboolean
  • saml_external_urlOptionalstring
  • security_captcha_enabledOptionalboolean
  • security_captcha_providerOptionalstring
  • security_captcha_secretOptionalstring
  • sessions_single_per_userOptionalboolean
  • sessions_tagsOptionalstring
  • mailer_secure_email_change_enabledOptionalboolean
  • refresh_token_rotation_enabledOptionalboolean
  • password_hibp_enabledOptionalboolean
  • password_required_charactersOptionalenum
  • security_manual_linking_enabledOptionalboolean
  • security_update_password_require_reauthenticationOptionalboolean
  • sms_autoconfirmOptionalboolean
  • sms_providerOptionalstring
  • 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
  • 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_zoom_enabledOptionalboolean
  • external_zoom_client_idOptionalstring
  • external_zoom_secretOptionalstring
  • 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_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
{ "api_max_request_duration": 42, "db_max_pool_size": 42, "jwt_exp": 42, "mailer_otp_exp": 42, "mailer_otp_length": 42, "mfa_max_enrolled_factors": 42, "mfa_phone_otp_length": 42, "mfa_phone_max_frequency": 42, "password_min_length": 42, "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, "security_refresh_token_reuse_interval": 42, "sessions_inactivity_timeout": 42, "sessions_timebox": 42, "sms_max_frequency": 42, "sms_otp_exp": 42, "sms_otp_length": 42, "smtp_max_frequency": 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_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", "mailer_allow_unverified_email_sign_ins": true, "mailer_autoconfirm": true, "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_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_template": "lorem", "password_hibp_enabled": true, "password_required_characters": "lorem", "refresh_token_rotation_enabled": true, "saml_enabled": true, "saml_external_url": "lorem", "saml_allow_encrypted_assertions": true, "security_captcha_enabled": true, "security_captcha_provider": "lorem", "security_captcha_secret": "lorem", "security_manual_linking_enabled": true, "security_update_password_require_reauthentication": true, "sessions_single_per_user": true, "sessions_tags": "lorem", "site_url": "lorem", "sms_autoconfirm": true, "sms_messagebird_access_key": "lorem", "sms_messagebird_originator": "lorem", "sms_provider": "lorem", "sms_template": "lorem", "sms_test_otp": "lorem", "sms_test_otp_valid_until": "lorem", "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": "lorem", "smtp_host": "lorem", "smtp_pass": "lorem", "smtp_port": "lorem", "smtp_sender_name": "lorem", "smtp_user": "lorem", "uri_allow_list": "lorem"}

禁用项目的只读模式,持续15分钟

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

Path parameters

  • refRequiredstring

    项目引用

Response codes

  • 201
  • 403
  • 500

Response (201)

1
{}

[测试版] 在项目上启用数据库Webhooks功能

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

Path parameters

  • refRequiredstring

    项目引用

Response codes

  • 201
  • 403
  • 500

Response (201)

1
{}

生成TypeScript类型

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

返回您模式的TypeScript类型,供supabase-js使用。

Path parameters

  • refRequiredstring

Query parameters

  • included_schemasOptionalstring

Response codes

  • 200
  • 403
  • 500

Response (200)

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

获取特定的SQL片段

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" }}

获取项目的Postgres配置

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

Path parameters

  • refRequiredstring

    项目引用

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, "shared_buffers": "lorem", "statement_timeout": "lorem", "track_commit_timestamp": true, "wal_keep_size": "lorem", "wal_sender_timeout": "lorem", "work_mem": "lorem", "session_replication_role": "origin"}

获取项目的pgbouncer配置

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

Path parameters

  • refRequiredstring

    项目引用

Response codes

  • 200
  • 403
  • 500

Response (200)

1
2
3
4
5
6
7
{ "pool_mode": "transaction", "default_pool_size": 42, "ignore_startup_parameters": "lorem", "max_client_conn": 42, "connection_string": "lorem"}

返回项目的只读模式状态

get/v1/projects/{ref}/readonly

Path parameters

  • refRequiredstring

    项目引用

Response codes

  • 200
  • 403
  • 500

Response (200)

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

[测试版] 获取项目的SSL强制执行配置。

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

Path parameters

  • refRequiredstring

Response codes

  • 200
  • 403
  • 500

Response (200)

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

列出所有备份

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

Path parameters

  • refRequiredstring

    项目引用

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": [ { "status": "COMPLETED", "is_physical_backup": true, "inserted_at": "lorem" } ], "physical_backup_data": { "earliest_physical_backup_date_unix": 42, "latest_physical_backup_date_unix": 42 }}

列出当前登录用户的SQL代码片段

get/v1/snippets

Query parameters

  • cursorOptionalstring
  • limitOptionalstring
  • sort_byOptionalenum
  • sort_orderOptionalenum
  • project_refOptionalstring

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"}

[测试版] 移除读取副本

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

Path parameters

  • refRequiredstring

Body

  • database_identifierRequiredstring

Response codes

  • 201
  • 403
  • 500

Response (201)

1
{}

恢复数据库的时间点备份

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

Path parameters

  • refRequiredstring

Body

  • recovery_time_target_unixRequiredinteger

Response codes

  • 201
  • 403

Response (201)

1
{}

[测试版] 运行SQL查询

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

Path parameters

  • refRequiredstring

Body

  • queryRequiredstring

Response codes

  • 201
  • 403
  • 500

Response (201)

1
{}

[测试版] 设置只读副本

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

Path parameters

  • refRequiredstring

Body

  • read_replica_regionRequiredenum

Response codes

  • 201
  • 403
  • 500

Response (201)

1
{}

更新项目的Postgres配置

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

Path parameters

  • refRequiredstring

    项目引用

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
  • shared_buffersOptionalstring
  • statement_timeoutOptionalstring
  • track_commit_timestampOptionalboolean
  • wal_keep_sizeOptionalstring
  • wal_sender_timeoutOptionalstring
  • work_memOptionalstring
  • restart_databaseOptionalboolean
  • session_replication_roleOptionalenum

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, "shared_buffers": "lorem", "statement_timeout": "lorem", "track_commit_timestamp": true, "wal_keep_size": "lorem", "wal_sender_timeout": "lorem", "work_mem": "lorem", "session_replication_role": "origin"}

[Beta] 更新项目的SSL强制执行配置。

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

Path parameters

  • refRequiredstring

Body

  • requestedConfigRequiredobject

Response codes

  • 200
  • 403
  • 500

Response (200)

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

[测试版] 为项目激活自定义主机名

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

Path parameters

  • refRequiredstring

    项目引用

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": [ {} ], "messages": [ {} ], "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" } }}

[测试版] 为项目激活个性化子域名

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

Path parameters

  • refRequiredstring

Body

  • vanity_subdomainRequiredstring

Response codes

  • 201
  • 403
  • 500

Response (201)

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

[测试版] 检查个性化子域名可用性

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

Path parameters

  • refRequiredstring

Body

  • vanity_subdomainRequiredstring

Response codes

  • 201
  • 403
  • 500

Response (201)

1
2
3
{ "available": true}

[Beta] 删除项目的自定义子域名配置

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

Path parameters

  • refRequiredstring

Response codes

  • 200
  • 403
  • 500

Response (200)

1
{}

[Beta] 获取项目的自定义主机名配置

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

Path parameters

  • refRequiredstring

    项目引用

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": [ {} ], "messages": [ {} ], "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" } }}

[测试版] 获取当前自定义子域名配置

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

Path parameters

  • refRequiredstring

Response codes

  • 200
  • 403
  • 500

Response (200)

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

[Beta] 更新项目的自定义主机名配置

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

Path parameters

  • refRequiredstring

    项目引用

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": [ {} ], "messages": [ {} ], "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" } }}

[测试版] 尝试验证项目自定义主机名配置的DNS设置

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

Path parameters

  • refRequiredstring

    项目引用

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": [ {} ], "messages": [ {} ], "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" } }}

批量更新功能

put/v1/projects/{ref}/functions

批量更新函数。该操作将创建新函数或替换现有函数,具有幂等性。注意:您需要手动提升版本号。

Path parameters

  • refRequiredstring

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
{ "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" } ]}

创建一个函数deprecated

post/v1/projects/{ref}/functions

此端点已弃用 - 请使用部署端点。创建一个函数并将其添加到指定项目中。

Path parameters

  • refRequiredstring

Query parameters

  • import_map_pathOptionalstring
  • entrypoint_pathOptionalstring
  • import_mapOptionalboolean
  • verify_jwtOptionalboolean
  • nameOptionalstring
  • slugOptionalstring

Body

  • slugRequiredstring
  • nameRequiredstring
  • bodyRequiredstring
  • verify_jwtOptionalboolean

Response codes

  • 201
  • 403
  • 500

Response (201)

1
2
3
4
5
6
7
8
9
10
11
12
13
{ "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"}

删除函数

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

从指定项目中删除具有指定slug的函数。

Path parameters

  • function_slugRequiredstring
  • refRequiredstring

Response codes

  • 200
  • 403
  • 500

Response (200)

1
{}

部署函数

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

用于部署函数的新端点。如果函数不存在则会创建。

Path parameters

  • refRequiredstring

Query parameters

  • bundleOnlyOptionalboolean
  • slugOptionalstring

Body

  • fileOptionalArray<string>
  • metadataRequiredobject

Response codes

  • 201
  • 403
  • 500

Response (201)

1
2
3
4
5
6
7
8
9
10
11
12
13
{ "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"}

获取函数

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

获取具有指定标识和项目的函数。

Path parameters

  • function_slugRequiredstring
  • refRequiredstring

Response codes

  • 200
  • 403
  • 500

Response (200)

1
2
3
4
5
6
7
8
9
10
11
12
13
{ "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"}

获取函数体

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

检索指定slug和项目的函数体。

Path parameters

  • function_slugRequiredstring
  • refRequiredstring

Response codes

  • 200
  • 403
  • 500

Response (200)

1
{}

列出所有函数

get/v1/projects/{ref}/functions

返回您之前添加到指定项目的所有函数。

Path parameters

  • refRequiredstring

Response codes

  • 200
  • 403
  • 500

Response (200)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[ { "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" }]

更新函数

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

更新具有指定slug和项目的函数。

Path parameters

  • function_slugRequiredstring
  • refRequiredstring

Query parameters

  • import_map_pathOptionalstring
  • entrypoint_pathOptionalstring
  • import_mapOptionalboolean
  • verify_jwtOptionalboolean
  • nameOptionalstring

Body

  • nameOptionalstring
  • bodyOptionalstring
  • verify_jwtOptionalboolean

Response codes

  • 200
  • 403
  • 500

Response (200)

1
2
3
4
5
6
7
8
9
10
11
12
13
{ "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"}

创建数据库分支

post/v1/projects/{ref}/branches

从指定项目创建数据库分支。

Path parameters

  • refRequiredstring

Body

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

Response codes

  • 201
  • 403
  • 500

Response (201)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
{ "id": "lorem", "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": "lorem", "updated_at": "lorem"}

删除数据库分支

delete/v1/branches/{branch_id}

删除指定的数据库分支

Path parameters

  • branch_idRequiredstring

Response codes

  • 200
  • 500

Response (200)

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

禁用预览分支功能

delete/v1/projects/{ref}/branches

禁用指定项目的预览分支功能

Path parameters

  • refRequiredstring

Response codes

  • 200
  • 403
  • 500

Response (200)

1
{}

获取数据库分支配置

get/v1/branches/{branch_id}

获取指定数据库分支的配置

Path parameters

  • branch_idRequiredstring

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": 42, "db_user": "lorem", "db_pass": "lorem", "jwt_secret": "lorem"}

列出所有数据库分支

get/v1/projects/{ref}/branches

返回指定项目的所有数据库分支。

Path parameters

  • refRequiredstring

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", "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": "lorem", "updated_at": "lorem" }]

推送数据库分支

post/v1/branches/{branch_id}/push

推送指定的数据库分支

Path parameters

  • branch_idRequiredstring

Response codes

  • 201
  • 500

Response (201)

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

重置数据库分支

post/v1/branches/{branch_id}/reset

重置指定的数据库分支

Path parameters

  • branch_idRequiredstring

Response codes

  • 201
  • 500

Response (201)

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

更新数据库分支配置

patch/v1/branches/{branch_id}

更新指定数据库分支的配置

Path parameters

  • branch_idRequiredstring

Body

  • branch_nameOptionalstring
  • git_branchOptionalstring
  • reset_on_pushOptionalDeprecatedboolean
  • persistentOptionalboolean
  • statusOptionalenum

Response codes

  • 200
  • 500

Response (200)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
{ "id": "lorem", "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": "lorem", "updated_at": "lorem"}

[测试版] 通过OAuth授权用户

get/v1/oauth/authorize

Query parameters

  • code_challenge_methodOptionalenum
  • code_challengeOptionalstring
  • stateOptionalstring
  • response_typeRequiredstring
  • redirect_uriRequiredstring
  • client_idRequiredstring

Response codes

  • 303

[测试版] 将授权码兑换为用户访问令牌和刷新令牌

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"}

[测试版] 撤销OAuth应用授权及其对应的令牌

post/v1/oauth/revoke

Body

  • client_idRequiredstring
  • client_secretRequiredstring
  • refresh_tokenRequiredstring

Response codes

  • 204

Response (204)

1
{}

创建组织

post/v1/organizations

Body

  • nameRequiredstring

Response codes

  • 201
  • 500

Response (201)

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

获取有关组织的信息

get/v1/organizations/{slug}

Path parameters

  • slugRequiredstring

Response codes

  • 200
  • 403

Response (200)

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

列出所有组织

get/v1/organizations

返回您当前所属的组织列表。

Response codes

  • 200
  • 500

Response (200)

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

列出组织成员

get/v1/organizations/{slug}/members

Path parameters

  • slugRequiredstring

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 }]

取消指定项目的恢复

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

Path parameters

  • refRequiredstring

Response codes

  • 200
  • 403

Response (200)

1
{}

创建项目

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"}

删除指定项目

delete/v1/projects/{ref}

Path parameters

  • refRequiredstring

    项目引用

Response codes

  • 200
  • 403

Response (200)

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

[Beta] 移除网络封禁

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

Path parameters

  • refRequiredstring

Body

  • ipv4_addressesRequiredArray<string>

Response codes

  • 200
  • 403
  • 500

Response (200)

1
{}

[测试版] 获取项目的网络限制

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

Path parameters

  • refRequiredstring

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"}

[测试版] 返回项目是否符合升级条件

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

Path parameters

  • refRequiredstring

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
{ "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" } ], "potential_breaking_changes": [ "lorem" ], "duration_estimate_hours": 42, "legacy_auth_custom_roles": [ "lorem" ], "extension_dependent_objects": [ "lorem" ]}

[测试版] 获取项目升级的最新状态

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

Path parameters

  • refRequiredstring

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 }}

获取属于认证用户的特定项目

get/v1/projects/{ref}

Path parameters

  • refRequiredstring

    项目引用

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" }}

获取项目的服务健康状态

get/v1/projects/{ref}/health

Path parameters

  • refRequiredstring

    项目引用

Query parameters

  • timeout_msOptionalinteger
  • servicesRequiredArray<enum>

Response codes

  • 200
  • 403
  • 500

Response (200)

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

[测试版] 获取项目的网络封禁列表

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

Path parameters

  • refRequiredstring

Response codes

  • 201
  • 403
  • 500

Response (201)

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

列出所有项目

get/v1/projects

返回您之前创建的所有项目列表

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" } }]

列出给定项目可用的恢复版本

get/v1/projects/{ref}/restore

Path parameters

  • refRequiredstring

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" } ]}

暂停指定项目

post/v1/projects/{ref}/pause

Path parameters

  • refRequiredstring

    项目引用

Response codes

  • 200
  • 403

Response (200)

1
{}

恢复指定项目

post/v1/projects/{ref}/restore

Path parameters

  • refRequiredstring

Body

    Response codes

    • 200
    • 403

    Response (200)

    1
    {}

    [测试版] 更新项目的网络限制

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

    Path parameters

    • refRequiredstring

    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"}

    [测试版] 升级项目的Postgres版本

    post/v1/projects/{ref}/upgrade

    Path parameters

    • refRequiredstring

    Body

    • target_versionRequiredstring
    • release_channelOptionalenum

    Response codes

    • 201
    • 403
    • 500

    Response (201)

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

    获取项目的postgrest配置

    get/v1/projects/{ref}/postgrest

    Path parameters

    • refRequiredstring

      项目引用

    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"}

    更新项目的PostgREST配置

    patch/v1/projects/{ref}/postgrest

    Path parameters

    • refRequiredstring

      项目引用

    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}

    批量创建密钥

    post/v1/projects/{ref}/secrets

    创建多个密钥并将其添加到指定项目。

    Path parameters

    • refRequiredstring

    Body

    Array of object

    Response codes

    • 201
    • 403
    • 500

    Response (201)

    1
    {}

    批量删除密钥

    delete/v1/projects/{ref}/secrets

    从指定项目中删除所有具有给定名称的密钥

    Path parameters

    • refRequiredstring

    Body

    Array of string

    Response codes

    • 200
    • 403
    • 500

    Response (200)

    1
    {}

    [Beta] 获取项目的pgsodium配置

    get/v1/projects/{ref}/pgsodium

    Path parameters

    • refRequiredstring

    Response codes

    • 200
    • 403
    • 500

    Response (200)

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

    获取项目API密钥

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

    Path parameters

    • refRequiredstring

    Query parameters

    • revealOptionalboolean

    Response codes

    • 200
    • 403

    Response (200)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    [ { "name": "lorem", "api_key": "lorem", "id": "lorem", "type": "publishable", "prefix": "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/v1/projects/{ref}/secrets

    返回您之前添加到指定项目的所有密钥。

    Path parameters

    • refRequiredstring

    Response codes

    • 200
    • 403
    • 500

    Response (200)

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

    [测试版]更新项目的pgsodium配置。更新root_key可能导致使用旧密钥加密的所有数据无法访问。

    put/v1/projects/{ref}/pgsodium

    Path parameters

    • refRequiredstring

    Body

    • root_keyRequiredstring

    Response codes

    • 200
    • 403
    • 500

    Response (200)

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

    获取项目的存储配置

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

    Path parameters

    • refRequiredstring

      项目引用

    Response codes

    • 200
    • 403
    • 500

    Response (200)

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

    列出所有存储桶

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

    Path parameters

    • refRequiredstring

      项目引用

    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 }]

    更新项目的存储配置

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

    Path parameters

    • refRequiredstring

      项目引用

    Body

    • fileSizeLimitOptionalinteger
    • featuresOptionalobject

    Response codes

    • 200
    • 403
    • 500

    Response (200)

    1
    {}