Skip to main content
The SnowSEO API lets you access your SEO data programmatically. Use it to run audits, check keyword rankings, fetch analytics, or embed SnowSEO data into your own dashboards, scripts, and integrations.
The API is available on the Scale plan. Generate API keys from Settings → Integrations → API in your dashboard. Each key is scoped to a specific brand — one key per brand.

Base URL

All API requests go to this base URL:
Every response is JSON. Send request bodies as JSON with the Content-Type: application/json header.

What You Can Do With the API


Authentication

All endpoints require an API key in the Authorization header:
Keys start with sk_ and are generated in Settings → Integrations → API. See the Authentication guide for full details on creating keys, scoping, and security best practices.

How to Make a Request

Here’s the typical pattern for any API call:
For GET requests, pass parameters as query strings:

Your First Integration

Here’s a minimal Node.js example to get you started:
The API key carries your brand context automatically — no need to pass teamId as a query parameter.

Endpoints Overview

The API is organized into these categories: Browse all endpoints using the navigation on the left.

Response Format

All responses follow a consistent structure. Successful responses return the data directly:
Error responses always include an error field with a human-readable message (there are no machine-readable error codes):

Rate Limits

Limits vary by endpoint — up to 60 requests per minute per endpoint, while heavier endpoints may have stricter caps. When rate limited, the API returns 429 with a retryAfterSeconds hint:
Handling rate limits:
  • Wait for the number of seconds indicated by retryAfterSeconds
  • If you don’t have a retryAfterSeconds value, use exponential backoff (1s, 2s, 4s, 8s…)
  • If you’re regularly hitting the limit, batch your requests or add delays between calls

Error Handling

The API uses standard HTTP status codes: Always check both the HTTP status code and the error field in the response body:

Testing with cURL

The quickest way to test the API is with cURL from your terminal:

SDKs & Client Libraries

Currently, the API is raw HTTP — no official SDK yet. The authentication guide has examples in Node.js and Python that you can copy into your project. If you build a client library, let us know and we can list it here.

Need Help?