SavvyIQ

Guides

Migrate from BigPicture to SavvyIQ

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, not a flat tag list. The most-requested BigPicture feature.
  • 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.

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 today. Run them side by side during cutover and compare responses.
  • Time to migrate. Most integrations complete the port in under an hour.

What changes

  • Base URL. company.bigpicture.io → api.savvyiq.ai
  • Auth header. Authorization: keyId:keySecret → 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

BigPictureSavvyIQ
GET /v1/companies/findGET /v3/domain-intelligence
GET /v1/companies/find/streamGET /v3/domain-intelligence
GET /v2/companies/searchPOST /v3/entity-resolution/async + GET /v3/runs/{run_id}
GET /v2/companies/ipNo 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: a1b2c3d4...:s3cr3tValu3...

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)
geo.*entity.headquarters.address.*
tagsentity.classification.business_tags[]
category.* (incl. naicsCode)entity.industry.schemes.naics_2022[], entity.industry.schemes.sic[] (with 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)entity.attributes.is_public, entity.facets.sector
linkedin.handle, facebook.handle, twitter.handle, crunchbase.handleentity.social_profiles.{linkedin,facebook,twitter,crunchbase}.handle
logo, phone, tech, alexa*RankNot returned
trancoRankdata.domain_intelligence.tranco_rank on /v3/domain-intelligence

Fields that are unknown come back null, never as a guess. See the Business Intelligence API for a full example response.

Errors

// 400, 404, 500
{ "error": { "message": "...", "type": "bad_request" } }

// 401
{ "message": "No API key found in request", "request_id": "..." }

// 402, 403, 429 (plan limits)
{ "error": "insufficient_credits", "message": "..." }
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. Every API key on an account shares the same allowance. Headers 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 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? Yes. company.bigpicture.io continues to accept requests; migrate on your own schedule.

Can I run BigPicture and SavvyIQ in parallel? Yes. Both APIs accept traffic today. 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? Under an hour for most integrations. 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.