Overview
Switch from Exa to Linkup’s Search, Fetch, and Research endpoints.
Most of the migration is a mechanical rename. The part that is not mechanical is the query itself.
The core difference
Both APIs put intelligence into the request, in different places.
Anything you expressed to Exa as a parameter needs to be expressed to Linkup as words in
q. A bare noun phrase gives the Linkup agent very little to plan a retrieval around, so rewriting the query is usually the difference between a mediocre result and a good one.
Quick start
Get your API key
Get your API key
Create a Linkup account for free to get your API key.
Install the SDK
The three settings that matter most
Everything else is optional. These three account for nearly all of the difference in output quality.1. depth: choose the retrieval strategy
Exa’s type is primarily a speed setting. Linkup’s depth selects how the search is carried out, so map it deliberately rather than as a direct rename.
"flash" and "fast" pass the query as-is to the index, with no LLM. "standard" interprets the query and can run parallel sub-searches. "deep" adds the ability to open a page it discovered, read it, and decide what to do next. If step two depends on what step one found, or a discovered page has to be read, use "deep".
2. q: write an instruction, not a description
An Exa query describes a page. A Linkup query gives an instruction. Five moves that reliably improve results with "standard" and "deep":
- Start with a verb. Find, search, scrape, extract, compare.
- Name the fields you want back. Linkup returns evidence rather than whole pages, so specify which evidence you need.
- Break breadth into explicit facets. “Run separate searches for X, Y, and Z” is how you get parallel retrieval out of
"standard". This replaces Exa’sadditionalQueries. - Repeat your constraints in every facet. Without it, individual facets drift off-target.
- Ask for source URLs. They make results verifiable at no extra cost.
3. outputType: match it to what your code does next
Exa returns pages and leaves the parsing to you. Linkup asks you to choose the response shape up front.
Migrate your search calls
Replace your API calls
ExaParameter mapping
Response format differences
Exa response structure"searchResults")
"sourcedAnswer")
"structured")
includeSources set to true, the response becomes { "data": { ... }, "sources": [ ... ] }. See the structured output guide.
Worked example
A typical Exa company search, translated. Exacategory"company"became words in the query.highlightsbecameoutputType"searchResults".- The noun phrase became an instruction with named fields.
- One vague search became three parallel facets, with “US” and “Series A” repeated in all three so no facet drifts off-target.
outputType to "structured" and pass a structuredOutputSchema describing one company per array item.
Migrate your contents calls
Exa Contents returns page content for known URLs. Linkup Fetch returns clean markdown for a single public URL (HTML or PDF), with optional JavaScript rendering and optional structured extraction.Fetch accepts one
url per request. If you currently pass an array of URLs to Exa Contents, call Linkup Fetch once per URL (or in parallel). For batch workloads, submit your Fetch calls through Tasks: up to 100 per submission, with the same parameters and pricing as direct /fetch calls.Replace your API calls
ExaParameter mapping
Response format differences
Exa response structuremarkdown is always returned. images is empty unless extractImages is true. data is present only when schema is set.
Example: structured extraction from a known URL
Replaces Exa Contents with asummary schema.
cURL
Migrate your answer calls
Exa Answer maps to Linkup Search withoutputType "sourcedAnswer". For a schema-shaped answer, use outputType "structured" with structuredOutputSchema in place of Exa’s outputSchema. Fold systemPrompt and userLocation into q.
Exa
answer plus citations. Linkup returns answer plus sources, each with name, url, and snippet.
Migrate your agent calls
For long-running research that Exa Agent handles (deep research, list building, enrichment), use Linkup Research. It returns a sourced answer or structured output (outputType "sourcedAnswer" or "structured"), with mode and reasoningDepth to pin the type of investigation and its thoroughness. For list building and enrichment over many rows, also see Tasks.
Need help?
- Check our Quickstart Guide
- Read Search best practices and Fetch best practices
- Join our Discord Community
- Explore the Search and Fetch API references
Your Linkup account starts with $20 of free credit when you sign up with a professional email address. You can monitor usage and add more credit in the Billing section.