# exa.web.answer

Sourced answer to a question, with citations

> Performs a search based on the query and generates either a direct answer or a detailed summary with citations, depending on the query type.

Page: https://telipot.com/catalog/tasks/exa.web.answer · Markdown: https://telipot.com/catalog/tasks/exa.web.answer/md · JSON: https://telipot.com/catalog/tasks/exa.web.answer/json

| Field | Value |
| --- | --- |
| provider | [Exa](https://telipot.com/catalog/providers/exa) `exa` |
| capability | [`web.answer`](https://telipot.com/catalog/capabilities/web.answer) |
| kind | data |
| tier | core |
| price | $0.005 / request (Exa docs · 2026-10-05) |
| settles on | The charge Exa reports in costDollars.total |
| price note | The pricing page lists one rate for /answer and does not say whether model changes it. |
| identity | Your plan |
| auth | `api_key · in header as x-api-key` |
| scope | any_account |
| principal | organization |
| required_scopes | none |
| retention | standard |
| route | `POST https://api.exa.ai/answer` |
| verification | Verified on 2026-10-05. We ran a real request and checked the answer. This is a spot check, not a success rate. |
| status | live |
| docs | https://exa.ai/docs/reference/answer |

## Preview the price · nothing runs

```bash
telipot run exa.web.answer \
  --input-json '{"query":"What is the capital of France?"}' \
  --quote
```

## Run it

```bash
telipot run exa.web.answer \
  --input-json '{"query":"What is the capital of France?"}'
```

```bash
curl https://api.telipot.com/v1/tasks/exa.web.answer/run \
  -H "Authorization: Bearer $TELIPOT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"query":"What is the capital of France?"}'
```

## Input

| Field | In | Type | Required | Constraints | Note |
| --- | --- | --- | --- | --- | --- |
| `query` | body | string | yes | at least 1 | Natural-language question or instructions for the request. |
| `text` | body | boolean | no | default false | If true, returns full page text with default settings. If false, disables text return. Each citation has a text field. |
| `model` | body | string | no | one of "exa", "exa-pro", "exa-research", "exa-fast"; default "exa" | The model used to generate the answer. |
| `systemPrompt` | body | string | no |  | Additional instructions that guide generated output, such as source preferences, novelty constraints or duplication constraints. |
| `outputSchema` | body | object | no |  | A JSON Schema Draft 7 specification for the desired answer structure. When given, the answer is returned as a structured object matching the schema instead of a plain string. |
| `userLocation` | body | string | no |  | The two-letter ISO country code of the user. |

## Input schema

```json
{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Natural-language question or instructions for the request.",
      "examples": [
        "What is the capital of France?"
      ],
      "minLength": 1
    },
    "text": {
      "type": "boolean",
      "description": "If true, returns full page text with default settings. If false, disables text return. Each citation has a text field.",
      "default": false
    },
    "model": {
      "type": "string",
      "description": "The model used to generate the answer.",
      "enum": [
        "exa",
        "exa-pro",
        "exa-research",
        "exa-fast"
      ],
      "default": "exa"
    },
    "systemPrompt": {
      "type": "string",
      "description": "Additional instructions that guide generated output, such as source preferences, novelty constraints or duplication constraints."
    },
    "outputSchema": {
      "type": "object",
      "description": "A JSON Schema Draft 7 specification for the desired answer structure. When given, the answer is returned as a structured object matching the schema instead of a plain string."
    },
    "userLocation": {
      "type": "string",
      "description": "The two-letter ISO country code of the user.",
      "examples": [
        "US"
      ]
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false
}
```

## Output schema

```json
{
  "type": "object",
  "required": [
    "answer"
  ],
  "properties": {
    "requestId": {
      "type": "string"
    },
    "answer": {
      "type": [
        "string",
        "object"
      ],
      "description": "A string by default, or an object matching outputSchema when one was given"
    },
    "citations": {
      "type": "array",
      "description": "Search results used to generate the answer",
      "items": {
        "type": "object",
        "required": [
          "title",
          "url"
        ],
        "properties": {
          "title": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "publishedDate": {
            "type": "string"
          },
          "author": {
            "type": [
              "string",
              "null"
            ]
          },
          "image": {
            "type": "string"
          },
          "favicon": {
            "type": "string"
          },
          "text": {
            "type": "string"
          }
        }
      }
    },
    "costDollars": {
      "type": "object",
      "description": "Estimated dollar cost of the completed request; billing is computed from usage counters, not from this object.",
      "properties": {
        "total": {
          "type": "number"
        },
        "search": {
          "type": "object",
          "properties": {
            "neural": {
              "type": "number"
            },
            "keyword": {
              "type": "number"
            }
          }
        },
        "summary": {
          "type": "number"
        },
        "contents": {
          "type": "object",
          "properties": {
            "text": {
              "type": "number"
            },
            "highlights": {
              "type": "number"
            },
            "summary": {
              "type": "number"
            }
          }
        }
      }
    }
  }
}
```

## Example response

From `examples/exa.web.answer.json`.

```json
{
  "requestId": "c178943a8165d7ce25595eca437939ce",
  "answer": "Paris is the capital of France [1].",
  "citations": [
    {
      "id": "https://www.britannica.com/place/Paris",
      "title": "Paris | Definition, Map, Population, Facts, & History | Britannica",
      "url": "https://www.britannica.com/place/Paris",
      "publishedDate": "1998-07-20T00:00:00.000Z",
      "image": "https://cdn.britannica.com/36/135436-050-ED1D0FCE/skyline-Eiffel-Tower-France-Paris.jpg"
    },
    {
      "id": "https://en.wikipedia.org/wiki/Paris",
      "title": "",
      "url": "https://en.wikipedia.org/wiki/Paris",
      "author": "user"
    }
  ],
  "costDollars": {
    "total": 0.005
  }
}
```
