{
  "service": "tavily",
  "displayName": "Tavily",
  "categories": [
    "AI",
    "Data"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Key",
      "placeholder": "tvly-...",
      "description": "Tavily API key used with the Authorization: Bearer <apiKey> header.",
      "extraFields": []
    }
  ],
  "homepageUrl": "https://tavily.com",
  "actions": [
    {
      "id": "tavily.crawl",
      "service": "tavily",
      "name": "crawl",
      "description": "Crawl a website and extract content from discovered pages with Tavily.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "description": "The root URL that Tavily should crawl.",
            "format": "uri"
          },
          "instructions": {
            "type": "string",
            "description": "Natural-language instructions that guide the crawl."
          },
          "max_depth": {
            "type": "integer",
            "minimum": 1,
            "maximum": 5,
            "description": "The maximum crawl depth."
          },
          "max_breadth": {
            "type": "integer",
            "minimum": 1,
            "maximum": 500,
            "description": "The maximum number of links to follow per crawl level."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "description": "The maximum number of links Tavily should process."
          },
          "select_paths": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "A path selection pattern."
            },
            "description": "Regex patterns used to include only matching URL paths.",
            "minItems": 1
          },
          "select_domains": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "A domain selection pattern."
            },
            "description": "Regex patterns used to include only matching domains.",
            "minItems": 1
          },
          "exclude_paths": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "A path exclusion pattern."
            },
            "description": "Regex patterns used to exclude matching URL paths.",
            "minItems": 1
          },
          "exclude_domains": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "A domain exclusion pattern."
            },
            "description": "Regex patterns used to exclude matching domains.",
            "minItems": 1
          },
          "allow_external": {
            "type": "boolean",
            "description": "Whether external domain links can appear in the results."
          },
          "include_images": {
            "type": "boolean",
            "description": "Whether to include images in crawled results."
          },
          "extract_depth": {
            "type": "string",
            "enum": [
              "basic",
              "advanced"
            ],
            "description": "Controls whether Tavily uses basic or advanced extraction."
          },
          "format": {
            "type": "string",
            "enum": [
              "markdown",
              "text"
            ],
            "description": "The format of the extracted page content."
          },
          "include_favicon": {
            "type": "boolean",
            "description": "Whether to include a favicon URL for each crawled result."
          },
          "timeout": {
            "type": "number",
            "minimum": 10,
            "maximum": 150,
            "description": "The crawl timeout in seconds."
          },
          "include_usage": {
            "type": "boolean",
            "description": "Whether to include credit usage details in the response."
          }
        },
        "additionalProperties": false,
        "required": [
          "url"
        ],
        "description": "The input payload for a Tavily Crawl request."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "base_url": {
            "type": "string",
            "description": "The base URL that Tavily crawled."
          },
          "results": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "url": {
                  "type": "string",
                  "description": "The processed source URL."
                },
                "raw_content": {
                  "type": "string",
                  "description": "The extracted page content in the selected format."
                },
                "images": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {},
                    "additionalProperties": true,
                    "description": "An image item returned by Tavily."
                  },
                  "description": "Images extracted from the source."
                },
                "favicon": {
                  "type": "string",
                  "description": "The favicon URL for the source when include_favicon is enabled."
                }
              },
              "additionalProperties": true,
              "description": "An extracted Tavily result item."
            },
            "description": "The extracted results returned by Tavily Crawl."
          },
          "response_time": {
            "type": "number",
            "description": "The total response time reported by Tavily."
          },
          "request_id": {
            "type": "string",
            "description": "A unique request identifier for Tavily support and debugging."
          },
          "usage": {
            "type": "object",
            "properties": {
              "credits": {
                "type": "number",
                "description": "The number of API credits consumed by the request."
              }
            },
            "additionalProperties": true,
            "description": "Credit usage details returned by Tavily."
          }
        },
        "additionalProperties": true,
        "description": "The Tavily Crawl response payload."
      }
    },
    {
      "id": "tavily.create_research",
      "service": "tavily",
      "name": "create_research",
      "description": "Start an asynchronous Tavily Research task and return a request ID for polling.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "input": {
            "type": "string",
            "minLength": 1,
            "description": "The research task or question to investigate."
          },
          "model": {
            "type": "string",
            "enum": [
              "mini",
              "pro",
              "auto"
            ],
            "description": "Research model to use."
          },
          "stream": {
            "const": false,
            "type": "boolean",
            "description": "Must be false or omitted. Tavily SSE streaming is not supported."
          },
          "output_schema": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "JSON Schema for structured research output."
          },
          "citation_format": {
            "type": "string",
            "enum": [
              "numbered",
              "mla",
              "apa",
              "chicago"
            ],
            "description": "The format for citations in the research report."
          },
          "include_domains": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "A domain to prioritize."
            },
            "description": "Soft source preference domains.",
            "maxItems": 20
          },
          "exclude_domains": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "A domain to exclude."
            },
            "description": "Hard source blocklist domains.",
            "maxItems": 20
          },
          "output_length": {
            "type": "string",
            "enum": [
              "short",
              "standard",
              "long"
            ],
            "description": "The target research response length."
          },
          "files": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "minLength": 1,
                  "description": "The file name, including extension."
                },
                "data": {
                  "type": "string",
                  "minLength": 1,
                  "description": "The base64-encoded file contents."
                },
                "type": {
                  "const": "base64",
                  "type": "string",
                  "description": "The encoded file content type."
                }
              },
              "additionalProperties": false,
              "required": [
                "name",
                "data",
                "type"
              ],
              "description": "A base64-encoded .txt, .md, or .json file attached to a Tavily Research request."
            },
            "description": "Up to 5 .txt, .md, or .json files to use as additional research sources.",
            "minItems": 1,
            "maxItems": 5
          }
        },
        "additionalProperties": false,
        "required": [
          "input"
        ],
        "description": "The input payload for creating a Tavily Research task."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "request_id": {
            "type": "string",
            "minLength": 1,
            "description": "A unique identifier for the research task."
          },
          "status": {
            "type": "string",
            "enum": [
              "pending",
              "in_progress",
              "completed",
              "failed"
            ],
            "description": "The current research task status."
          },
          "input": {
            "type": "string",
            "description": "The research task or question investigated."
          },
          "model": {
            "type": "string",
            "enum": [
              "mini",
              "pro",
              "auto"
            ],
            "description": "The model used by the research agent."
          },
          "content": {
            "description": "The final research report content."
          },
          "sources": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A source used in a Tavily Research result."
            },
            "description": "Sources used in the research."
          },
          "response_time": {
            "type": "number",
            "description": "The response time reported by Tavily."
          }
        },
        "additionalProperties": true,
        "description": "A Tavily Research task response."
      },
      "asyncLifecycle": {
        "startActionId": "tavily.create_research",
        "statusActionId": "tavily.get_research"
      }
    },
    {
      "id": "tavily.extract",
      "service": "tavily",
      "name": "extract",
      "description": "Extract structured page content from one or more URLs with Tavily.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "urls": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "A source URL.",
              "format": "uri"
            },
            "description": "The URLs that Tavily should extract content from.",
            "minItems": 1
          },
          "query": {
            "type": "string",
            "description": "An optional query used to rerank extracted chunks."
          },
          "chunks_per_source": {
            "type": "integer",
            "minimum": 1,
            "maximum": 5,
            "description": "The maximum number of chunks to return per source when query is provided."
          },
          "extract_depth": {
            "type": "string",
            "enum": [
              "basic",
              "advanced"
            ],
            "description": "Controls whether Tavily uses basic or advanced extraction."
          },
          "include_images": {
            "type": "boolean",
            "description": "Whether to include images found on each page."
          },
          "include_favicon": {
            "type": "boolean",
            "description": "Whether to include the favicon URL for each page."
          },
          "format": {
            "type": "string",
            "enum": [
              "markdown",
              "text"
            ],
            "description": "The format of the extracted page content."
          },
          "timeout": {
            "type": "number",
            "minimum": 1,
            "maximum": 60,
            "description": "The extraction timeout in seconds."
          },
          "include_usage": {
            "type": "boolean",
            "description": "Whether to include credit usage details in the response."
          }
        },
        "additionalProperties": false,
        "required": [
          "urls"
        ],
        "description": "The input payload for a Tavily Extract request."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "results": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "url": {
                  "type": "string",
                  "description": "The processed source URL."
                },
                "raw_content": {
                  "type": "string",
                  "description": "The extracted page content in the selected format."
                },
                "images": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {},
                    "additionalProperties": true,
                    "description": "An image item returned by Tavily."
                  },
                  "description": "Images extracted from the source."
                },
                "favicon": {
                  "type": "string",
                  "description": "The favicon URL for the source when include_favicon is enabled."
                }
              },
              "additionalProperties": true,
              "description": "An extracted Tavily result item."
            },
            "description": "The successful extraction results returned by Tavily."
          },
          "failed_results": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "url": {
                  "type": "string",
                  "description": "The source URL that failed."
                },
                "error": {
                  "type": "string",
                  "description": "The failure reason returned by Tavily."
                }
              },
              "additionalProperties": true,
              "description": "A failed Tavily extraction result."
            },
            "description": "URLs that Tavily could not extract successfully."
          },
          "response_time": {
            "type": "number",
            "description": "The total response time reported by Tavily."
          },
          "request_id": {
            "type": "string",
            "description": "A unique request identifier for Tavily support and debugging."
          },
          "usage": {
            "type": "object",
            "properties": {
              "credits": {
                "type": "number",
                "description": "The number of API credits consumed by the request."
              }
            },
            "additionalProperties": true,
            "description": "Credit usage details returned by Tavily."
          }
        },
        "additionalProperties": true,
        "description": "The Tavily Extract response payload."
      }
    },
    {
      "id": "tavily.get_research",
      "service": "tavily",
      "name": "get_research",
      "description": "Get the current status and result for a Tavily Research task.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "request_id": {
            "type": "string",
            "minLength": 1,
            "description": "The unique identifier of the research task."
          }
        },
        "additionalProperties": false,
        "required": [
          "request_id"
        ],
        "description": "The input payload for retrieving a Tavily Research task."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "request_id": {
            "type": "string",
            "minLength": 1,
            "description": "A unique identifier for the research task."
          },
          "status": {
            "type": "string",
            "enum": [
              "pending",
              "in_progress",
              "completed",
              "failed"
            ],
            "description": "The current research task status."
          },
          "input": {
            "type": "string",
            "description": "The research task or question investigated."
          },
          "model": {
            "type": "string",
            "enum": [
              "mini",
              "pro",
              "auto"
            ],
            "description": "The model used by the research agent."
          },
          "content": {
            "description": "The final research report content."
          },
          "sources": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A source used in a Tavily Research result."
            },
            "description": "Sources used in the research."
          },
          "response_time": {
            "type": "number",
            "description": "The response time reported by Tavily."
          }
        },
        "additionalProperties": true,
        "description": "A Tavily Research task response."
      },
      "asyncLifecycle": {
        "startActionId": "tavily.create_research",
        "statusActionId": "tavily.get_research"
      }
    },
    {
      "id": "tavily.get_usage",
      "service": "tavily",
      "name": "get_usage",
      "description": "Get API key and account usage details from Tavily.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "The input payload for a Tavily usage request."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "key": {
            "type": "object",
            "properties": {
              "usage": {
                "type": "number",
                "description": "The total usage for the API key."
              },
              "limit": {
                "type": "number",
                "description": "The usage limit for the API key."
              },
              "search_usage": {
                "type": "number",
                "description": "Search credits consumed by the API key."
              },
              "extract_usage": {
                "type": "number",
                "description": "Extract credits consumed by the API key."
              },
              "crawl_usage": {
                "type": "number",
                "description": "Crawl credits consumed by the API key."
              },
              "map_usage": {
                "type": "number",
                "description": "Map credits consumed by the API key."
              },
              "research_usage": {
                "type": "number",
                "description": "Research credits consumed by the API key."
              }
            },
            "additionalProperties": true,
            "description": "Usage details for the specific API key."
          },
          "account": {
            "type": "object",
            "properties": {
              "current_plan": {
                "type": "string",
                "description": "The current account plan name."
              },
              "plan_usage": {
                "type": "number",
                "description": "The total plan usage for the account."
              },
              "plan_limit": {
                "type": "number",
                "description": "The plan limit for the account."
              },
              "paygo_usage": {
                "type": "number",
                "description": "The pay-as-you-go usage for the account."
              },
              "paygo_limit": {
                "type": "number",
                "description": "The pay-as-you-go limit for the account."
              }
            },
            "additionalProperties": true,
            "description": "Plan and usage information for the account."
          }
        },
        "additionalProperties": false,
        "required": [
          "key",
          "account"
        ],
        "description": "The Tavily usage response payload."
      }
    },
    {
      "id": "tavily.map",
      "service": "tavily",
      "name": "map",
      "description": "Discover URLs from a website with Tavily Map.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "description": "The root URL that Tavily should map.",
            "format": "uri"
          },
          "instructions": {
            "type": "string",
            "description": "Natural-language instructions that guide the mapping."
          },
          "max_depth": {
            "type": "integer",
            "minimum": 1,
            "maximum": 5,
            "description": "The maximum mapping depth."
          },
          "max_breadth": {
            "type": "integer",
            "minimum": 1,
            "maximum": 500,
            "description": "The maximum number of links to follow per level."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "description": "The maximum number of links Tavily should process."
          },
          "select_paths": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "A path selection pattern."
            },
            "description": "Regex patterns used to include only matching URL paths.",
            "minItems": 1
          },
          "select_domains": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "A domain selection pattern."
            },
            "description": "Regex patterns used to include only matching domains.",
            "minItems": 1
          },
          "exclude_paths": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "A path exclusion pattern."
            },
            "description": "Regex patterns used to exclude matching URL paths.",
            "minItems": 1
          },
          "exclude_domains": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "A domain exclusion pattern."
            },
            "description": "Regex patterns used to exclude matching domains.",
            "minItems": 1
          },
          "allow_external": {
            "type": "boolean",
            "description": "Whether external domain links can appear in the results."
          },
          "timeout": {
            "type": "number",
            "minimum": 10,
            "maximum": 150,
            "description": "The mapping timeout in seconds."
          },
          "include_usage": {
            "type": "boolean",
            "description": "Whether to include credit usage details in the response."
          }
        },
        "additionalProperties": false,
        "required": [
          "url"
        ],
        "description": "The input payload for a Tavily Map request."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "base_url": {
            "type": "string",
            "description": "The base URL that Tavily mapped."
          },
          "results": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "The URLs discovered during the mapping operation."
          },
          "response_time": {
            "type": "number",
            "description": "The total response time reported by Tavily."
          },
          "request_id": {
            "type": "string",
            "description": "A unique request identifier for Tavily support and debugging."
          },
          "usage": {
            "type": "object",
            "properties": {
              "credits": {
                "type": "number",
                "description": "The number of API credits consumed by the request."
              }
            },
            "additionalProperties": true,
            "description": "Credit usage details returned by Tavily."
          }
        },
        "additionalProperties": true,
        "description": "The Tavily Map response payload."
      }
    },
    {
      "id": "tavily.search",
      "service": "tavily",
      "name": "search",
      "description": "Execute a Tavily Search query and return ranked source results.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "minLength": 1,
            "description": "The search query to execute with Tavily."
          },
          "search_depth": {
            "type": "string",
            "enum": [
              "advanced",
              "basic",
              "fast",
              "ultra-fast"
            ],
            "description": "Controls the latency-versus-relevance tradeoff for Tavily Search."
          },
          "chunks_per_source": {
            "type": "integer",
            "minimum": 1,
            "maximum": 3,
            "description": "The maximum number of chunks to return per source."
          },
          "max_results": {
            "type": "integer",
            "minimum": 0,
            "maximum": 20,
            "description": "The maximum number of search results to return."
          },
          "topic": {
            "type": "string",
            "enum": [
              "general",
              "news",
              "finance"
            ],
            "description": "The search category used by Tavily."
          },
          "time_range": {
            "type": "string",
            "enum": [
              "day",
              "week",
              "month",
              "year",
              "d",
              "w",
              "m",
              "y"
            ],
            "description": "The date range shortcut used to filter results."
          },
          "start_date": {
            "type": "string",
            "description": "Only return results after this YYYY-MM-DD date.",
            "format": "date"
          },
          "end_date": {
            "type": "string",
            "description": "Only return results before this YYYY-MM-DD date.",
            "format": "date"
          },
          "include_answer": {
            "anyOf": [
              {
                "type": "boolean",
                "description": "Whether to include an answer."
              },
              {
                "type": "string",
                "enum": [
                  "basic",
                  "advanced"
                ],
                "description": "The answer detail level."
              }
            ]
          },
          "include_raw_content": {
            "anyOf": [
              {
                "type": "boolean",
                "description": "Whether to include raw content."
              },
              {
                "type": "string",
                "enum": [
                  "markdown",
                  "text"
                ],
                "description": "The raw content format."
              }
            ]
          },
          "include_images": {
            "type": "boolean",
            "description": "Whether to include top-level and per-result images."
          },
          "include_image_descriptions": {
            "type": "boolean",
            "description": "Whether to include descriptions for returned images."
          },
          "include_favicon": {
            "type": "boolean",
            "description": "Whether to include favicons for returned results."
          },
          "include_domains": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "A domain name to include."
            },
            "description": "Domains that Tavily should include in the search results.",
            "minItems": 1
          },
          "exclude_domains": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "A domain name to exclude."
            },
            "description": "Domains that Tavily should exclude from the search results.",
            "minItems": 1
          },
          "country": {
            "type": "string",
            "description": "A country name used to boost results for general searches."
          },
          "auto_parameters": {
            "type": "boolean",
            "description": "Whether Tavily should auto-configure search parameters."
          },
          "exact_match": {
            "type": "boolean",
            "description": "Whether Tavily should require quoted exact phrases to match exactly."
          },
          "include_usage": {
            "type": "boolean",
            "description": "Whether to include credit usage details in the response."
          }
        },
        "additionalProperties": false,
        "required": [
          "query"
        ],
        "description": "The input payload for a Tavily Search request."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "The search query that was executed."
          },
          "results": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "title": {
                  "type": "string",
                  "description": "The source title."
                },
                "url": {
                  "type": "string",
                  "description": "The source URL."
                },
                "content": {
                  "type": "string",
                  "description": "The extracted snippet or summary for the source."
                },
                "score": {
                  "type": "number",
                  "description": "The relevance score of the source."
                },
                "raw_content": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The cleaned page content when include_raw_content is enabled."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "favicon": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The favicon URL for the result when include_favicon is enabled."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "images": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {},
                    "additionalProperties": true,
                    "description": "An image item returned by Tavily."
                  },
                  "description": "Images extracted from this result."
                },
                "published_date": {
                  "type": "string",
                  "description": "The published date for the result when Tavily can determine it."
                }
              },
              "additionalProperties": true,
              "description": "A single Tavily search result."
            },
            "description": "The ranked search results returned by Tavily."
          },
          "response_time": {
            "anyOf": [
              {
                "type": "number",
                "description": "The total response time reported by Tavily."
              },
              {
                "type": "string",
                "description": "The total response time reported by Tavily."
              }
            ]
          },
          "request_id": {
            "type": "string",
            "description": "A unique request identifier for Tavily support and debugging."
          },
          "answer": {
            "type": "string",
            "description": "A Tavily-generated answer for the query."
          },
          "images": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "An image item returned by Tavily."
            },
            "description": "Query-related images returned by Tavily."
          },
          "auto_parameters": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Auto-selected parameters returned by Tavily when enabled."
          },
          "usage": {
            "type": "object",
            "properties": {
              "credits": {
                "type": "number",
                "description": "The number of API credits consumed by the request."
              }
            },
            "additionalProperties": true,
            "description": "Credit usage details returned by Tavily."
          }
        },
        "additionalProperties": true,
        "description": "The Tavily Search response payload."
      }
    }
  ]
}
