Skip to main content
Tavily Search logo

Overview

Add Tavily Search to any ModuleX agent or workflow. AI-powered web search using the official langchain-tavily SDK. First SDK-based integration in the package — the @tools wrap TavilySearch rather than calling Tavily’s HTTP API directly.
Categories: Web Search & Scraping · Research · Ai · Auth: API Key, ModuleX Managed Key · Actions: 3

Authentication

API Key Authentication

Authenticate using your Tavily API key

Required Credentials

FieldDescriptionRequiredFormat
Tavily API KeyYour Tavily API key for authenticationYestvly-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Available Actions

Parameters

query
string
required
Search query
max_results
integer
Maximum number of results to return (1-20) (Default: 5)
search_depth
string
Search depth: basic (faster) or advanced (thorough) (Default: basic)
include_domains
array
List of domains to specifically include in search results
exclude_domains
array
List of domains to specifically exclude from search results

Response

{
  "$defs": {
    "TavilyResult": {
      "additionalProperties": false,
      "description": "One row in a Tavily search response.",
      "properties": {
        "url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Url"
        },
        "title": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Title"
        },
        "content": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Content"
        },
        "score": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Score"
        },
        "raw_content": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Raw Content"
        }
      },
      "title": "TavilyResult",
      "type": "object"
    }
  },
  "additionalProperties": false,
  "properties": {
    "success": {
      "title": "Success",
      "type": "boolean"
    },
    "error": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Error"
    },
    "query": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Query"
    },
    "answer": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Answer"
    },
    "results": {
      "items": {
        "$ref": "#/$defs/TavilyResult"
      },
      "title": "Results",
      "type": "array"
    },
    "images": {
      "items": {
        "type": "string"
      },
      "title": "Images",
      "type": "array"
    },
    "response_time": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Response Time"
    },
    "request_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Request Id"
    }
  },
  "required": [
    "success"
  ],
  "title": "WebSearchOutput",
  "type": "object"
}

Parameters

query
string
required
Question or search query
max_results
integer
Maximum number of supporting results to return (Default: 5)
search_depth
string
Search depth: basic or advanced (Default: advanced)
include_domains
array
List of domains to specifically include
exclude_domains
array
List of domains to exclude

Response

{
  "$defs": {
    "TavilyResult": {
      "additionalProperties": false,
      "description": "One row in a Tavily search response.",
      "properties": {
        "url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Url"
        },
        "title": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Title"
        },
        "content": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Content"
        },
        "score": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Score"
        },
        "raw_content": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Raw Content"
        }
      },
      "title": "TavilyResult",
      "type": "object"
    }
  },
  "additionalProperties": false,
  "properties": {
    "success": {
      "title": "Success",
      "type": "boolean"
    },
    "error": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Error"
    },
    "query": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Query"
    },
    "answer": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Answer"
    },
    "results": {
      "items": {
        "$ref": "#/$defs/TavilyResult"
      },
      "title": "Results",
      "type": "array"
    },
    "images": {
      "items": {
        "type": "string"
      },
      "title": "Images",
      "type": "array"
    },
    "response_time": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Response Time"
    },
    "request_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Request Id"
    }
  },
  "required": [
    "success"
  ],
  "title": "AnswerSearchOutput",
  "type": "object"
}

Limits & Quotas

  • Tavily’s rate limit varies by plan; consult their dashboard.
  • The SDK is imported lazily inside each tool: if langchain-tavily is not installed, the tool returns success=False with an “install with pip install langchain-tavily” message rather than crashing. This matches legacy modulex behavior.

Jina AI

Ahrefs

Airweave