Provided by Exa
Answer One Question From Web Sources, With Citations (Exa)
Answer one natural-language question from Exa's page index: Exa retrieves the relevant pages first, then returns a direct written answer together with the source pages it cited, each with title, link, published date and author. One question per request, not a batch of questions, and the citations come back with the answer — it is grounded in retrieved pages rather than in a model's memory.
How to run it
Step 1Set up
Once: paste this into your agent's chat. The Skill installs the CLI and logs in by itself. For an agent that cannot use a shell, connect it over MCP instead.
set up https://glasser.ai/SKILL.md
Show me how to use the Exa endpoint /answer on Glasser.glasser run -p exa -e '/answer' -i '{"query":"What is the latest valuation of SpaceX?"}' --endpoint-version 1Uses endpoint version 1. Inspect the current price before running. Install and log in first on Get Started.
Once per Run:
IDEMPOTENCY_KEY=$(uuidgen)Run it, and copy this same block to send it again:
curl -X POST https://api.glasser.ai/v1/runs \
-H "Authorization: Bearer gl_..." \
-H "Idempotency-Key: $IDEMPOTENCY_KEY" \
-H "Content-Type: application/json" \
-d '{"provider":"exa","endpoint":"/answer","input":{"query":"What is the latest valuation of SpaceX?"},"endpoint_version":1}'Reuse the same Idempotency-Key to send it again: the second send is a read of the first Run. A new key is a new Run and a new Charge. Uses endpoint version 1; inspect the current price before running.
Step 2Try a specific example task
When you need to explore a market-research question, you might ask for an answer and review any sources returned with it before using it in your brief.
Copy this prompt into your agent to explore your research question.
Use exa:/answer on Glasser.
Answer my market-research question and include the sources returned with the answer.Endpoint structure
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"query"
],
"properties": {
"text": {
"type": "boolean"
},
"query": {
"type": "string",
"maxLength": 2000,
"minLength": 1
},
"outputSchema": {
"type": "object",
"required": [
"type",
"properties"
],
"properties": {
"type": {
"anyOf": [
{
"enum": [
"object"
],
"type": "string"
}
]
},
"required": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Za-z_][A-Za-z0-9_]*$",
"maxLength": 64,
"minLength": 1
},
"maxItems": 20,
"minItems": 1
},
"properties": {
"type": "object",
"patternProperties": {
"^[A-Za-z_][A-Za-z0-9_]*$": {
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"enum": [
"string",
"number",
"integer",
"boolean"
],
"type": "string"
},
"description": {
"type": "string",
"maxLength": 300,
"minLength": 1
}
},
"additionalProperties": false
}
}
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}{
"query": "What is the latest valuation of SpaceX?"
}This Endpoint publishes no output schema. You get the Provider's own response body, unchanged — we do not warrant a shape we cannot guarantee.
How pricing works
| Data returned | Charged only when data is returned. | $0.005 |
|---|---|---|
| Provider error | The Provider failed to answer. | $0.00 |
| Timed out | The Run exceeded its time limit. | $0.00 |
| Internal failure | An internal error prevented completion. | $0.00 |