# Exa Contents

Blocks for retrieving and extracting content from web pages using Exa's contents API.

## Exa Contents

### What it is

Retrieves document contents using Exa's contents API

### How it works

This block retrieves full content from web pages using Exa's contents API. You can provide URLs directly or document IDs from previous searches. The API supports live crawling to fetch fresh content and can extract text, highlights, and AI-generated summaries.

The block supports subpage crawling to gather related content and offers various content retrieval options including full text extraction, relevant highlights, and customizable summary generation. Results are formatted for easy use with LLMs.

### Inputs

| Input              | Description                                                                     | Type                                             | Required |
| ------------------ | ------------------------------------------------------------------------------- | ------------------------------------------------ | -------- |
| urls               | Array of URLs to crawl (preferred over 'ids')                                   | List\[str]                                       | No       |
| ids                | \[DEPRECATED - use 'urls' instead] Array of document IDs obtained from searches | List\[str]                                       | No       |
| text               | Retrieve text content from pages                                                | bool                                             | No       |
| highlights         | Text snippets most relevant from each page                                      | HighlightSettings                                | No       |
| summary            | LLM-generated summary of the webpage                                            | SummarySettings                                  | No       |
| livecrawl          | Livecrawling options: never, fallback (default), always, preferred              | "never" \| "fallback" \| "always" \| "preferred" | No       |
| livecrawl\_timeout | Timeout for livecrawling in milliseconds                                        | int                                              | No       |
| subpages           | Number of subpages to crawl                                                     | int                                              | No       |
| subpage\_target    | Keyword(s) to find specific subpages of search results                          | str \| List\[str]                                | No       |
| extras             | Extra parameters for additional content                                         | ExtrasSettings                                   | No       |

### Outputs

| Output        | Description                                      | Type                    |
| ------------- | ------------------------------------------------ | ----------------------- |
| error         | Error message if the request failed              | str                     |
| results       | List of document contents with metadata          | List\[ExaSearchResults] |
| result        | Single document content result                   | ExaSearchResults        |
| context       | A formatted string of the results ready for LLMs | str                     |
| request\_id   | Unique identifier for the request                | str                     |
| statuses      | Status information for each requested URL        | List\[ContentStatus]    |
| cost\_dollars | Cost breakdown for the request                   | CostDollars             |

### Possible use case

**Content Aggregation**: Retrieve full article content from multiple URLs for analysis or summarization.

**Competitive Research**: Crawl competitor websites to extract product information, pricing, or feature details.

**Data Enrichment**: Fetch detailed content from URLs discovered through Exa searches to build comprehensive datasets.

***


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://agpt.co/docs/integrations/block-integrations/contents.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
