Ask Claude
Input
question requiredThe question/prompt to send as the first message of a new chat.
Output
url requiredAddress of the new chat on claude.ai, opening it for the account that asked: https://claude.ai/chat/<conversationId>.
model requiredWhich model answered, as the conversation records it (e.g. "claude-opus-5") — the server's own name for what ran, not the composer's display label. Null when the conversation carried no model.
answer requiredThe assistant's full answer as the markdown source the model emitted (the turn's `text` blocks, concatenated in order). Not the rendered text: the reasoning card and tool-call cards are separate block types and are excluded. It carries NO citation markup — a cited sentence is plain text here, and which sources it cited is `citations`.
sources requiredEvery source the model's tools surfaced: each result web_search returned and each page web_fetch loaded, deduped by url. This is the CANDIDATE POOL the model could read, NOT what the answer cited — a one-line answer routinely carries a dozen. See `citations` for what it actually attributed. Empty when no tool ran.
searches requiredOne entry per web search call, in call order, each with its mode and the results it returned. Empty when the model didn't search. Which index answered is not on the page. This is the per-query view; `sources` is the same pages as one deduped pool together with what web_fetch loaded.
citations requiredOne entry per citation link under the answer, in the order the answer carries them — what the answer ATTRIBUTED its sentences to, as opposed to `sources`, everything the tools put in front of it. The same page cited by two links appears under both. Empty when the answer cited nothing, which is a real outcome and not a failure: a model answering from training data cites nobody.
messageId requireduuid of the assistant message.
stopReason requiredWhy generation ended: "end_turn" for a complete answer, anything else (e.g. "max_tokens") means the answer is truncated.
conversationId requiredConversation uuid, read off the chat's own URL (/chat/<conversationId>) once the server holds the conversation.
webSearchQueries requiredSearch queries the model issued during this answer, in order. Empty when it didn't search. The same calls, each with its mode and result list, are `searches`.
