API reference
5 endpoints, served at https://orbitwrite.com/api/v1. Each one lists the credentials it accepts, its parameters and every response it can give.
Everyone in the workspace, oldest first. Any member may read it, as may the workspace's API keys.
The length of this list is what a plan's member limit is checked against — see GET /entitlements for the limit itself.
An API key or OAuth access token as a bearer token, or a signed-in session.
organizationIdstringRequiredAt least 1 character.
200WorkspaceMembersThe workspace's members
curl -X GET "https://orbitwrite.com/api/v1/workspaces/{organizationId}/members" \
-H "Authorization: Bearer $ORBITWRITE_API_KEY"{
"members": [
{
"id": "string",
"userId": "string",
"role": "string",
"createdAt": "string",
"lastSeenAt": "string",
"user": {
"name": "string",
"email": "string",
"image": "string"
}
}
]
}Normalises slug the way PATCH /workspaces/{organizationId} does and reports whether that call would accept it. The workspace's own current slug is available.
A signed-in session only. The Orbitwrite app calls this; an API key is refused.
organizationIdstringRequiredAt least 1 character.
slugstringRequiredAt most 200 characters.
200WorkspaceSlugAvailabilityWhether the slug is available
curl -X GET "https://orbitwrite.com/api/v1/workspaces/{organizationId}/slug-availability?slug=slug" \
-H "Authorization: Bearer $ORBITWRITE_API_KEY"{
"slug": "string",
"available": true,
"reason": "string"
}Partial update of the workspace name, slug, timezone and public-page fields. Owner/admin only; runs through Better Auth's organization plugin.
Changing slug moves the workspace's app URLs and its link-in-bio page (orbw.link/{slug}); links to the old slug stop working. A slug another workspace holds is a 409.
A signed-in session only. The Orbitwrite app calls this; an API key is refused.
organizationIdstringRequiredAt least 1 character.
namestringBetween 1 and 120 characters.
slugstringThe workspace's URL segment, in the app and at orbw.link. Changing it breaks existing links; the old slug does not redirect.
biostringAt most 500 characters.
websitestringAt most 300 characters.
publicProfileTitlestringAt most 120 characters.
publicProfileThemestringAt most 50 characters.
publicProfileCustomstringAt most 8000 characters.
publicProfileEnabledbooleantimezonestringBetween 1 and 100 characters.
200WorkspaceSummaryThe workspace after the update
curl -X PATCH "https://orbitwrite.com/api/v1/workspaces/{organizationId}" \
-H "Authorization: Bearer $ORBITWRITE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "string",
"slug": "acme",
"bio": "string",
"website": "string",
"publicProfileTitle": "string",
"publicProfileTheme": "string",
"publicProfileCustom": "string",
"publicProfileEnabled": true,
"timezone": "string"
}'{
"id": "string",
"name": "string",
"slug": "string"
}A signed-in session only. The Orbitwrite app calls this; an API key is refused.
organizationIdstringRequiredAt least 1 character.
memberIdstringRequiredAt least 1 character.
rolestringRequired"owner""admin""manager""member"curl -X PATCH "https://orbitwrite.com/api/v1/workspaces/{organizationId}/members/{memberId}" \
-H "Authorization: Bearer $ORBITWRITE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"role": "owner"
}'{
"memberId": "string",
"role": "string"
}A signed-in session only. The Orbitwrite app calls this; an API key is refused.
organizationIdstringRequiredAt least 1 character.
memberIdstringRequiredAt least 1 character.
200MemberRemovedThe member was removed
memberIdstringRequiredcurl -X DELETE "https://orbitwrite.com/api/v1/workspaces/{organizationId}/members/{memberId}" \
-H "Authorization: Bearer $ORBITWRITE_API_KEY"{
"memberId": "string"
}