Understand
Resolve

POST /v1/resolve

Resolve a company identity (domain, email, or name) into a fused profile from the shared business graph. This is the "context that remembers": a hit serves the compounding ledger record (already fused, carrying a source count and freshness); a miss extracts live from the company's own site, fuses it into the graph, and returns the fresh record. Either way the graph gets better every call.

They cache pages. We keep a ledger.

Request

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

Body

At least one of domain, email, or name is required.

FieldTypeDescription
domainstringCompany domain, e.g. stripe.com. Strongest match.
emailstringResolved to its domain (jane@stripe.comstripe.com).
namestringCompany name. Best paired with state or zip to disambiguate.
statestringTwo-letter state, narrows a name match.
zipstringPostal code, narrows a name match.

Example

curl -X POST https://api.superscraper.dev/v1/resolve \
  -H "x-api-key: ss_live_xxxxxxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{"domain": "stripe.com"}'

Response

{
  "resolved": true,
  "domain": "stripe.com",
  "name": "Stripe, Inc.",
  "description": "Financial infrastructure for the internet",
  "logo": "https://stripe.com/img/logo.svg",
  "industry": { "naics": "522320", "title": "Financial Transactions Processing" },
  "socials": { "linkedin": "https://linkedin.com/company/stripe" },
  "tech_stack": ["react", "stripe"],
  "location": { "city": "San Francisco", "state": "CA", "zip": "94103", "country": "US" },
  "phone": "+1-888-555-0100",
  "email": "info@stripe.com",
  "employee_band": "1000+",
  "revenue_band": null,
  "_resolved_by": "domain",
  "_confidence": 0.9,
  "_freshness": "2026-07-18T12:00:00.000Z",
  "_source_count": 4
}

Hit vs miss

_resolved_byMeaningConfidence
domain / uei / licenseGraph hit on a strong key0.9
phoneGraph hit on phone0.85
name+…Graph hit on a name match0.7
liveGraph miss, extracted live from the site + written through0.4-0.88 (by signals resolved)
  • _source_count = how many independent sources have fused into this record. It grows over time, which is the "gets fresher every call" property a stateless scraper cannot offer.
  • _freshness = when the record was last enriched or seen.

Errors

StatusCause
400none of domain, email, or name supplied
404graph miss and no domain to resolve live from
503graph disabled and no domain supplied (live resolution needs a domain)

A live-path fetch failure returns 200 with { "resolved": false, "error": "..." }, never a crash.

Notes

  • Pair with Brand (assemble a profile) and Graph query (reverse-index the graph). Together they are the Understand layer: any company in, a confidence- scored, compounding profile out.