import requests
url = "https://api.13-215-85-171.sslip.io/v1/keys"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)curl --request GET \
--url https://api.13-215-85-171.sslip.io/v1/keys \
--header 'Authorization: Bearer <token>'[
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"prefix": "ns_live_a1b2",
"is_active": true,
"name": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"last_used_at": "2023-11-07T05:31:56Z",
"scope": "<string>",
"expires_at": "2023-11-07T05:31:56Z",
"revoked_at": "2023-11-07T05:31:56Z",
"rotation_parent_key_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
]{
"error": "Missing or invalid bearer credential",
"code": "unauthorized",
"request_id": "req_123"
}{
"error": "Verify your email before using self-serve API routes",
"code": "email_not_verified",
"request_id": "req_123"
}{
"error": "<string>",
"code": "invalid_request",
"error_detail": {
"code": "unauthorized",
"message": "<string>",
"phase": "auth",
"retryable": true,
"suggested_action": "<string>",
"step_index": 123,
"attempt": 123,
"max_attempts": 123,
"cache_subject": "<string>",
"build_id": "<string>",
"request_id": "<string>",
"details": {}
},
"request_id": "<string>",
"build_id": "<string>"
}List API keys for the authenticated user
Dormant during the private-beta key-only e2e. This route returns
feature_unavailable unless NULLSPACE_SELF_SERVE_AUTH_ENABLED=true
is set. When enabled, it returns key metadata only; plaintext keys and
hashes are never returned.
import requests
url = "https://api.13-215-85-171.sslip.io/v1/keys"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)curl --request GET \
--url https://api.13-215-85-171.sslip.io/v1/keys \
--header 'Authorization: Bearer <token>'[
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"prefix": "ns_live_a1b2",
"is_active": true,
"name": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"last_used_at": "2023-11-07T05:31:56Z",
"scope": "<string>",
"expires_at": "2023-11-07T05:31:56Z",
"revoked_at": "2023-11-07T05:31:56Z",
"rotation_parent_key_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
]{
"error": "Missing or invalid bearer credential",
"code": "unauthorized",
"request_id": "req_123"
}{
"error": "Verify your email before using self-serve API routes",
"code": "email_not_verified",
"request_id": "req_123"
}{
"error": "<string>",
"code": "invalid_request",
"error_detail": {
"code": "unauthorized",
"message": "<string>",
"phase": "auth",
"retryable": true,
"suggested_action": "<string>",
"step_index": 123,
"attempt": 123,
"max_attempts": 123,
"cache_subject": "<string>",
"build_id": "<string>",
"request_id": "<string>",
"details": {}
},
"request_id": "<string>",
"build_id": "<string>"
}Authorizations
Supabase Auth access token passed as Bearer token
Response
API keys for the authenticated user
Stored display prefix; the plaintext key is never returned.
"ns_live_a1b2"
Wall-clock time the key was last seen on an authenticated request, updated best-effort by the auth middleware. Always present (nullable) so clients can distinguish "never used" from "field absent".
Advisory free-text scope label (T08 Phase 10); not enforced server-side.
Effective expiration time for a key scheduled for rotation retirement.
Original key id when this key was minted by a rotation.