API REFERENCE
Extract URL
On this page
/api/research/extractExtract 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 --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 --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>requiredURLs to extract content from (max 10).
minItems: 1 · maxItems: 10
Item properties for urls
string
objectivestringWhat information to focus on (optional, max 3000 chars).
full_contentbooleanReturn full page content instead of focused excerpts.
Default: false
Responses
200Extracted content from URLs+
application/json
statusstring · enumrequiredValues: "success", "error"
resultsarray<ResearchExtractResult>requiredItem properties for results
urlstringformat: uri
titlestringnullablepublish_datestringnullablePublish date in YYYY-MM-DD format.
excerptsarray<string>nullableFocused excerpts as markdown.
Item properties for excerpts
string
full_contentstringnullableFull 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 · enumrequiredValues: "error"
errorstringrequiredHuman-readable error message describing what went wrong.
401Authentication failed — invalid or missing API key+
application/json
statusstring · enumrequiredValues: "error"
errorstringrequiredHuman-readable error message describing what went wrong.
501The configured research data source does not support this endpoint or data shape.+
application/json
statusstring · enumrequiredValues: "error"
errorstringrequiredHuman-readable error message describing what went wrong.
{
"status": "error",
"error": "Request failed with status 501"
}Full specification
Download the OpenAPI file for complete schemas, constraints, and examples.
Download research.jsonView operation source
{
"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"
}
}
}