Exa Research & Answer API
Quick Reference
Topic When to Use Reference
Answer API Q&A with citations, grounded responses answer-api.md
Deep Search Smart query expansion, high-quality summaries deep-search.md
Citations Source attribution, verification citations.md
Essential Patterns
Answer API (Python)
from exa_py import Exa
exa = Exa()
response = exa.answer( "What are the key features of Python 3.12?", text=True )
print(response.answer) for citation in response.citations: print(f"Source: {citation.url}")
Streaming Answers
stream = exa.answer( "Explain the benefits of microservices architecture", stream=True )
for chunk in stream: print(chunk.text, end="", flush=True)
Access citations after streaming
print("\nSources:", stream.citations)
Deep Search with Summaries
results = exa.search_and_contents( "latest developments in quantum computing", type="neural", num_results=10, summary=True, use_autoprompt=True # Smart query expansion )
for result in results.results: print(f"{result.title}") print(f"Summary: {result.summary}")
When to Use
Feature Use Case Output
Answer API Direct Q&A needing citations Answer + source URLs
Deep Search Query expansion + summaries Enhanced search results
Exa Research Long-form async reports Structured JSON/Markdown
Common Mistakes
-
Not using streaming for long answers - Use stream=True for better UX on complex questions
-
Ignoring citations - Always include response.citations for verifiable responses
-
Missing text=True
-
Answer API needs content access; include text=True
-
Over-complex queries - Answer API works best with clear, focused questions
-
Not validating citations - Check citation.url exists before displaying to users