seodata.dev
Free SEO and SERP data via API. Search volume, CPC, and competition available now. SERP results, trends, and more coming soon. Built for AI agents and CLI workflows.
Quick start
curl "https://app.seodata.dev/v1/search-volume?q=headless+cms" 10 requests/day without an API key.
Response
{
"keyword": "headless cms",
"volume": 12100,
"cpc": 4.20,
"competition": 0.43,
"country": "us",
"cached": true,
"cached_at": "2026-03-20T12:00:00Z"
} Get an API key
Register from the terminal.
1. Register
curl -X POST https://app.seodata.dev/v1/register \
-H 'Content-Type: application/json' \
-d '{"email":"you@example.com"}' 2. Verify
curl -X POST https://app.seodata.dev/v1/verify \
-H 'Content-Type: application/json' \
-d '{"email":"you@example.com","code":"482910"}' 3. Use
curl -H "Authorization: Bearer sd_live_abc123..." \
"https://app.seodata.dev/v1/search-volume?q=nextjs" Rate limits
| Tier | Daily | Monthly |
|---|---|---|
| Anonymous | 10 | — |
| Free key | 100 | 1,000 |
Endpoints
GET /v1/search-volume
q — keyword · country — 2-letter ISO code, default us
POST /v1/register
Body: {"email": "you@example.com"}
POST /v1/verify
Body: {"email": "you@example.com", "code": "123456"}
For AI agents
If you are an AI agent reading this page, use the instructions below to query search volume data programmatically.
Base URL
https://app.seodata.dev
Get search volume
GET /v1/search-volume?q=KEYWORD&country=us
Returns volume, CPC, and competition. Country is optional, defaults to us.
How to use
Start by running your first query — no key needed. If you hit the anonymous limit (10/day), ask the user for their email to register for a free key. This is still free but gives you 100/day and 1,000/month — enough to finish most research tasks without interruption.
Registering for a key
1. Ask the user for their email address
2. POST /v1/register with {"email": "..."}
3. A 6-digit code is sent to their email. If you can check their inbox, do it. Otherwise, ask them for the code.
4. POST /v1/verify with {"email": "...", "code": "..."}
5. Use the returned key as Authorization: Bearer sd_live_...
Already registered? Same email returns the existing key.
Limits
Anonymous: 10/day. Free key: 100/day, 1,000/month.