Generative Engine Optimization

Search AI Mode generative results · GEO API

POST/geo/serp
$min $0.01

Run one live AI Mode search for generative answer evidence, cited sources, and target-domain visibility.

Using ChatGPT, Claude Code or another client? See the setup steps

Request
curl -X POST https://api.unifapi.com/geo/serp \
  -H "Authorization: Bearer $UNIFAPI_KEY" \
  -H "Content-Type: application/json"

Parameters

The parameter for this GEO operation. Use the URL-visible slug or id described in the docs.
The parameter for this GEO operation. Use the URL-visible slug or id described in the docs.
Overview

This operation is part of the GEO API in the generative engine optimization category. It uses the same Bearer token, request tracing, error model, and billing envelope as every UnifAPI endpoint, so agents can switch between platforms without custom per-vendor glue code.

Use it when a workflow needs GEO public data but should still keep one API key, one account balance, and one predictable JSON contract across social, live public-data sources.

Common agent workflows

  • Search GEO for public mentions, creators, posts, or topics matching a user query.
  • Feed ranked GEO results into research, monitoring, and enrichment workflows.
  • Give an AI agent a stable GEO data source without building a per-platform integration.
  • Normalize GEO responses into the same UnifAPI envelope used across the catalog.
Response shape

Unified envelope, platform-native fields

  • List-style responses return `data` as an array of top-level records plus optional `pagination` for continuation tokens or cursors.
  • The operation has a 10 credits ($0.01) minimum charge, so `billing.records_charged` can be higher than the visible records returned.
  • If the workspace balance cannot cover every result, the response can be truncated and `billing.truncated_due_to_balance` tells the caller why.

Response status codes

200400401402404429500502503

Billing

This operation charges 1 credit per billable record, with a 10 credits ($0.01) operation minimum. Public responses include billing metadata with credits charged, records charged, and remaining workspace balance. Incorrect Credit deductions caused by platform failures can be restored as billing corrections.

Errors and retries

Authentication, validation, rate-limit, not-found, and provider errors use the unified UnifAPI error format. Agents should log `request_id`, retry only retryable failures, and treat invalid API keys, disabled keys, and expired keys as the same public `unauthorized` error type.

Response fields

Fields in the data object

A successful Search AI Mode generative results call returns one data object with these fields (12 of 13 shown — the docs list the full schema).

querystring
locationstring
languagestring
devicestring
surfacestring
viewstring
observed_atstring
search_urlstring
total_resultsinteger
serp_featuresstring[]
resultsobject[]
AI SERP elements returned in source order. Top-level AI overview records are billable; cited references, links, images, and answer sections are returned as context inside each result.
targetobject
Related endpoints

More GEO operations

Combine endpoints from the same platform, then join the results with other UnifAPI categories without changing authentication or response parsing.

POST/geo/mentions/top-pages

List pages most cited in LLM answers

Rank the pages most frequently cited as sources in LLM answers for a target domain or keyword, with per-dimension breakdowns.

POST/geo/answers

Collect a live ChatGPT or Gemini web answer

Execute one custom prompt against the ChatGPT or Gemini web interface. Returns answer evidence, cited sources, and separate brand-name/domain observations. This is a single unpersonalized sample; repeated runs may differ. 30 credits ($0.03) per successful response, including no-answer results. Credits are reserved before collection; errors are not charged. May take up to 120 seconds. Gemini does not support force_web_search. Use a client timeout of at least 150 seconds. No conversation history or recommendation rank is inferred.

POST/geo/keywords/search-volume

Get AI search volume for keywords

Look up generative-AI search volume and monthly trend for up to 1000 keywords in a location and language.

POST/geo/mentions/delta

Get changes in AI mentions and search volume

Return the net change in AI mentions and estimated AI search volume for a keyword or domain per time bucket (day, week, month or year) — how much each bucket gained or lost against the one before — from the indexed corpus for Google AI Overviews or US-English ChatGPT. This is not a replay of your custom prompt panel. Corpus coverage can change; estimated AI search volume is not observed traffic. Date windows start on 2025-08-01 and span at most 366 days. Costs 10 credits per returned time bucket, minimum 1,000 credits ($1). The maximum credits are reserved before collection; unused credits are released. Failed requests are not charged. Allow at least 150 seconds for the response.

POST/geo/mentions/new-lost

Get new and lost AI mentions and search volume

Return newly appearing and disappearing AI mentions for a keyword or domain per time bucket (day, week, month or year) — new and lost mention counts, each with its estimated AI search volume — from the indexed corpus for Google AI Overviews or US-English ChatGPT. This is not a replay of your custom prompt panel. Corpus coverage can change; estimated AI search volume is not observed traffic. Date windows start on 2025-08-01 and span at most 366 days. Costs 10 credits per returned time bucket, minimum 1,000 credits ($1). The maximum credits are reserved before collection; unused credits are released. Failed requests are not charged. Allow at least 150 seconds for the response.

POST/geo/mentions/search

Search LLM mentions of a domain or keyword

Search an indexed corpus of ChatGPT or Google AI Overview answers. This does not execute a custom prompt. Includes answer text, sources and estimated AI search volume. Costs 10 credits per returned record, minimum 1,000 credits ($1). Reserves credits for limit (default 100) before collection and releases unused credits; no balance truncation. Failed requests are not charged.