evidence.sources[] array, entity evidence.mentions, and often inline media. Captures are pulled from the live Perplexity app in a real browser, then normalized into the same canonical Envelope every surface returns — so the parser you write here works everywhere.
Enum
perplexityCredits per capture
3 credits — charged only on success.
What Perplexity commonly returns
Perplexity leans hard on citations. Expect a long, well-attributed source list, plus entities and media.evidence.sources[]
Heavy citations — the primary strength of this surface.
evidence.mentions
Entity strings referenced in the answer.
media
Images and other media pulled alongside the answer.
answer
answer.markdown is always populated; answer.blocks[] link to sources.Every surface normalizes to the same Envelope. Perplexity just tends to populate
evidence.sources[] more densely than most. See Output formats for the full field-by-field breakdown.Request
The simplest way to capture one Perplexity result is the sync-by-default aliasPOST /v1/search/perplexity, which accepts prompt (an alias of query) and a flat country.
Body fields
Your prompt (1–10000 characters). On the
/v1/search/perplexity alias you may send it as prompt instead.Must include
"perplexity". On the alias endpoint the surface is fixed by the path, so you omit it.One capture per surface × region. Each entry is
{ country, city?, language? }; country is an ISO-3166 alpha-2 code. On the alias endpoint use the flat country field instead.Scheduling priority, 1–10.
Response (trimmed Envelope)
A Perplexity capture returns the canonical Envelope. Below it is trimmed to show the shape — note the longevidence.sources[] array and the entity evidence.mentions.
Always populated. Use this as your rendering source of truth.
answer.text carries the plain-text variant, and answer.blocks[] carry referenceIds that point into evidence.sources.The citation list — richest on this surface. Each source has
{ id, url, title, role, cited, charRanges, quote }. charRanges map the source back to spans of the answer text; cited flags whether it was actually referenced.Entity strings referenced in the answer (products, brands, people).
When
false (paired with a surface_absent warning), Perplexity returned nothing for this prompt. The job still completes with an empty answer — you are not charged.Alias endpoint
POST /v1/search/perplexity is a convenience wrapper that runs a single Perplexity capture synchronously and returns the Envelope inline with a 200.
Send prompt + country
Post
{ "prompt": "...", "country": "US" } to /v1/search/perplexity. prompt aliases query; country is the flat form of a region.Read the Envelope inline
A
200 returns the child Envelope directly — no polling. The equivalent on the canonical endpoint is POST /v1/search?mode=sync with surfaces: ["perplexity"].Need many surfaces or regions at once? Drop the sync alias and use the async
POST /v1/search, which returns a parent jobId plus one child per surface × region. See Asynchronous captures.Related
Output formats
The full Envelope: answer, blocks, sources, mentions, media.
Search API
The canonical
POST /v1/search endpoint and every body field.Regions
Capture Perplexity from multiple countries and languages.
Synchronous captures
How
mode=sync and the per-surface alias return results inline.