Regenerate an API key
POSThttps://api.spice.ai/v1/projects/{projectId}/api-keys
Regenerates an API key for the specified project. This invalidates the previous key. Use key_number to specify which key to regenerate (0 for both, 1 for primary, 2 for secondary).
Authorizations
AuthorizationstringRequiredBearer <token>. Authentication lists the tokens it accepts.
Path parameters
projectIdintegerRequiredThe ID of the project
Header parameters
X-Org-NamestringThe organization to act on, by handle. Omit it to act on the organization the credential is bound to; sending it blank is a 400, not the same as omitting it. A user credential may name any organization its owner belongs to; a machine credential is pinned to its own. A portal session token is bound to none, so it must send this header on every route but
GET /v1/orgs(400org_assertion_requiredotherwise).- Pattern:
^[A-Za-z0-9._-]{1,255}$
- Pattern:
Body
application/jsonOptional
key_numberintegerWhich API key to regenerate (0 = both, 1 = primary, 2 = secondary)
- Allowed values:
0,1,2 - Default:
1
- Allowed values:
Responses
200API key regenerated successfullyapplication/json
api_keystring | nullPrimary API key
api_key_2string | nullSecondary API key
regenerated_keyintegerWhich key was regenerated (0 = both, 1 = primary, 2 = secondary)
- Allowed values:
0,1,2
- Allowed values:
400Invalid request body or project ID
401Unauthorized
403Insufficient scope
404Project not found
500Internal server error
curl -X POST "https://api.spice.ai/v1/projects/<projectId>/api-keys" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"key_number": 1
}'POST /v1/projects/<projectId>/api-keys HTTP/1.1
Host: api.spice.ai
Authorization: Bearer <token>
Content-Type: application/json
Content-Length: 21
{
"key_number": 1
}{
"api_key": "string",
"api_key_2": "string",
"regenerated_key": 0
}application/json
No response body
No response body
No response body
No response body
No response body
POSThttps://api.spice.ai/v1/orgs/{orgId}/projects/{projectId}/api-keys
The org is orgId in the path. Regenerates an API key for the specified project. This invalidates the previous key. Use key_number to specify which key to regenerate (0 for both, 1 for primary, 2 for secondary).
Authorizations
AuthorizationstringRequiredBearer <token>. Authentication lists the tokens it accepts.
Path parameters
orgIdintegerRequiredThe org id from GET /v1/orgs
- Minimum:
1
- Minimum:
projectIdintegerRequiredThe ID of the project
Header parameters
X-Org-NamestringWhen present, X-Org-Name must name the same org as orgId. Otherwise the request returns org_path_mismatch (400).
- Pattern:
^[A-Za-z0-9._-]{1,255}$
- Pattern:
Body
application/jsonOptional
key_numberintegerWhich API key to regenerate (0 = both, 1 = primary, 2 = secondary)
- Allowed values:
0,1,2 - Default:
1
- Allowed values:
Responses
200API key regenerated successfullyapplication/json
api_keystring | nullPrimary API key
api_key_2string | nullSecondary API key
regenerated_keyintegerWhich key was regenerated (0 = both, 1 = primary, 2 = secondary)
- Allowed values:
0,1,2
- Allowed values:
400Bad Request
Invalid request body or project ID. orgId is not a valid org id (invalid_org_id), or X-Org-Name does not name that org (org_path_mismatch).
401Unauthorized
403Forbidden
Insufficient scope. The caller is not a member of the org (org_forbidden). A machine credential named a different org (org_assertion_mismatch). The org is deleted (org_deleted).
404Project not found
500Internal server error
curl -X POST "https://api.spice.ai/v1/orgs/<orgId>/projects/<projectId>/api-keys" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"key_number": 1
}'POST /v1/orgs/<orgId>/projects/<projectId>/api-keys HTTP/1.1
Host: api.spice.ai
Authorization: Bearer <token>
Content-Type: application/json
Content-Length: 21
{
"key_number": 1
}{
"api_key": "string",
"api_key_2": "string",
"regenerated_key": 0
}application/json
No response body
No response body
No response body
No response body
No response body
POSThttps://api.spice.ai/v1/apps/{appId}/api-keysDeprecated
Legacy alias of /v1/projects/{projectId}/api-keys — projects were previously called apps. Regenerates an API key for the specified project. This invalidates the previous key. Use key_number to specify which key to regenerate (0 for both, 1 for primary, 2 for secondary).
Authorizations
AuthorizationstringRequiredBearer <token>. Authentication lists the tokens it accepts.
Path parameters
appIdintegerRequiredThe ID of the project
Header parameters
X-Org-NamestringThe organization to act on, by handle. Omit it to act on the organization the credential is bound to; sending it blank is a 400, not the same as omitting it. A user credential may name any organization its owner belongs to; a machine credential is pinned to its own. A portal session token is bound to none, so it must send this header on every route but
GET /v1/orgs(400org_assertion_requiredotherwise).- Pattern:
^[A-Za-z0-9._-]{1,255}$
- Pattern:
Body
application/jsonOptional
key_numberintegerWhich API key to regenerate (0 = both, 1 = primary, 2 = secondary)
- Allowed values:
0,1,2 - Default:
1
- Allowed values:
Responses
200API key regenerated successfullyapplication/json
api_keystring | nullPrimary API key
api_key_2string | nullSecondary API key
regenerated_keyintegerWhich key was regenerated (0 = both, 1 = primary, 2 = secondary)
- Allowed values:
0,1,2
- Allowed values:
400Invalid request body or project ID
401Unauthorized
403Insufficient scope
404Project not found
500Internal server error
OpenAPIapi.spice.ai/openapi.json
curl -X POST "https://api.spice.ai/v1/apps/<appId>/api-keys" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"key_number": 1
}'POST /v1/apps/<appId>/api-keys HTTP/1.1
Host: api.spice.ai
Authorization: Bearer <token>
Content-Type: application/json
Content-Length: 21
{
"key_number": 1
}{
"api_key": "string",
"api_key_2": "string",
"regenerated_key": 0
}application/json
No response body
No response body
No response body
No response body
No response body