# Tavily Extract - Core.Today AI API > Extract clean, LLM-ready content (markdown or text) from up to 20 web pages in one call, optionally reranked to a query. Billed per successfully extracted URL - about 4 credits per URL (basic), failed URLs are refunded. - **Provider**: Tavily - **Model ID**: tavily/extract - **Category**: Web Search - **Credits**: 4 per extracted URL (3.72/URL basic, 7.44 advanced; failed URLs refunded) - **Speed**: Fast - **Quality**: High ## Features - Up to 20 URLs per request, processed together - Clean main content as markdown or plain text - Optional query reranks the extracted chunks by relevance - advanced depth extracts tables and embedded content - Per-URL failures reported in failed_results and not billed ## Use Cases - Feeding the pages a search returned into an LLM context (RAG) - Turning documentation or articles into markdown for indexing - Monitoring known pages for content changes ## API Endpoint Base URL: https://api.core.today/v1 Create Prediction: POST /predictions Get Status: GET /predictions/{job_id} ## Authentication Header: X-API-Key: YOUR_API_KEY ## Input Parameters ### Required - **urls**: array - Web page URLs to extract (1-20). ### Optional - **query**: string - Optional intent to rerank the extracted chunks by relevance. With a query, raw_content holds the top chunks joined by [...]. - **chunks_per_source**: integer - Chunks per URL when query is set (1-5, default 3). - **extract_depth**: string (default: basic) - advanced also extracts tables and embedded content and succeeds on more pages, at 2x price and higher latency. Options: basic, advanced - **format**: string (default: markdown) - Format of raw_content. Options: markdown, text - **include_images**: boolean (default: false) - Add the image URLs found on each page. - **include_favicon**: boolean (default: false) - Add each page's favicon URL. - **timeout**: number - Per-request timeout in seconds (1-60). Default 10s for basic, 30s for advanced. ## Examples ### Extract a page as markdown Returns the main content of one page. ```json { "model": "tavily/extract", "input": { "urls": [ "https://docs.tavily.com/documentation/api-credits" ], "extract_depth": "basic", "format": "markdown" } } ``` ### Rerank several pages to a question Top 3 chunks per page that answer the query. ```json { "model": "tavily/extract", "input": { "urls": [ "https://en.wikipedia.org/wiki/Retrieval-augmented_generation", "https://en.wikipedia.org/wiki/Large_language_model" ], "query": "how does retrieval reduce hallucination", "chunks_per_source": 3 } } ``` ## Response Format ```json { "job_id": "abc123", "status": "pending | processing | completed | failed", "result": "URL or data (when completed)" } ``` ## Usage Flow 1. POST /predictions with model and input -> receive job_id 2. GET /predictions/{job_id} -> poll until status is completed or failed 3. Result contains output URL(s) ## Tips - The result is Tavily's JSON as-is: results[] (url, raw_content), failed_results[] (url, error) and usage - Check failed_results even on success - pages that block bots or need login fail and are refunded - Use advanced for pages with tables or heavy JavaScript; it costs twice as much per URL - Pair with tavily/search: search first, then extract the pages you want in full ## Documentation https://docs.tavily.com/documentation/api-reference/endpoint/extract