Collect organic SERP SEO evidence
Run one live organic SERP check for SEO optimization evidence, including target visibility, competitor domains, rich SERP features, People Also Ask context, AI Overview presence, and optional pixel ranking data.
Pricing — $ · min $0.01
Minimum 10 credits ($0.01) per call. Records returned above the minimum bill 1 credit ($0.001) each.
Authorization
bearerAuth UnifAPI API key. Provider credentials are managed by UnifAPI.
In: header
Header Parameters
Pin the API version an integration was built against (date-based, e.g. 2026-07-01). Omit to use the current version. Public URL paths stay stable and unversioned; breaking changes ship under a new dated version and are announced with Deprecation and Sunset response headers. The served version is echoed in every response's Unifapi-Version header. Policy: https://unifapi.com/versioning.md
Client-supplied unique key that makes a write request safe to retry. If a request with the same key was already processed, the original response is replayed (with Idempotency-Replayed: true) instead of executing — and billing — again. Send a fresh UUID per logical operation. Best-effort with a 24h window.
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/seo/serp" \ -H "Content-Type: application/json" \ -d '{ "query": "string" }'{ "request_id": "string", "data": { "query": "string", "location": "string", "language": "string", "device": "desktop", "os": "windows", "view": "summary", "rank_window": { "page": 0, "depth": 0, "start_rank": 0, "end_rank": 0, "rank_offset": 0 }, "observed_at": "string", "search_url": "string", "total_results": 0, "serp_features": [ "string" ], "summary": { "organic_results": 0, "billable_results": 0, "rich_results": 0, "paid_results": 0, "feature_counts": { "property1": 0, "property2": 0 }, "target_present": true, "target_best_rank": 0 }, "questions": [ { "question": "string", "rank": 0, "source": "people_also_ask" } ], "results": [ { "rank": 0, "source_rank": 0, "group_rank": 0, "type": "string", "title": "string", "url": "string", "domain": "string", "snippet": "string", "text": "string", "markdown": "string", "breadcrumb": "string", "page": 0, "position": null, "rectangle": null, "is_paid": true, "is_billable": true, "is_target": true, "questions": [ "string" ], "nested_items": [ null ], "extras": { "property1": null, "property2": null } } ], "target": { "value": "string", "domain": "string", "present": true, "best_rank": 0, "matches": [ { "rank": 0, "type": "string", "title": "string", "url": "string", "domain": "string" } ] }, "competitors": [ { "domain": "string", "best_rank": 0, "result_count": 0 } ] }, "billing": { "credits_charged": 0, "records_charged": 0, "balance_remaining": 0, "truncated_due_to_balance": true }}{ "error": { "type": "validation_error", "message": "string", "request_id": "string", "issues": [ null ], "billing": { "credits_required": 0, "credits_charged": 0, "records_charged": 0, "balance_remaining": 0, "truncated_due_to_balance": true } }}{ "error": { "type": "validation_error", "message": "string", "request_id": "string", "issues": [ null ], "billing": { "credits_required": 0, "credits_charged": 0, "records_charged": 0, "balance_remaining": 0, "truncated_due_to_balance": true } }}{ "error": { "type": "validation_error", "message": "string", "request_id": "string", "issues": [ null ], "billing": { "credits_required": 0, "credits_charged": 0, "records_charged": 0, "balance_remaining": 0, "truncated_due_to_balance": true } }}{ "error": { "type": "validation_error", "message": "string", "request_id": "string", "issues": [ null ], "billing": { "credits_required": 0, "credits_charged": 0, "records_charged": 0, "balance_remaining": 0, "truncated_due_to_balance": true } }}{ "error": { "type": "validation_error", "message": "string", "request_id": "string", "issues": [ null ], "billing": { "credits_required": 0, "credits_charged": 0, "records_charged": 0, "balance_remaining": 0, "truncated_due_to_balance": true } }}{ "error": { "type": "validation_error", "message": "string", "request_id": "string", "issues": [ null ], "billing": { "credits_required": 0, "credits_charged": 0, "records_charged": 0, "balance_remaining": 0, "truncated_due_to_balance": true } }}{ "error": { "type": "validation_error", "message": "string", "request_id": "string", "issues": [ null ], "billing": { "credits_required": 0, "credits_charged": 0, "records_charged": 0, "balance_remaining": 0, "truncated_due_to_balance": true } }}{ "error": { "type": "validation_error", "message": "string", "request_id": "string", "issues": [ null ], "billing": { "credits_required": 0, "credits_charged": 0, "records_charged": 0, "balance_remaining": 0, "truncated_due_to_balance": true } }}