Skip to main content

Discover APIs for a question

POST /v2/ask requires ask:create. It uses the Ask page’s interpreter and source searches, returning choices from Apiosk and Coinbase Bazaar. Discovery makes no paid provider request and creates no plan or approval. The two surfaces share the discovery implementation. Separate requests can produce different wording or alternative providers because model interpretation and directory listings vary; responses are not guaranteed to be identical.
The body contains question only: 1–16000 UTF-16 code units. The response has parsed_request, apis, both origin results in searches, and errors. status is choices, needs_input when no choices match, or partial if an origin search is unavailable. Inspect every choice’s executable flag. Output values arrive after execution. Discovery returns output contracts; it does not fabricate source data. A directory-only choice has executable: false. Even an executable choice may need additional inputs. Review the fields and total spending cap; a native lookup can add steps and cost.

Execute the selected API

POST /v2/execute requires sources:execute, Idempotency-Key, and max_spend. It uses the same selected-source preparation, approval, executor and ledger as the Ask page. It does not reinterpret the question or choose a replacement API.
Replace the example input with the selected choice’s input_values, plus any missing fields. Preserve the exact field names. max_spend is the approved total in USD, not an atomic amount. The current price, key limits and balance are checked before purchase. Reuse the same idempotency key and selection/input for retries; changed selection/input under that key returns 409. Registered APIs return completed with results/data and usage. External providers return the saved purchase view: succeeded, result, result_present and ledger-backed billing. Both return id; running uses HTTP 202. Read GET /v2/runs/{id} to recover progress and results. A successful payment with result_present: false needs read-only recovery, never another purchase. External execution is asynchronous; wait_seconds applies to registered APIs. To verify a deployment, send the same question through Ask and this endpoint, compare source IDs, capabilities, input/output contracts and prices, then run one selected API within an approved cap. Repeat the identical execution request and check that the run ID, saved output and ledger charge are unchanged.

View saved annual accounts

The App presents supported structured annual accounts with named key figures, balance-sheet and income-statement tables, and numbers formatted for the browser’s locale. The financial year and source dates remain visible. A currency is shown only when supplied by the source; the billing currency does not establish the currency of the accounts. The filing year may be older than the current year. Opening the full result reuses the saved data without another provider purchase. Choose View full answer to open it. On phones, pull down from the drawer’s handle or header to close it; a short pull settles back into place. The close button remains available, and the answer scrolls between the fixed header and footer. Full source data and JSON preserve the original response. CSV exports the labelled financial fields and their source values. The HTTP API continues to return source data rather than the App’s display formatting.

Optional multi-source planner

The previous question-to-plan contract is available at /v2/ask/plan. Move clients that send execution_mode, limit or wait_seconds with a question to that path. Its saved-run, approval and continuation endpoints are unchanged. Explicit workflow requests remain supported by /v2/ask.
Requires ask:create.
The plan and amounts above illustrate the response shape; read live source details for current prices. Planning is free. estimated_total is the maximum the run may cost; you are charged what the sources actually cost, which can be less.

Run it later

Requires ask:execute.
Running an ask twice returns the same run. It never starts a second purchase.

Run it immediately

With auto, Apiosk runs the plan without a second call, but only when all four hold: the plan’s maximum cost is within max_spend, within the key’s per-request limit, within what the key may still spend this month, and within the organisation’s balance. If the plan costs more than max_spend, you get the plan back, unrun and unbilled:

Clarify before buying

A needs_input response may contain field schemas, a natural language message, or both. Ask the person for the missing context; never fill it in by guessing. A needs_selection response offers candidates, so ask which entity they meant. When the response includes continuation, use POST /v2/asks/{id}/continue to select a candidate or supply the requested structured value on the same saved task. A paid search is not repeated. Selection resumes the remaining work under the original valid approval; a new quote created by supplied input requires an explicit /run. A natural-language clarification without continuation still requires a new clarified Ask. Inspect the earlier run’s results and usage first; do not automatically repeat a paid request. Document uploads use the App.

Statuses

Status codes