Skip to main content
POST
/
posts
curl -X POST https://app.trypost.it/api/posts \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "content": "Hello from the TryPost API!",
    "platforms": [
      {
        "social_account_id": "b2c3d4e5-f6a7-8b9c-0d1e-2f3a4b5c6d7e",
        "content_type": "linkedin_post"
      }
    ],
    "scheduled_at": "2026-05-10T15:30:00Z",
    "label_ids": ["c3d4e5f6-a7b8-9c0d-1e2f-3a4b5c6d7e8f"]
  }'
{
  "id": "9f1a2b3c-4d5e-6f7a-8b9c-0d1e2f3a4b5c",
  "content": "Hello from the TryPost API!",
  "media": [],
  "status": "draft",
  "scheduled_at": "2026-05-10 15:30:00",
  "published_at": null,
  "platforms": [
    {
      "id": "a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d",
      "platform": "linkedin",
      "content_type": "linkedin_post",
      "status": "pending",
      "enabled": true,
      "platform_url": null,
      "published_at": null,
      "error_message": null,
      "display_name": "John Doe",
      "display_username": "johndoe",
      "display_avatar": "https://media.licdn.com/.../avatar.jpg",
      "social_account": {
        "id": "b2c3d4e5-f6a7-8b9c-0d1e-2f3a4b5c6d7e",
        "platform": "linkedin",
        "display_name": "John Doe",
        "username": "johndoe",
        "is_active": true,
        "status": "connected"
      }
    }
  ],
  "labels": [
    {
      "id": "c3d4e5f6-a7b8-9c0d-1e2f-3a4b5c6d7e8f",
      "name": "Product Launch",
      "color": "#4f46e5",
      "created_at": "2025-01-10 08:00:00",
      "updated_at": "2025-01-10 08:00:00"
    }
  ],
  "created_at": "2025-01-14 09:00:00",
  "updated_at": "2025-01-14 09:00:00"
}
Creates a draft. To schedule or publish, follow up with PUT /posts/{post} using status=scheduled or status=publishing.
Pinterest posts: POST /posts does not accept per-platform meta. After creating, call PUT /posts/{post} and set platforms[].meta.board_id for each Pinterest entry — otherwise the publish job fails with Pinterest board_id is required.

Request

platforms
array
required
At least one platform entry. Each entry pins this post to a connected social account and a content_type.
content
string
The post body shared across all platforms. Up to 10 000 characters at the API level (per-platform hard caps are enforced separately — see GET /content-types for the matrix). Defaults to empty.
media
array
Media items to attach to the post. Each item should match the shape returned by POST /posts/{post}/mediaid, path, url, type, mime_type, original_filename. Most callers use the dedicated upload or attach-from-URL endpoint instead.
scheduled_at
string
ISO 8601 datetime in the future (e.g. 2026-05-10T15:30:00Z). Stored on the draft so a follow-up PUT with status=scheduled doesn’t have to repeat it. Defaults to today at 09:00 UTC.
label_ids
array
Workspace label UUIDs to attach. Must belong to the same workspace as the API key.

Response

Returns 201 with the created post. Response shape is identical to GET /posts/{post} — see that endpoint for full field documentation.
curl -X POST https://app.trypost.it/api/posts \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "content": "Hello from the TryPost API!",
    "platforms": [
      {
        "social_account_id": "b2c3d4e5-f6a7-8b9c-0d1e-2f3a4b5c6d7e",
        "content_type": "linkedin_post"
      }
    ],
    "scheduled_at": "2026-05-10T15:30:00Z",
    "label_ids": ["c3d4e5f6-a7b8-9c0d-1e2f-3a4b5c6d7e8f"]
  }'
{
  "id": "9f1a2b3c-4d5e-6f7a-8b9c-0d1e2f3a4b5c",
  "content": "Hello from the TryPost API!",
  "media": [],
  "status": "draft",
  "scheduled_at": "2026-05-10 15:30:00",
  "published_at": null,
  "platforms": [
    {
      "id": "a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d",
      "platform": "linkedin",
      "content_type": "linkedin_post",
      "status": "pending",
      "enabled": true,
      "platform_url": null,
      "published_at": null,
      "error_message": null,
      "display_name": "John Doe",
      "display_username": "johndoe",
      "display_avatar": "https://media.licdn.com/.../avatar.jpg",
      "social_account": {
        "id": "b2c3d4e5-f6a7-8b9c-0d1e-2f3a4b5c6d7e",
        "platform": "linkedin",
        "display_name": "John Doe",
        "username": "johndoe",
        "is_active": true,
        "status": "connected"
      }
    }
  ],
  "labels": [
    {
      "id": "c3d4e5f6-a7b8-9c0d-1e2f-3a4b5c6d7e8f",
      "name": "Product Launch",
      "color": "#4f46e5",
      "created_at": "2025-01-10 08:00:00",
      "updated_at": "2025-01-10 08:00:00"
    }
  ],
  "created_at": "2025-01-14 09:00:00",
  "updated_at": "2025-01-14 09:00:00"
}