API reference
4 endpoints, served at https://orbitwrite.com/api/v1. Each one lists the credentials it accepts, its parameters and every response it can give.
Every resource, its actions, and what each workspace role grants. Use it to build the scopes object for POST /api-keys.
A signed-in session only. The Orbitwrite app calls this; an API key is refused.
200PermissionCatalogThe permission catalog
curl -X GET "https://orbitwrite.com/api/v1/api-keys/permissions" \
-H "Authorization: Bearer $ORBITWRITE_API_KEY"{
"resources": {},
"roles": {}
}Returns key metadata (never the secret, which is only surfaced once on creation). Any member may read.
A signed-in session only. The Orbitwrite app calls this; an API key is refused.
organizationIdstringRequiredAt least 1 character.
200ApiKeyListThe workspace's API keys
keysApiKey[]RequiredidstringRequirednamestringRequiredkeyPrefixstringRequiredNon-sensitive prefix for the masked UI preview
lastUsedAtstring | nullRequiredISO 8601.
createdAtstringRequiredISO 8601.
scopesobject | nullRequiredWhat the key may do. null means full workspace authority — the implicit grant of every key minted before scopes existed.
curl -X GET "https://orbitwrite.com/api/v1/api-keys?organizationId=organizationId" \
-H "Authorization: Bearer $ORBITWRITE_API_KEY"{
"keys": [
{
"id": "string",
"name": "string",
"keyPrefix": "string",
"lastUsedAt": "string",
"createdAt": "string",
"scopes": {}
}
]
}Owner/admin only: a key grants programmatic, org-wide access, so minting one is a privileged action. The response carries the full secret exactly once.
A signed-in session only. The Orbitwrite app calls this; an API key is refused.
organizationIdstringRequiredAt least 1 character.
namestringRequiredAt least 1 character.
scopesobjectWhat the key may do, as { resource: [action, …] } — e.g. {"post": ["read", "create"], "tag": ["read"]}. Omit to grant the key full workspace authority (the behaviour of every key minted before scopes existed). Prefer the narrowest set the integration needs. Valid resources and actions are listed in GET /api-keys/permissions.
200CreatedApiKeyThe key was created; secret is shown once
curl -X POST "https://orbitwrite.com/api/v1/api-keys" \
-H "Authorization: Bearer $ORBITWRITE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"organizationId": "string",
"name": "string"
}'{
"ok": true,
"secret": "string"
}Owner/admin only. The key stops authenticating immediately (its hash row is deleted).
A signed-in session only. The Orbitwrite app calls this; an API key is refused.
keyIdstringRequiredAt least 1 character.
organizationIdstringRequiredAt least 1 character.
200ApiKeyMutationResultThe key was revoked
okbooleanRequiredcurl -X DELETE "https://orbitwrite.com/api/v1/api-keys/{keyId}?organizationId=organizationId" \
-H "Authorization: Bearer $ORBITWRITE_API_KEY"{
"ok": true
}