---
title: "LinkedIn profile API: post and schedule from code"
url: "https://get1post.com/developers/linkedin.md"
canonical_url: "https://get1post.com/developers/linkedin"
last_updated: "2026-10-26"
type: "reference"
summary: "Post and schedule to LinkedIn profile with the 1Post API and MCP server: the request, the reply, every rule it is checked against and a dry run."
related: ["https://get1post.com/platforms/linkedin.md", "https://get1post.com/platforms/linkedin/specs.md", "https://get1post.com/docs/api-posts.md", "https://get1post.com/docs/mcp.md"]
---

# LinkedIn profile API: post and schedule from code

Post and schedule to LinkedIn profile with the 1Post API and MCP server: the request, the reply, every rule it is checked against and a dry run.

Post to LinkedIn profile from code with one request: POST /v1/posts with your profile id, the text and a schedule_at time. LinkedIn profile text is limited to 3,000 characters, counted by code points. 1Post allows up to 50 posts a day for each connected profile, and a dry run checks a post against every rule first.

## Connect LinkedIn profile first

1. Open Accounts in 1Post and choose Connect.
2. Pick LinkedIn.
3. Sign in with LinkedIn and approve access for the profile you want to post to.
4. Choose the profile in 1Post. It is ready to pick in the composer.

Then GET /v1/accounts returns the id of the LinkedIn profile profile to use in the request.

## Send a post to LinkedIn profile

**Schedule a post**

```bash
curl https://api.get1post.com/v1/posts \
  -H "Authorization: Bearer $ONEPOST_API_KEY" \
  -H "Idempotency-Key: linkedin-first-post" \
  -d '{"accounts":["ACCOUNT_ID"],"text":"We opened a second studio this week.","schedule_at":"2026-11-02T15:00:00Z"}'
```

The reply is 202 with the post (status scheduled) and one destination for LinkedIn profile, which moves from queued to published or failed.

## What you can send to LinkedIn profile

- Text
- Link with its own title and description
- Images
- One video
- First comment

## What LinkedIn profile publishes

- The Posts API creates organic text, image, video, document, article, multi-image and poll posts. Carousels are not available for organic posts.

## LinkedIn profile rules the request is checked against

| Rule | What 1Post checks |
| --- | --- |
| Text limit | 3,000 characters, counted by code points |
| Media accepted | Images, Video |
| Images per post | 20 |
| Videos per post | 1 |
| Images and video together | Not in one post |
| Threads | No |
| First comment | Yes |
| Posts per day, per connected account (1Post) | 50 |

The same table with sources is on the [LinkedIn profile specs page](https://get1post.com/platforms/linkedin/specs.md).

## LinkedIn profile options in the request

- First comment: add first_comment with text to an account object, and delay_min if it should wait.

## Good to know for LinkedIn profile

A LinkedIn profile post can carry a link with its own card title and description: send linkUrl, linkTitle and linkDescription in the account's settings.

## Check the post before it is queued

Add "dry_run": true to test a post: nothing is kept, a valid one answers 200 and a broken one answers 422 naming the rule.

**A refused request, abridged**

```json
{
  "error": {
    "code": "invalid_for_platform",
    "message": "linkedin refuses this post: LinkedIn profile counts 3,032 of 3,000 characters in part 1. (text_too_long).",
    "fix": "Fix the rule named in the message and send the post again.",
    "retryable": false,
    "request_id": "REQUEST_ID"
  }
}
```

An assistant connected to the [MCP server](https://get1post.com/docs/mcp.md) sends the same fields to create_post; [set one up](https://get1post.com/assistants.md).

## Questions

**Can I post to LinkedIn profile with an API key?**

Yes. A key with write scope can create, change and cancel LinkedIn profile posts for the workspace it belongs to, with the role of the member who made it. See [API authentication](https://get1post.com/docs/api-authentication.md).

**What happens if a LinkedIn profile post breaks a rule?**

The request is refused with invalid_for_platform and the failing rule is named. Fix it and send the request again, or send it with dry_run to test the fix first.

**How many LinkedIn profile posts can I send in a day?**

Up to 50 for each connected profile. A request that would pass that answers daily_cap with the time the day frees up.

**Can I post a LinkedIn link with its own title and description?**

Yes. Add the link, then set the title and description the link card shows. See [how to post a LinkedIn link with its own title](https://get1post.com/guides/post-a-linkedin-link-with-its-own-title.md).

## Sources

- [LinkedIn: Posts API](https://learn.microsoft.com/en-us/linkedin/marketing/community-management/shares/posts-api), read 2026-10-26

## Related

- [Schedule LinkedIn profile posts: formats and limits](https://get1post.com/platforms/linkedin.md)
- [LinkedIn profile specs and limits: text and media](https://get1post.com/platforms/linkedin/specs.md)
- [Creating and changing posts with the API: 1Post docs](https://get1post.com/docs/api-posts.md)
- [The MCP server: 1Post docs](https://get1post.com/docs/mcp.md)
