SavvyIQ

Guides

Migrate from BigPicture to SavvyIQ

The BigPicture API shuts down on Friday, October 30, 2026

After that date company.bigpicture.io and ip.bigpicture.io stop accepting requests. Every BigPicture call has a SavvyIQ equivalent below, except IP lookup.

Why migrate

  • More accurate business data. BigPicture matched by domain, so company size, revenue, and industry frequently came back wrong (e.g., Google has thousands of domains; small businesses on shared hosting hit the same problem). SavvyIQ resolves to the legal entity first, then attaches data.
  • Real industry classification. NAICS and SIC codes with per-code confidence, where BigPicture returned a single unscored NAICS code.
  • Ownership. Ultimate-parent research with evidence. Not available in BigPicture.
  • Stable entity IDs. One record per business, queried by ID instead of by URL.
  • Same throughput. 600 requests/minute, BigPicture’s documented limit.

Pricing and migration support

  • Pricing. Usage-based, published on savvyiq.ai/pricing. Contact sales for volume.
  • Migration credits. Free credits available to cover testing and any data-parity issues during cutover. Ask support.
  • Parallel run supported. Both APIs accept traffic until October 30, 2026. Run them side by side during cutover and compare responses.
  • Free ID mapping. Send us your domain list and we return the matching SavvyIQ entity IDs, free, one time. Email sales with the list.

What changes

  • Base URL. company.bigpicture.io → api.savvyiq.ai
  • Auth header. Authorization: API_KEY → apikey: TOKEN (lowercase)
  • Flow. 1 call → 2 calls (resolve, then fetch the full record by siq_ ID)
  • Webhooks. Per-call webhook_url, like BigPicture’s webhookUrl, plus custom_id for correlation. See Webhooks.
  • Response shape. Different field paths, mapped below.

Endpoint mapping

This is every endpoint BigPicture published.

BigPictureSavvyIQ
Company API: GET company.bigpicture.io/v1/companies/find?domain=GET /v3/domain-intelligence?domain=, then GET /v3/entities/{id} for the full record
Company API (stream): GET company.bigpicture.io/v1/companies/find/stream?domain=Same as above. v3 has no streaming endpoint; a domain we hold answers in seconds
Name to Domain: GET company.bigpicture.io/v2/companies/search?name=POST /v3/entity-resolution/async + GET /v3/runs/{run_id}. The domain is in entity.website (a URL), and you also get the legal entity
IP API: GET ip.bigpicture.io/v2/companies/ip?ip=No equivalent. Contact us

For full business data after step 1, call GET /v3/entities/{id}.

Authentication

  1. Sign up at app.savvyiq.ai/signup.
  2. Generate a key at app.savvyiq.ai/api-keys.
  3. Send it on every request:
Authorization: YOUR_BIGPICTURE_KEY

Step 1: resolve

By domain

GET /v3/domain-intelligence answers in seconds for a domain we hold. A new domain returns status: "building"; poll until complete, or pass webhook_url. Returns a siq_ entity ID for step 2.

curl "https://api.savvyiq.ai/v3/domain-intelligence?domain=uber.com" \
-H "apikey: YOUR_API_KEY"

By name

Submit, then poll the run. Returns a siq_ entity ID.

# Submit
curl -X POST "https://api.savvyiq.ai/v3/entity-resolution/async" \
-H "apikey: YOUR_API_KEY" \
-H "content-type: application/json" \
-d '{"name": "Datadog", "location": "New York, NY"}'

# Poll (202 while running, 200 when done)
curl "https://api.savvyiq.ai/v3/runs/run_344tSxhAVACWbuENINJ9D" \
-H "apikey: YOUR_API_KEY"

Step 2: get the full business record

Pass the siq_ entity ID to /v3/entities/{id}. Returns names, headquarters, identifiers, industry codes, firmographics, social handles. The endpoint never blocks: a record that has not been enriched yet is served with enrichment.status: "building" and the build starts in the background. Poll until complete.

curl "https://api.savvyiq.ai/v3/entities/siq_33d67jj0wJESjEdFHMhuQ" \
-H "apikey: YOUR_API_KEY"

Full schema: Business Intelligence API. For large lists, submit with custom_id and collect by webhook or by polling out of band. See Batch processing.

Response shape

