Nimble’s Search API provides real-time web search by browsing the live web with headless browsers rather than querying pre-built indexes. The tool handles JavaScript rendering, dynamic content, and complex navigation flows, making it suitable for agent workflows that need access to current web data including content behind pagination, filters, and client-side rendering.
Overview
Integration details
| Class | Package | Serializable | JS support | Package latest |
|---|---|---|---|---|
| NimbleSearchTool | langchain-nimble | ❌ | ❌ |
Tool features
| Returns artifact | Native async | Return data | Pricing |
|---|---|---|---|
| ❌ | ✅ | title, URL, content (markdown/plain_text/HTML), metadata | Free trial available |
- Fast mode & Deep mode: Deep mode (default) for full content extraction with JavaScript rendering, or Fast mode for quick SERP-only results
- AI-generated summaries: Optional concise answers alongside raw search results
- Domain and date filtering: Filter by specific domains or date ranges for precise results
- Topic-based routing: Optimized routing for general, news, or location-based queries
- Flexible output formats: plain_text, markdown (default), or simplified_html
- Production-ready: Native async support, automatic retries, connection pooling
Setup
The integration lives in thelangchain-nimble package.
Credentials
You’ll need a Nimble API key to use this tool. Sign up at Nimble to get your API key and access their free trial.Instantiation
Now we can instantiate the tool:Use within an agent
We can use the Nimble search tool with an agent to give it dynamic web search capabilities. Here’s a complete example using LangGraph:Advanced configuration
The tool supports extensive configuration for different use cases:| Parameter | Type | Default | Description |
|---|---|---|---|
num_results | int | 10 | Maximum number of results to return (1-20) |
deep_search | bool | True | Deep mode (default) for full content extraction, or Fast mode (False) for SERP-only results |
topic | str | ”general” | Optimize search for specific content types: “general”, “news”, or “location” |
include_answer | bool | False | Generate AI-powered summary answer alongside search results |
include_domains | list[str] | None | Whitelist specific domains (e.g., [“wikipedia.org”, “.edu”]) |
exclude_domains | list[str] | None | Blacklist specific domains to filter out |
start_date | str | None | Filter results after date (YYYY-MM-DD or YYYY) |
end_date | str | None | Filter results before date (YYYY-MM-DD or YYYY) |
parsing_type | str | ”markdown” | Output format: “plain_text”, “markdown”, or “simplified_html” |
locale | str | ”en” | Search locale (e.g., “en-US”) |
country | str | ”US” | Country code for localized results (e.g., “US”) |
api_key | str | env var | Nimble API key (defaults to NIMBLE_API_KEY environment variable) |
Best Practices
Fast mode vs Deep mode
-
Deep mode (
deep_search=True, default):- Full content extraction from web pages
- Best for detailed analysis, RAG applications, and comprehensive research
- Handles JavaScript rendering and dynamic content
-
Fast mode (
deep_search=False):- Quick SERP-only results with titles and snippets
- Optimized for high-volume queries where speed is critical
- Lower cost per query
When to use include_answer
- Enable
include_answer=Truewhen you want a concise, AI-generated summary in addition to the raw search results - Useful for quick insights without processing all the raw content yourself
Filtering tips
- Domain filtering: Use
include_domainsfor academic research or when you need trusted sources. Useexclude_domainsto filter out unwanted content types - Date filtering: Combine
start_dateandend_datefor time-sensitive queries or recent news - Topic routing: Use
topicparameter to optimize search for general web content, news articles, or location-based information
Performance optimization
- Choose the right mode: Use Fast mode (
deep_search=False) for high-volume queries where speed matters; Deep mode (default) for comprehensive content extraction - Use async operations (
ainvoke) when running multiple searches concurrently - Tune
num_resultsto the minimum number of results needed to reduce response time - Leverage domain filtering to focus on quality sources and reduce noise
API reference
For detailed documentation of allNimbleSearchRetriever features and configurations, visit the Nimble API documentation.
Connect these docs to Claude, VSCode, and more via MCP for real-time answers.