Playbook
OpenSOSData Integration Guide
US Secretary of State business entity lookup across currently active OpenSOSData jurisdictions.When to use
Useopensosdata_business_lookup to find the registered officer name for a business entity.
This is the bridge between “I have a restaurant name” and “I have an owner name to skip-trace.”
Typical flow:
opensosdata_business_lookup→ get officer name from SOSenformion_contact_enrich→ get mobile phone from officer name + city/state
State-by-state officer data coverage
Critical gotchas
1. FL officer name format — ALWAYS reverse
FL SOS returns"LASTNAME, FIRSTNAME MIDDLE". Use reverseOfficerName() from opensosdata-shared.ts:
"SMITH, JOHN EDWARD"→"John Smith""DE LA CRUZ, MARIA"→"Maria De La Cruz"
2. Async states (CA, MA, NV, OR, WA)
These states return HTTP 202 with ajobId. The action automatically polls every 3 seconds
until complete (up to 90s). No special handling needed by the caller.
Native bulk jobs
opensosdata_bulk_lookup submits up to 1,000 entities in one provider request.
It waits at most 30 seconds, then returns a durable job_id for
opensosdata_get_bulk_result. Calls to opensosdata_business_lookup inside a
dataset map compile into native jobs of up to 256 entities. Keep using the
scalar tool for row-wise play code; call the bulk operation directly only when
you already have an entity array.
After OpenSOSData accepts a bulk job, Deepline never retries the POST. Polling
timeouts and transport failures return the persisted job_id; the async
billing reconciler retries the idempotent status read until terminal truth is
available.
3. Skip registered agent services
Filter officer names containing: “Corporation Service”, “CT Corporation”, “Incorp”, “Northwest Registered”, “Statutory Agent”. These are professional RA services, not people. UseisRegisteredAgentService() from opensosdata-shared.ts.
4. Balance monitoring
Each lookup costs Deepline credits. Check remaining balance before large batch runs. Check balance:GET /v1/account/balance → lookupsRemaining.
Topup URL: https://app.opensosdata.com#billing
Response structure
Synchronous (most states):reverseOfficerName("SWANSON, KIRK ALAN") = "Kirk Swanson"
Async (CA/MA/NV/OR/WA) — handled automatically, caller receives final result.
Not found (no charge):
Credentials
Single API key passed asx-api-key header.
Set via Deepline dashboard → Integrations → OpenSOSData, or OPENSOSDATA_API_KEY env var.
API endpoint: https://api.opensosdata.com/v1/lookup