Rate Limits - SMB Sales Boost API

API requests are rate-limited to ensure fair usage. Rate limit information is included in response headers.

Rate Limit Tiers

General Endpoints
600 requests per minute per API key
Export Endpoints
5 requests per minute per API key
AI Endpoints
5 requests per minute per API key

Integration endpoints (/api/v1/integrations) also share one budget per account of 60 requests per minute, counted together with the dashboard's Integrations tab and every API key of the account (REST and MCP). Starting a CRM connection is also limited to 30 per minute per account.

The MCP endpoint (POST /mcp) accepts up to 60 requests per minute per client IP address. Each MCP tool call also counts against the limits of the REST endpoints it calls.

Rate Limit Headers

HeaderDescription
X-RateLimit-LimitMaximum requests allowed in the window
X-RateLimit-RemainingRemaining requests in the current window
X-RateLimit-ResetWhen the window resets, as an ISO 8601 date-time
Retry-AfterSeconds to wait before retrying (only on 429)

The X-RateLimit-* headers describe the most specific limit that applies to the request: the 5 per minute limit on export and AI endpoints, the per-account integration budget on integration endpoints (60 per minute, or 30 on CRM connect), and the 600 per minute limit on every other request made with an API key. On a rate-limit 429 (error Rate limit exceeded) they describe the limit that was hit. The 600 per minute limit still counts every request made with an API key. The purchase endpoints, which take no API key, have their own per-IP limits instead (see Programmatic Purchase).

429 Responses

A rate-limited request gets {"error": "Rate limit exceeded", "message": "...", "retryAfter": 42}, where retryAfter matches the Retry-After header. The lead search endpoints (GET /api/v1/leads, GET /api/v1/leads/preview, POST /api/v1/leads/export and the email schedule trigger) can also return 429 lead_query_capacity_busy with Retry-After: 10 when search capacity is busy. Both 429s carry the X-RateLimit-* headers, so tell them apart by the body's error field (Rate limit exceeded or lead_query_capacity_busy). Both are refused before anything is charged, so retry after the delay.


API Documentation Sections

Introduction | Programmatic Purchase | Authentication | Rate Limits | Long-Running Requests | User Profile | Enrichments | Leads | Filter Presets | Keyword Lists | Email Schedules | Export Formats | Export History | Lead Export History | Account Settings | AI Features | Export Blacklist | Error Handling | Credits & Subscription | MCP Server | Integrations

View Full API Documentation


Ready to Find Your Next Customers? Get access to growing local business leads updated every 5 minutes. See plans starting at $49/mo →