Skip to main content
The PostOnce Public API uses a consistent response envelope across resources.

Success responses

Successful responses return a data object:
{
  "data": {
    "id": "post_123",
    "status": "scheduled"
  }
}
List responses may also include meta:
{
  "data": [],
  "meta": {
    "next_cursor": null
  }
}

Error responses

Errors return an error object:
{
  "error": {
    "code": "missing_scope",
    "message": "Missing required scope: posts:write"
  }
}
Some errors include details:
{
  "error": {
    "code": "invalid_request",
    "message": "Request validation failed.",
    "details": {
      "field": "publish_at"
    }
  }
}

Status code patterns

  • 200 for successful reads and updates
  • 201 for successful creates when applicable
  • 401 for missing or invalid API keys
  • 403 for scope and plan limit enforcement
  • 404 for missing resources
  • 409 for idempotency conflicts and state conflicts
  • 422 for invalid payloads

Idempotency

Use Idempotency-Key on POST /v1/posts when retrying create requests.
  • Same key + same request body returns the stored result
  • Same key + different request body returns 409
This lets clients retry safely without creating duplicate post jobs.