Source profileQuality 93/100Review permissions

MoizIbnYousaf/marketing-cli/skills/build-with-exa/SKILL.md

build-with-exa

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.

Source repository stars
30
Declared platforms
0
Static risk flags
4
Last source update
2026-08-17
Source checked
2026-08-25

Decision brief

What it does: where it fits

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…

Best for

  • Use when choosing Exa endpoints, writing Exa API calls, integrating semantic web search or research into products, or debugging Exa request shapes.

Not for

  • On the search endpoint, text, highlights, and summary belong inside contents, not at the top level.
  • On the contents endpoint, text, highlights, and summary are top-level fields, not nested inside contents.

Compatibility matrix

Platform support, with evidence labels

PlatformStatusEvidenceWhat to check
CodexNot declaredNo explicit evidencePortability before use
Claude CodeNot declaredNo explicit evidencePortability before use
CursorNot declaredNo explicit evidencePortability before use
Gemini CLINot declaredNo explicit evidencePortability before use
Open the compatibility checker

Installation

Inspect first. Install second.

The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.

Source-detected install commandSource
npx skills add https://github.com/MoizIbnYousaf/marketing-cli --skill "skills/build-with-exa"
Safe inspection promptEditorial

Inspect the Agent Skill "build-with-exa" from https://github.com/MoizIbnYousaf/marketing-cli/blob/3074fe0eb48483c4fb63126e1643b512b561c46b/skills/build-with-exa/SKILL.md at commit 3074fe0eb48483c4fb63126e1643b512b561c46b. 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

What the source asks the agent to do

  1. 01

    API Decision Workflow

    Before picking an endpoint, decide which workflow shape fits:

    Raw web content for your own LLM or agent: start with /search using type: "auto" and contents: { highlights: true }Synthesized structured output: start with /search using the search type that fits your latency and reasoning needs, then add outputSchema and systemPromptLong-running multi-step research, list-building, or enrichment with structured output: use the Agent API (/agent)
  2. 02

    Quick Start

    For more complete examples, see the relevant reference file in the table below.

    For more complete examples, see the relevant reference file in the table below.
  3. 03

    On Activation

    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…

    Confirm EXAAPIKEY is available for any live API call. SDK examples assume the key is set.Default new integrations to POST /search with type: "auto" and contents.highlights: true. Escalate to Agent API only for multi-step research / list-building.Load only the references/.md file needed for the current endpoint - do not dump the whole tree into context.
  4. 04

    Build with 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.

    Core retrieval APIs: search endpoint, contents endpoint, answer endpoint, context endpointLong-running research workflows: Agent API (/agent)Async and recurring workflows: Monitors API, Websets API
  5. 05

    Scope

    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.

    Core retrieval APIs: search endpoint, contents endpoint, answer endpoint, context endpointLong-running research workflows: Agent API (/agent)Async and recurring workflows: Monitors API, Websets API

Permission review

Static risk signals and limitations

Reads files

low · line 5

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.

Network access

medium · line 14

The documentation includes network, browsing, or remote request actions.

Core retrieval APIs: search endpoint, contents endpoint, answer endpoint, context endpoint

Runs scripts

medium · line 24

The documentation asks the agent to run terminal commands or scripts.

# Python

Runs scripts

medium · line 28

The documentation asks the agent to run terminal commands or scripts.

npm install exa-js

Network access

medium · line 47

The 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.

Sends data out

high · line 98

The documentation includes sending, uploading, or posting data to a remote service.

curl -X POST "https://api.exa.ai/search" \

Evidence record

Why each signal appears

EvidenceSourceComputedTestedEditorial
SignalValueEvidence typeMeaning
Quality score93/100ComputedDocumentation, specificity, maintenance, and trust rules
Repository stars30SourceRepository attention, not individual Skill quality
Compatibility0 platformsSourceDeclared in the catalog source record
Usage guideautomated source guideEditorialGenerated or reviewed according to the visible evidence level

Pinned source

Provenance and original SKILL.md

Repository
MoizIbnYousaf/marketing-cli
Skill path
skills/build-with-exa/SKILL.md
Commit
3074fe0eb48483c4fb63126e1643b512b561c46b
License
MIT
Collected
2026-08-25
Default branch
main
View the original SKILL.md

