RecoupGet a free auditFree audit

API REFERENCE

Extract URL

On this page
POST/api/research/extract

Extract clean markdown content from one or more public URLs. Handles JavaScript-heavy pages and PDFs. Returns focused excerpts aligned to an objective, or full page content.

Authentication

See the authentication guide for API key and account access requirements.

Request

cURL
curl --request POST \
  --url 'https://api.recoupable.dev/api/research/extract' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
  "urls": [
    "string"
  ]
}'

Try it

Fill in the fields, send the request from your browser, and read the live response. The curl below updates as you type.

Kept in this browser tab only and cleared when it closes.

cURL for this request
curl --request POST \
  --url 'https://recoup-api.vercel.app/api/research/extract' \
  --header 'Content-Type: application/json' \
  --data '{
  "urls": [
    "string"
  ]
}'

Request body required

application/json

urlsarray<string>required

URLs to extract content from (max 10).

minItems: 1 · maxItems: 10

Item properties for urls

string

objectivestring

What information to focus on (optional, max 3000 chars).

full_contentboolean

Return full page content instead of focused excerpts.

Default: false

Responses

200Extracted content from URLs

application/json

statusstring · enumrequired

Values: "success", "error"

resultsarray<ResearchExtractResult>required
Item properties for results
urlstring

format: uri

titlestringnullable
publish_datestringnullable

Publish date in YYYY-MM-DD format.

excerptsarray<string>nullable

Focused excerpts as markdown.

Item properties for excerpts

string

full_contentstringnullable

Full page content as markdown.

errorsarray<object>

URLs that failed to extract. Only present when one or more URLs could not be processed.

Item properties for errors

object

400Validation error

application/json

statusstring · enumrequired

Values: "error"

errorstringrequired

Human-readable error message describing what went wrong.

401Authentication failed — invalid or missing API key

application/json

statusstring · enumrequired

Values: "error"

errorstringrequired

Human-readable error message describing what went wrong.

501The configured research data source does not support this endpoint or data shape.

application/json

statusstring · enumrequired

Values: "error"

errorstringrequired

Human-readable error message describing what went wrong.

501 example
{
  "status": "error",
  "error": "Request failed with status 501"
}

Full specification

Download the OpenAPI file for complete schemas, constraints, and examples.

Download research.json
View operation source
json
{
  "description": "Extract clean markdown content from one or more public URLs. Handles JavaScript-heavy pages and PDFs. Returns focused excerpts aligned to an objective, or full page content.",
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/ResearchExtractRequest"
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Extracted content from URLs",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/ResearchExtractResponse"
          }
        }
      }
    },
    "400": {
      "description": "Validation error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/ResearchErrorResponse"
          }
        }
      }
    },
    "401": {
      "description": "Authentication failed — invalid or missing API key",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/ResearchErrorResponse"
          }
        }
      }
    },
    "501": {
      "$ref": "#/components/responses/ResearchDataSourceUnsupported"
    }
  }
}