# Changelog (/en/changelog)

Nothing here breaks a working integration:

- The API is versioned in the path (`/v1`). A breaking change only ships as a new path or field, and the old one keeps working.
- New response fields and new optional request fields can appear at any time. Make sure your code ignores fields it doesn't know.
- If you need to change something in your integration, the entry is labeled **Action required**.

New dashboard features and new platforms are announced at [tebar.app/en/changelog](https://tebar.app/en/changelog).

## October 29, 2026 [#october-29-2026]

### Like Facebook Page and TikTok comments [#like-facebook-page-and-tiktok-comments]

<Change kind="feature" label="New" tags={['Comments', 'Facebook', 'TikTok', 'MCP']} />

`POST /v1/comments/{id}/like` likes a comment as the account. Send `{ "liked": false }` to take it back. In MCP, the tool is `like_comment`.

Comments now have two new fields:

- `can_like`: `true` on Facebook Pages and TikTok. Other platforms answer `422 comment_like_unsupported`.
- `is_liked`: likes made through Tebar. Likes made in the platform's app aren't read back.

```bash
curl -X POST https://api.tebar.app/v1/comments/$COMMENT_ID/like \
  -H "Authorization: Bearer $TEBAR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "liked": true }'
```

### Buttons and quick replies in Instagram DMs [#buttons-and-quick-replies-in-instagram-dms]

<Change kind="feature" label="New" tags={['Inbox', 'Instagram', 'Webhooks', 'MCP']} />

`POST /v1/inbox/conversations/{id}/messages` takes two new optional fields, one or the other per message:

- `buttons`: 1–3 buttons, `web_url` (opens a link) or `postback` (sends its `payload` back). Text up to 640 characters.
- `quick_replies`: 1–13 `{ title, payload }` choices. Shown in the Instagram phone app only.

When a customer taps a `postback` button or a quick reply, a message comes in with `kind` `postback` or `quick_reply` and a `postback: { title, payload }` field. The `message.received` webhook carries the same field. `send_dm` in MCP takes the same fields.

```bash
curl -X POST https://api.tebar.app/v1/inbox/conversations/$CONVERSATION_ID/messages \
  -H "Authorization: Bearer $TEBAR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "text": "Which size?",
    "quick_replies": [
      { "title": "S", "payload": "SIZE_S" },
      { "title": "M", "payload": "SIZE_M" }
    ]
  }'
```

The full guide is in [DM inbox & automations](/en/api/inbox).

### Inbox and Automations in the API Reference [#inbox-and-automations-in-the-api-reference]

<Change kind="improvement" label="Docs" tags={['Inbox', 'Automations']} />

Every `/v1/inbox/*` and `/v1/automations` endpoint is now in the [API Reference](/en/reference), with request and response schemas. Their behavior hasn't changed.

### OpenAPI spec [#openapi-spec]

<Change kind="feature" label="New" tags={['General']} />

`GET /v1/openapi.json` serves the OpenAPI 3.1 spec, no API key needed. It's built from the same schemas the API validates with. Use it to generate a client, import into Postman, or hand it to an AI agent.

### `media_urls` when creating a post [#media_urls-when-creating-a-post]

<Change kind="feature" label="New" tags={['Posts', 'Media']} />

`POST /v1/posts` takes `media_urls`: public photo or video links that Tebar downloads into the media library and attaches. You can combine them with `media_ids`, up to 20 media in total. This used to be MCP only.

### Facebook Pages for everyone [#facebook-pages-for-everyone]

<Change kind="feature" label="New" tags={['Facebook']} />

The `facebook` platform is open to every user: posting, comments, and Page statistics.

### Oversized bodies answer 413 [#oversized-bodies-answer-413]

<Change kind="improvement" label="Improvement" tags={['General']} />

A request body over the size limit now gets `413 payload_too_large` instead of `500`.

### Threads posting pace [#threads-posting-pace]

<Change kind="improvement" label="Improvement" tags={['Posts', 'Threads']} />

Tebar starts at most 5 Threads posts a minute per account. The rest wait with `error_code` `publish_paced` and go out on their own. A thread counts as one post. This keeps Meta from treating a burst of posts from an AI agent as spam.

## October 28, 2026 [#october-28-2026]

### Automatic public replies to Threads comments [#automatic-public-replies-to-threads-comments]

<Change kind="feature" label="New" tags={['Automations', 'Threads', 'MCP']} />

`POST /v1/automations` now works for Threads accounts with `kind: "comment_reply"`. Put 3–5 texts in `actions.public_replies`, and Tebar picks one at random, waiting at least 30 seconds.

### YouTube for everyone [#youtube-for-everyone]

<Change kind="feature" label="New" tags={['YouTube']} />

The `youtube` platform is open to every user. Set a video thumbnail with `options.youtube.cover_media_id`. `GET /v1/accounts/youtube/upload-quota` shows the uploads left today.

## October 27, 2026 [#october-27-2026]

### Pinterest [#pinterest]

<Change kind="feature" label="New" tags={['Pinterest']} />

Pin photos to a board with `options.pinterest.board_id`. `GET` and `POST /v1/accounts/{id}/pinterest/boards` read and create boards.

### Image covers for TikTok videos [#image-covers-for-tiktok-videos]

<Change kind="feature" label="New" tags={['Posts', 'TikTok']} />

`options.tiktok.cover_media_id` uses an image from the media library as the cover. `video_cover_timestamp_ms` still picks a frame.

### TikTok video frame rate checked before posting [#tiktok-video-frame-rate-checked-before-posting]

<Change kind="improvement" label="Improvement" tags={['Posts', 'TikTok']} />

Videos outside 23–60 FPS are refused up front with `video_frame_rate_unsupported` instead of failing on TikTok.

## October 26, 2026 [#october-26-2026]

### Instagram DM automations [#instagram-dm-automations]

<Change kind="feature" label="New" tags={['Automations', 'Instagram', 'MCP']} />

`/v1/automations` creates and manages automatic DMs: `comment_to_dm`, `dm_keyword`, `story_reply`, `story_mention`, `default_reply`, and `ice_breaker`. Messages can carry link buttons and a `follow_gate`. Their history is at `GET /v1/automations/{id}/runs`. In MCP: `list_automations`, `create_automation`, and `update_automation`.

### `message.received` and `automation.run` webhooks [#messagereceived-and-automationrun-webhooks]

<Change kind="feature" label="New" tags={['Webhooks', 'Inbox']} />

Two new [webhook](/en/api/webhook) events: a new DM from a customer, and the outcome of an automation that answered a comment.

## October 25, 2026 [#october-25-2026]

### Instagram DM inbox through the API [#instagram-dm-inbox-through-the-api]

<Change kind="feature" label="New" tags={['Inbox', 'Instagram', 'MCP']} />

`/v1/inbox/conversations` reads conversations and messages, sends text, photos, and videos, and marks conversations done. In MCP: `list_conversations`, `get_conversation`, `send_dm`, and `set_conversation_status`. Paid plans only.

## October 24, 2026 [#october-24-2026]

### New permission for Threads replies and threads [#new-permission-for-threads-replies-and-threads]

<Change kind="action" label="Action required" tags={['Threads', 'Comments']} />

Replying to and hiding Threads comments, threads, and `reply_control` now need the `threads_manage_replies` permission. Threads accounts connected before October 24, 2026 need to be reconnected. Until then, those requests answer `422 permission_missing` or `422 option_permission_missing`. See [Limitations](/en/batasan).

## October 23, 2026 [#october-23-2026]

### Discord [#discord]

<Change kind="feature" label="New" tags={['Discord']} />

The `discord` platform: post to server channels, up to 2,000 characters and 10 files.

## October 21, 2026 [#october-21-2026]

### Ideas board [#ideas-board]

<Change kind="feature" label="New" tags={['Ideas', 'MCP']} />

`/v1/ideas`, `/v1/idea-columns`, and `GET /v1/ideas/board` manage content ideas. Send `idea_id` with `POST /v1/posts` to mark the post as made from that idea.

### Every post on an account [#every-post-on-an-account]

<Change kind="feature" label="New" tags={['Posts', 'Insights', 'MCP']} />

`GET /v1/accounts/{id}/posts` lists an account's posts with their full text and numbers. On Threads, Instagram, and TikTok, it includes posts made in the app too. In MCP: `list_posts` and `get_post`.

### Telegram [#telegram]

<Change kind="feature" label="New" tags={['Telegram']} />

The `telegram` platform: post to channels and groups through Tebar's bot.

## October 20, 2026 [#october-20-2026]

### Profiles, connect links, and webhooks [#profiles-connect-links-and-webhooks]

<Change kind="feature" label="New" tags={['Profiles', 'Webhooks']} />

- **Profiles**: `/v1/profiles` keeps accounts, posts, and media apart per brand or client. The `Tebar-Profile` header limits a request to one profile, and API keys can be locked to one. The dashboard calls them workspaces.
- **Connect links**: `POST /v1/profiles/{id}/connect-links` makes a link for clients to connect their own accounts.
- **Webhooks**: `/v1/webhooks` sends `post.published`, `post.failed`, `comment.created`, and account events, signed with the `Tebar-Signature` header.

### X [#x]

<Change kind="feature" label="New" tags={['X']} />

The `x` platform. Each post is paid from your Tebar balance. Not enough balance answers `wallet_insufficient`.

## October 11, 2026 [#october-11-2026]

### First release [#first-release]

<Change kind="feature" label="New" tags={['General']} />

The `/v1` REST API with API keys, and the MCP server at `https://api.tebar.app/mcp` with OAuth 2.1. Posting and scheduling to Threads and Instagram, and comments.
