generated: '2026-08-13' method: searched source: https://sendlane.stoplight.io/docs/api-documentation/80256ed7dae2a-rate-limits name: Sendlane API Rate Limits description: >- Rate limits for the Sendlane v2 API. Limits are enforced per user ACCOUNT and are totalled across all API usage for that account, regardless of how many integrations or API keys are active. url: https://sendlane.stoplight.io/docs/api-documentation/80256ed7dae2a-rate-limits created: '2026-06-13' modified: '2026-08-13' limit_count: 1 rateLimits: - scope: account limit: 240 unit: requests window: 1m burst: null description: >- 240 calls per minute, applied to all API v2 endpoints and totalled across every integration and every API key on the account. source: https://sendlane.stoplight.io/docs/api-documentation/80256ed7dae2a-rate-limits verbatim: >- "Rate limits apply on all API endpoints. Limits are per user account and totalled across all API usage. Per Minute: 240 calls" headers: request: [] response: [] note: >- THE LIMIT IS NOT OBSERVABLE AT RUNTIME. Probed 2026-08-13: GET https://api.sendlane.com/v2/lists returns HTTP 401 carrying only date, content-type, server, x-content-type-options, cache-control, set-cookie and Cloudflare's cf-cache-status/cf-ray. No RateLimit-*, no X-RateLimit-*, no Retry-After. A client cannot read remaining quota and must count its own calls. (The Sendlane dashboard hosts DO emit x-ratelimit-limit / x-ratelimit-remaining — observed 480 on auth.sendlane.com — but that is the web app, not the v2 API, and it is a different number.) responses: - statusCode: 429 description: >- Too Many Requests — the account's 240/minute budget is exhausted. Documented on the provider's Responses page. retry_after_header: false - statusCode: 403 description: >- Forbidden. The provider's Responses page states 403 can mean "blocked due to many errors in particular time" — an error-rate circuit breaker distinct from the request-rate limit, with no published threshold. bestPractices: - >- Batch writes. POST /lists/{listId}/contacts accepts a `contacts` array, so one request can carry many contacts instead of one request each — the single most effective way to stay inside 240/min. - >- Avoid N+1 report pulls. Listing campaigns and then fetching a report per campaign multiplies calls; window the pull with from/to and cache results. - Implement exponential backoff on 429 — there is no Retry-After to read. - >- Budget across integrations. The limit is per ACCOUNT, so a third-party connector (Pipedream, Keystroke, a Shopify app) consumes the same 240/min your code does. - Contact Sendlane support for enterprise-level rate limit adjustments.