Skip to main content
POST
Give it a research question and a JSON schema. It plans, searches, reads, notices what is missing, searches again — and cites every field.

Authorizations

Authorization
string
header
required

An API key minted in the console, sent as Authorization: Bearer <key>. Keys are project-scoped and carry per-operation scopes. A gck_test_… key runs the full request path — including the real upstream call — and bills nothing.

Every scope is enumerated in x-scopes below and in the RFC 9728 protected-resource metadata at https://cloud.gomry.com/.well-known/oauth-protected-resource, which is also what a 401 points at through its WWW-Authenticate: Bearer resource_metadata="…" header.

Headers

Idempotency-Key
string

Two requests carrying the same key on one project return the same task instead of starting a second. Send one whenever a retry is possible — an unattended caller that retries without it pays twice for the same research.

Body

application/json
objective
any

Required. 1–2000 characters describing what you want found, in plain language.

outputSchema
any

Required. A JSON Schema object describing the shape you want back. Returned in output, with a matching entry in citations for every field.

seedUrls
any

URLs to start from, up to 100 and never more than the tier's source ceiling. Omit and the task searches for its own sources. Private addresses and internal hostnames are refused at creation.

tier
any

lite | standard | deep. Sets the source, round, cost and time ceilings. Defaults to standard.

budget
any

{ maxCostMicroUsd, maxSources, deadlineSeconds, maxRounds }. Each is intersected with the tier's ceiling — it can only narrow. maxRounds: 0 is honoured as "do not reason, just read what I gave you".

webhookUrl
any

Called once when the task reaches a terminal state. Must be a public host.

wait
any

Block up to 60s for a terminal state before responding. The task is unaffected and keeps running if the wait expires. Defaults to false.

Response

Accepted. The work has been started, not done — poll /v1/superagent/{taskId} for the result. The id is at task.taskId. Nothing is billed by this call.

The response is of type object.