---
title: "Kick API: post and schedule from code"
url: "https://get1post.com/developers/kick.md"
canonical_url: "https://get1post.com/developers/kick"
last_updated: "2026-10-26"
type: "reference"
summary: "Post and schedule to Kick 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/kick.md", "https://get1post.com/platforms/kick/specs.md", "https://get1post.com/docs/api-posts.md", "https://get1post.com/docs/mcp.md"]
---

# Kick API: post and schedule from code

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

Post to Kick from code with one request: POST /v1/posts with your channel id, the text and a schedule_at time. Kick text is limited to 500 characters, counted by the characters a reader sees. 1Post allows up to 20 posts a day for each connected channel, and a dry run checks a post against every rule first.

## Connect Kick first

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

Then GET /v1/accounts returns the id of the Kick channel to use in the request.

## Send a post to Kick

**Schedule a post**

```bash
curl https://api.get1post.com/v1/posts \
  -H "Authorization: Bearer $ONEPOST_API_KEY" \
  -H "Idempotency-Key: kick-first-post" \
  -d '{"accounts":["ACCOUNT_ID"],"text":"Going live in ten minutes.","schedule_at":"2026-11-02T15:00:00Z"}'
```

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

## What you can send to Kick

- Chat message in your own channel

## Kick rules the request is checked against

| Rule | What 1Post checks |
| --- | --- |
| Text limit | 500 characters, counted by the characters a reader sees |
| Media accepted | Text only |
| Threads | No |
| First comment | No |
| Posts per day, per connected account (1Post) | 20 |

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

## Good to know for Kick

A Kick post is a plain text chat line in your own channel. Kick also limits a message to 2,048 bytes in UTF-8, so text with many emoji or non-Latin letters can reach that before 500 characters.

## 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": "kick refuses this post: Kick counts 532 of 500 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 Kick with an API key?**

Yes. A key with write scope can create, change and cancel Kick 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 Kick 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 Kick posts can I send in a day?**

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

**Does Kick take images or links in a chat message?**

Kick chat takes text only from 1Post, so write the link into the message itself.

## Related

- [Schedule Kick posts: formats, limits, setup](https://get1post.com/platforms/kick.md)
- [Kick specs and limits: text, media, daily cap](https://get1post.com/platforms/kick/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)
