Skip to main content
GET
/
content-types
curl https://app.trypost.it/api/content-types \
  -H "Authorization: Bearer YOUR_API_KEY"
{
  "platforms": [
    {
      "platform": "linkedin",
      "label": "LinkedIn",
      "max_content_length": 3000,
      "recommended_content_length": 1500,
      "allowed_media_types": ["image", "video", "document"],
      "default_content_type": "linkedin_post",
      "content_types": [
        {
          "value": "linkedin_post",
          "label": "Post",
          "description": "A standard LinkedIn post.",
          "max_media_count": 1,
          "requires_media": false
        },
        {
          "value": "linkedin_carousel",
          "label": "Carousel",
          "description": "A LinkedIn document carousel post.",
          "max_media_count": 1,
          "requires_media": true
        }
      ]
    },
    {
      "platform": "x",
      "label": "X (Twitter)",
      "max_content_length": 280,
      "recommended_content_length": 240,
      "allowed_media_types": ["image", "video"],
      "default_content_type": "x_post",
      "content_types": [
        {
          "value": "x_post",
          "label": "Post",
          "description": "A standard X post (tweet).",
          "max_media_count": 4,
          "requires_media": false
        }
      ]
    }
  ]
}

Documentation Index

Fetch the complete documentation index at: https://docs.trypost.it/llms.txt

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

Why this endpoint

POST /api/posts and PUT /api/posts/{id} accept a platforms[] array where each entry has a social_account_id and a content_type. The valid content_type values depend on the platform: linkedin_post for LinkedIn, x_post for X, instagram_feed / instagram_reel / instagram_story for Instagram, etc. This endpoint exposes the catalog so clients can build correct payloads without hard-coding the matrix.

Response

{
  "platforms": [
    {
      "platform": "linkedin",
      "label": "LinkedIn",
      "max_content_length": 3000,
      "recommended_content_length": 1500,
      "allowed_media_types": ["image", "video", "document"],
      "default_content_type": "linkedin_post",
      "content_types": [
        {
          "value": "linkedin_post",
          "label": "Post",
          "description": "A standard LinkedIn post.",
          "max_media_count": 1,
          "requires_media": false
        },
        {
          "value": "linkedin_carousel",
          "label": "Carousel",
          "description": "A LinkedIn document carousel post.",
          "max_media_count": 1,
          "requires_media": true
        }
      ]
    },
    {
      "platform": "x",
      "label": "X (Twitter)",
      "max_content_length": 280,
      "recommended_content_length": 240,
      "allowed_media_types": ["image", "video"],
      "default_content_type": "x_post",
      "content_types": [
        {
          "value": "x_post",
          "label": "Post",
          "description": "A standard X post (tweet).",
          "max_media_count": 4,
          "requires_media": false
        }
      ]
    }
  ]
}
curl https://app.trypost.it/api/content-types \
  -H "Authorization: Bearer YOUR_API_KEY"

Field reference

FieldDescription
platformPlatform identifier used in social_accounts.platform (e.g. linkedin, x, instagram).
max_content_lengthHard cap enforced at publish time. Posts exceeding this are truncated.
recommended_content_lengthSoft target — the platform’s “good post” length. Useful for AI generation.
allowed_media_typesMedia types accepted by the platform (image, video, document).
default_content_typeThe content_type to use when the caller doesn’t pick one.
content_types[].valuePass this in platforms[].content_type on POST /api/posts.
content_types[].max_media_countMax number of media items for this format.
content_types[].requires_mediaWhether at least one media item is required (e.g. Instagram Story).