Skip to main content
Querying AI is an API that answers one question: what does an AI engine say when you ask it something? You submit a prompt targeted at an engine, and we return that engine’s answer along with the sources it cited. It implements the same request/response contract as Cloro, so existing Cloro clients migrate by changing the base URL and API key — no code changes. See Migrating from Cloro.

How it works

Every request is asynchronous. You submit a task, we queue it, a worker drives the target engine (via HTTP scraping or a real browser, depending on the engine), and the result comes back to you either through a webhook or by polling.
1

Submit a task

POST /v1/async/task with a taskType and a payload. You get back a task id immediately, with status QUEUED.
2

We drive the engine

A worker claims the task, queries the engine, and extracts the answer text, sources, and any engine-specific extras.
3

Collect the result

If you supplied webhook.url, we POST the result to it. Otherwise poll GET /v1/async/task/{id} until status is COMPLETED or FAILED.

What you get back

Regardless of engine, the useful core of every result is the same shape:
string
The engine’s answer as plain text.
array
The citations the engine attached to its answer — position, url, and usually label.
Engines add their own fields on top of that (Google returns a full SERP envelope, ChatGPT and Grok can return the search queries they fanned out to). See Engines for the per-engine shape.

Base URL

All endpoints except /health and /ready require a bearer token.

Start here

Submit your first task and get a result back in under five minutes.