oqimDocs
API referenceConsole

Start here

  • Introduction
  • Getting started

Guides

  • Telegram accounts
  • Recipients
  • Campaigns
  • Scheduling
  • Webhooks
  • AI writing assistant

AI Seller

  • AI Seller
  • Channels
  • Live inbox
  • Past conversations and privacy
  • Business insights

API

  • Authentication
  • API reference
  • SDK
  • Errors
  • Rate limits

Trust and operations

  • Security
  • Compliance
  • Administration
Docs / Rate limits

Start here

  • Introduction
  • Getting started

Guides

  • Telegram accounts
  • Recipients
  • Campaigns
  • Scheduling
  • Webhooks
  • AI writing assistant

AI Seller

  • AI Seller
  • Channels
  • Live inbox
  • Past conversations and privacy
  • Business insights

API

  • Authentication
  • API reference
  • SDK
  • Errors
  • Rate limits

Trust and operations

  • Security
  • Compliance
  • Administration

Rate limits

The API limits how fast clients may call it, and plans limit how much an organization can hold. Neither is Telegram pacing, which limits how fast each account sends and is covered at the end.

Request limits#

Applies toLimitCounted per
Authenticated requests1,200 per minuteAPI key, or user for console sessions
Public endpoints: sign-up, sign-in, /auth/token, invitations, opt-out pages, public config30 per minuteClient IP address
  • Limits use fixed one-minute windows.
  • Access tokens count against the API key they were issued from, so exchanging a key for tokens doesn't add capacity.
  • Every API key has its own allowance; so does every person using the console.

Headers#

Every response from a limited endpoint says where you stand:

HeaderMeaning
X-RateLimit-LimitRequests allowed in the window.
X-RateLimit-RemainingRequests left in the current window.
Retry-AfterOnly on 429: seconds to wait before trying again (the window length).
Over the limit
HTTP/1.1 429 Too Many Requests
Content-Type: application/json; charset=utf-8
X-RateLimit-Limit: 1200
X-RateLimit-Remaining: 0
Retry-After: 60

{"error":{"code":"rate_limited","message":"Too many requests. Slow down and retry shortly."}}

Staying under the limit#

  • Fetch lists in pages of up to 500 (limit=500) instead of loading objects one by one.
  • Subscribe to webhooks, or read GET /events/stream, instead of polling campaigns for progress.
  • Reuse an access token for its whole hour.
  • On a 429, wait for Retry-After. Retrying sooner only uses up the next window.

Plan limits#

Plans cap what an organization can have at once. Going over fails with 403 plan_limit_reached and a message naming the limit: connecting another account, adding or importing more recipients, inviting another member or launching another campaign waits until something is removed or the plan changes. Platform administrators change plans; GET /organization/usage shows where you stand.

PlanAccountsActive campaignsRecipientsTeam membersWebhook endpoints
Free111,0002—
Pro101050,00055
Business5050250,0002520
EnterpriseUnlimitedUnlimitedUnlimitedUnlimitedUnlimited

Active campaigns are those scheduled, running or paused; team members count pending invitations. Every plan includes API access. Each campaign can also reach at most 50,000 sendable recipients, a platform setting.

Telegram pacing is separate#

API limits protect Oqim. Telegram's limits protect Telegram's users, and they apply to each account: its daily limit and minimum interval in Oqim, flood waits that Telegram imposes, and restrictions for accounts that message people who don't expect it.

Note

Calling the API faster never sends messages faster. The scheduler paces every account on its own; see how dispatch paces accounts and account pacing.
PreviousErrorsNext Security