serp_rank
Check where a domain ranks in Google's organic results for a keyword — the real SERP position, not Custom Search order. Returns the target's organic rank, the ranking URL, and every position it holds. Powered by DataForSEO.
Use Cases
Keyword Rank Tracking
Monitor where your pages rank for target keywords over time and catch ranking drops early
Competitor SERP Monitoring
Track how competitor domains rank for the keywords that matter to your business
SEO Position Audits
Audit organic positions across a keyword list to prioritize on-page and content work
Local & Device SEO Checks
Compare rankings by location and by desktop vs. mobile to spot geo or device gaps
Rank-Tracking Dashboards
Feed daily organic positions into your own dashboards and reporting pipelines
Endpoint
/api/v1/tools/serp_rankParameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
keyword | string | Required | - | The search query to check ranking for Example: managed wordpress hosting |
target | string | Required | - | Domain or URL to locate in the results Example: example.com |
depth | number | Optional | 100 | How many results to scan (10-200; 100 = 1 page of cost) Example: 100 |
device | string | Optional | desktop | Device to emulate: "desktop" or "mobile" Example: mobile |
location_name | string | Optional | United States | Location, e.g. 'United States' or 'London,England,United Kingdom' Example: United States |
location_code | number | Optional | - | Numeric DataForSEO location code (overrides location_name) Example: 2840 |
language_code | string | Optional | en | Language code (e.g. 'en') Example: en |
Request Examples
curl -X POST https://crawlforge.dev/api/v1/tools/serp_rank \
-H "X-API-Key: cf_test_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"keyword": "managed wordpress hosting",
"target": "example.com",
"depth": 100,
"device": "desktop",
"location_name": "United States",
"language_code": "en"
}'Response Example
{ "success": true, "data": { "keyword": "managed wordpress hosting", "target": "example.com", "location": "United States", "language": "en", "device": "desktop", "depth": 100, "found": true, "rank": 3, "url": "https://example.com/", "all_positions": [ 3, 27 ], "results_scanned": 100, "checked_at": "2026-07-01T14:30:00Z" }, "credits_used": 5, "credits_remaining": 995, "processing_time": 1450}data.rankBest organic position (null if the target is not found within depth)data.urlThe ranking URL that holds the best positiondata.all_positionsEvery organic position the target holds within the scanned depthdata.foundWhether the target appeared within the scanned depthcredits_usedFixed 5 credits per lookup (100 results = 1 page of cost)processing_timeLookups typically complete in 1-2 secondsError Handling
Missing Keyword or Target (400 Bad Request)
Both keyword and target are required. Provide a search query and a domain or URL.
Invalid Depth (400 Bad Request)
Depth must be between 10 and 200. Larger depths scan more results.
Invalid Device (400 Bad Request)
Device must be "desktop" or "mobile".
Quota Exceeded (429 Too Many Requests)
The SERP provider enforces daily limits. Upgrade your plan for higher quotas.
Credit Cost
What's Included:
Real organic SERP position (not Custom Search order)
Ranking URL and every position the target holds
Location and language targeting
Desktop and mobile device emulation
Depth up to 200 results
Plan Recommendations:
Free Plan: 1,000 one-time trial credits = 200 lookups
Hobby Plan: 5,000 credits = 1,000 lookups ($19/mo)
Professional Plan: 50,000 credits = 10,000 lookups ($99/mo)