Quickstart
1. Get an API key
Section titled “1. Get an API key”Create an account at app.serplify.io (email magic link — no password) and you start with $5 of free balance. Open API keys → Create key and copy the key — it is shown once.
Keys look like live_… (production) or test_….
2. Make a live SERP request
Section titled “2. Make a live SERP request”curl -X POST https://api.serplify.io/v1/serp/search \ -H "Authorization: Bearer live_your_key_here" \ -H "Content-Type: application/json" \ -d '{ "keyword": "best running shoes", "location": { "code": 2840 }, "language": { "code": "en" }, "device": "desktop", "format": "advanced" }'3. Read the response
Section titled “3. Read the response”{ "request_id": "req_9f2c…", "status": "ok", "meta": { "api_version": "0.1.0", "time": 1.13, "cost": 0.005, "currency": "USD" }, "data": { "keyword": "best running shoes", "search_engine": "google", "search_engine_domain": "google.com", "device": "desktop", "location": { "code": 2840, "name": "United States" }, "language": { "code": "en", "name": "English" }, "result_url": "https://www.google.com/search?q=best+running+shoes", "fetched_at": "2026-07-02T12:00:00.000Z", "total_results_count": 1240000000, "pages_crawled": 1, "items_count": 42, "feature_types": ["organic", "paid", "people_also_ask", "related_searches"], "items": [ /* … SERP items … */ ] }}Language & runtime examples
Section titled “Language & runtime examples”const res = await fetch("https://api.serplify.io/v1/serp/search", { method: "POST", headers: { Authorization: `Bearer ${process.env.SERPLIFY_KEY}`, "Content-Type": "application/json", }, body: JSON.stringify({ keyword: "best running shoes", location: { code: 2840 }, language: { code: "en" }, format: "advanced", }),});const body = await res.json();console.log(body.data.items);import os, requests
res = requests.post( "https://api.serplify.io/v1/serp/search", headers={"Authorization": f"Bearer {os.environ['SERPLIFY_KEY']}"}, json={ "keyword": "best running shoes", "location": {"code": 2840}, "language": {"code": "en"}, "format": "advanced", },)res.raise_for_status()print(res.json()["data"]["items"])What next?
Section titled “What next?”- Prefer async at scale? Use tasks.
- Track rankings over time with rank tracking.
- Understand every field in the response format.