Quickstart
Extract your first URL.
Call GET /api/extract with a public page URL and your preferred output format.
Markdown
curl --get 'https://webstractor.com/api/extract' \
--data-urlencode 'url=https://example.com/article' \
--data-urlencode 'format=markdown'A successful request returns a raw text/markdown; charset=utf-8 body.
JSON
curl --get 'https://webstractor.com/api/extract' \
--data-urlencode 'url=https://example.com/article' \
--data-urlencode 'format=json'JSON is the default, so format=json may be omitted. JSON contains typed metadata and attributes but no readable content field; request Markdown when you need the extracted body.
Search
Use the dedicated GET endpoints when you need to discover webpages, current news, openly licensed images, public videos, places, stocks, or market movers before extracting a known URL.
GET /api/search?q=AI+web+data
GET /api/news?q=AI+infrastructure
GET /api/images?q=coral+reef
GET /api/videos?q=Cloudflare+Workers+tutorial
GET /api/places?q=Brandenburg+Gate+Berlin
GET /api/places?q=coffee+Berlin&lat=52.52&lon=13.405JavaScript
const endpoint = new URL(
'https://webstractor.com/api/extract'
);
endpoint.searchParams.set('url', 'https://example.com/article');
endpoint.searchParams.set('format', 'json');
const response = await fetch(endpoint);
if (!response.ok) throw new Error(`Request failed: ${response.status}`);
const result = await response.json();What to submit
Always submit the ordinary public page a person would open in a browser. For example:
https://bsky.app/profile/bsky.apphttps://bsky.app/profile/bsky.app/post/3mqcp5qjdfs26https://news.google.com/search?q=Cloudflare&hl=en-US&gl=US&ceid=US%3Aenhttps://www.instagram.com/instagram/https://mastodon.social/@trwnh/99664077509711321https://store.example/products/black-shirthttps://soundcloud.com/forss/flickermoodhttps://open.spotify.com/episode/7makk4oTQel546B0PZlDM5https://www.reddit.com/r/CloudFlare/https://www.tiktok.com/@scout2015/video/6718335390845095173https://vimeo.com/286898202https://x.com/jack/status/20https://www.youtube.com/@Cloudflare
See the JSON schema guide before storing normalized responses.