Ad copy length limits for LinkedIn, Pinterest, X and Instagram

One table of copy limits from each vendor's own page, plus a Python checker to run over every item of a Sume bulk run before you upload.

5 min readSume
All posts

The limits differ by platform, so check generated copy per placement: LinkedIn's lead form headline is 60 characters and details 160, Pinterest titles hold 100 and descriptions 800, X lead forms cap a name at 255 and a purpose at 1000, and Instagram Feed video primary text is 125. Run the checker below over every item of a Sume bulk run before upload.

Limits by placement

Each row comes from the vendor page named in the sources.

Limits from each vendor's own page (read 2026-10-05)
PlatformFieldLimit
LinkedIn Lead Gen FormHeadline / details60 / 160 characters
LinkedIn video adIntro text / headline150 / 70 shown (3,000 / 200 max)
Pinterest image or video pinTitle / description100 / 800 characters
X lead generation formName / purpose255 / 1000 characters
Instagram Feed video adPrimary text125 characters

One checker for all of them

Keys follow the table. The function returns a list of problems per item.

LIMITS = {
    "linkedin_form": {"headline": 60, "details": 160},
    "linkedin_video": {"intro": 150, "headline": 70},
    "pinterest": {"title": 100, "description": 800},
    "x_lead": {"name": 255, "purpose": 1000},
    "instagram_feed": {"primary": 125},
}

def problems(platform: str, copy: dict) -> list[str]:
    return [f"{k}: {len(copy.get(k, ''))} > {m}"
            for k, m in LIMITS[platform].items() if len(copy.get(k, "")) > m]

print(problems("pinterest", {"title": "x" * 120, "description": "ok"}))
print(problems("instagram_feed", {"primary": "Short line"}))

Use it

Fail the item, not the batch: log the index, fix the instruction, and resubmit only those indexes.

Sources

Related posts

More in Comparisons

All Comparisons posts

Written by Sume