Skip to main content
POST
/
v3
/
exa
/
contents
Exa Contents
curl --request POST \
  --url https://api.novita.ai/v3/exa/contents \
  --header 'Authorization: <authorization>' \
  --header 'Content-Type: <content-type>' \
  --data '
{
  "urls": [
    "<string>"
  ],
  "ids": [
    "<string>"
  ],
  "compliance": "<string>",
  "text": {},
  "highlights": {},
  "summary": {},
  "extras": {},
  "livecrawlTimeout": 123,
  "maxAgeHours": 123,
  "subpages": 123,
  "subpageTarget": [
    "<string>"
  ],
  "maxCharacters": 123,
  "includeHtmlTags": true,
  "verbosity": "<string>",
  "includeSections": [
    "<string>"
  ],
  "excludeSections": [
    "<string>"
  ],
  "query": "<string>",
  "schema": {},
  "links": 123,
  "imageLinks": 123,
  "richImageLinks": 123,
  "richLinks": 123,
  "codeBlocks": 123
}
'
{
  "400": {},
  "401": {},
  "403": {},
  "404": {},
  "429": {},
  "500": {},
  "502": {},
  "503": {},
  "requestId": "<string>",
  "results": [
    {}
  ],
  "statuses": [
    {}
  ],
  "title": "<string>",
  "url": "<string>",
  "publishedDate": "<string>",
  "author": "<string>",
  "id": "<string>",
  "image": "<string>",
  "favicon": "<string>",
  "text": "<string>",
  "highlights": [
    "<string>"
  ],
  "highlightScores": [
    123
  ],
  "summary": "<string>",
  "subpages": [
    {}
  ],
  "extras": {},
  "links": [
    {}
  ],
  "imageLinks": [
    {}
  ],
  "richImageLinks": [
    {}
  ],
  "richLinks": [
    {}
  ],
  "codeBlocks": [
    {}
  ],
  "status": "<string>",
  "source": "<string>",
  "error": {},
  "tag": "<string>",
  "httpStatusCode": {}
}
This document describes the Exa passthrough endpoints exposed by the platform gateway. It is based on Exa’s Search, Get Contents, and Answer APIs, with platform route prefixes applied. Base URL example: https://api.novita.ai Retrieve page content, summaries, metadata, and fetch statuses for URLs or Exa document IDs.

Request Headers

All endpoints require platform API authentication.
Content-Type
string
required
Use application/json.
Authorization
string
required
Platform API key, formatted as Bearer <api_key>.

Request Body

urls
string[]
required
URLs to retrieve. This field is also backwards compatible with values previously supplied through ids. Range is 1 to 100 entries; each URL may be up to 2048 characters.
ids
string[]
Exa document IDs to retrieve. Range is 1 to 100 entries; each ID may be up to 2048 characters.
compliance
string
Enterprise compliance mode, such as hipaa.
text
boolean | object
Text extraction options. See Contents Text Options. Default is false.
highlights
boolean | object
Highlight extraction options. See Contents Highlight Options. Default is false.
summary
object
Summary generation options. See Contents Summary Options.
extras
object
Extra outputs to return from each page. See Contents Extras Options.
livecrawlTimeout
integer
Live crawl timeout in milliseconds. Range is greater than 0 and up to 90000; default is 10000.
maxAgeHours
integer
Maximum cache age in hours. Use 0 for fresh content and -1 to always use cache. Range is -1 to 720.
subpages
integer
Number of subpages to crawl. Range is 0 to 100; default is 0.
subpageTarget
string | string[]
Term or terms used to find targeted subpages. String values are limited to 100 characters.

Contents Text Options

maxCharacters
integer
Maximum number of text characters to return. Range is 1 to 10000.
includeHtmlTags
boolean
Include lightweight HTML tags instead of plain text.
verbosity
string
Requested text verbosity.
includeSections
string[]
Semantic page sections to include.
excludeSections
string[]
Semantic page sections to exclude.

Contents Highlight Options

query
string
Custom query used to select highlights.
maxCharacters
integer
Maximum characters to return for highlights. Range is 1 to 10000.

Contents Summary Options

query
string
Custom instruction for summary generation.
schema
object
Optional JSON schema for structured summary output.

Contents Extras Options

Number of links to return. Range is 0 to 1000.
Number of image links to return. Range is 0 to 1000.
Number of rich image links to return. Range is 0 to 1000.
Number of rich links to return. Range is 0 to 1000.
codeBlocks
integer
Number of code blocks to return. Range is 0 to 1000.

Request Example

curl -X POST 'https://api.novita.ai/v3/exa/contents' \
  -H 'Authorization: Bearer <api_key>' \
  -H 'Content-Type: application/json' \
  -d '{
    "urls": ["https://arxiv.org/abs/2307.06435"],
    "text": {
      "maxCharacters": 4000
    },
    "highlights": true,
    "summary": {
      "query": "Summarize the key points"
    },
    "extras": {
      "links": 10,
      "imageLinks": 5
    }
  }'

Response

requestId
string
Unique request identifier.
results
object[]
Content results.
statuses
object[]
Fetch status for each requested URL or document ID.

Content Result Object

title
string
Page title.
url
string
Page URL.
publishedDate
string
Published date when available.
author
string
Author when available.
id
string
Exa document ID.
image
string
Associated image URL.
favicon
string
Site favicon URL.
text
string
Extracted text when requested.
highlights
string[]
Highlight snippets when requested.
highlightScores
number[]
Scores for returned highlights.
summary
string
Generated summary when requested.
subpages
object[]
Subpage results when requested. See Contents Subpage Object.
extras
object
Extra outputs when requested. See Contents Response Extras Object.

Contents Subpage Object

title
string
Subpage title.
url
string
Subpage URL.
id
string
Exa document ID when available.
text
string
Extracted text when requested.
summary
string
Generated summary when requested.
highlights
string[]
Highlight snippets when requested.

Contents Response Extras Object

Links found on the page.
Image links found on the page.
Image links with additional metadata.
Links with additional metadata.
codeBlocks
object[]
Code blocks found on the page.

Status Object

id
string
Requested URL or document ID.
status
string
Fetch status, such as success or error.
source
string
Content source, such as cached or crawled.
error
object
Error details when retrieval fails. See Contents Error Detail Object.

Contents Error Detail Object

tag
string
Error tag, such as CRAWL_NOT_FOUND.
httpStatusCode
integer | null
HTTP-like status code, such as 404.

Errors

The platform may return standard HTTP errors before forwarding the request, and Exa may return upstream errors after forwarding.
400
status
Invalid request body or unsupported parameter value.
401
status
Missing or invalid API key.
403
status
Access denied by platform or upstream provider.
404
status
Route or requested resource not found.
429
status
Rate limit exceeded.
500
status
Internal server error.
502
status
Upstream provider error.
503
status
Service unavailable.

Notes

  • All request bodies are JSON.
  • Extra Exa parameters not listed here may be passed through.
  • Response shapes can vary depending on request options.
  • This document intentionally omits billing-related fields.

References

For more details, see the Exa Contents API reference.
Last modified on June 12, 2026