Best for
- Use when choosing Exa endpoints, writing Exa API calls, integrating semantic web search or research into products, or debugging Exa request shapes.
MoizIbnYousaf/marketing-cli/skills/build-with-exa/SKILL.md
Build applications and agents with Exa's API Platform: search, contents, answer, context, Agent API, monitors, websets, OpenAI-compatible endpoints, and exa-py / exa-js. Use when choosing Exa endpoints, writing Exa API calls, integrating semantic web search or research into products, or debugging Exa request shapes. Load references/ on demand for endpoint details.
Decision brief
1. Confirm EXAAPIKEY is available for any live API call. SDK examples assume the key is set. 2. Default new integrations to POST /search with type: "auto" and contents.highlights: true. Escalate to Agent API only for multi-step research / list-building. 3. Load only the referenc…
Compatibility matrix
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/MoizIbnYousaf/marketing-cli --skill "skills/build-with-exa"Inspect the Agent Skill "build-with-exa" from https://github.com/MoizIbnYousaf/marketing-cli/blob/f12fbcbe4929584697b309b9096c9427b0cfce8e/skills/build-with-exa/SKILL.md at commit f12fbcbe4929584697b309b9096c9427b0cfce8e. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
Before picking an endpoint, decide which workflow shape fits:
For more complete examples, see the relevant reference file in the table below.
1. Confirm EXAAPIKEY is available for any live API call. SDK examples assume the key is set. 2. Default new integrations to POST /search with type: "auto" and contents.highlights: true. Escalate to Agent API only for multi-step research / list-building. 3. Load only the referenc…
Note on data retention: /search, /answer, and deep research are Zero Data Retention (ZDR). The Agent API (/agent), Websets, and Monitors are not ZDR. If a use case requires ZDR, stay on the ZDR surfaces or contact Exa.
Note on data retention: /search, /answer, and deep research are Zero Data Retention (ZDR). The Agent API (/agent), Websets, and Monitors are not ZDR. If a use case requires ZDR, stay on the ZDR surfaces or contact Exa.
Permission review
The documentation asks the agent to read local files, directories, or repositories.
Load only the `references/*.md` file needed for the current endpoint - do not dump the whole tree into context.The documentation includes network, browsing, or remote request actions.
Core retrieval APIs: search endpoint, contents endpoint, answer endpoint, context endpointThe documentation asks the agent to run terminal commands or scripts.
# PythonThe documentation asks the agent to run terminal commands or scripts.
npm install exa-jsThe documentation includes network, browsing, or remote request actions.
*Default to the search endpoint.** Use the search endpoint (`/search`) for most new integrations, then move to a more specialized Exa surface only when the task shape clearly calls for it.The documentation includes sending, uploading, or posting data to a remote service.
curl -X POST "https://api.exa.ai/search" \Evidence record
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 93/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 27 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
EXA_API_KEY is available for any live API call. SDK examples assume the key is set.POST /search with type: "auto" and contents.highlights: true. Escalate to Agent API only for multi-step research / list-building.references/*.md file needed for the current endpoint - do not dump the whole tree into context.exa-search, company-research, or lead-generation over inventing a custom integration.Included by default:
/agent)exa-py, TypeScript exa-jsNote on data retention:
/search,/answer, and deep research are Zero Data Retention (ZDR). The Agent API (/agent), Websets, and Monitors are not ZDR. If a use case requires ZDR, stay on the ZDR surfaces or contact Exa.
# Python
pip install exa-py
# TypeScript / JavaScript
npm install exa-js
export EXA_API_KEY="your_api_key_here"
Exa accepts either the x-api-key header or Authorization: Bearer <key>.
Before picking an endpoint, decide which workflow shape fits:
/search using type: "auto" and contents: { highlights: true }/search using the search type that fits your latency and reasoning needs, then add outputSchema and systemPrompt/agent)Default to the search endpoint. Use the search endpoint (/search) for most new integrations, then move to a more specialized Exa surface only when the task shape clearly calls for it.
/search)/contents)/search) with a query derived from the page (for example title, topic, or text from /contents)/answer)/context)/chat/completions, /responses)/agent)/monitors)/websets/v0)For more complete examples, see the relevant reference file in the table below.
Python (/search):
from exa_py import Exa
exa = Exa(api_key="YOUR_EXA_API_KEY")
result = exa.search(
"latest developments in LLMs",
type="auto",
contents={"highlights": True}
)
for item in result.results:
print(item.title, item.url)
TypeScript (/search):
import Exa from "exa-js";
const exa = new Exa();
const result = await exa.search("latest developments in LLMs", {
type: "auto",
contents: { highlights: true }
});
for (const item of result.results) {
console.log(item.title, item.url);
}
Raw HTTP (/search):
curl -X POST "https://api.exa.ai/search" \
-H "Content-Type: application/json" \
-H "x-api-key: $EXA_API_KEY" \
-d '{
"query": "latest developments in LLMs",
"type": "auto",
"contents": {
"highlights": true
}
}'
text, highlights, and summary belong inside contents, not at the top level.text, highlights, and summary are top-level fields, not nested inside contents.highlights, text, or summary by default. Do not stack them unless the use case truly needs multiple views of the same page.numSentences and highlightsPerUrl are deprecated highlight knobs. Prefer highlights: true, or set maxCharacters only when you have a fixed budget.maxAgeHours for freshness guidance. Older livecrawl examples still exist, but maxAgeHours is the normative control for new integrations.category set and do not invent categories like github, documentation, qa, or pdf. Specialized categories such as people and company also restrict which filters are valid; check the search reference before combining categories with domain or date filters./agent as a drop-in replacement for /search. It is higher-latency and async, so use the dedicated Agent reference when that workflow shape is the real fit. Consider using it over websets or deep where appropriate./research/v1 as legacy. Do not present it as the default for new work./findSimilar as deprecated. Prefer /search (optionally after /contents on the seed URL) for related-page discovery.| File | Topics |
|---|---|
| references/search.md | Search endpoint request/response shape, search types, filters, nested contents, structured output |
| references/contents.md | Contents endpoint extraction, freshness, statuses, top-level content fields |
| references/answer.md | Grounded answer generation with citations and structured output |
| references/context.md | Code-focused retrieval with tokensNum |
| references/agent.md | Agent API for async multi-step research, enrichment, structured output, polling, and events |
| references/openai-compat.md | OpenAI-compatible endpoints, model routing, extra_body usage |
| references/monitors.md | Standalone Monitors API for scheduled recurring search |
| references/websets.md | Websets API for async verified and enriched collection building |
| references/sdks.md | Python and TypeScript SDK naming, methods, and shape differences |
| references/http-requests.md | Minimal raw HTTP examples across major Exa surfaces |
| references/models-and-modes.md | Search type selection, answer/research model routing, latency tradeoffs |
| references/prompting-and-patterns.md | Durable query, prompting, freshness, and output-schema patterns |
| references/common-mistakes.md | Parameter-shape corrections |
https://exa.ai/docshttps://exa.ai/docs/llms.txthttps://exa.ai/docs/reference/searchhttps://exa.ai/docs/reference/agent-api-guidehttps://exa.ai/docs/reference/agent-api/connect/overviewhttps://exa.ai/docs/sdks/python-sdk-specificationhttps://exa.ai/docs/sdks/typescript-sdk-specificationPorted from exa-labs/agent-skills - adapted for mktg's drop-in contract on 2026-07-18.
Upstream commit: 390ffee2d7e1d0dce2ed8efe4994c2b3c1c0173b
Drift detection: if the upstream skill changes, re-run mktg-steal https://github.com/exa-labs/agent-skills to evaluate the diff.
Alternatives
K-Dense-AI/scientific-agent-skills
Core Python library for astronomy and astrophysics workflows that need Astropy APIs, including units/quantities, coordinates, FITS I/O, tables, time systems, WCS, and cosmology. Use when implementing or debugging astronomical data analysis code with Astropy.
anthropics/skills
Guide for creating high-quality MCP (Model Context Protocol) servers that enable LLMs to interact with external services through well-designed tools. Use when building MCP servers to integrate external APIs or services, whether in Python (FastMCP) or Node/TypeScript (MCP SDK).
K-Dense-AI/scientific-agent-skills
Comprehensive geospatial science skill covering remote sensing, GIS, spatial analysis, machine learning for earth observation, and 30+ scientific domains. Supports satellite imagery processing (Sentinel, Landsat, MODIS, SAR, hyperspectral), vector and raster data operations, spatial statistics, point cloud processing, network analysis, cloud-native workflows (STAC, COG, Planetary Computer), and 8 programming languages (Python, R, Julia, JavaScript, C++, Java, Go, Rust) with 500+ code examples. U
Jeffallan/claude-skills
Reverse-engineering specialist that extracts specifications from existing codebases. Use when working with legacy or undocumented systems, inherited projects, or old codebases with no documentation. Invoke to map code dependencies, generate API documentation from source, identify undocumented business logic, figure out what code does, or create architecture documentation from implementation. Trigger phrases: reverse engineer, old codebase, no docs, no documentation, figure out how this works, in