Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.postonce.to/llms.txt

Use this file to discover all available pages before exploring further.

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"
}
id is the stable identifier you reuse when creating posts and workflows.

Media

Represents uploaded or referenced media attached to a post.
{
  "url": "https://example.com/image.png",
  "type": "image",
  "width": 1200,
  "height": 630,
  "size": 148320
}
Upload endpoints return a media_id for storage lookups. Post creation currently accepts URL-based media objects.

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,
  "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"
}
derived_status is a workflow-specific status, not the same as aggregate post status.