API reference

Integrations

6 endpoints, served at https://orbitwrite.com/api/v1. Each one lists the credentials it accepts, its parameters and every response it can give.

Identify the workspace behind the API key#

GET/api/v1/me

Returns the organization the API key is scoped to — or, for an OAuth access token (orbitwrite login), the workspace the person signed in to. Used by integrations (e.g. Zapier) to test the connection and label it.

Authentication

An API key or OAuth access token as a bearer token.

Responses

200ApiIdentity

The key's organization

Response attributes
organizationobjectRequired
Child attributes
idstringRequired
namestring | nullRequired
slugstring | nullRequired
401Error

Not signed in

Response attributes
errorstringRequired
issuesany[]
GET /api/v1/me
curl -X GET "https://orbitwrite.com/api/v1/me" \
  -H "Authorization: Bearer $ORBITWRITE_API_KEY"
Response
{
  "organization": {
    "id": "string",
    "name": "string",
    "slug": "string"
  }
}

Subscribe to an event (REST Hook)#

POST/api/v1/hooks

Registers a target URL to receive a given event for this workspace. Idempotent: re-subscribing the same (event, URL) returns the existing subscription.

Authentication

An API key or OAuth access token as a bearer token.

Body application/json

eventstringRequired

The Orbitwrite activity a Zap subscribes to.

  • "post_published"
  • "post_failed"
  • "approval_requested"
  • "approval_decided"
  • "account_needs_reconnect"
targetUrlstringRequired

The URL to POST the event payload to (Zapier catch hook).

Format uri.

Responses

200ZapierSubscription

The created (or existing) subscription id

Response attributes
idstringRequired
400Error

Invalid request

Response attributes
errorstringRequired
issuesany[]
401Error

Not signed in

Response attributes
errorstringRequired
issuesany[]
403Error

Not a member of the organization

Response attributes
errorstringRequired
issuesany[]
POST /api/v1/hooks
curl -X POST "https://orbitwrite.com/api/v1/hooks" \
  -H "Authorization: Bearer $ORBITWRITE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "event": "post_published",
  "targetUrl": "https://example.com"
}'
Response
{
  "id": "string"
}

Unsubscribe from an event (REST Hook)#

DELETE/api/v1/hooks/{id}

Removes a subscription. Called by Zapier when a Zap is turned off.

Authentication

An API key or OAuth access token as a bearer token.

Path parameters

idstringRequired

Responses

200object

Subscription removed (or already absent)

Response attributes
okbooleanRequired
401Error

Not signed in

Response attributes
errorstringRequired
issuesany[]
403Error

Not a member of the organization

Response attributes
errorstringRequired
issuesany[]
404Error

Subscription not found

Response attributes
errorstringRequired
issuesany[]
DELETE /api/v1/hooks/{id}
curl -X DELETE "https://orbitwrite.com/api/v1/hooks/{id}" \
  -H "Authorization: Bearer $ORBITWRITE_API_KEY"
Response
{
  "ok": true
}

List recent events of a type (trigger sample data)#

GET/api/v1/events/recent

Returns recent posts in the workspace shaped as the given trigger's payload, so a Zap's 'test trigger' step has realistic data. May be empty for a new workspace.

Authentication

An API key or OAuth access token as a bearer token.

Query parameters

eventstringRequired

The Orbitwrite activity a Zap subscribes to.

  • "post_published"
  • "post_failed"
  • "approval_requested"
  • "approval_decided"
  • "account_needs_reconnect"
limitinteger

Between 1 and 25. Defaults to 3.

Responses

200ZapierRecentEvents

Recent event samples, newest first

Response attributes
eventsobject[]Required
401Error

Not signed in

Response attributes
errorstringRequired
issuesany[]
403Error

Not a member of the organization

Response attributes
errorstringRequired
issuesany[]
GET /api/v1/events/recent
curl -X GET "https://orbitwrite.com/api/v1/events/recent?event=event" \
  -H "Authorization: Bearer $ORBITWRITE_API_KEY"
Response
{
  "events": [
    {}
  ]
}

TikTok Content Posting webhook#

POST/api/v1/integrations/tiktok/webhook

Receives TikTok's post.publish.* events. Authenticated by TikTok's own TikTok-Signature header rather than by a session or key. Registered as the app's callback URL in the TikTok developer portal.

Authentication

None. This endpoint is public.

Responses

200object

Event acknowledged

Response attributes
okbooleanRequired
401object

Signature missing or invalid

Response attributes
errorstringRequired
POST /api/v1/integrations/tiktok/webhook
curl -X POST "https://orbitwrite.com/api/v1/integrations/tiktok/webhook" \
  -H "Authorization: Bearer $ORBITWRITE_API_KEY"
Response
{
  "ok": true
}

Resend delivery webhook#

POST/api/v1/webhooks/resend

Receives Resend's email.* delivery events and records them against the sent message. Authenticated by Resend's Svix signature (svix-id, svix-timestamp, svix-signature) rather than by a session or key. Registered in the Resend dashboard.

Authentication

None. This endpoint is public.

Responses

200object

Event acknowledged

Response attributes
okbooleanRequired
400object

Signature headers missing, or the signature does not verify

Response attributes
errorstringRequired
501object

No webhook secret is configured on this deployment

Response attributes
errorstringRequired
POST /api/v1/webhooks/resend
curl -X POST "https://orbitwrite.com/api/v1/webhooks/resend" \
  -H "Authorization: Bearer $ORBITWRITE_API_KEY"
Response
{
  "ok": true
}