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

# Tavily Extract

Tavily is a web data retrieval API designed for developers and AI applications. This document describes the Tavily passthrough endpoints exposed by the platform gateway. It is based on Tavily's Extract API with platform route prefixes applied.

Base URL example: `https://api.novita.ai`

Extract web page content from one or more specified URLs.

## Request Headers

All endpoints require platform API authentication.

<ParamField header="Content-Type" type="string" required>
  Use `application/json`.
</ParamField>

<ParamField header="Authorization" type="string" required>
  Platform API key, formatted as `Bearer <api_key>`.
</ParamField>

## Request Body

<ParamField body="urls" type="string | string[]" required>
  URL(s) to extract.
</ParamField>

<ParamField body="query" type="string" required={false}>
  Query for snippet reranking.
</ParamField>

<ParamField body="chunks_per_source" type="integer" required={false}>
  Max number of content snippets per source to return. Default is `3`; range is `1` to `5`. Available only when `query` is provided.
</ParamField>

<ParamField body="extract_depth" type="string" required={false}>
  Extraction mode. Common values include `basic` and `advanced`. `basic` is set as the default value.
</ParamField>

<ParamField body="include_images" type="boolean" required={false}>
  Returns a list of images from the response URLs.
</ParamField>

<ParamField body="include_favicon" type="boolean" required={false}>
  Include favicon URL from result.
</ParamField>

<ParamField body="format" type="string" required={false}>
  Extracted Content Format. Common values include `markdown` and `text`.
</ParamField>

<ParamField body="timeout" type="float" required={false}>
  URL extraction time limit in seconds. Range is `1.0` to `60.0`. `10` for `basic`, `30` for `advanced`.
</ParamField>

## Request Example

```bash theme={"system"}
curl -s -X POST 'https://api.novita.ai/v3/tavily/extract' \
  -H 'Authorization: Bearer sk-123' \
  -H 'Content-Type: application/json' \
  -d '{
    "urls": ["https://en.wikipedia.org/wiki/Lionel_Messi"],
    "query": "career highlights and achievements",
    "chunks_per_source": 3,
    "extract_depth": "basic",
    "include_images": false,
    "format": "markdown",
    "timeout": 15
  }'
```

## Response

<ResponseField name="results" type="object[]" required={false}>
  Extracted results from URL(s). See [Result Object](#result-object).
</ResponseField>

<ResponseField name="failed_results" type="object[]" required={false}>
  Unprocessable URL(s). See [Failed Result Object](#failed-result-object).
</ResponseField>

<ResponseField name="response_time" type="float" required={false}>
  Request duration in seconds.
</ResponseField>

<ResponseField name="request_id" type="string" required={false}>
  Unique request identifier.
</ResponseField>

### Result Object

<ResponseField name="url" type="string" required={false}>
  Response content URL.
</ResponseField>

<ResponseField name="raw_content" type="string" required={false}>
  Full page content.
</ResponseField>

<ResponseField name="images" type="string[]" required={false}>
  Image URLs from page URL. Returned if `include_images` is `true`.
</ResponseField>

<ResponseField name="favicon" type="string" required={false}>
  Site favicon URL. Returned if `include_favicon` is `true`.
</ResponseField>

### Failed Result Object

<ResponseField name="url" type="string" required={false}>
  Unprocessed URL(s)
</ResponseField>

<ResponseField name="error" type="string" required={false}>
  URL processing error message.
</ResponseField>

## Errors

The platform may return standard HTTP errors before forwarding the request, and Tavily may return upstream errors after forwarding.

<ResponseField name="400" type="status" required={false}>
  Invalid request body or unsupported parameter value. May occur if over 20 URLs are provided.
</ResponseField>

<ResponseField name="401" type="status" required={false}>
  Missing or invalid API key.
</ResponseField>

<ResponseField name="403" type="status" required={false}>
  Access denied by platform or upstream provider.
</ResponseField>

<ResponseField name="404" type="status" required={false}>
  Route or requested resource not found.
</ResponseField>

<ResponseField name="429" type="status" required={false}>
  Rate limit exceeded.
</ResponseField>

<ResponseField name="500" type="status" required={false}>
  Internal server error.
</ResponseField>

<ResponseField name="502" type="status" required={false}>
  Upstream provider error.
</ResponseField>

<ResponseField name="503" type="status" required={false}>
  Service unavailable.
</ResponseField>

## Notes

* All request bodies are JSON.
* Extra Tavily parameters not listed here may be passed through.
* Response shapes can vary depending on request options.
* This document intentionally omits billing-related fields.

## References

For more details, see the [Tavily Extract API reference](https://docs.tavily.com/documentation/api-reference/endpoint/extract).
