tebarDocs
GuideDevelopersAPI ReferenceChangelog

API introduction

Authentication, formats, and conventions of the Tebar REST API.

Base URL: https://api.tebar.app/v1

The dashboard and Tebar's own MCP server use this API, so anything you can do there can also be done through the API.

Authentication

Create an API key in the dashboard: the account menu → API keys → Create an API key. Choose read or read and write access. The full key is only shown once.

Send the key in the Authorization header:

curl https://api.tebar.app/v1/accounts \
  -H "Authorization: Bearer tb_live_xxx"
  • Keys are accepted only in the header, never in the query string.
  • Tebar only stores a hash of the key, so a lost key cannot be shown again. Revoke it and create a new one.
  • Up to 25 active keys per account.
  • write access includes read.

Format

  • Request and response bodies are JSON with snake_case field names.
  • Times are ISO 8601. Send them with a time zone (2026-10-15T09:00:00+07:00); responses are always in UTC.

Pagination

GET /v1/posts?limit=20&cursor=...
{ "data": [], "next_cursor": "..." }

next_cursor is null on the last page. limit is at most 100.

Idempotency

Send an Idempotency-Key header when creating a post. If a request with the same key and body is sent again (after a timeout, for example), Tebar returns the post it already created instead of making a new one. The same key with a different body is refused with 409 idempotency_conflict.

curl -X POST https://api.tebar.app/v1/posts \
  -H "Authorization: Bearer tb_live_xxx" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"content":"Hello!","targets":[{"account_id":"..."}]}'

Rate limits

Responses include the RateLimit-Limit, RateLimit-Remaining, and RateLimit-Reset headers. When a limit is exceeded, the API answers 429 rate_limited.

Main endpoints

MethodPathScopeWhat it does
GET/mereadAccount info and the token's kind of access
GET/accountsreadConnected social accounts
GET/accounts/{id}/publishing-limitreadRemaining posting quota
POST/accounts/discord/webhookwriteConnect a Discord channel with a webhook URL
POST/postswriteCreate a post
GET/posts, /posts/{id}readList and details of posts created through Tebar
PATCH/posts/{id}writeChange a scheduled post
DELETE/posts/{id}writeCancel a scheduled post
POST/posts/{id}/publishwritePublish now
POST/posts/{id}/retrywriteRetry the accounts that failed
POST/media/from-url, /media/uploadwriteUpload media
GET/ideas/boardreadIdeas board
POST/ideas, /idea-columnswriteAdd an idea, add a column
GET/commentsreadComments
GET/accounts/{id}/insightsreadAccount statistics
GET/accounts/{id}/postsreadEvery post on an account
GET/accounts/{id}/posts/{postId}readOne post and its Threads thread parts
POST/insights/syncreadFetch the latest statistics and post list

On this page