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=Truefor better UX on complex questions - Ignoring citations - Always include
response.citationsfor verifiable responses - Missing
text=True- Answer API needs content access; includetext=True - Over-complex queries - Answer API works best with clear, focused questions
- Not validating citations - Check
citation.urlexists before displaying to users