> ## Documentation Index
> Fetch the complete documentation index at: https://aisa.one/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Live Claude LLM Responses

> Sends a user_prompt to a Claude model and returns its reply, synchronously.

Sends a `user_prompt` to a Claude model and returns its reply, synchronously. `model_name` must come from `get_dataforseo_ai_claude_llm_responses_models` - names look like `claude-sonnet-5`, and a plausible-looking guess is rejected. Returns `model_name`, `input_tokens`, `output_tokens`, `reasoning_tokens`, `web_search`, `money_spent`, `datetime`, `items` and `fan_out_queries`. 💰 Billed per call at a flat rate, whatever the reply length. Wrapped in DataForSEO's envelope: data in `tasks[0].result`, outcome in `tasks[0].status_code` - a rejected request still returns HTTP 200.

## Example

<CodeGroup>
  ```bash REST theme={null}
  curl -X POST "https://api.aisa.one/apis/v1/dataforseo/ai_optimization/claude/llm_responses/live" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer YOUR_API_KEY" \
    -d '[{"user_prompt": "...", "model_name": "...", "max_output_tokens": "..."}]'
  ```

  ```jsonc MCP theme={null}
  // Copy this whole block into Claude Code, Codex, Cursor or any coding agent.
  // It carries everything needed to connect, authorize and run this example —
  // no key to paste, one click of Allow in the browser.
  {
    "operation_id": "post_dataforseo_ai_claude_llm_responses_live",
    "arguments": {},
    "max_price_usd": 0.05
  }
  // ── for the agent ─────────────────────────────────────────────────────────
  // Register the AIsa MCP server, then call its `use` tool with the JSON above.
  //   name       aisa
  //   endpoint   https://mcp.aisa.one/mcp
  //   transport  streamable-http
  //   auth       OAuth. The server publishes RFC 9728 metadata, so open a
  //              browser and the user clicks Allow once — nothing to paste.
  //              If AISA_API_KEY is set, send it as a bearer header instead.
  // Use your own MCP mechanism, not a hand-edited config file:
  //   Codex        codex mcp add aisa --url https://mcp.aisa.one/mcp
  //   Claude Code  claude mcp add --transport http -s user aisa https://mcp.aisa.one/mcp
  //   Cursor / VS Code   a "url" entry for https://mcp.aisa.one/mcp in the MCP config
  // The server lists five tools over https://mcp.aisa.one/servers worth of APIs:
  // search, get_details, use, batch_use, list_categories. search and
  // get_details are free; use is billed per call and max_price_usd refuses
  // anything above the cap before spending. This operation's full contract —
  // every argument, the response shape, the price and the pitfalls — is at
  //   https://aisa.one/docs/api-reference/dataforseo/post_dataforseo-ai-optimization-claude-llm-responses-live.md
  // Then run the call and show me the result.
  ```
</CodeGroup>

