URL Content Extraction API
Pass one or more URLs and get back clean, readable content with navigation and ads stripped. Drop into RAG pipelines, agent scrape-and-summarise flows, or content monitoring jobs.
Try Extract Live
One URL per line. Enter your API key and submit to extract content.
Don't have an API key?
Sign in to your account to create and manage your API keys.
API Integration Guide
Learn how to integrate this API into your applications with code examples and detailed documentation.
/api/extractBase URL
https://www.apipick.comFull Endpoint
https://www.apipick.com/api/extracturls1–25 http(s) URLs
extract_effortauto | low | high
response_lengthshort | medium | long
cURL Request
curl -X POST "https://www.apipick.com/api/extract" \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-d '{
"urls": [
"https://en.wikipedia.org/wiki/Retrieval-augmented_generation",
"https://docs.anthropic.com/claude/docs/intro-to-claude"
],
"extract_effort": "auto"
}'YOUR_API_KEY with your actual API keyJSON Response
{
"results": [
{
"url": "https://en.wikipedia.org/wiki/Retrieval-augmented_generation",
"title": "Retrieval-augmented generation - Wikipedia",
"content": "Retrieval-augmented generation (RAG) is a technique…",
"status": "ok"
}
],
"result_count": 1,
"credits_used": 2,
"remaining_credits": 98
}✓Best Practices
- • Always include x-api-key header
- • Always handle errors gracefully
- • Validate input data before sending
- • Use HTTPS for secure communication
- • Cache responses when appropriate
ℹResponse Headers
- • Content-Type: application/json
- • x-api-key: Required for authentication
- • Status codes: 200 (success), 400 (error), 401 (unauthorized)
- • No rate limiting applied
Rate Limits
Request Rate
30req / min
Per API key, per endpoint. Sliding 60-second window.
Concurrency
3concurrent
Max simultaneous in-flight requests per API key.
Response Headers
429 Too Many Requests
HTTP/1.1 429 Too Many Requests
Retry-After: 12
X-RateLimit-Limit: 30
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 12
{
"error": "rate_limit_exceeded",
"message": "Rate limit exceeded: 30 requests/minute per API key. Retry after 12s.",
"retry_after": 12
}Frequently Asked Questions
How are credits charged?
2 credits per URL submitted. A single call with 5 URLs costs 10 credits. Maximum 25 URLs per call.
What does the response look like?
An array of { url, title, content, status } objects. content is cleaned readable text (markdown-flavoured), with boilerplate removed. Suitable for direct LLM consumption.
Can I control extraction depth?
Pass extract_effort (auto, low, high). 'auto' is the default and works for most pages. 'high' is slower but does a more thorough job on JS-heavy or paywalled-style pages.
What happens if a URL fails?
Failed URLs return status set to an error code in the results array, but the call as a whole succeeds. Credits are charged for all URLs submitted regardless of per-URL outcome.
Is there a tool schema?
GET /api/extract/tool-schema returns OpenAI function and Claude tool use definitions.