Skip to main content
POST
/
posts
Create post
curl --request POST \
  --url https://app.tryordinal.com/api/v1/posts \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data @- <<EOF
{
  "title": "Q4 Product Launch Announcement",
  "publishAt": "2026-01-15T14:00:00.000Z",
  "status": "Scheduled",
  "linkedIn": {
    "profileId": "550e8400-e29b-41d4-a716-446655440001",
    "copy": "Excited to announce our new product launch! 🚀\n\nHuge thanks to @[John Doe](urn:li:person:ABC123xyz) and the @[Acme Inc](urn:li:organization:123456) team for making this happen.\n\nKey highlights:\n• Feature A\n• Feature B\n• Feature C\n\n#ProductLaunch #Innovation",
    "assetIds": [
      "550e8400-e29b-41d4-a716-446655440010"
    ]
  },
  "x": {
    "profileId": "550e8400-e29b-41d4-a716-446655440003",
    "tweets": [
      {
        "copy": "Excited to announce our new product launch! 🚀\n\nA thread on what we've been building 🧵",
        "assetIds": [
          "550e8400-e29b-41d4-a716-446655440011"
        ]
      },
      {
        "copy": "Key highlights:\n• Feature A\n• Feature B\n• Feature C"
      }
    ]
  },
  "labelIds": [
    "550e8400-e29b-41d4-a716-446655440002"
  ],
  "notes": "Internal note: Coordinate with marketing team"
}
EOF
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "url": "https://app.tryordinal.com/acme/posts/550e8400-e29b-41d4-a716-446655440000",
  "title": "Q4 Product Launch Announcement",
  "channels": [
    "LinkedIn",
    "Twitter"
  ],
  "status": "Scheduled",
  "createdAt": "2026-01-05T10:30:00.000Z",
  "updatedAt": "2026-01-05T10:30:00.000Z",
  "linkedIn": {
    "copy": "Excited to announce our new product launch!",
    "assets": [
      {
        "id": "550e8400-e29b-41d4-a716-446655440010",
        "name": "product-photo.jpg",
        "url": "https://cdn.tryordinal.com/assets/product-photo.jpg",
        "mimetype": "image/jpeg",
        "size": 245678,
        "width": 1920,
        "height": 1080,
        "duration": null
      }
    ]
  },
  "x": {
    "tweets": [
      {
        "copy": "Excited to announce our new product launch!",
        "assets": [
          {
            "id": "550e8400-e29b-41d4-a716-446655440011",
            "name": "product-photo.jpg",
            "url": "https://cdn.tryordinal.com/assets/product-photo.jpg",
            "mimetype": "image/jpeg",
            "size": 245678,
            "width": 1920,
            "height": 1080,
            "duration": null
          }
        ]
      },
      {
        "copy": "Key highlights: Feature A, Feature B, Feature C",
        "assets": []
      }
    ]
  }
}

Authorizations

Authorization
string
header
required

API key authentication. Generate an API key from your workspace settings.

Body

application/json
title
string
required
publishAt
string<date-time>
required
status
enum<string>
required
Available options:
Tentative,
ToDo,
InProgress,
ForReview,
Blocked,
Finalized,
Scheduled,
Posted
labelIds
string<uuid>[]
campaignId
string<uuid>
notes
string
linkedIn
object
x
object

X (Twitter) channel configuration for creating or updating posts

Response

Post created successfully

id
string<uuid>
url
string<uri>
title
string
channels
string[]
status
enum<string>
Available options:
Tentative,
ToDo,
InProgress,
ForReview,
Blocked,
Finalized,
Scheduled,
Posted
createdAt
string<date-time>
updatedAt
string<date-time>
linkedIn
object

LinkedIn content with assets. Present when the post targets the LinkedIn channel.

x
object

X (Twitter) content with assets. Present when the post targets the Twitter channel.