{
  "name": "Social network limits",
  "description": "Posting limits of twelve social networks (YouTube, TikTok, Instagram, Facebook, Threads, LinkedIn, Pinterest, Bluesky, Mastodon, Telegram, Discord, Tumblr) as enforced by Preflight: caption length, media count, file sizes, video length and frame rate, threads, alt text, and what each network lets a scheduler edit, delete or read back.",
  "license": "https://creativecommons.org/licenses/by/4.0/",
  "licenseName": "Creative Commons Attribution 4.0 International (CC BY 4.0)",
  "attribution": "Credit \"Preflight (ADMI ENTERPRISES s.r.o.)\" and link to https://preflight.social/data/network-limits wherever you reuse the data.",
  "citeAs": "Preflight (ADMI ENTERPRISES s.r.o.), Social network limits dataset, version 2026-10-08, https://preflight.social/data/network-limits, licensed CC BY 4.0.",
  "version": "2026-10-08",
  "verified": "2026-10-08",
  "source": "https://preflight.social/data/network-limits",
  "fields": [
    {
      "key": "id",
      "label": "Network ID",
      "unit": "text",
      "description": "Preflight's identifier for the network, the same one the REST API uses (for example instagram)."
    },
    {
      "key": "name",
      "label": "Network",
      "unit": "text",
      "description": "Display name of the network."
    },
    {
      "key": "charLimit",
      "label": "Caption limit",
      "unit": "characters",
      "description": "The longest caption or post text the network accepts, counted the way the network counts it (YouTube counts bytes, Threads counts emoji as bytes, Bluesky counts graphemes)."
    },
    {
      "key": "supportsImage",
      "label": "Images",
      "unit": "true/false",
      "description": "Whether a post can carry an image."
    },
    {
      "key": "supportsVideo",
      "label": "Video",
      "unit": "true/false",
      "description": "Whether a post can carry a video."
    },
    {
      "key": "maxMediaPerPost",
      "label": "Media per post",
      "unit": "files",
      "description": "The most images or videos in a single post."
    },
    {
      "key": "maxImageBytes",
      "label": "Largest image",
      "unit": "bytes",
      "description": "Largest accepted image file. Empty where the network publishes no limit that Preflight enforces."
    },
    {
      "key": "maxVideoBytes",
      "label": "Largest video",
      "unit": "bytes",
      "description": "Largest accepted video file. Empty where no limit is enforced."
    },
    {
      "key": "minVideoDurationSeconds",
      "label": "Shortest video",
      "unit": "seconds",
      "description": "Shortest accepted video. Empty where there is no minimum."
    },
    {
      "key": "maxVideoDurationSeconds",
      "label": "Longest video",
      "unit": "seconds",
      "description": "Longest accepted video. Empty where no limit is enforced."
    },
    {
      "key": "minVideoFps",
      "label": "Lowest frame rate",
      "unit": "frames per second",
      "description": "Lowest accepted video frame rate. Empty where there is no minimum."
    },
    {
      "key": "maxVideoFps",
      "label": "Highest frame rate",
      "unit": "frames per second",
      "description": "Highest accepted video frame rate. Empty where there is no maximum."
    },
    {
      "key": "supportsThread",
      "label": "Threads",
      "unit": "true/false",
      "description": "Whether a post can be published as a chain of connected posts."
    },
    {
      "key": "supportsFirstComment",
      "label": "First comment",
      "unit": "true/false",
      "description": "Whether a comment can be posted together with the post."
    },
    {
      "key": "supportsAltText",
      "label": "Alt text",
      "unit": "true/false",
      "description": "Whether images can carry alternative text."
    },
    {
      "key": "canEditRemote",
      "label": "Edit after publishing",
      "unit": "true/false",
      "description": "Whether the network's API lets a published post be edited."
    },
    {
      "key": "canDeleteRemote",
      "label": "Delete after publishing",
      "unit": "true/false",
      "description": "Whether the network's API lets a published post be deleted."
    },
    {
      "key": "canReadComments",
      "label": "Read comments",
      "unit": "true/false",
      "description": "Whether the network's API lets a tool read the comments on a post."
    },
    {
      "key": "canReplyToComments",
      "label": "Reply to comments",
      "unit": "true/false",
      "description": "Whether the network's API lets a tool reply to comments."
    },
    {
      "key": "reportsInsights",
      "label": "Detailed insights",
      "unit": "true/false",
      "description": "Whether the network reports watch time and retention figures for a post, beyond basic counts."
    },
    {
      "key": "metricFields",
      "label": "Reported metrics",
      "unit": "list",
      "description": "The figures the network reports back for a post. A JSON array; in the CSV the names are separated by semicolons."
    }
  ],
  "data": [
    {
      "id": "youtube",
      "name": "YouTube",
      "charLimit": 5000,
      "supportsImage": false,
      "supportsVideo": true,
      "maxMediaPerPost": 1,
      "maxVideoBytes": 274877906944,
      "maxVideoDurationSeconds": 43200,
      "supportsThread": false,
      "supportsFirstComment": true,
      "supportsAltText": false,
      "canEditRemote": true,
      "canDeleteRemote": true,
      "canReadComments": true,
      "canReplyToComments": true,
      "reportsInsights": true,
      "metricFields": [
        "views",
        "likes",
        "comments",
        "watchTimeMinutes",
        "avgViewDurationSeconds",
        "avgViewPercentage"
      ]
    },
    {
      "id": "tiktok",
      "name": "TikTok",
      "charLimit": 2200,
      "supportsImage": true,
      "supportsVideo": true,
      "maxMediaPerPost": 35,
      "maxVideoBytes": 4294967296,
      "minVideoDurationSeconds": 3,
      "maxVideoDurationSeconds": 600,
      "minVideoFps": 23,
      "maxVideoFps": 60,
      "supportsThread": false,
      "supportsFirstComment": false,
      "supportsAltText": false,
      "canEditRemote": false,
      "canDeleteRemote": false,
      "canReadComments": false,
      "canReplyToComments": false,
      "reportsInsights": false,
      "metricFields": [
        "views",
        "likes",
        "comments",
        "shares"
      ]
    },
    {
      "id": "instagram",
      "name": "Instagram",
      "charLimit": 2200,
      "supportsImage": true,
      "supportsVideo": true,
      "maxMediaPerPost": 10,
      "maxVideoBytes": 314572800,
      "minVideoDurationSeconds": 3,
      "maxVideoDurationSeconds": 900,
      "minVideoFps": 23,
      "maxVideoFps": 60,
      "supportsThread": false,
      "supportsFirstComment": true,
      "supportsAltText": true,
      "canEditRemote": false,
      "canDeleteRemote": true,
      "canReadComments": true,
      "canReplyToComments": true,
      "reportsInsights": false,
      "metricFields": [
        "views",
        "likes",
        "comments",
        "shares",
        "saves",
        "reach",
        "watchTimeMinutes",
        "avgViewDurationSeconds"
      ]
    },
    {
      "id": "facebook",
      "name": "Facebook",
      "charLimit": 63206,
      "supportsImage": true,
      "supportsVideo": true,
      "maxMediaPerPost": 10,
      "maxImageBytes": 10485760,
      "maxVideoBytes": 1073741824,
      "maxVideoDurationSeconds": 14400,
      "supportsThread": false,
      "supportsFirstComment": true,
      "supportsAltText": true,
      "canEditRemote": true,
      "canDeleteRemote": true,
      "canReadComments": true,
      "canReplyToComments": true,
      "reportsInsights": false,
      "metricFields": [
        "views",
        "likes",
        "comments",
        "shares",
        "watchTimeMinutes",
        "avgViewDurationSeconds"
      ]
    },
    {
      "id": "threads",
      "name": "Threads",
      "charLimit": 500,
      "supportsImage": true,
      "supportsVideo": true,
      "maxMediaPerPost": 20,
      "maxImageBytes": 8388608,
      "maxVideoBytes": 1073741824,
      "maxVideoDurationSeconds": 300,
      "minVideoFps": 23,
      "maxVideoFps": 60,
      "supportsThread": true,
      "supportsFirstComment": false,
      "supportsAltText": true,
      "canEditRemote": false,
      "canDeleteRemote": true,
      "canReadComments": true,
      "canReplyToComments": true,
      "reportsInsights": false,
      "metricFields": [
        "views",
        "likes",
        "comments",
        "shares"
      ]
    },
    {
      "id": "linkedin",
      "name": "LinkedIn",
      "charLimit": 3000,
      "supportsImage": true,
      "supportsVideo": true,
      "maxMediaPerPost": 20,
      "maxImageBytes": 10485760,
      "maxVideoBytes": 524288000,
      "minVideoDurationSeconds": 3,
      "maxVideoDurationSeconds": 1800,
      "supportsThread": false,
      "supportsFirstComment": false,
      "supportsAltText": true,
      "canEditRemote": false,
      "canDeleteRemote": true,
      "canReadComments": false,
      "canReplyToComments": false,
      "reportsInsights": false,
      "metricFields": []
    },
    {
      "id": "pinterest",
      "name": "Pinterest",
      "charLimit": 800,
      "supportsImage": true,
      "supportsVideo": false,
      "maxMediaPerPost": 5,
      "maxImageBytes": 20971520,
      "supportsThread": false,
      "supportsFirstComment": false,
      "supportsAltText": true,
      "canEditRemote": false,
      "canDeleteRemote": true,
      "canReadComments": false,
      "canReplyToComments": false,
      "reportsInsights": false,
      "metricFields": [
        "impressions",
        "views",
        "saves",
        "likes",
        "comments"
      ]
    },
    {
      "id": "bluesky",
      "name": "Bluesky",
      "charLimit": 300,
      "supportsImage": true,
      "supportsVideo": true,
      "maxMediaPerPost": 4,
      "maxImageBytes": 2000000,
      "maxVideoBytes": 100000000,
      "maxVideoDurationSeconds": 600,
      "supportsThread": true,
      "supportsFirstComment": false,
      "supportsAltText": true,
      "canEditRemote": false,
      "canDeleteRemote": true,
      "canReadComments": true,
      "canReplyToComments": true,
      "reportsInsights": false,
      "metricFields": [
        "likes",
        "comments",
        "shares"
      ]
    },
    {
      "id": "mastodon",
      "name": "Mastodon",
      "charLimit": 500,
      "supportsImage": true,
      "supportsVideo": true,
      "maxMediaPerPost": 4,
      "maxImageBytes": 16777216,
      "maxVideoBytes": 103809024,
      "supportsThread": true,
      "supportsFirstComment": false,
      "supportsAltText": true,
      "canEditRemote": true,
      "canDeleteRemote": true,
      "canReadComments": true,
      "canReplyToComments": true,
      "reportsInsights": false,
      "metricFields": [
        "likes",
        "comments",
        "shares"
      ]
    },
    {
      "id": "telegram",
      "name": "Telegram",
      "charLimit": 1024,
      "supportsImage": true,
      "supportsVideo": true,
      "maxMediaPerPost": 10,
      "maxImageBytes": 10485760,
      "maxVideoBytes": 52428800,
      "supportsThread": false,
      "supportsFirstComment": false,
      "supportsAltText": false,
      "canEditRemote": true,
      "canDeleteRemote": true,
      "canReadComments": false,
      "canReplyToComments": false,
      "reportsInsights": false,
      "metricFields": []
    },
    {
      "id": "discord",
      "name": "Discord",
      "charLimit": 2000,
      "supportsImage": true,
      "supportsVideo": true,
      "maxMediaPerPost": 10,
      "maxImageBytes": 10485760,
      "maxVideoBytes": 10485760,
      "supportsThread": false,
      "supportsFirstComment": false,
      "supportsAltText": true,
      "canEditRemote": true,
      "canDeleteRemote": true,
      "canReadComments": false,
      "canReplyToComments": false,
      "reportsInsights": false,
      "metricFields": []
    },
    {
      "id": "tumblr",
      "name": "Tumblr",
      "charLimit": 250000,
      "supportsImage": true,
      "supportsVideo": true,
      "maxMediaPerPost": 30,
      "maxImageBytes": 20971520,
      "maxVideoBytes": 524288000,
      "maxVideoDurationSeconds": 600,
      "supportsThread": false,
      "supportsFirstComment": false,
      "supportsAltText": true,
      "canEditRemote": false,
      "canDeleteRemote": true,
      "canReadComments": true,
      "canReplyToComments": false,
      "reportsInsights": false,
      "metricFields": [
        "likes",
        "shares",
        "comments"
      ]
    }
  ]
}