antworkDOCS

Platform rules

What every platform accepts, so you can write a post that publishes the first time.

GEThttps://antwork.io/api/v1/platforms

Request

curl https://antwork.io/api/v1/platforms \
  -H "Authorization: Bearer $ANTWORK_API_KEY"

Read from the same rules file the publishers enforce, so it cannot disagree with what a publish checks. It describes the platforms, not your account, and any valid key can read it.

Response

200 OK
{
  "object": "list",
  "platforms": [
    {
      "object": "platform",
      "id": "x",
      "name": "X (Twitter)",
      "text": {
        "limit": 280,
        "required": true,
        "counting": "weighted"
      },
      "media": {
        "required": false,
        "maxItems": 4,
        "canMixImageAndVideo": false,
        "types": {
          "image": {
            "extensions": [
              ".jpg",
              ".jpeg",
              ".png",
              ".webp"
            ],
            "mimeTypes": [
              "image/jpeg",
              "image/png",
              "image/webp"
            ],
            "maxSizeBytes": 5242880,
            "maxItems": 4,
            "maxDurationSeconds": null,
            "aspectRatios": [
              "16:9",
              "1:1"
            ]
          },
          "gif": {
            "extensions": [
              ".gif"
            ],
            "mimeTypes": [
              "image/gif"
            ],
            "maxSizeBytes": 15728640,
            "maxItems": 1,
            "maxDurationSeconds": null,
            "aspectRatios": [
              "16:9",
              "1:1"
            ]
          },
          "video": {
            "extensions": [
              ".mp4",
              ".mov"
            ],
            "mimeTypes": [
              "video/mp4",
              "video/quicktime"
            ],
            "maxSizeBytes": 536870912,
            "maxItems": 1,
            "maxDurationSeconds": 140,
            "aspectRatios": [
              "16:9",
              "1:1"
            ]
          },
          "document": {
            "extensions": [
              ".pdf"
            ],
            "mimeTypes": [
              "application/pdf"
            ],
            "maxSizeBytes": 104857600,
            "maxItems": 1,
            "maxDurationSeconds": null,
            "aspectRatios": []
          }
        }
      },
      "dailyPostCap": {
        "free": 15,
        "paid": 50
      },
      "mentions": {
        "links": "handle",
        "maxPerPost": null
      },
      "derivedTitleLimit": null,
      "settings": []
    },
    "..."
  ]
}

text.counting says how text.limit is measured: weighted is X's count (a link is 23, most emoji 2), graphemes counts what a person sees as one character, characters counts characters.

settings lists the per-post fields a platform takes, with their type, options and default. dailyPostCap is posts per account in any rolling 24 hours, on the free and paid plans.