App Logo
claude.ai

Ask Claude

Automatically ask Claude on claude.ai. Open a new Claude.ai chat, send one question, and wait for the answer to finish (up to 100 s). Returns the answer as the markdown the model emitted, the message and conversation ids, why generation stopped, which model answered, each web search it made with the results it was shown, every source its web_search and web_fetch tools surfaced, and — separately — the sources the answer actually cited. Requires a signed-in session: claude.ai has no anonymous chat, and a signed-out browser fails at once with an error that says so. When the account has used up its 5-hour or weekly allowance, it fails at once with the time the allowance resets, without sending anything. Avoid running many of these at once: claude.ai limits how many chats one account may hold concurrently and refuses the extras, so a refused send comes back quickly carrying Claude's own message and only needs to be retried at a slower pace.

Input

question required

The question/prompt to send as the first message of a new chat.

Output

url required

Address of the new chat on claude.ai, opening it for the account that asked: https://claude.ai/chat/<conversationId>.

model required

Which 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 required

The 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 required

Every 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 required

One 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 required

One 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 required

uuid of the assistant message.

stopReason required

Why generation ended: "end_turn" for a complete answer, anything else (e.g. "max_tokens") means the answer is truncated.

conversationId required

Conversation uuid, read off the chat's own URL (/chat/<conversationId>) once the server holds the conversation.

webSearchQueries required

Search 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`.

FAQ

Open a new Claude.ai chat, send one question, and wait for the answer to finish (up to 100 s). Returns the answer as the markdown the model emitted, the message and conversation ids, why generation stopped, which model answered, each web search it made with the results it was shown, every source its web_search and web_fetch tools surfaced, and — separately — the sources the answer actually cited. Requires a signed-in session: claude.ai has no anonymous chat, and a signed-out browser fails at once with an error that says so. When the account has used up its 5-hour or weekly allowance, it fails at once with the time the allowance resets, without sending anything. Avoid running many of these at once: claude.ai limits how many chats one account may hold concurrently and refuses the extras, so a refused send comes back quickly carrying Claude's own message and only needs to be retried at a slower pace.
Ask an AI agent connected to Reduck to run reduck/claude.ai/ask, or run it from a terminal with the Reduck CLI: npx @reduck-ai/cli@latest run --script reduck/claude.ai/ask
You do not need one. "Ask Claude" drives the real claude.ai pages in a browser, so it works whether or not claude.ai offers an API for this.
Required: question.
It returns url, model, answer, sources, searches, citations, messageId, stopReason, conversationId, webSearchQueries.
Yes. It acts as you on claude.ai: on your own Chrome it reuses your session, and on a Reduck-hosted browser it loads the claude.ai cookies saved by the Reduck extension.
It only reads. It looks things up on claude.ai and changes nothing there.
Ask an AI agent connected to Reduck to run reduck/claude.ai/ask, or run it from a terminal with the Reduck CLI: npx @reduck-ai/cli@latest run --script reduck/claude.ai/ask
It is part of Reduck's official curated catalogue.

Start building not clicking