Docs
Developer CenterDashboardesimoa.com
    • Introduction
    • Quickstart
    • Authentication
    • Overview
    • List eSIMs
    • Get an eSIM
    • Countries
    • OpenAPI
    • Tracking & commission
    • Rate limits & errors
    • Overview
    • Claude
    • ChatGPT
    • Gemini
    • Other MCP clients
    • Overview
    • Authentication
    • Products
    • Product detail
    • Countries
    • Errors & rate limits
  1. Docs
  2. Guides
  3. Rate limits & errors

Guides

Rate limits & errors

Public API per-account rate limits, error response format, status codes and caching guidance.

On this page
  • Rate limits
  • Status codes
  • Error format
  • Caching

Rate limits#

Note

Public API and authenticated MCP share a per-partner hourly quota (default 20,000). Adding or rotating keys does not increase it.

The 3,600-second window starts on the first request; the per-minute limit also applies. Quotas count calls, not transferred MB. Operational settings may change the quota.

MCP batches accept up to 100 messages and count each message as one call. A batch that exceeds the available quota returns 429 before execution.

X-RateLimit-Hour-Limit · X-RateLimit-Hour-Remaining · X-RateLimit-Hour-Reset

These headers report the hourly limit, remaining calls and reset time (Unix seconds). Hourly exhaustion returns HTTP 429 and Retry-After in seconds. Calls rejected by the minute limit do not count toward the hourly quota.

Each partner account defaults to 600 requests per minute. Beyond that you get 429 rate_limited.

Tip

If you receive a 429, wait a moment and retry. If you repeat the same searches, caching results for a few minutes is the most effective fix.

Status codes#

HTTPMeaning
200Success
400Invalid parameters
401 invalid_api_keyMissing, wrong or revoked key
404Unknown eSIM id
429 rate_limitedRate limit exceeded

Error format#

json
// 401 — missing, invalid or revoked key
{
  "error": "invalid_api_key",
  "message": "Missing or invalid API key. Create one at https://www.esimoa.com/developers/dashboard"
}

// 429 — too many requests for this key
{ "error": "rate_limited", "message": "Rate limit exceeded (600 requests per minute)." }

// 400 — invalid parameters / 404 — unknown eSIM id
{ "statusCode": 404, "message": "eSIM not found", "error": "Not Found" }

Caching#

Prices change often — cache search results for a few minutes at most.

Last updated: October 1, 2026

PreviousTracking & commissionNextAI integrations (MCP)

On this page

  • Rate limits
  • Status codes
  • Error format
  • Caching

APIs and MCP for bringing esimoa eSIMs to your product

Resources

  • Docs
  • API reference
  • Partner API (B2B)
  • MCP server
  • OpenAPI spec

esimoa

  • Home
  • eSIM plans
  • Developer Center
  • Dashboard
  • Partner portal

Company

  • About Us
  • Partnership
  • Terms of Service
  • Privacy Policy
  • Delivery & Refunds Policy

Support

  • support@esimoa.com
  • Support chat

NBase Korea Co., Ltd.

902, Bldg A, 767 Sinsu-ro, Suji-gu, Yongin-si, Gyeonggi-do (Dongcheon-dong, Bundang Suji U-TOWER)

US Headquarters: NBASE CORP. · Corporate Park, Irvine, CA 92606, USA

© 2026 esimoa. All rights reserved.