curl --request POST \
--url https://api.gigstack.io/v2/users/me/scoped-api-keys/emergency-revoke \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"operation_id": "<string>"
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({operation_id: '<string>'})
};
fetch('https://api.gigstack.io/v2/users/me/scoped-api-keys/emergency-revoke', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.gigstack.io/v2/users/me/scoped-api-keys/emergency-revoke"
payload = { "operation_id": "<string>" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"success": true,
"data": {
"operation_id": "<string>",
"billing_account_id": "<string>",
"status": "processing",
"revoked_count": 1,
"scope": "billing_account_scoped_keys",
"legacy_keys_affected": false,
"mcp_revoked": false,
"oauth_revoked": false,
"created_at": 1,
"completed_at": 1
},
"timestamp": 1
}Revoke all billing-account scoped keys with a saved operation UUID
Integration note: Requires the current personal billing-account owner; delegated credential administrators, per-key managers and all API keys are refused. Revokes scoped keys across both modes, without affecting legacy API, MCP or OAuth credentials. Persist the operation UUID before POST. Read GET after an uncertain response; repeating POST with that same UUID deliberately resumes the saved operation. Never automatically create a fresh UUID or infer completion from request acceptance. processing exposes partial revoked_count and completed_at:null; completed has the final count and completion timestamp. Invalidates pending scoped create/rotate approvals. No credential secrets are returned.
Requires the current personal billing-account owner; delegated credential administrators, per-key managers and all API keys are refused. Revokes scoped keys across both modes, without affecting legacy API, MCP or OAuth credentials. Persist the operation UUID before POST. Read GET after an uncertain response; repeating POST with that same UUID deliberately resumes the saved operation. Never automatically create a fresh UUID or infer completion from request acceptance. processing exposes partial revoked_count and completed_at:null; completed has the final count and completion timestamp. Invalidates pending scoped create/rotate approvals. No credential secrets are returned.
curl --request POST \
--url https://api.gigstack.io/v2/users/me/scoped-api-keys/emergency-revoke \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"operation_id": "<string>"
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({operation_id: '<string>'})
};
fetch('https://api.gigstack.io/v2/users/me/scoped-api-keys/emergency-revoke', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.gigstack.io/v2/users/me/scoped-api-keys/emergency-revoke"
payload = { "operation_id": "<string>" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"success": true,
"data": {
"operation_id": "<string>",
"billing_account_id": "<string>",
"status": "processing",
"revoked_count": 1,
"scope": "billing_account_scoped_keys",
"legacy_keys_affected": false,
"mcp_revoked": false,
"oauth_revoked": false,
"created_at": 1,
"completed_at": 1
},
"timestamp": 1
}Authorizations
Authentication Method: HTTP Bearer token.
The runtime requires the literal Bearer prefix — a bare token in the
Authorization header is rejected with 401 unauthorized.
Header Format: Authorization: Bearer YOUR_API_KEY
Your API key is a JWT. Live keys operate on live data (livemode: true);
test keys operate on isolated test data (livemode: false).
Get your key at: app.gigstack.pro/settings?tab=api
Errors: credential failures are answered by the authentication layer with a raw
{ "message": … } body, not the standardized envelope — 401 for a missing, malformed or
expired token, 403 for a revoked key or a plan without API access. See the Unauthorized
and AuthForbidden responses.
Query Parameters
^[A-Za-z0-9_-]{1,128}$Body
^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$