Send any URL and get back clean structured JSON ready for your LLM. Everything in between is handled for you.
Three steps between a raw URL and clean machine-readable context.
POST any webpage URL to /extract with your API key. No SDK required, no configuration. A single HTTP request is all it takes.
Neureil's extraction pipeline processes the page automatically, handling JavaScript rendering, bot detection, and anything else standing between you and the content.
Structured JSON with title, summary, headings, key points, code examples, pricing, author and full content. Same shape every time.
Send a JSON body with a url field and your API key in the Authorization header. The endpoint validates the URL and returns structured JSON.
https://api.neureil.com
POST with Content-Type application/json
Authorization: Bearer YOUR_API_KEY
http and https URLs only
const res = await fetch( 'https://api.neureil.com/extract', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'Bearer YOUR_API_KEY' }, body: JSON.stringify({ url: 'https://techcrunch.com/some-article' }) } ); const data = await res.json();
curl -X POST https://api.neureil.com/extract \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{"url":"https://example.com"}'
Every successful extraction returns the same structured shape. Nine named fields in the same order every time.
{
"title": "Article Title",
"summary": "Meta description or first paragraph...",
"headings": ["Section One", "Section Two"],
"key_points": ["First key point", "Second key point"],
"code_examples": [{ "language": "js", "code": "..." }],
"pricing": ["$29/mo", "$99/mo"],
"author": "Jane Smith",
"published_date": "2024-11-15T09:00:00Z",
"content": "Full clean page text...",
"metadata": {
"word_count": 842
}
}
Every field is always present in the response. Nullable fields return null when not found, never missing or undefined.
Every error returns a JSON body with a descriptive error field. The HTTP status tells you the category.
| Status | When it happens |
|---|---|
| 400 | Missing or invalid URL, non-http/https protocol, or unresolvable domain. |
| 401 | Missing or invalid API key in the Authorization header. |
| 429 | Monthly extraction limit reached for your plan. Upgrade or wait for your monthly reset. |
| 502 | The target site returned a non-2xx HTTP response. |
| 504 | The request to the target URL timed out. |
| 500 | Unexpected internal error. Contact us if this happens consistently. |
Have a question about the API? Evaluating Neureil for your stack? We read every message.
Send a message