name: SMTP2GO API Rate Limits description: Rate limiting rules for the SMTP2GO REST API covering per-endpoint throttles, account-level sending limits, and error handling guidance. version: '0.2' url: https://developers.smtp2go.com/docs/rate-limiting generated: '2026-08-13' method: searched source: https://developers.smtp2go.com/docs/rate-limiting sources: - https://developers.smtp2go.com/docs/rate-limiting - openapi/_original/smtp2go-openapi-original.yml limit_count: 8 response_headers: published: [] note: >- SMTP2GO publishes NO rate-limit response headers. There is no RateLimit-*, no X-RateLimit-*, no Retry-After, and none is declared on any of the 73 operations in the provider's OpenAPI. A client learns it is throttled only from the 429 status and must implement its own backoff — there is no runtime budget signal to read. status_on_exhaustion: 429 limits: - scope: endpoint endpoint: /v3/activity/search operation_id: search-activity limit: 60 period: minute http_status_on_violation: 429 description: The activity search endpoint is limited to 60 requests per minute. source: https://developers.smtp2go.com/docs/rate-limiting - scope: endpoint endpoint: /v3/api_keys/add operation_id: add-api-key limit: 5 period: minute http_status_on_violation: 429 description: Creating new API keys is limited to 5 requests per minute. source: 'openapi/_original/smtp2go-openapi-original.yml — operation description' - scope: endpoint endpoint: /v3/subaccount/add operation_id: add-subaccount limit: 50 period: hour http_status_on_violation: 429 description: Adding subaccounts is rate limited to 50 calls per hour. source: 'openapi/_original/smtp2go-openapi-original.yml — operation description' correction: >- A previous round of this file recorded "/v3/subaccounts/add, 10 per hour". Both the path and the number were wrong; the provider's own contract states 50 calls per hour on /subaccount/add. - scope: ip limit: unspecified period: unspecified http_status_on_violation: 429 description: >- An IP issuing what SMTP2GO deems too many requests, or too many error responses, is timed out for an indeterminate period of no less than one minute. The threshold is not published. source: https://developers.smtp2go.com/docs/rate-limiting - scope: api_key limit: configurable period: configurable default: unlimited http_status_on_violation: 429 description: >- Per-API-key sending rate limits are set individually under Sending > API Keys in the SMTP2GO app and default to unlimited. Exceeding the configured limit produces an "API key ratelimit exceeded" error and notifies team members who have notifications enabled. The same per-credential limit exists on SMTP users (default_ratelimit_value / default_ratelimit_period are returned by /api_keys and /users/smtp). source: https://developers.smtp2go.com/docs/rate-limiting - scope: account limit: 1000 period: day description: >- New paid accounts carry a temporary initial quota of 1,000 emails per day during a one-time review. Mail over that limit is held in the queue and released on full activation, rather than rejected. source: https://developers.smtp2go.com/docs/rate-limiting - scope: plan plan: Free limit: 1000 period: month description: The free plan is capped at 1,000 emails per month. source: https://developers.smtp2go.com/docs/rate-limiting - scope: plan plan: Free limit: 200 period: day description: The free plan is limited to 200 emails per day. source: https://developers.smtp2go.com/docs/rate-limiting - scope: plan plan: Free limit: 25 period: hour description: >- The free plan is additionally limited to 25 emails per hour if no sender domain is verified; verifying a sender domain removes the hourly cap. source: https://developers.smtp2go.com/docs/rate-limiting payload_limits: - {scope: request body, limit_mb: 1, applies_to: all non-email endpoints, since: '2026-06-11'} - {scope: request body, limit_mb: 50, applies_to: /v3/email* endpoints, since: '2026-06-11'} - {scope: message, limit_mb: 50, applies_to: 'total email size including content, attachments and headers'} - {scope: recipients, limit: 100, applies_to: 'each of To, CC and BCC per message'} - {scope: recipients, limit: 100, applies_to: destination numbers per /sms/send call} - {scope: queue, limit: 10000, applies_to: scheduled emails queued at one time} error_handling: too_many_requests: http_status: 429 message: Too Many Requests description: >- Returned when an IP address is timed out due to excessive requests or error responses. The timeout lasts no less than 1 minute. api_key_ratelimit_exceeded: description: >- Returned when a per-API-key sending rate limit configured in the app is exceeded. An email notification is sent to team members with notifications enabled. backoff_guidance: >- Pause and progressively lower the request rate until 200 OK responses return. Also ensure the requests being sent are succeeding — a high error rate itself triggers the IP timeout. Do not retry immediately; there is no Retry-After to honour, so use exponential backoff.