> ## Documentation Index
> Fetch the complete documentation index at: https://docs.messari.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Agents API

> Call Messari's Search and Compute agents directly and write the answer yourself.

Copilot answers a question for you: it picks the agents, runs them, and synthesizes prose.
The Agents API gives you the agents on their own. Each one does its half of the work and
hands back structured output, and **you** write the answer.

Reach for these endpoints when you are building your own agent or product flow and want
Messari's retrieval and text-to-SQL as components rather than a finished answer.

<CardGroup cols={2}>
  <Card title="Search agent" icon="magnifying-glass" href="/api-reference/endpoints/ai/post-v1-agent-search">
    Retrieves source documents from Messari's research and news corpus. Returns the documents, not an answer.
  </Card>

  <Card title="Compute agent" icon="table" href="/api-reference/endpoints/ai/post-v1-agent-compute">
    Turns a question into SQL over Messari's quantitative datasets and returns the executed query and its rows.
  </Card>
</CardGroup>

## Which agent to call

| Use                                                                                                 | Endpoint |
| --------------------------------------------------------------------------------------------------- | -------- |
| Explanations, background, news, governance, diligence — anything needing text evidence you can cite | Search   |
| Numbers, rankings, aggregates, time series — price, volume, TVL, fees, revenue, supply, funding     | Compute  |

Ask one thing per call. Several focused calls beat one loaded query.

## Search responses

`sources` holds the retrieved documents. Each carries a `domain` (`research`, `news`,
`external_news`, `diligence`, `governance`, `twitter`, `video_transcript` and others), a
`title`, a `url`, the document `content`, and `published_at` where the domain carries a date.

There is no synthesized answer and no citation numbering. Cite the `title` and `url` of every
document you use, and state no fact the documents do not support.

`error` is set only when a run finds no usable document, and explains why.

## Compute responses

`results` holds each query the agent ran. `query` is the executed SQL, `query_result` holds
the rows JSON-encoded as an array of arrays, and `columns` names each position in those rows,
which are otherwise unlabelled. `truncated` reports that the row cap was reached, so more rows
may match. `query_error` explains why an individual query returned nothing.

<Warning>
  The SQL and column names reflect Messari's internal schema, which may change without notice.
  Read them, do not parse them.
</Warning>

`error` is set only when a run produces no usable result.

## Authorization

These endpoints require an authenticated **Enterprise** user whose team holds the
`ai_toolkit_permission` API permission, shown as **Messari AI API** in team settings. A caller
without it receives `403`. Refer to our [Authentication](/api-reference/authentication) docs
for creating an API key.

## Rate limits

Each endpoint allows **30 requests per minute per user**, counted in its own bucket — Search
traffic does not consume Compute's allowance. Exceeding a bucket returns `429`.

## Credits

These endpoints do not consume AI credits. [Get in touch](https://blockworks.com/contact)
about access.
