FAQ
My task has been pending or queued for a long time. Is that normal?
Section titled “My task has been pending or queued for a long time. Is that normal?”Yes. The API is asynchronous and queue time has no upper bound: when a platform is busy or its accounts are temporarily unavailable, P2 tasks stay in the queue until it recovers. The server never marks a task as failed just because it has waited a long time. You can:
- Keep polling about every 15 seconds;
- Switch time-sensitive tasks to P1;
- Check each platform’s
p50_duration_secondsand status in the platform list, and avoid platforms that are currently degraded.
See Task Lifecycle.
My submit request timed out. Will resubmitting charge me twice?
Section titled “My submit request timed out. Will resubmitting charge me twice?”It might. Every submit call creates a new task, and if both tasks succeed you’re charged for both. After a timeout, first look up the task with List Tasks by question text and time, and only resubmit once you’ve confirmed it wasn’t created. See When a submission’s outcome is unknown.
Are there webhooks?
Section titled “Are there webhooks?”Not currently — you get results by polling. Checking unfinished tasks about every 15 seconds works well.
Can I cancel a task I’ve submitted?
Section titled “Can I cancel a task I’ve submitted?”The open API doesn’t offer a cancel endpoint today. You can simply stop polling a task you no longer need, but it will still be charged if it succeeds.
I asked the same question twice and got different answers. Why?
Section titled “I asked the same question twice and got different answers. Why?”That’s expected. AI answers are inherently non-deterministic — the wording, recommendations, and citations can change from one run to the next. Each submission is an independent, real request, and each result is stored separately.
Why is started_at 0?
Section titled “Why is started_at 0?”If a task went straight to its final result without us observing a “running” state, no start time is recorded. To measure duration, use finished_at - created_at (including queue time) or raw_result.elapsedMs (execution only).
How long are task results kept?
Section titled “How long are task results kept?”The console’s Request Logs cover the last 30 days. We recommend saving results to your own system as soon as you get them.
Requests and errors
Section titled “Requests and errors”Why is the HTTP status 200 when the request failed?
Section titled “Why is the HTTP status 200 when the request failed?”Business outcomes are reported in the ret field of the response body: 1 means success and anything else is an error, while the HTTP status is always 200. See API Overview.
I keep getting 1030. What should I check?
Section titled “I keep getting 1030. What should I check?”1030 means the API key is missing, invalid, disabled, or expired. Make sure your environment variable contains the complete key, the header is Authorization: Bearer <key>, and the key is active in the console. See Authentication.
I get “The request contains unsupported fields.”
Section titled “I get “The request contains unsupported fields.””Your request body includes a field the endpoint doesn’t define. The most common cause is camelCase names like taskId or waitSeconds instead of task_id and wait_seconds — all open API request fields use snake_case.
Can I call the API directly from a web page or mobile app?
Section titled “Can I call the API directly from a web page or mobile app?”Please don’t. The API key would ship with your client code and be visible to every user, and anyone could spend your credits with it. Call the open API from your server and pass the results to your frontend.
Is there an official SDK?
Section titled “Is there an official SDK?”Not yet. There are only four endpoints, all “POST + JSON”, so a few lines with any HTTP client will do — see Quickstart.
Is there a test environment or sandbox?
Section titled “Is there a test environment or sandbox?”There’s no separate sandbox right now. To experiment, use the console’s Playground or a small number of real requests — listing and retrieval endpoints are free, failed tasks aren’t billed, and the 1,000 free credits you get on first use work for testing too.
Results
Section titled “Results”The task succeeded but references is empty. Is that right?
Section titled “The task succeeded but references is empty. Is that right?”Yes. For some questions the platform doesn’t search the web, so the answer has no sources. succeeded only means an answer was returned.
What are [citation:1] or 【turn0search2】 in the answer?
Section titled “What are [citation:1] or 【turn0search2】 in the answer?”They’re the platform’s own citation markers. We keep them exactly as-is in answer and rawContent. Clean them up before displaying if you need to, and use references and cited to work out what was cited. See Working with Results.
Sometimes cited is missing. Why?
Section titled “Sometimes cited is missing. Why?”cited has three states: true means the answer text cites the source, false means the platform found it but didn’t cite it, and a missing field means the platform doesn’t distinguish — don’t treat it as false.
A url in references isn’t a link. Why?
Section titled “A url in references isn’t a link. Why?”Some platforms return sources without a link, or with a platform-internal ID instead. Check that url starts with http:// or https:// before using it.
Can I choose the model, or turn deep thinking or web search on or off?
Section titled “Can I choose the model, or turn deep thinking or web search on or off?”You can turn on thinking: pass "thinking": true when submitting, and the platform answers in its thinking mode (such as ChatGPT’s thinking or DeepSeek’s DeepThink). It’s off by default and costs nothing extra. Some platforms have no thinking switch and run with it off; check raw_result.thinking in the result to see whether it was actually on. See Thinking mode.
You can’t choose the model or toggle web search; these depend on how each platform is crawled. You can tell whether the platform searched from agentSteps and references in the result.
Can I ask a follow-up question based on a previous answer?
Section titled “Can I ask a follow-up question based on a previous answer?”No. Each task is a single, independent question. conversationId in raw_result is for reference only and can’t be used to continue a conversation.
Platforms and billing
Section titled “Platforms and billing”A platform shows as Degraded. Can I still use it?
Section titled “A platform shows as Degraded. Can I still use it?”Yes, you can submit. Degraded means failures were observed recently, so requests may be slower or fail occasionally — and failures are free. Platforms under Maintenance aren’t accepting tasks, and submissions return 1029 right away. See Platform status.
Are there free credits?
Section titled “Are there free credits?”Yes. The first time you use the Developer Platform, 1,000 credits are added to your personal account automatically. They never expire, and each account gets them once. See Getting credits.
Am I charged for failed tasks?
Section titled “Am I charged for failed tasks?”No. Only succeeded tasks cost credits. failed and canceled tasks, as well as rejected submissions, are free, and credits reserved at submission are released. See Billing & Credits.
Is MCP billed the same way as the API?
Section titled “Is MCP billed the same way as the API?”Yes. The MCP tools run on the open API and share the same account balance, prices, and rate limits.
Can several people on a team share one account’s credits?
Section titled “Can several people on a team share one account’s credits?”Team accounts aren’t available yet; API keys and credits belong to a personal account. Within a team, you can create several keys under one account (for example, one per project) and break down spending by source on the Usage page.
