Skip to main content
These are the core objects you will work with most often when using the PostOnce Public API.

Account

Represents a connected social account owned by the API key profile.
{
  "id": "86d8fe99-0332-433b-a6e4-502c788490be",
  "platform": "facebook",
  "username": "PostOnce",
  "avatar_url": "https://example.com/avatar.jpg",
  "status": "active",
  "created_at": "2025-11-04T22:25:00.082736+00:00",
  "updated_at": "2025-11-05T04:24:25.939628+00:00"
}

Media

Represents uploaded or referenced media attached to a post.
{
  "url": "https://example.com/image.png",
  "type": "image",
  "width": 1200,
  "height": 630,
  "size": 148320
}

Post

A Post is the main aggregate resource in the API. One public post can target multiple connected accounts.
{
  "id": "1b2d6f18-8fd4-49df-a1b4-8c1f3aa9e8f5",
  "content": "Shipping the public API today.",
  "external_id": "launch-001",
  "origin": "public_api",
  "status": "scheduled",
  "publish_at": "2026-04-01T14:00:00.000Z",
  "created_at": "2026-03-30T15:15:48.28116+00:00",
  "media": [
    {
      "url": "https://example.com/image.png",
      "type": "image",
      "width": 1200,
      "height": 630,
      "size": 148320
    }
  ],
  "targets": [
    {
      "account_id": "account-1",
      "platform": "facebook",
      "username": "PostOnce",
      "status": "scheduled",
      "target_post_id": "target-row-1",
      "platform_post_id": null,
      "platform_post_url": null,
      "error": null,
      "scheduled_time": "2026-04-01T14:00:00.000Z"
    }
  ]
}

Post status

Aggregate post status is derived from the per-target rows:
  • queued
  • scheduled
  • processing
  • published
  • partial
  • failed
  • cancelled

Workflow

A Workflow maps one source account to one or more target accounts.
{
  "id": "9b32984d-8c8c-4f5c-8568-5d6a3a5c0ecb",
  "profile_id": "d8bd4cfb-a766-40ab-a749-e06fff57178f",
  "source_account_id": "86d8fe99-0332-433b-a6e4-502c788490be",
  "target_account_ids": [
    "69a22f08-d66b-4c18-bb9d-054659333788"
  ],
  "name": "Workflow A to B",
  "description": null,
  "is_active": true,
  "future_content_enabled": true,
  "existing_content_enabled": false,
  "existing_content_config": null,
  "settings": {
    "content_filters": {
      "types": {
        "text": true,
        "image": true,
        "quote": false,
        "video": true
      },
      "hashtags": {
        "exclude": [],
        "include": []
      }
    }
  },
  "last_checked": null,
  "last_enabled_at": "2026-03-30T15:15:48.164+00:00",
  "created_at": "2026-03-30T15:15:48.28116+00:00",
  "updated_at": "2026-03-30T15:15:48.28116+00:00"
}

Workflow source post

Workflow post listings return derived scheduling and posting state for source content.
{
  "id": "workflow-source-1",
  "source_post_id": "src_123",
  "source_created_at": "2026-03-29T19:12:00.000Z",
  "derived_status": "auto_scheduled",
  "scheduled_for": "2026-03-30T16:00:00.000Z",
  "posted_at": null,
  "queue_id": "queue_123",
  "scheduling_type": "auto",
  "platform_metadata": {
    "title": "Original source post",
    "description": "Original source content"
  }
}