API reference
3 endpoints, served at https://orbitwrite.com/api/v1. Each one lists the credentials it accepts, its parameters and every response it can give.
The page's custom links, channel order and linkable channels (each with the public URL the page links to and whether it is hidden). Any member may read (publicProfile:read).
A signed-in session only. The Orbitwrite app calls this; an API key is refused.
organizationIdstringRequiredAt least 1 character.
200PublicProfileSettingsThe page's settings
linksPublicProfileLinkView[]RequiredchannelOrderstring[]RequiredChannel ids in the order they appear on the page. Empty when the workspace hasn't set an explicit order.
channelsPublicProfileChannel[]RequiredThe connected channels that can appear on the page — those with a public profile URL — in the page's saved order, hidden ones included. Slack, Discord and any channel without a resolvable profile URL are omitted; a custom link covers those.
idstringRequiredplatformstringRequiredhandlestring | any | nullRequireddisplayNamestring | any | nullRequiredurlstringRequiredThe public profile URL the page links this channel to.
curl -X GET "https://orbitwrite.com/api/v1/public-profile?organizationId=organizationId" \
-H "Authorization: Bearer $ORBITWRITE_API_KEY"{
"links": [
{
"id": "string",
"title": "string",
"url": "string",
"icon": {
"host": "string",
"url": "string"
}
}
],
"channelOrder": [
"string"
],
"channels": [
{
"id": "string",
"platform": "string",
"handle": "string",
"displayName": "string",
"url": "string",
"hidden": true
}
]
}Requires publicProfile:update. A partial save — an omitted field is left unchanged, so reordering channels can't wipe the custom links.
A signed-in session only. The Orbitwrite app calls this; an API key is refused.
organizationIdstringRequiredAt least 1 character.
linksPublicProfileLink[]channelOrderstring[]200PublicProfileSettingsThe saved settings
linksPublicProfileLinkView[]RequiredchannelOrderstring[]RequiredChannel ids in the order they appear on the page. Empty when the workspace hasn't set an explicit order.
channelsPublicProfileChannel[]RequiredThe connected channels that can appear on the page — those with a public profile URL — in the page's saved order, hidden ones included. Slack, Discord and any channel without a resolvable profile URL are omitted; a custom link covers those.
idstringRequiredplatformstringRequiredhandlestring | any | nullRequireddisplayNamestring | any | nullRequiredurlstringRequiredThe public profile URL the page links this channel to.
curl -X PATCH "https://orbitwrite.com/api/v1/public-profile" \
-H "Authorization: Bearer $ORBITWRITE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"organizationId": "string"
}'{
"links": [
{
"id": "string",
"title": "string",
"url": "string",
"icon": {
"host": "string",
"url": "string"
}
}
],
"channelOrder": [
"string"
],
"channels": [
{
"id": "string",
"platform": "string",
"handle": "string",
"displayName": "string",
"url": "string",
"hidden": true
}
]
}Requires publicProfile:update. The flag is stored on the channel row, but showing a channel publicly is a public-profile decision, not a channel-management one.
A signed-in session only. The Orbitwrite app calls this; an API key is refused.
accountIdstringRequiredAt least 1 character.
200PublicProfileMutationResultThe mutation was applied
okbooleanRequiredcurl -X POST "https://orbitwrite.com/api/v1/public-profile/channels/{accountId}/visibility" \
-H "Authorization: Bearer $ORBITWRITE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"hidden": true
}'{
"ok": true
}