context_api Get key
now live

One API for scraping, extraction & crawling any website.

Turn any URL into clean markdown, structured JSON, or AI-extracted data. Built for developers and AI agents.

scrape.sh copy

    
Six flags, one request. Every capability maps to a single endpoint, no dashboards to configure.
--scrape url

Scrape to markdown

Convert any webpage to clean, LLM-ready markdown in milliseconds.

--extract url,schema

AI extraction

Define a JSON schema, get structured data back, powered by AI.

--crawl url,depth

Site crawling

Crawl entire websites with configurable depth and page limits.

--brand domain

Brand data

Extract logos, colors, socials, and company metadata from any domain.

--sitemap url

Sitemap parser

Discover every URL on a site via sitemap.xml instantly.

--images url

Image extraction

Pull all images and OG images from any webpage.

6 endpoints, one API key
statusendpointdescriptionparams
200 POST /api/scrape.php Scrape any URL → markdown, HTML, text, or JSON url, format
200 POST /api/extract.php AI-powered structured data extraction with custom JSON schemas url, schema, instructions
200 POST /api/crawl.php Crawl entire websites with depth & page limits url, max_pages, depth
200 POST /api/brand.php Get logos, colors, fonts & company metadata domain / url
200 POST /api/sitemap.php Parse sitemap.xml & discover all page URLs url
200 POST /api/images.php Extract all images from any webpage url
Up and running in 30 seconds
# scrape a page
curl -X POST "https://carlostkd.ch/context/api/scrape.php" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_KEY" \
  -d '{"url":"https://example.com","user_agent":"Custom Bot/1.0"}'

# AI extraction
curl -X POST "https://carlostkd.ch/context/api/extract.php" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_KEY" \
  -d '{"url":"https://example.com","schema":{},"user_agent":"Custom Bot/1.0"}'
<?php
$ch = curl_init("https://carlostkd.ch/context/api/scrape.php");
curl_setopt_array($ch, [
    CURLOPT_POST => true,
    CURLOPT_POSTFIELDS => json_encode([
        "url" => "https://example.com",
        "user_agent" => "Custom Bot/1.0"
    ]),
    CURLOPT_HTTPHEADER => [
        "Content-Type: application/json",
        "Authorization: Bearer YOUR_KEY"
    ],
    CURLOPT_RETURNTRANSFER => true
]);
$result = json_decode(curl_exec($ch), true);
echo $result["markdown"];
import requests

r = requests.post(
    "https://carlostkd.ch/context/api/scrape.php",
    headers={"Authorization": "Bearer YOUR_KEY"},
    json={"url": "https://example.com", "user_agent": "Custom Bot/1.0"}
)
print(r.json()["markdown"])
const r = await fetch("https://carlostkd.ch/context/api/scrape.php", {
    method: "POST",
    headers: {
        "Content-Type": "application/json",
        "Authorization": "Bearer YOUR_KEY"
    },
    body: JSON.stringify({ 
        url: "https://example.com",
        user_agent: "Custom Bot/1.0"
    })
});
const data = await r.json();
console.log(data.markdown);
01 get your api key
02 make your first request
curl -X POST ".../api/scrape.php" ...
03 or just use it live
Try it live. Just hit a URL and see the response.
// response will appear here