<Note>
  **First time?** Point any MCP client at `https://mcp.aisa.one/mcp` — Claude
  Code, Codex, Cursor, VS Code and the rest. Authorization is OAuth: the client
  opens a browser, you click Allow once, and there is no key to paste. The
  commands per client, and what each call costs, are on
  [aisa.one/mcp](https://aisa.one/mcp#connect).
</Note>

[Set this endpoint up in your agent →](https://aisa.one/mcp?from=/api-reference/dataforseo/post_dataforseo-ai-optimization-claude-llm-responses-live)


## OpenAPI

````yaml openapi/dataforseo.json POST /dataforseo/ai_optimization/claude/llm_responses/live
openapi: 3.0.3
info:
  title: DataForSEO API
  version: 1.0.0
  description: DataForSEO API endpoints exposed through the AIsa unified gateway.
servers:
  - url: https://api.aisa.one/apis/v1
security:
  - BearerAuth: []
paths:
  /dataforseo/ai_optimization/claude/llm_responses/live:
    post:
      summary: Live Claude LLM Responses
      description: >-
        Live Claude LLM Responses endpoint allows you to retrieve structured
        responses from a specific Claude model, based on the input parameters.
      operationId: post_dataforseo_ai_claude_llm_responses_live
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                type: object
                properties:
                  user_prompt:
                    type: string
                    description: >-
                      prompt for the AI model required field the question or
                      task you want to send to the AI model; you can specify up
                      to 500 characters in the user_prompt field
                  model_name:
                    type: string
                    description: >-
                      name of the AI model required field model_nameconsists of
                      the actual model name and version name; if the basic model
                      name is specified, its latest version will be set by
                      default; for example, if claude-opus-4-0 is specified, the
                      claude-opus-4-20250514 will be set as model_name
                      automatically; you can receive the list of available LLM
                      models by making a separate request to the
                      https://api.dataforseo.com/v3/ai_optimization/claude/llm_responses/models
                  max_output_tokens:
                    type: integer
                    description: >-
                      maximum number of tokens in the AI response optional field
                      minimum value: 1; maximum value: 4096; default value:
                      2048; Note: if web_search is set to true or the reasoning
                      model is specified in the request, the output token count
                      may exceed the specified max_output_tokens limit Note #2:
                      if use_reasoning is set to true, the minimum value for
                      max_output_tokens is 1025
                  temperature:
                    type: number
                    description: >-
                      randomness of the AI response optional field higher values
                      make output more diverse; lower values make output more
                      focused; minimum value: 0 maximum value: 1 default value:
                      0.7Note: temperature cannot be used together with top_p in
                      the same request
                  top_p:
                    type: number
                    description: >-
                      diversity of the AI response optional field controls
                      diversity of the response by limiting token selection;
                      minimum value: 0 maximum value: 1 default value: nullNote:
                      top_p cannot be used together with temperature in the same
                      request
                  web_search:
                    type: boolean
                    description: >-
                      enable web search for current information optional field
                      when enabled, the AI model can access and cite current web
                      information; Note: refer to the Models endpoint for a list
                      of models that support web_search; default value: false
                  force_web_search:
                    type: boolean
                    description: >-
                      force AI agent to use web search optional field to enable
                      this parameter, web_search must also be enabled; when
                      enabled, the AI model is forced to access and cite current
                      web information; default value: false; Note: even if the
                      parameter is set to true, there is no guarantee web
                      sources will be cited in the response
                  web_search_country_iso_code:
                    type: string
                    description: >-
                      ISO country code of the location used for searching the
                      web optional field possible values:
                      'AR','AT','AU','BE','BR','CA','CH','CL','CN','DE','DK','ES','FI','FR','GB','HK','ID','IN','IT','JP','KR','MX','MY','NL','NO','NZ','PH','PL','PT','RU','SA','SE','TR','TW','US','ZA'
                  web_search_city:
                    type: string
                    description: >-
                      city name of the location used for searching the web
                      optional field
                  system_message:
                    type: string
                    description: >-
                      instructions for the AI behaviour optional field defines
                      the AI's role, tone, or specific behavior; you can specify
                      up to 500 characters in the system_message field
                  message_chain:
                    type: array
                    items:
                      type: object
                      properties:
                        role:
                          type: string
                          enum:
                            - user
                            - ai
                          description: role of the user from whom the message originates
                        message:
                          type: string
                          description: message text
                      required:
                        - role
                        - message
                    description: >-
                      conversation history optional field array of message
                      objects representing previous conversation turns; each
                      object must contain: role string with either user or ai
                      role; message string with message content (max 500
                      characters); you can specify maximum of 10 message objects
                      in the array; Note: for Perplexity models, messages must
                      strictly alternate between user and AI roles (user → ai);
                      example: "message_chain":
                      [{"role":"user","message":"Hello, what’s
                      up?"},{"role":"ai","message":"Hello! I’m doing well, thank
                      you. How can I assist you today?"}]
                  use_reasoning:
                    type: boolean
                    description: >-
                      enable reasoning for the AI model optional field when
                      enabled, the model will perform reasoning before
                      generating a response refer to the Models endpoint for a
                      list of models that support reasoning default value: false
                      Note: if set to true, the minimum value for
                      max_output_tokens is 1025 Note #2: if set to true,
                      force_web_search must be set to false Note #3: if set to
                      true, the temperature and top_p cannot be used
                  tag:
                    type: string
                    description: >-
                      user-defined task identifier optional field the character
                      limit is 255 you can use this parameter to identify the
                      task and match it with the result you will find the
                      specified tag value in the data object of the response
                required:
                  - user_prompt
                  - model_name
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  version:
                    type: string
                    description: the current version of the API
                  status_code:
                    type: integer
                    description: >-
                      general status code you can find the full list of the
                      response codes here
                  status_message:
                    type: string
                    description: >-
                      general informational message you can find the full list
                      of general informational messages here
                  time:
                    type: string
                    description: total execution time, seconds
                  cost:
                    type: number
                    description: total tasks cost, USD
                  tasks_count:
                    type: integer
                    description: the number of tasks in the tasks array
                  tasks_error:
                    type: integer
                    description: >-
                      the number of tasks in the tasks array returned with an
                      error
                  tasks:
                    type: array
                    items:
                      type: string
                    description: array of tasks
                  tasks.id:
                    type: string
                    description: >-
                      task identifier unique task identifier in our system in
                      the UUID format
                  tasks.status_code:
                    type: integer
                    description: >-
                      status code of the task generated by DataForSEO; can be
                      within the following range: 10000-60000 you can find the
                      full list of the response codes here
                  tasks.status_message:
                    type: string
                    description: >-
                      informational message of the task you can find the full
                      list of general informational messages here
                  tasks.time:
                    type: string
                    description: execution time, seconds
                  tasks.cost:
                    type: number
                    description: total tasks cost, USD
                  tasks.result_count:
                    type: integer
                    description: number of elements in the result array
                  tasks.path:
                    type: array
                    items:
                      type: string
                    description: URL path
                  tasks.data:
                    type: object
                    description: >-
                      contains the same parameters that you specified in the
                      POST request
                  tasks.result:
                    type: array
                    items:
                      type: string
                    description: array of results
                  tasks.result.model_name:
                    type: string
                    description: name of the AI model used
                  tasks.result.input_tokens:
                    type: integer
                    description: >-
                      number of tokens in the input total count of tokens
                      processed
                  tasks.result.output_tokens:
                    type: integer
                    description: >-
                      number of tokens in the output total count of tokens
                      generated in the AI response
                  tasks.result.reasoning_tokens:
                    type: integer
                    description: >-
                      number of reasoning tokens total count of tokens used to
                      generate reasoning content
                  tasks.result.web_search:
                    type: boolean
                    description: indicates if web search was used
                  tasks.result.money_spent:
                    type: number
                    description: >-
                      cost of AI tokens, USD the price charged by the
                      third-party AI model provider for according to its Pricing
                  tasks.result.datetime:
                    type: string
                    description: >-
                      date and time when the result was received in the UTC
                      format: “yyyy-mm-dd hh-mm-ss +00:00” example: 2019-11-15
                      12:57:46 +00:00
                  tasks.result.items:
                    type: array
                    items:
                      type: string
                    description: >-
                      array of response items contains structured AI response
                      data
                  tasks.result.items.reasoning:
                    type: object
                    description: element in the response
                  tasks.result.items.reasoning.type:
                    type: string
                    description: >-
                      type of the element = 'reasoning' Note: this element is
                      supported only in reasoning models and is not guaranteed
                      to be returned
                  tasks.result.items.reasoning.sections:
                    type: array
                    items:
                      type: string
                    description: >-
                      reasoning chain sections array of objects containing the
                      reasoning chain sections generated by the LLM
                  tasks.result.items.reasoning.sections.type:
                    type: string
                    description: type of element='summary_text'
                  tasks.result.items.reasoning.sections.text:
                    type: string
                    description: >-
                      text of the reasoning chain section text of the reasoning
                      chain section summarizing the model's thought process
                  tasks.result.items.message:
                    type: object
                    description: element in the response
                  tasks.result.items.message.type:
                    type: string
                    description: type of the element = 'message'
                  tasks.result.items.message.sections:
                    type: array
                    items:
                      type: string
                    description: >-
                      array of content sections contains different parts of the
                      AI response
                  tasks.result.items.message.sections.type:
                    type: string
                    description: type of element='text'
                  tasks.result.items.message.sections.text:
                    type: string
                    description: AI-generated text content
                  tasks.result.items.message.sections.annotations:
                    type: array
                    items:
                      type: string
                    description: >-
                      array of references used to generate the response equals
                      null if the web_search parameter is not set to true Note:
                      annotations may return empty even when web_search is true,
                      as the AI will attempt to retrieve web information but may
                      not find relevant results
                  tasks.result.items.message.sections.annotations.title:
                    type: string
                    description: the domain name or title of the quoted source
                  tasks.result.items.message.sections.annotations.url:
                    type: string
                    description: URL of the quoted source
                  tasks.result.fan_out_queries:
                    type: array
                    items:
                      type: string
                    description: >-
                      array of fan-out queries contains related search queries
                      derived from the main query to provide a more
                      comprehensive response
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '429':
          description: Rate limit exceeded
        '500':
          description: Internal server error
components:
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.