# Tavily Map - Documentation

> For the complete documentation index, see [llms.txt](/llms.txt). Markdown is available with `Accept: text/markdown` and `.md` URL variants.

Source: /docs/api-reference/model-apis-tavily-map

# Tavily Map

POST

/

v3

/

tavily

/

map

Try it

Tavily Map

cURL

```
curl --request POST \
--url https://api.novita.ai/v3/tavily/map \
--header 'Authorization: ' \
--header 'Content-Type: ' \
--data '
{
"url": "",
"instructions": "",
"max_depth": 123,
"max_breadth": 123,
"limit": 123,
"select_paths": [
""
],
"select_domains": [
""
],
"exclude_paths": [
""
],
"exclude_domains": [
""
],
"allow_external": true,
"timeout": 123
}
'
```

```
import requests

url = "https://api.novita.ai/v3/tavily/map"

payload = {
"url": "",
"instructions": "",
"max_depth": 123,
"max_breadth": 123,
"limit": 123,
"select_paths": [""],
"select_domains": [""],
"exclude_paths": [""],
"exclude_domains": [""],
"allow_external": True,
"timeout": 123
}
headers = {
"Content-Type": "",
"Authorization": ""
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
```

```
const options = {
method: 'POST',
headers: {'Content-Type': '', Authorization: ''},
body: JSON.stringify({
url: '',
instructions: '',
max_depth: 123,
max_breadth: 123,
limit: 123,
select_paths: [''],
select_domains: [''],
exclude_paths: [''],
exclude_domains: [''],
allow_external: true,
timeout: 123
})
};

fetch('https://api.novita.ai/v3/tavily/map', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
```

```
"https://api.novita.ai/v3/tavily/map",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'url' => '',
'instructions' => '',
'max_depth' => 123,
'max_breadth' => 123,
'limit' => 123,
'select_paths' => [
''
],
'select_domains' => [
''
],
'exclude_paths' => [
''
],
'exclude_domains' => [
''
],
'allow_external' => true,
'timeout' => 123
]),
CURLOPT_HTTPHEADER => [
"Authorization: ",
"Content-Type: "
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
```

```
package main

import (
"fmt"
"strings"
"net/http"
"io"
)

func main() {

url := "https://api.novita.ai/v3/tavily/map"

payload := strings.NewReader("{\n \"url\": \"\",\n \"instructions\": \"\",\n \"max_depth\": 123,\n \"max_breadth\": 123,\n \"limit\": 123,\n \"select_paths\": [\n \"\"\n ],\n \"select_domains\": [\n \"\"\n ],\n \"exclude_paths\": [\n \"\"\n ],\n \"exclude_domains\": [\n \"\"\n ],\n \"allow_external\": true,\n \"timeout\": 123\n}")

req, _ := http.NewRequest("POST", url, payload)

req.Header.Add("Content-Type", "")
req.Header.Add("Authorization", "")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))

}
```

```
HttpResponse response = Unirest.post("https://api.novita.ai/v3/tavily/map")
.header("Content-Type", "")
.header("Authorization", "")
.body("{\n \"url\": \"\",\n \"instructions\": \"\",\n \"max_depth\": 123,\n \"max_breadth\": 123,\n \"limit\": 123,\n \"select_paths\": [\n \"\"\n ],\n \"select_domains\": [\n \"\"\n ],\n \"exclude_paths\": [\n \"\"\n ],\n \"exclude_domains\": [\n \"\"\n ],\n \"allow_external\": true,\n \"timeout\": 123\n}")
.asString();
```

```
require 'uri'
require 'net/http'

url = URI("https://api.novita.ai/v3/tavily/map")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Content-Type"] = ''
request["Authorization"] = ''
request.body = "{\n \"url\": \"\",\n \"instructions\": \"\",\n \"max_depth\": 123,\n \"max_breadth\": 123,\n \"limit\": 123,\n \"select_paths\": [\n \"\"\n ],\n \"select_domains\": [\n \"\"\n ],\n \"exclude_paths\": [\n \"\"\n ],\n \"exclude_domains\": [\n \"\"\n ],\n \"allow_external\": true,\n \"timeout\": 123\n}"

response = http.request(request)
puts response.read_body
```

200

```
{
"400": {},
"401": {},
"403": {},
"404": {},
"429": {},
"500": {},
"502": {},
"503": {},
"base_url": "",
"results": [
""
],
"response_time": 123,
"request_id": ""
}
```

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 Map API with platform route prefixes applied.
Base URL example: `https://api.novita.ai`
Map a site starting from a root URL, following links to discover the structure of reachable pages and return their URLs.

##

[​](#request-headers)

Request Headers

All endpoints require platform API authentication.

[​](#param-content-type)

Content-Type

string

required

Use `application/json`.

[​](#param-authorization)

Authorization

string

required

Platform API key, formatted as `Bearer <api_key>`.

##

[​](#request-body)

Request Body

[​](#param-url)

url

string

required

Crawl root URL.

[​](#param-instructions)

instructions

string

Crawler instructions in natural language.

[​](#param-max-depth)

max_depth

integer

Crawler depth limit. Default is `1`; range is `1` to `5`.

[​](#param-max-breadth)

max_breadth

integer

Max links per page. Default is `20`; range is `1` to `500`.

[​](#param-limit)

limit

integer

Link processing limit for crawler. Default is `50`; minimum is `1`.

[​](#param-select-paths)

select_paths

string[]

Restrict URL paths matching these regex patterns.

[​](#param-select-domains)

select_domains

string[]

Restrict domains matching these regex patterns.

[​](#param-exclude-paths)

exclude_paths

string[]

Exclude URL paths matching these regex patterns.

[​](#param-exclude-domains)

exclude_domains

string[]

Exclude domains matching these regex patterns.

[​](#param-allow-external)

allow_external

boolean

Include external domain links.

[​](#param-timeout)

timeout

float

Crawl operation time limit in seconds. Default is `150`; range is `10` to `150`.

##

[​](#request-example)

Request Example

```
curl -s -X POST 'https://api.novita.ai/v3/tavily/map' \
-H 'Authorization: Bearer sk-123' \
-H 'Content-Type: application/json' \
-d '{
"url": "docs.tavily.com",
"instructions": "Find all pages about the Python SDK",
"max_depth": 2,
"max_breadth": 20,
"limit": 50,
"select_paths": ["/docs/.*"],
"exclude_paths": ["/admin/.*"],
"allow_external": false,
"timeout": 60
}'
```

##

[​](#response)

Response

[​](#param-base-url)

base_url

string

Crawl base URL.

[​](#param-results)

results

string[]

URLs discovered during mapping.

[​](#param-response-time)

response_time

float

Request duration in seconds.

[​](#param-request-id)

request_id

string

Unique request identifier.

##

[​](#errors)

Errors

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

[​](#param-400)

400

status

Invalid request body or unsupported parameter value.

[​](#param-401)

401

status

Missing or invalid API key.

[​](#param-403)

403

status

Access denied by platform or upstream provider, or the URL is not supported.

[​](#param-404)

404

status

Route or requested resource not found.

[​](#param-429)

429

status

Rate limit exceeded.

[​](#param-500)

500

status

Internal server error.

[​](#param-502)

502

status

Upstream provider error.

[​](#param-503)

503

status

Service unavailable.

##

[​](#notes)

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)

References

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

Last modified on June 23, 2026
