Exa Release Notes
14 release notes curated from 15 sources by the Releasebot Team. Last updated: Feb 18, 2026
- Jan 21, 2026
- Date parsed from source:Jan 21, 2026
- First seen by Releasebot:Feb 18, 2026
Introducing Exa Company Search
Exa unveils an upgraded Company Search with a fine-tuned retrieval model and entity matching, plus structured company data in results. Use in API Playground with type auto and category company for richer, filterable insights.
What’s New
We’ve added significant improvements to company search due to a fine-tuned retrieval model and entity-matching pipeline. Use type = "auto" , category = "company" to use this in our search API.
Date: January 21, 2026
We’ve added significant improvements to company search due to a fine-tuned retrieval model and entity-matching pipeline for this vertical of queries.
Try Company Search in our API Playground with type = "auto" , category = "company" .State-of-the-art company search: We fine-tuned our retrieval model specifically for company search and built an ingestion pipeline optimized for entity matching—delivering accurate results across attributes like industry, geography, funding stage, and employee count.
Use case focused: Run queries like “fintech companies in Switzerland” or “Japanese AI companies founded in 2023” and programmatically enrich results with structured company data for sales prospecting, market research, and supply chain workflows.How to Use Company Search
Use type="auto" and category="company" in your search requests:
curl -X POST https://api.exa.ai/search \ -H "x-api-key: EXA_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "query": "Agtech companies optimizing pesticide placement with computer vision", "type": "auto", "category": "company", "numResults": 10 }'The company category supports queries across:
- Named lookup: “Sakana AI company” or “Tell me about exa.ai”
- Attribute filtering: Industry, geography, founding year, employee count
- Funding queries: Stage, amount raised, recent rounds
- Composite queries: Multiple constraints like “Israeli security companies founded after 2015”
- Semantic queries: Natural language descriptions like “Companies like Bell Labs”
Structured Entity Data
With this launch, we are introducing entities for company search, a new primitive from Exa that will return high quality, structured information from web data.
Company search results now include structured entity data with detailed company information:
{
"entities": [
{
"id": "https://exa.ai/library/company/metaphor-systems",
"type": "company",
"version": 1,
"properties": {
"name": "Exa",
"foundedYear": null,
"description": "Exa was built with a simple goal — to organize all knowledge...",
"workforce": {
"total": 48
},
"headquarters": {
"address": "430 Shotwell St",
"city": "San Francisco",
"postalCode": "94110",
"country": "United States"
},
"financials": {
"revenueAnnual": null,
"fundingTotal": 107000000,
"fundingLatestRound": {
"name": "Series B",
"date": "2025-09-03",
"amount": 85000000
}
},
"webTraffic": {
"total": 477156
}
}
}
]
}
Original source### Learn More - Read our blog post: Introducing Exa’s Company Search Benchmark - Try it in the API Playground ### Need Help? If you have questions about company search or want to learn more about optimizing your queries, reach out to [email protected]. We’re here to help you get the most out of Exa Company Search! - Dec 19, 2025
- Date parsed from source:Dec 19, 2025
- First seen by Releasebot:Feb 18, 2026
Introducing Exa People Search
Exa launches People Search with 1B+ indexed profiles and a new global 'people' category replacing LinkedIn. This production search uses a hybrid retrieval system for accurate role, skill, and company results across the web, optimized for sales, recruiting and research.
We’re launching state-of-the-art people search with 1B+ indexed profiles. The ‘linkedin’ category is now replaced with ‘people’ for better results.
Date: December 19, 2025
We’re launching Exa People Search, a new way to find and discover people on the web, designed for real production use across sales, recruiting, research, and more.
Try People Search in our API Playground with category = "people".
What’s New
State-of-the-art people search: Exa indexed 1B+ public profiles and trained a hybrid retrieval system (fine-tuned embeddings + Exa Search) to deliver highly accurate role, skill, and company based people search at web scale.
Usecase focused: Customers can run queries like “VP of Product at Microsoft” or “enterprise sales reps from Microsoft in EMEA” and programmatically enrich results with profiles for sales, recruiting, and market research workflows.
What Changed
We’re replacing the linkedin category with the new people category to provide better, more comprehensive people search results.
Before
Old approach - limited to LinkedIn
result = exa.search("VP of Product at Microsoft", category = "linkedin")
After
New approach - comprehensive people search across the web
result = exa.search("VP of Product at Microsoft", category = "people")
How to Use People Search
Simply use category="people" in your search requests:
curl -X POST https://api.exa.ai/search \ -H "x-api-key: EXA_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "query": "Product managers at Microsoft", "category": "people", "numResults": 10 }'The new people category provides:
- Broader coverage: 1B+ profiles across the entire web, not just LinkedIn
- Better accuracy: Fine-tuned embeddings specifically for people search
- More relevant results: Hybrid retrieval system optimized for role, skill, and company queries
Learn More
- Read our blog post: Introducing Exa’s People Search Benchmarks
- Follow our announcement: Twitter/X
- Try it in the API Playground
Need Help?
If you have questions about migrating from the linkedin category or want to learn more about optimizing your people search queries, reach out to [email protected]. We’re here to help you get the most out of Exa People Search!
Original source All of your release notes in one feed
Join Releasebot and get updates from Exa and hundreds of other software products.
- Nov 26, 2025
- Date parsed from source:Nov 26, 2025
- First seen by Releasebot:Feb 18, 2026
JS SDK: highlights restored
Highlights return in exa-js 2.0.11, enabling key sentence extraction with relevance scores from search results. Available in search and contents with customizable maxCharacters and query; returns highlights and highlightScores. JavaScript SDK only; install via npm install exa-js@latest.
The highlights feature has been reintroduced in the JavaScript SDK (exa-js) as of version 2.0.11.
Date: November 26, 2025
The highlights feature is back in the JavaScript SDK. Following user feedback, we’ve reintroduced highlights in exa-js v2.0.11, allowing you to extract key sentences from search results with relevance scores.
What’s Back
The highlights option is now available in search and contents operations:
- highlights: true - Returns highlighted sentences with default settings
- highlights: { maxCharacters, query } - Customize extraction behavior
Results include:
- highlights: string[] - Array of extracted key sentences
- highlightScores: number[] - Relevance scores for each highlight
Usage Examples
Basic highlights
const results = await exa.searchAndContents("latest AI research", { highlights: true }); console.log(results.results[0].highlights); // ["Key sentence from the article...", "Another relevant excerpt..."]With options
const results = await exa.searchAndContents("machine learning tutorials", { highlights: { maxCharacters: 2000, query: "beginner friendly" } });Combined with text
const results = await exa.searchAndContents("climate news", { text: true, highlights: true }); // Returns both full text and highlighted excerptsScope
This update applies only to the JavaScript SDK (exa-js). Other SDKs can access highlights via direct API calls.
Installation
Original sourcenpm install exa-js@latest - Nov 20, 2025
- Date parsed from source:Nov 20, 2025
- First seen by Releasebot:Feb 18, 2026
New Deep Search Type
Exa Deep debuts as a new deep search type that runs parallel queries, expands inputs, and returns detailed per-result summaries for richer context. Available in API Playground and dashboard, with optional additionalQueries for even sharper results.
Introducing Exa Deep: Get better results with smart query expansion and high-quality summaries.
Date: November 20, 2025
We’re excited to introduce Exa Deep - a new search type that finds better results by running multiple searches at once and gives you high-quality context for each result. You can send just one query (we’ll create variations automatically) or provide your own query variations using the additionalQueries parameter for even better results.
Deep search is available on our API Playground.
Try Deep search in the dashboard →How Deep Search Works
When you use Deep search, here’s what happens:
- Query Expansion: If you only send one query, we automatically create variations. If you send query variations yourself using additionalQueries, we use those instead. For best results, consider having a good LLM model (like GPT-5 or Claude 4.5 Sonnet) generate the query variations for you.
- Parallel Search: We search for your main query and all variations at the same time
- Smart Ranking: We combine and rank all results to give you the most relevant ones
- Summary Generation: Each result gets a detailed, accurate summary
How to Use Deep Search
Using Deep search is simple - just add type="deep" to your search requests. You can also add additionalQueries for even better results:
Basic Deep Search:
curl -X POST https://api.exa.ai/search \ -H "x-api-key: EXA_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "query": "blog post about AI", "type": "deep", "contents": { "text": true, "context": true } }'Deep Search with Query Variations:
curl -X POST https://api.exa.ai/search \ -H "x-api-key: EXA_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "query": "blog post about AI", "additionalQueries": ["AI blogpost", "machine learning blogs"], "type": "deep", "contents": { "text": true, "context": true } }'What You Get Back
The context parameter shown in examples below is now deprecated. Use highlights or text instead.
Deep search returns a context field that gives you detailed context:
{
"requestId": "975a6ff95c69a0bdc558f01c99ede801",
"context": "Title: AI News | Latest AI News, Analysis & Events\nPublished Date: 2025-11-19T10:22:05.000Z\nURL: https://www.artificialintelligence-news.com/\nSummary: This page is a collection of recent news, analysis, and resources related to Artificial Intelligence (AI). It features various blog posts and articles covering topics such as:\n\n* Workforce & HR: Using ChatGPT for team planning and the Royal Navy's use of AI in recruitment.\n* Technology & Infrastructure: The role of Pure Storage and Azure in AI-ready data, and alliances between Microsoft, NVIDIA, and Anthropic for AI compute.\n* AI Models & Tools: Google’s Veo 3 video creation tools, Samsung’s small AI model, and lightweight LLMs for enterprise use in Japan.\n* Industry Applications: AI in asset management (Franklin Templeton & Wand AI), Levi Strauss's DTC model, and accounting firms using AI agents.\n* Research & Hardware: Breakthroughs in analog AI chips for deep learning a....",
"results": [
{
"id": "https://www.artificial-intelligence.blog/",
"title": "AI Blog - Artificial Intelligence Blog",
"url": "https://www.artificial-intelligence.blog/",
"publishedDate": "2016-01-01T00:00:00.000Z",
"author": "Artificial Superintelligence (ASI)",
"text": "This is a blog dedicated to Artificial Intelligence, aiming to keep readers updated on the field in innovative, informative, and entertaining ways. The content, including images and text, is largely generated by AI. The blog features various posts covering topics such as new AI models, societal impact, technical discussions, industry focus, market analysis, and beginner guides...",
"image": "http://static1.squarespace.com/static/62ec2bc76a27db7b37a2b32f/t/68974039b71d0f1a6f3e6920/1754742841664/of+ai-blog-youtube-2025.png?format=1500w",
"favicon": "https://images.squarespace-cdn.com/content/v1/62ec2bc76a27db7b37a2b32f/abfb4587-35b3-411f-8603-7e24344b95fc/favicon.ico?format=100w"
},
{
"id": "https://blog.google/technology/ai/",
"title": "AI",
"url": "https://blog.google/technology/ai/",
"publishedDate": "2018-06-07T18:13:42.000Z",
"author": "",
"text": "The work we're doing to make AI helpful for everyone. This page covers Gemini Models, Gemini App updates, Research developments, and Developer resources. Recent highlights include the release of Gemini 3, tips for using Nano Banana Pro, and various AI research initiatives...",
"image": "https://blog.google/static/blogv2/images/google-200x200.png?version=pr20251113-1736",
"favicon": "https://blog.google/favicon.ico"
}
],
"searchTime": 2619.8,
"costDollars": {
"total": 0.022,
"search": {
"neural": 0.005
},
"contents": {
"text": 0.017
}
}
}
Original source### Available Search Types Now you have four search types to choose from: - Auto (default): Our best search, intelligently combines multiple search methods - Fast: Fastest search with lowest latency - Deep: Deep search with query expansion and summaries - Neural: Predicts the most relevant results based on query meaning We’re excited for you to try Deep search and see how it can improve your search results! - Nov 5, 2025
- Date parsed from source:Nov 5, 2025
- First seen by Releasebot:Feb 18, 2026
Added Language Filtering
Exa now auto-detects your query language and returns web results only in that language by default. This makes searches more relevant across English, Spanish, French, and other languages. No setup required and it works for all accounts.
Language filtering is now turned on for everyone by default
Exa now detects your query language and only searches web search results in the same language.
Date: November 5, 2025
We now return results that match the language of your search query. This feature is now turned on by default for all users.
What Changed
Before this update, Exa would mostly return results in your query language, but you might also get results from other languages mixed in. Now, Exa detects what language you’re searching in and only shows you web search results in that same language.
What This Means for You
- Better results: Your search results will now be more relevant because they match your query language.
- No setup needed: This feature is already working for your account - you don’t need to do anything.
- Works across languages: Whether you search in English, Spanish, French, or any other language, you’ll get results in that language.
How It Works
When you search, Exa automatically:
- Detects what language your query is in
- Searches only through web search results in that same language
- Returns results that are more relevant to your language needs
This update makes search results much more useful, especially if you work with content in multiple languages. The filtering works particularly well and has shown big improvements in our testing.
If you have any questions about this update, please reach out to [email protected].
Original source - Oct 28, 2025
- Date parsed from source:Oct 28, 2025
- First seen by Releasebot:Feb 18, 2026
SDK changes: highlights removed and contents returned by default
Major SDK update introduces default content in search, removes highlights from SDKs (with a later JS reintroduction), and deprecates use_autoprompt across API responses. This release streamlines content retrieval and migration options for developers.
Major SDK update
Major SDK update with contents included by default in search, highlights feature removed from SDKs, and use_autoprompt field deprecated in all API responses.
We’re releasing a major version update to our SDKs along with changes to API responses. This update makes content retrieval more convenient while removing deprecated features.
1. Contents Included by Default in SDKs
Search operations in the SDKs now include page contents by default, eliminating the need for a separate contents call in most workflows. You can opt out if you need faster searches without content.
2. Highlights Feature Removed from SDKs
The highlights feature has been completely removed from all SDKs. This feature was previously deprecated and is no longer available in the SDK packages.
Update (November 2025): Highlights have been reintroduced in the JavaScript SDK as of exa-js v2.0.11. See JS SDK: highlights restored for details.
Migration Options:
- Option 1: Do not upgrade to the new major version if you still need highlights
- Option 2: Use the API directly to access highlights functionality
- Option 3: Use “AI Summary” to get the main summary of “text”
3. use_autoprompt Deprecated in All API Responses
The use_autoprompt field has been deprecated and removed from all API responses across the entire platform. This field is no longer needed with current search improvements.
Need Help?
If you have questions about upgrading or need help with migration, please reach out to [email protected]. We’re here to help ensure a smooth transition to the new major version.
Original source - Aug 4, 2025
- Date parsed from source:Aug 4, 2025
- First seen by Releasebot:Feb 18, 2026
Domain Path Filter Support
New path-specific filtering and subdomain wildcard support for includeDomains and excludeDomains. This update lets you target URL sections like blogs or product pages across subdomains with patterns such as *.substack.com and /blog. Date: August 4, 2025
Date: August 4, 2025
What’s New
The includeDomains and excludeDomains parameters now support:
- Path-specific filtering: Target specific sections of a domain by including the path
- Subdomain wildcard matching: Use *.domain.com to match all subdomains
Examples
Pattern | What it matches | Example URLs
"*.substack.com" | Any subdomain of substack.com | https://thehobbyist.substack.com/p/location-matters-6-days-273-bets
"exa.ai/blog" | Only the blog section of exa.ai | https://exa.ai/blog/meet-the-exacluster
"linkedin.com/company" | Company profiles on LinkedIn | https://www.linkedin.com/company/exa-aiWhen to Use Path Filtering
Path filtering is useful for things like:
- Blogs: Search within blogs like stripe.com/blog, openai.com/blog, or stratechery.com/2025
- Product Catalogs: Query product pages like amazon.com/dp, etsy.com/listing, or ikea.com/us/en/cat
- Directories: Search specific directories like ycombinator.com/companies, crunchbase.com/organization, or github.com/orgs
How To Use Path Filtering
You can use the same includeDomains and excludeDomains parameters:
Python example code snippet provided in the original content.
Need Help?
If you have any questions about domain filtering or need help with your specific use case, please reach out to [email protected].
Original source - Jul 30, 2025
- Date parsed from source:Jul 30, 2025
- First seen by Releasebot:Feb 18, 2026
Geolocation Filter Support
New userLocation parameter added to the search API to bias results by ISO country code, improving regional relevance and language-specific content. The response format remains unchanged while ranking is adjusted; examples show how to implement.
userLocation added to the search API to bias search results based on geographic location.
Date: July 30, 2025
We’re excited to announce a new userLocation parameter that lets you bias search results based on a user’s geographic region. The location is passed as an ISO 3166-1 alpha-2 country code (e.g., “fr” for France, “us” for the United States). If this field is provided, search will return results that are more relevant to users in the provided region.
When to Use Geolocation Filter
The userLocation parameter is particularly useful for:- Multi-regional applications: Show users content that’s relevant to their region
- Language-specific content: Prioritizing content in regional languages
- Local discovery: Surface products or businesses relevant to the users region
Consider using geolocation filtering when the user’s physical location or regional context significantly impacts the relevance of search results.
How To Use Geolocation Filter
Here’s how to implement the new userLocation parameter:Python example:
result = exa.search_and_contents( "football rules", type = "auto", livecrawl = "never", userLocation = "us", # ISO 3166-1 alpha-2 country code num_results = 10 )Response Structure Changes
The response structure remains unchanged - geolocation filtering affects result ranking and relevance scoring, but doesn’t modify the response format.Need Help?
Original source
If you have any questions about location filtering or need help with your specific use case, please reach out to [email protected]. - Jul 29, 2025
- Date parsed from source:Jul 29, 2025
- First seen by Releasebot:Feb 18, 2026
New Fast Search Type
Introducing Exa Fast, the world’s fastest search API with p50 latency under 425ms, now available on all plans. It uses a streamlined index, full parameter compatibility, and is ideal for fast grounding and latency‑sensitive AI tasks.
Introducing Exa Fast: The world’s fastest search API.
Date: July 29, 2025
We’re excited to introduce Exa Fast - the fastest search API in the world. Exa Fast uses streamlined versions of our search models with p50 latency below 425ms.
Fast search is available immediately on all API plans.
Try Fast search in the dashboard →What’s New
The Fast search type provides:
- Speed: p50 latency below 425ms - that’s 30% faster than other search APIs
- Exa Index: Uses the same index of high quality content as our neural search
- Customization: Full compatibility with all the same parameters as our other search types
When to Use Fast Search
Fast search is ideal for:
- Fast web grounding: Integrate real-time web information into responses without sacrificing speed and impacting user experience
- Agentic workflows: AI agents like deep research that use dozens or hundreds of search calls where milliseconds add up
- Low-latency AI products: Latency-sensitive applications like AI voice companions where every millisecond matters
How to Use Fast Search
Using Fast search is simple - just add type="fast" to your search requests:
result = exa.search_and_contents( "latest AI news", type = "fast", livecrawl = "never", )Options That Impact Latency
While Fast search is optimized for speed, certain options can increase response times:
- Live crawling: Fetching content live requires real-time web requests. Set livecrawl="never" to use cached content and maintain optimal speed.
- AI summaries: Requesting AI-generated summaries requires LLM processing, which adds significant latency to your requests.
- Complex date filters: Using wide date ranges or multiple date constraints requires additional filtering that can slow down results.
- Include/exclude text: Text-based content filtering requires scanning through results, which impacts response times.
- Subpages: Including subpages in your search requires additional processing and can significantly increase latency.
For the fastest possible performance, use Fast search with minimal parameters and rely on cached content.
Original source - Jul 21, 2025
- Date parsed from source:Jul 21, 2025
- First seen by Releasebot:Feb 18, 2026
Score Deprecation in Auto Search
A major update deprecates relevance scores in Auto search while Neural search scores stay. Auto search results will be returned without scores; migration guidance helps remove score dependencies and adjust code.
Date: July 21, 2025
We’re deprecating relevance scores in Auto search due to architectural improvements. Scores will remain available in Neural search.
What Changed
Previously, Auto and Neural search types returned relevance scores - a number from 0 to 1 representing similarity between the query and each result. With our new Auto search architecture, we can no longer generate meaningful scores for Auto search results.
The search functionality works exactly the same way as it did before - you’ll still get the same high-quality results, just without the score field in the response.What This Means for You
- Auto search: The score field will no longer be returned in search results
- Neural search: Scores continue to work exactly as before with no changes
- Migration needed: If your application relies on scores from Auto search, you should migrate as soon as possible
How to Update Your Code
If you currently use scores from Auto search, here is what you can do:
Remove Score Dependencies
# Before: Code that depends on scores result = exa.search("AI startups", type = "auto") sorted_results = sorted(result.results, key = lambda x : x.score, reverse = True) # After: Use results in the order returned (already optimally ranked) result = exa.search("AI startups", type = "auto") # Results are already ranked by relevance, no need to sort by score for item in result.results: print (f"Title: {item.title}")Response Structure Changes
Auto Search (New)
{ "results" : [ { "title" : "Example AI Startup", "url" : "https://example-startup.com", "id" : "abc123", "publishedDate" : "2024-01-15", "author" : "John Doe" // Note: No 'score' field } ] }Neural Search (Unchanged)
{ "results" : [ { "title" : "Example AI Startup", "url" : "https://example-startup.com", "id" : "abc123", "publishedDate" : "2024-01-15", "author" : "John Doe" } ] }Need Help with Migration?
If you have questions about migrating from Auto search scores or need help determining the best search type for your use case, please reach out to [email protected]. We’re here to help ensure a smooth transition.
Original source - Jun 23, 2025
- Date parsed from source:Jun 23, 2025
- First seen by Releasebot:Feb 18, 2026
Markdown Contents as Default
Exa API now defaults to Markdown output across all endpoints, delivering cleaner, structured content optimized for AI, RAG, and text processing. HTML output is still available with includeHtmlTags=true, while default formatting strips boilerplate for easier use.
Markdown content default
Markdown content is now the default format for all Exa API endpoints, providing cleaner, more readable content that’s ideal for AI applications and text processing.
We’ve updated all Exa API endpoints to return content in markdown format by default. This change provides cleaner, more structured content that’s optimized for AI applications, RAG systems, and general text processing workflows.
All endpoints now process webpage content into clean markdown format by default. Use the includeHtmlTags parameter to control content formatting.
What Changed
Previously, our endpoints returned content in various formats depending on the specific endpoint configuration. Now, all endpoints consistently return content processed into clean markdown format, making it easier to work with the data across different use cases.
Content Processing Behavior
The includeHtmlTags parameter now controls how we process webpage content:
- includeHtmlTags=false (default): We process webpage content into clean markdown format
- includeHtmlTags=true: We return content as HTML without processing to markdown
In all cases, we remove extraneous data, advertisements, navigation elements, and other boilerplate content, keeping only what we detect as the main content of the page.
No action required if you want the new markdown format - it’s now the default! If you need HTML content instead:
Benefits of Markdown Default
- Better for AI applications: Markdown format is more structured and easier for LLMs to process
- Improved readability: Clean formatting without HTML tags makes content more readable
- RAG optimization: Markdown content chunks more naturally for retrieval systems
If you have any questions about this change or need help adapting your implementation, please reach out to [email protected].
We’re excited for you to experience the improved content quality with markdown as the default!
Original source - Jun 7, 2025
- Date parsed from source:Jun 7, 2025
- First seen by Releasebot:Feb 18, 2026
New Livecrawl Option: Preferred
Introducing the livecrawl 'preferred' option for more resilient content fetching. It tries a fresh crawl first, falls back to cached results on failure, and is available in both /contents and /search_and_contents for reliable, up-to-date content.
Introducing the ‘preferred’ livecrawl option that tries to fetch fresh content but gracefully falls back to cached results when crawling fails, providing the best of both worlds.
Date: 7 June 2025
We’ve added a new livecrawl option called "preferred" that provides a more resilient approach to content fetching. This option attempts to crawl fresh content but gracefully falls back to cached results when live crawling fails.
The preferred option is now available in both /contents and /search_and_contents endpoints.
What’s New
The new livecrawl: "preferred" option provides intelligent fallback behavior:
- First: Attempts to crawl fresh content from the live webpage
- If crawling succeeds: Returns the fresh, up-to-date content
- If crawling fails but cached content exists: Returns cached content instead of failing
- If crawling fails and no cached content exists: Returns the crawl error
How It Differs from “Always”
The key difference between "preferred" and "always" :
Option Crawl Fails + Cache Available Crawl Fails + No Cache "preferred" Returns cached content Returns crawl error "always" Returns crawl error Returns crawl errorThis makes "preferred" more resilient for production applications where you want fresh content when possible, but don’t want requests to fail when websites are temporarily unavailable.
If content freshness is critical and you want nothing else, then using "always" might be better.When to Use “Preferred”
The "preferred" option is ideal when:
- You want the freshest content available but need reliability
- Building production applications that can’t afford to fail on crawl errors
- Content freshness is important but not critical enough to fail the request
- You’re crawling websites that might be occasionally unavailable
Complete Livecrawl Options Overview
Here are all four livecrawl options and their behaviors:
Option Crawl Behavior Cache Fallback Best For "always" Always crawls Never falls back Critical real-time data, willing to accept failures "preferred" Always crawls Falls back on crawl failure Fresh content with reliability "fallback" Only if no cache Uses cache first Balanced speed and freshness "never" Never crawls Always uses cache Maximum speedMigration Guide
If you’re currently using livecrawl: "always" but experiencing reliability issues:
Before - fails when crawling fails
result = exa.get_contents(urls, livecrawl = "always")
After - more resilient with cache fallback
result = exa.get_contents(urls, livecrawl = "preferred")
This change maintains your preference for fresh content while improving reliability.
Original source - May 22, 2025
- Date parsed from source:May 22, 2025
- First seen by Releasebot:Feb 18, 2026
Contents Endpoint Status Changes
The /contents API now returns granular per URL statuses instead of HTTP errors, giving clearer results and easier error handling. A new statuses field shows success or detailed crawl errors for each URL, boosting visibility and control over fetch outcomes.
Release notes
The /contents endpoint now returns detailed status information for each URL instead of HTTP error codes, providing better visibility into individual content fetch results.
Date: 22 May 2025
We’ve updated the /contents endpoint to provide more granular status information for each URL you request. Instead of returning HTTP error codes directly, the endpoint now includes a statuses field that gives you detailed information about each content fetch operation.
The /contents endpoint will now only return an error if there’s an internal issue on our end. All other cases are handled through the new statuses field.
What Changed
Previously, the /contents endpoint would return HTTP error codes when content fetching failed. This approach had limitations when multiple URLs failed for different reasons, making it unclear which specific error to return.
Now, the endpoint returns a statuses field containing individual status information for each URL, allowing you to handle different failure scenarios appropriately.Response Structure
The new response structure includes:
{ "results": [...], "statuses": [ { "id": "https://example.com", "status": "success" | "error", "error": { "tag": "CRAWL_NOT_FOUND" | "CRAWL_TIMEOUT" | "SOURCE_NOT_AVAILABLE" | "CRAWL_UNKNOWN_ERROR", "httpStatusCode": 404 | 408 | 403 | 500 } } ] }Status Fields Explained
- id: The URL that was requested
- status: Either "success" or "error"
- error (optional): Only present when status is "error"
- tag: Specific error type
- CRAWL_NOT_FOUND: Content not found (404)
- CRAWL_TIMEOUT: Request timed out (408)
- SOURCE_NOT_AVAILABLE: Access forbidden or source unavailable (403)
- CRAWL_UNKNOWN_ERROR: Other errors (500+)
- httpStatusCode: The corresponding HTTP status code
- tag: Specific error type
How to Update Your Code
Instead of catching HTTP errors, you should now check the statuses field:
# Old approach (no longer recommended) try: result = exa.get_contents([ "https://example.com" ]) except HTTPError as e: print(f"Error: {e.status_code}") # New approach result = exa.get_contents([ "https://example.com" ]) for status in result.statuses: if status.status == "error": print(f"Error for {status.id}: {status.error.tag} ({status.error.httpStatusCode})")Need More Information?
If you’d like more information about the status of a crawl or have specific use cases that require additional status details, please contact us at [email protected] with your use case.
Original source - May 1, 2025
- Date parsed from source:May 1, 2025
- First seen by Releasebot:Feb 18, 2026
Auto search as Default
Exa announces Auto search as the default, blending proprietary neural search with other methods for smarter results out of the box. No code changes required; you can still set type='neural' if you prefer. This release promises a faster, more accurate search experience.
Auto search, which intelligently combines Exa’s proprietary neural search with other search methods, is now the default search type for all queries.
The change to Auto search as default leverages the best of Exa’s proprietary neural search and other search methods to give you the best results. Out of the box, Exa now automatically routes your queries to the best search type.
Read our documentation on Exa’s different search types here.
What This Means for You
- Enhanced results: Auto search automatically routes queries to the most appropriate search method, optimizing your search results without any extra effort on your part.
- No Action required: If you want to benefit from Auto search, you don’t need to change anything in your existing implementation. It’ll just work!
- Maintaining current behavior: If you prefer to keep your current search behavior, you can still explicitly set type="neural" in your search requests.
Quick Example
Here’s what this means for your code when default switches over:
# New default behavior (Auto search) result = exa.search_and_contents("hottest AI startups") # Explicitly use neural search result = exa.search_and_contents("hottest AI startups", type="neural")We’re confident this update will significantly improve your search experience. If you have any questions or want to chat about how this might impact your specific use case, please reach out to [email protected].
We can’t wait for you to try out the new Auto search as default!
Original source
This is the end. You've seen all the release notes in this feed!
Curated by the Releasebot team
Releasebot is an aggregator of official release notes from hundreds of software vendors and thousands of sources.
Our editorial process involves the manual review and audit of release notes procured with the help of automated systems.
Similar to Exa with recent updates:
- xAI release notes79 release notes · Latest May 29, 2026
- Obsidian release notes88 release notes · Latest May 28, 2026
- Perplexity release notes24 release notes · Latest May 11, 2026
- Deepseek release notes18 release notes · Latest Apr 24, 2026
- OpenClaw release notes165 release notes · Latest May 29, 2026
- Salesforce release notes14 release notes · Latest May 1, 2026