---
title: "Retrieve readable web page text from URLs with Exa (MPP)"
method: POST
path: "/v1/mpp/exa/contents"
tags: ["Proxy"]
---

# Retrieve readable web page text from URLs with Exa (MPP)

`POST /v1/mpp/exa/contents`

## Request

- Base URL: `https://api.munition.io`
- URL: `https://api.munition.io/v1/mpp/exa/contents`
- Auth: none required

Munition Exa Contents over MPP: Retrieve readable web page text from URLs with Exa. Pay 0.002 USDC per call on Base/Polygon/Arbitrum via Authorization: Payment (stablecoin-only EIP-3009 charge authorization). Same input, output and failure policy as POST /v1/exa/contents.

## Headers

- `Idempotency-Key` string

## Request body

- ExaContentsInput
  - `urls` string[], required
  - `text` union
    - boolean
    - object
      - `maxCharacters` integer
  - `highlights` union
    - boolean
    - object
      - `numSentences` integer
  - `summary` union
    - boolean
    - object
      - `query` string
  - `livecrawl` 'never' | 'fallback' | 'always'

## Response `200`

Successful response

- ExaContentsOutput
  - `results` object[], required
    - `title` string, nullable
    - `url` string, uri, required
    - `publishedDate` string, nullable
    - `author` string, nullable
    - `score` number, nullable
    - `text` string, nullable: Page text when contents were requested.
    - `highlights` string[]
    - `summary` string, nullable
  - `meta` object, required
    - `resultCount` integer, required
    - `fetchedAt` string, date-time, required

## Other responses

- `400`: Invalid input on an authorized request; rejected before the MPP payment is settled.
- `402`: Call without Authorization to receive an MPP challenge, then retry with Authorization: Payment <credential>. Invalid payment and settlement failures can also return 402.
- `409`: Idempotency conflict; do not pay again
- `422`: Upstream provider rejected the request after settlement (client-side error); payment is kept, paidCallId returned for reconciliation.
- `502`: Upstream provider failed after settlement; payment is kept, paidCallId returned for reconciliation.
- `503`: MPP settlement in progress or ambiguous; retry with the same Authorization, Idempotency-Key and body. Do not pay again.

---

[API](https://skmtc.dev/munition/apis/munition-api.md) · [All operations](https://skmtc.dev/munition/apis/munition-api/llms.txt) · [OpenAPI document](https://skmtc.dev/munition/apis/munition-api/revisions/3b11109809d1?raw)