On Activation

  1. Confirm EXA_API_KEY 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 references/*.md file needed for the current endpoint - do not dump the whole tree into context.
  4. For agent-native marketing research inside mktg projects, prefer exa-search, company-research, or lead-generation over inventing a custom integration.

Build with Exa

Scope

Included by default:

  • Core retrieval APIs: search endpoint, contents endpoint, answer endpoint, context endpoint
  • Long-running research workflows: Agent API (/agent)
  • Async and recurring workflows: Monitors API, Websets API
  • SDK guidance: Python exa-py, TypeScript exa-js

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.

Installation

# Python
pip install exa-py

# TypeScript / JavaScript
npm install exa-js

Authentication

export EXA_API_KEY="your_api_key_here"

Exa accepts either the x-api-key header or Authorization: Bearer <key>.

API Decision Workflow

Before picking an endpoint, decide which workflow shape fits:

  • Raw web content for your own LLM or agent: start with /search using type: "auto" and contents: { highlights: true }
  • Synthesized structured output: start with /search using the search type that fits your latency and reasoning needs, then add outputSchema and systemPrompt
  • Long-running multi-step research, list-building, or enrichment with structured output: use the Agent API (/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.

  1. Need general semantic web retrieval, synthesized output, filters, or content extraction from search results: use the search endpoint (/search)
  2. Already know the URLs and need clean page extraction or freshness controls: use the contents endpoint (/contents)
  3. Need pages related to a known seed URL: use the search endpoint (/search) with a query derived from the page (for example title, topic, or text from /contents)
  4. Need a grounded answer with citations from Exa-managed search: use the answer endpoint (/answer)
  5. Need code-focused retrieval from repos, docs, and Stack Overflow: use the context endpoint (/context)
  6. Need OpenAI SDK drop-in compatibility for chat or responses clients: use the OpenAI-compatible endpoints (/chat/completions, /responses)
  7. Need asynchronous multi-step research, list-building, enrichment, or follow-up questions over prior research: use the Agent API (/agent)
  8. Need scheduled recurring search with webhook delivery: use the Monitors API (/monitors)
  9. Need async verified and enriched entity collection workflows: use the Websets API (/websets/v0)

Quick Start

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
    }
  }'

Anti-Patterns

  • On the search endpoint, text, highlights, and summary belong inside contents, not at the top level.
  • On the contents endpoint, text, highlights, and summary are top-level fields, not nested inside contents.
  • Pick one of 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.
  • Prefer maxAgeHours for freshness guidance. Older livecrawl examples still exist, but maxAgeHours is the normative control for new integrations.
  • Stick to the documented 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.
  • OpenAI-compatible endpoints are for compatibility-first use cases. Prefer native Exa endpoints for new integrations when you want clearer request semantics.
  • Do not treat /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.
  • Treat /research/v1 as legacy. Do not present it as the default for new work.
  • Treat /findSimilar as deprecated. Prefer /search (optionally after /contents on the seed URL) for related-page discovery.

Reference Files

FileTopics
references/search.mdSearch endpoint request/response shape, search types, filters, nested contents, structured output
references/contents.mdContents endpoint extraction, freshness, statuses, top-level content fields
references/answer.mdGrounded answer generation with citations and structured output
references/context.mdCode-focused retrieval with tokensNum
references/agent.mdAgent API for async multi-step research, enrichment, structured output, polling, and events
references/openai-compat.mdOpenAI-compatible endpoints, model routing, extra_body usage
references/monitors.mdStandalone Monitors API for scheduled recurring search
references/websets.mdWebsets API for async verified and enriched collection building
references/sdks.mdPython and TypeScript SDK naming, methods, and shape differences
references/http-requests.mdMinimal raw HTTP examples across major Exa surfaces
references/models-and-modes.mdSearch type selection, answer/research model routing, latency tradeoffs
references/prompting-and-patterns.mdDurable query, prompting, freshness, and output-schema patterns
references/common-mistakes.mdParameter-shape corrections

Canonical Docs

  • Docs home: https://exa.ai/docs
  • Documentation index: https://exa.ai/docs/llms.txt
  • Search reference: https://exa.ai/docs/reference/search
  • Agent API guide: https://exa.ai/docs/reference/agent-api-guide
  • Exa Connect overview: https://exa.ai/docs/reference/agent-api/connect/overview
  • Python SDK spec: https://exa.ai/docs/sdks/python-sdk-specification
  • TypeScript SDK spec: https://exa.ai/docs/sdks/typescript-sdk-specification

Attribution

Ported 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.

Frequently asked questions

What to verify before installation and use

What does the build-with-exa source document cover?

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…

How do I install build-with-exa?

The source record exposes this install command: npx skills add https://github.com/MoizIbnYousaf/marketing-cli --skill "skills/build-with-exa". Inspect the command and pinned source before running it.

Which permission-related actions were detected?

Static rules flagged read-files, network, exec-script, send-data in the source; the page lists the matching lines and excerpts.

Alternatives

Compare before choosing

Computed 9364

Jamie-BitFlight/claude_skills

stinkysnake

Multi-phase Python quality improvement system for file paths passed as arguments. Runs prek/ruff/ty static analysis with auto-fixes, inventories Any types and typing gaps, plans Protocol/Generic/TypeGuard/TypedDict/dataclass modernization, forks a code-reviewer agent to critique the plan, refines the plan, discovers documentation changes, designs interfaces first, forks python-pytest-architect for failing tests, then hands off to snakepolish for implementation. Use when eliminating Any types, ad

Computed 9362

JuryBu/MCP-SKILL-RULES_packages

mcp-builder

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).

Computed 923,337

synthetic-sciences/openscience

hugging-face-evaluation

Add and manage evaluation results in Hugging Face model cards. Supports extracting eval tables from README content, importing scores from Artificial Analysis API, and running custom model evaluations with vLLM/lighteval. Works with the model-index metadata format.

Computed 9124,921

alirezarezvani/claude-skills

code-to-prd

Reverse-engineer any codebase into a complete Product Requirements Document (PRD). Analyzes routes, components, state management, API integrations, and user interactions to produce business-readable documentation detailed enough for engineers or AI agents to fully reconstruct every page and endpoint. Works with frontend frameworks (React, Vue, Angular, Svelte, Next.js, Nuxt), backend frameworks (NestJS, Django, Express, FastAPI), and fullstack applications. Use when users mention: generate PRD,