The record from step 2 covers what BigPicture customers asked for most: industry classification, employee count, revenue, plus founding date, market cap, funding raised, and social handles.

BigPictureSavvyIQ (GET /v3/entities/{id})
nameentity.display_name
legalNameentity.legal_name
domainentity.attributes.domain
urlentity.website
descriptionentity.description
foundedYearentity.attributes.founding_date (YYYY-MM-DD)
identity.id (a stable siq_ ID, one per business)
geo.*entity.headquarters.address.*
locationentity.headquarters.address.formatted_address
tagsentity.classification.business_tags[]
category.sector, category.industry, category.subIndustryentity.classification.sector, entity.classification.industry, entity.classification.sub_industry
category.naicsCodeentity.industry.schemes.naics_2022[], plus entity.industry.schemes.sic[] (per-code confidence, primary first)
metrics.employees, metrics.employeesRangeentity.attributes.employee_count, entity.attributes.employee_range
metrics.annualRevenue, metrics.estimatedAnnualRevenueentity.attributes.revenue, entity.attributes.revenue_range
metrics.marketCapentity.attributes.market_cap
metrics.raisedentity.attributes.funding_total_usd
tickerentity.attributes.stock_ticker
type (public/private/nonprofit/government)entity.attributes.is_public, entity.facets.sector
linkedin.handle, facebook.handle, crunchbase.handleentity.social_profiles.{linkedin,facebook,crunchbase}.handle
twitter.handledata.domain_intelligence.social_profiles.twitter.handle on /v3/domain-intelligence
metrics.trancoRankdata.domain_intelligence.tranco_rank on /v3/domain-intelligence
domainAliasesdata.domain_intelligence.domain_aliases on /v3/domain-intelligence
logo, phone, tech, emailProvider, indexedAt, metrics.alexaUsRank, metrics.alexaGlobalRank, linkedin.industry, twitter.* (other than handle)Not returned

Fields we don’t know come back null or are left out, never guessed. See the Business Intelligence API for a full example response.

Errors

// 400, 402, 403, 404, 429 (plan limits), 500, 503
{ "error": { "type": "insufficient_credits", "message": "..." } }

// 401
{ "message": "No API key found in request", "request_id": "..." }
StatusMeaning
400Bad parameter. Do not retry.
401Bad or missing API key.
402Account balance too low. Top up, then retry.
403API not enabled for your account.
404Entity not found.
429Rate limited, or a plan limit was reached. Back off.
500Server error. Retry with backoff.
503Billing temporarily unavailable. Retry with backoff.
504Gateway timeout. Retry with backoff.

Rate limits

600 requests/minute per account, counted per endpoint; polling GET /v3/runs/{run_id} is 100/minute (BigPicture’s stream endpoint was 5/minute; there is no separate stream limit here). Every API key on an account shares the same allowance. The headers drop BigPicture’s X- prefix and are on every response:

  • RateLimit-Limit
  • RateLimit-Remaining
  • RateLimit-Reset

Parity gaps

  • Webhooks. Supported per call: pass webhook_url on any /v3 async request, the way webhookUrl worked. What webhookId did for you is custom_id: pass it on the request and it comes back on the delivery (on entity resolution, also on the 202 and on every poll). See Webhooks.
  • IP lookup. No equivalent. Contact us.

Dashboard

Keys, usage, and billing: app.savvyiq.ai.

FAQ

Will my BigPicture API key keep working? Until Friday, October 30, 2026. After that, BigPicture keys stop working on company.bigpicture.io and ip.bigpicture.io. SavvyIQ uses its own keys, so create one before you switch.

Can I run BigPicture and SavvyIQ in parallel? Yes, until October 30, 2026. Compare responses side by side during cutover.

What does it cost? Usage-based, published on savvyiq.ai/pricing. Every account starts with free credit. Contact sales for volume.

Are migration credits available? Yes. Email support to request credits for testing and any data-parity issues during cutover.

How long does the migration take? The port is a new base URL, one auth header, and a resolve-then-fetch flow, all covered in this guide. Budget half a day if you have many call sites or complex response parsing.

How do I report a migration issue? Email support with your BigPicture account ID, the endpoint you’re porting, and a sample request/response pair.

Will the SavvyIQ API change again soon? No breaking changes to the endpoints in this guide are planned. Email support to be notified of future changes.

Need help

Email support if anything blocks your migration.