All API tools
Web & HTTP
Web Scraper (CSS selectors) API
GET
/v1/web-scraper Paid6 credits / callAuthentication
Send your API key as a bearer token. Create one free in the dashboard.
Authorization: Bearer $TOOLSXPO_KEYParameters
Passed as query-string parameters. Example values shown.
| Name | Example |
|---|---|
| url | https://example.com |
| selectors | h1 |
Example request
curl "https://api.toolsxpo.com/v1/web-scraper?url=https%3A%2F%2Fexample.com&selectors=h1" \
-H "Authorization: Bearer $TOOLSXPO_KEY"Response
A standard JSON envelope: { ok, data, meta }. The result is in data (json); meta.credits reports what the call cost.
How to use the Web Scraper API
Extract structured data from a page by CSS selector. A real browser renders the page (so JS-built content is included), then returns the matches for each selector you asked for.
Passing selectors
Send a comma-separated list in selectors (up to 20):
Bashcurl "https://api.toolsxpo.com/v1/web-scraper?url=https://example.com&selectors=h1,.price,a.cta" \ -H "Authorization: Bearer $TOOLSXPO_KEY"
Response shape
data.elements is one entry per selector, each with a count and a matches array of { text, html, attributes }:
JSON{ "elements": [ { "selector": "h1", "count": 1, "matches": [{ "text": "Example Domain" }] }, { "selector": ".price", "count": 3, "matches": [{ "text": "$9" }, { "text": "$19" }] } ] }
Tips & gotchas
- Prefer stable, specific selectors (
[data-testid], semantic classes) over deep positional ones that break when the page changes. - Reach for
url-to-markdowninstead when you want the whole article, not specific fields. - Respect each site's terms and
robotspolicy — scrape only what you're allowed to.