API reference
2 endpoints, served at https://orbitwrite.com/api/v1. Each one lists the credentials it accepts, its parameters and every response it can give.
Newest-first collaboration and posting activity — publishes, schedules, approvals, comments, campaigns and team changes. Rows from one composer session collapse into a single entry whose data.accounts lists every channel. Cursor-paged rather than offset-paged: the feed grows at the head, so an offset would re-show rows as new activity lands mid-paging.
An API key or OAuth access token as a bearer token, or a signed-in session.
organizationIdstringSession callers only — an API key already determines the workspace.
At least 1 character.
limitintegerBetween 1 and 100. Defaults to 50.
cursorstringOpaque cursor from a previous response's nextCursor. Omit for the first page.
typestring | string[]Filter by event type. Repeat for OR (e.g. ?type=post.published&type=approval.approved).
200ActivityFeedA page of activity
entriesActivityEntry[]RequiredidstringRequiredtypestringRequired"post.created""post.edited""post.title_changed""post.tags_changed""post.campaign_changed""post.ungrouped""post.planned""post.replanned""post.unplanned""post.scheduled""post.rescheduled""post.unscheduled""post.published""post.failed""post.returned_to_draft""post.deleted""approval.requested""approval.reviewers_changed""approval.approved""approval.rejected""approval.reset""approval.removed""comment.added""campaign.created""campaign.completed""member.invited""member.joined""streak.reached"actorActivityActor | nullRequiredNull for system-generated events (a campaign reaching its end date, a streak milestone).
targetTypestring | nullRequiredtargetIdstring | nullRequireddataobjectRequiredDisplay payload; shape varies per type (see ActivityDataMap in @orbitwrite/core/activity). Every field is a copy taken at write time, so a deleted post's activity line still renders.
createdAtstringRequiredISO 8601.
nextCursorstring | nullRequiredPass back as cursor for the next page; null on the last page.
curl -X GET "https://orbitwrite.com/api/v1/activity" \
-H "Authorization: Bearer $ORBITWRITE_API_KEY"{
"entries": [
{
"id": "string",
"type": "post.created",
"actor": {
"id": "string",
"name": "string",
"image": "string"
},
"targetType": "string",
"targetId": "string",
"data": {},
"createdAt": "string"
}
],
"nextCursor": "string"
}Newest-first history of one post: who created it, content edits (one entry per editing session, naming the channels that changed), title / tag / campaign changes, schedules and reschedules, approval requests and decisions, comments, publishes, failures and deletions. Unpaged — it backs the composer's Info panel, not a history browser.
An API key or OAuth access token as a bearer token, or a signed-in session.
groupIdstringRequiredThe post's composer group id.
At least 1 character.
limitintegerBetween 1 and 100. Defaults to 20.
200PostActivityFeedThe post's activity, newest first
entriesActivityEntry[]RequiredidstringRequiredtypestringRequired"post.created""post.edited""post.title_changed""post.tags_changed""post.campaign_changed""post.ungrouped""post.planned""post.replanned""post.unplanned""post.scheduled""post.rescheduled""post.unscheduled""post.published""post.failed""post.returned_to_draft""post.deleted""approval.requested""approval.reviewers_changed""approval.approved""approval.rejected""approval.reset""approval.removed""comment.added""campaign.created""campaign.completed""member.invited""member.joined""streak.reached"actorActivityActor | nullRequiredNull for system-generated events (a campaign reaching its end date, a streak milestone).
targetTypestring | nullRequiredtargetIdstring | nullRequireddataobjectRequiredDisplay payload; shape varies per type (see ActivityDataMap in @orbitwrite/core/activity). Every field is a copy taken at write time, so a deleted post's activity line still renders.
createdAtstringRequiredISO 8601.
curl -X GET "https://orbitwrite.com/api/v1/posts/{groupId}/activity" \
-H "Authorization: Bearer $ORBITWRITE_API_KEY"{
"entries": [
{
"id": "string",
"type": "post.created",
"actor": {
"id": "string",
"name": "string",
"image": "string"
},
"targetType": "string",
"targetId": "string",
"data": {},
"createdAt": "string"
}
]
}