taskType selects the engine. The envelope around the result is identical for all of
them; what varies is the response object inside it.
Self-serve plans cover six engines:
CHATGPT, GEMINI, PERPLEXITY, GOOGLE,
AIMODE and the NAVER_* family. Those run signed out, so their capacity is a
function of exit IPs and scales with the plan you buy.CLAUDE, GROK, COPILOT, DEEPSEEK and AMAZON are documented here and remain
callable, but they run on pools of logged-in accounts — throughput depends on how many
of those survive, which no plan can promise. Talk to us before building on them.Which payload field an engine reads
Validation accepts eitherprompt or query, but each engine only reads the one it
expects. Send the wrong one and the task queues, then fails.
Reads prompt
CHATGPT PERPLEXITY GEMINI COPILOT GROK CLAUDE DEEPSEEKReads query
GOOGLE AIMODE NAVER_AI_BRIEF NAVER_AI_MODEFalls back to prompt if query is absent.Reads either
AMAZON prefers prompt, falls back to query.The include flags mostly do nothing
payload.include is part of the Cloro contract, but in this implementation most engines
produce a fixed-shape response and ignore it entirely. Only ChatGPT’s anonymous path
honours the full set.
include.rawResponse returns parsed stream events on the engines that stream JSON,
and the untouched response body — as rawContent, not rawResponse — on the ones
we fetch as a document. Either way it can be hundreds of KB, so it is off by default.Claude, DeepSeek, Naver and Amazon accepted this flag and silently ignored it until
2026-07-26. If you tried it before then and got nothing back, try again.markdown is not a flag on every engine that returns it: Claude and Naver ship
markdown unconditionally, because for them it is the answer’s real shape rather than a
copy of text.
CHATGPT runs in one of two modes chosen by server configuration, not by your request.
The account-pool mode is the default and returns a fixed shape; the anonymous mode
returns the richest response in the API. You cannot select between them per task.Response shapes
PERPLEXITY
PERPLEXITY
Reads Optional extras when Perplexity surfaces them:
prompt. Always returns text, sources[], timing.videos, images, hotels, places,
shopping_cards.GEMINI
GEMINI
Reads
prompt. Always returns text, sources[], timing.GOOGLE — AI Overview inside a SERP envelope
GOOGLE — AI Overview inside a SERP envelope
Reads Top-level
query. This is not a bare AI Overview object — it is a search-results envelope
carrying the AI Overview as one nullable member.text and sources are deprecated aliases that duplicate aioverview.text
and aioverview.sources. They exist so consumers of the older bare-AIO shape keep working.
Read aioverview.* in new code.SERP panels are omitted when absent rather than emitted as null or [] — treat every
one of them as optional.AIMODE — Google AI Mode
AIMODE — Google AI Mode
Reads
query. Fixed shape, no markdown or timing.CHATGPT
CHATGPT
Reads Anonymous mode — the richest response in the API, and the only one where every Anonymous mode also supports multi-turn conversations — see Multi-turn.
prompt. The shape depends on the server’s configured mode.Account mode (default) — fixed shape. markdown duplicates text; sources carry only
position and url.include
flag works. All flags default to on.GROK
GROK
Reads Anonymous path — adds
prompt. Two paths, chosen by whether an account is available.Account path — rich sources, searchQueries always present, markdown only if requested.timing, honours markdown and rawResponse.COPILOT
COPILOT
Reads
prompt. model is always the literal string "smart".CLAUDE
CLAUDE
Reads Region-gated: submissions are rejected with
prompt. Fixed shape. markdown duplicates text, and each source’s label
duplicates its url — Claude does not expose link titles.REGION_UNAVAILABLE when no account can serve
payload.country.DEEPSEEK
DEEPSEEK
Reads
prompt. Fixed shape. markdown duplicates text; sources carry only position and url.AMAZON
AMAZON
Prefers
prompt, falls back to query. The only engine that returns a structured product
list.Multi-turn (ChatGPT)
Anonymous-mode ChatGPT can hold a conversation. Omit both fields for the default single-shot behaviour.1
Start a thread
Send
newConversation: true. The response carries a conversationId.2
Continue it
Send that
conversationId back on the next turn.