Core
Scrape

POST /v1/scrape

Scrape a single URL and return its content as clean markdown. Optionally extract structured listing data (business name, phone, address, hours, rating, and more) using a JSON-LD cascade + heuristic pipeline, no LLM cost.

The engine automatically escalates the fetch method when needed: plain HTTP first, then headless Playwright, then stealth mode for bot-protected pages.

Request

POST /v1/scrape
Content-Type: application/json
x-api-key: YOUR_KEY

Body

FieldTypeRequiredDefaultDescription
urlstringYesThe URL to scrape. Must be a valid http:// or https:// URL.
formatsstring[]No["markdown"]Which outputs to return: markdown, rawHtml, links, screenshot, json, branding, summary. Requested outputs appear under a formats object.
includeHtmlbooleanNofalseShortcut for including raw HTML in the response.
extractListingbooleanNotrueRun the listing extraction pipeline (JSON-LD → Open Graph → regex).
schema / jsonSchemaobjectNoWhen formats includes json, extract structured data matching this schema via the LLM layer.
actionsobject[]NoBrowser actions before capture (forces Playwright): click, scroll, wait, write, press, screenshot, executeJavascript, pdf.
onlyMainContentbooleanNofalseStrip nav/boilerplate, keep the main content.
includeTags / excludeTagsstring[]NoKeep only / drop these CSS selectors before conversion.
removeBase64ImagesbooleanNofalseStrip inline base64 images from the markdown.
forcePlaywrightbooleanNofalseSkip plain fetch and render with Playwright.
waitFornumberNoMilliseconds to wait after load before capture (Playwright).
cookies / headersstring / objectNoCookie string and custom headers forwarded with the request.
ignoreRobotsTxtbooleanNofalseRespect robots.txt by default; set true to opt out (Firecrawl-compatible).
maxAgenumberNo0Serve a cached copy if fresher than this many ms. 0 = always fresh.
locationobjectNo{ country } proxy/geo hint for the fetch.

Example request

curl -X POST https://api.superscraper.dev/v1/scrape \
  -H "x-api-key: ss_live_xxxxxxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://www.yelp.com/biz/acme-plumbing-austin",
    "extractListing": true
  }'

Response

HTTP 200 on success, HTTP 422 if the page could not be fetched.

Body

FieldTypeDescription
urlstringCanonical URL after any redirects
markdownstringPage content converted to clean markdown
htmlstring | undefinedRaw HTML (only present when includeHtml: true)
listingobject | nullStructured listing data (see below)
formatsobjectRequested outputs, e.g. formats.markdown, formats.links, formats.json (present when formats[] was set)
metadata.fetchMethodstringHow the page was fetched: "fetch", "playwright", "spider", or "browserbase"
metadata.extractionMethodstringListing extraction layer used
metadata.confidencenumberListing confidence, 0–1
metadata.cachedbooleanWhether this response was served from cache
metadata.cacheAgeMsnumberAge of the cached copy (present when cached: true)
metadata.latencyMsnumberTotal fetch + extraction time in milliseconds

A .pdf URL (or application/pdf content type) short-circuits to PDF extraction and returns { url, text, markdown, isPdf, ok }. A blocked private/loopback/metadata target returns 400 Blocked URL. | ok | boolean | true on success | | error | string | undefined | Error message when ok is false |

Listing object

Populated when extractListing: true and the page contains business/listing signals.

FieldTypeDescription
namestringBusiness name
descriptionstringShort description
phonestringPrimary phone number
emailstringContact email
websitestringBusiness website URL
addressstringStreet address
citystringCity
statestringState / province
zipstringPostal code
countrystringCountry
latnumberLatitude
lngnumberLongitude
ratingnumberAverage rating (e.g. 4.7)
review_countnumberTotal review count
price_rangestringPrice range string (e.g. "$$")
price_minnumberMinimum price
price_maxnumberMaximum price
hoursobjectBusiness hours (structure varies by source)
amenitiesstring[]List of amenities or features
hero_imagestringURL of the primary image
photo_urlsstring[]All photo URLs
license_numberstringProfessional license number
capacitynumberCapacity (e.g. for venues)
founded_yearnumberYear the business was founded
schema_markup_typesstring[]JSON-LD @type values found on the page
_confidencenumberExtraction confidence score (0–1)
_extraction_methodstringWhich method populated the data: "json-ld", "microdata", or "heuristic"

Example response

{
  "url": "https://www.yelp.com/biz/acme-plumbing-austin",
  "markdown": "# Acme Plumbing\n\n**4.8** ★ · 214 reviews · Plumbing · Austin, TX\n\n> Licensed & insured. Same-day service available.\n\n## Contact\n\n- **Phone:** (512) 555-0187\n- **Address:** 1402 S 1st St, Austin, TX 78704\n\n## Hours\n\nMon–Fri 7am–7pm · Sat 8am–5pm · Sun Closed",
  "listing": {
    "name": "Acme Plumbing",
    "phone": "(512) 555-0187",
    "address": "1402 S 1st St",
    "city": "Austin",
    "state": "TX",
    "zip": "78704",
    "country": "US",
    "lat": 30.2468,
    "lng": -97.7572,
    "rating": 4.8,
    "review_count": 214,
    "price_range": "$$",
    "hours": {
      "monday": "7:00 AM – 7:00 PM",
      "tuesday": "7:00 AM – 7:00 PM",
      "wednesday": "7:00 AM – 7:00 PM",
      "thursday": "7:00 AM – 7:00 PM",
      "friday": "7:00 AM – 7:00 PM",
      "saturday": "8:00 AM – 5:00 PM",
      "sunday": "Closed"
    },
    "hero_image": "https://s3-media1.fl.yelpcdn.com/bphoto/acme-hero.jpg",
    "_confidence": 0.92,
    "_extraction_method": "json-ld"
  },
  "metadata": {
    "fetchMethod": "plain",
    "latencyMs": 487
  },
  "ok": true
}

Rate limits by tier

PlanRequests / minuteCredits / month
Free101,000
Hobby605,000
Pro200100,000
Scale600500,000
Custom3 000Custom