Secretary of State API Comparison: Pricing, Coverage, and Speed

October 22, 2026 9 min read
secretary of state API comparisonbusiness entity lookup APIKYB APISOS data APIbusiness verification APIAPI pricing comparisonUS business registry API

Secretary of State API Comparison: Pricing, Coverage, and Speed

Every day, compliance officers, fintech developers, and KYB platform builders make decisions based on business entity data pulled from Secretary of State records. Whether you're onboarding a new commercial borrower, running a FinCEN beneficial ownership check, or screening a vendor against BSA requirements, the quality and cost of your Secretary of State API directly affects your risk exposure and your bottom line. Yet most teams never do a rigorous secretary of state API comparison before committing to a provider — and they pay for it later in surprise invoices, stale data, and incomplete state coverage.

This guide breaks down what actually matters when choosing a Secretary of State lookup API: pricing models, geographic coverage, data freshness, and response speed. We'll also walk through a live code example using OpenSOSData so you can see exactly what production-ready implementation looks like.

Why Secretary of State Data Is a Compliance Cornerstone

The Corporate Transparency Act (CTA) and FinCEN's Beneficial Ownership Information (BOI) rules that took effect in 2024 have made business entity verification more urgent than ever. Under the Bank Secrecy Act (BSA), covered financial institutions must collect and verify information about the legal entity customers they onboard — including confirming that an entity is actually registered and in good standing with its state of formation.

A Secretary of State API lets compliance teams programmatically verify:

Without reliable entity data, your KYB workflow is guessing. A wrong entity status or a missed dissolution record can mean onboarding a shell company or a bad actor — exactly the scenario OFAC sanctions screening and BSA compliance programs are designed to prevent.

Key Dimensions of Any Secretary of State API Comparison

1. Pricing Model

API pricing for Secretary of State data typically falls into three buckets: per-lookup pay-as-you-go, subscription tiers with monthly minimums, and enterprise contracts with negotiated rates. Pay-as-you-go models are ideal for startups and mid-market teams whose volumes fluctuate. Subscription tiers make sense when you have predictable, high-volume needs. Enterprise contracts often include SLA guarantees but require commitment.

Hidden costs to watch for include: charges for failed lookups, separate fees for live versus cached data, and overage penalties on tiered plans.

2. State Coverage

The United States has 50 states plus Washington D.C., Puerto Rico, and the U.S. Virgin Islands — each with its own Secretary of State (or equivalent) database and update cadence. Many API providers cover only the most commercially active states: Delaware, Wyoming, Nevada, California, and New York. If your clients operate in Montana, Vermont, or U.S. territories, incomplete coverage creates blind spots in your compliance workflow.

3. Data Freshness: Live vs. Cached

Live lookups query the official state database in real time. Cached lookups return a stored snapshot that may be hours or days old. For KYB onboarding decisions, live data is almost always preferable — a company can dissolve or lose good standing between cache refreshes. However, cached lookups are perfectly appropriate for monitoring and bulk screening where cost matters more than real-time precision.

4. Response Speed and Uptime

State government portals are notoriously slow. A provider that parallelizes requests, maintains regional infrastructure, and has robust retry logic will return results in seconds rather than minutes. For customer-facing onboarding flows, a 30-second lookup is a conversion killer.

Start Verifying Entities from $0.10 per Lookup

Live lookups from $0.10, as low as $0.0314 with volume. Pay as you go.

Create Free Account

Secretary of State API Comparison Table

Feature OpenSOSData Typical Competitor A Typical Competitor B
Live lookup price $0.10 standard; as low as $0.0314 with volume $0.25–$0.50 per lookup Subscription required; ~$0.15–$0.30 effective cost
Cached lookup price $0.01 standard; as low as $0.00314 with volume Not offered separately $0.05 per lookup
State coverage All 50 states + D.C., Puerto Rico, U.S. Virgin Islands (34M+ entities) 35–40 states All 50 states; no territories
Pricing model Pay-as-you-go; no minimums Monthly subscription Tiered subscription
Cache control Per-request (cache_preference) Account-level setting only No cache control
Data returned Name, type, ID, status, formation date, registered agent + address Name, status, state ID Name, status, type, agent
Monthly minimum None $99/month $199/month

Competitor pricing and coverage are representative ranges based on publicly available information and may change. Verify with each vendor before committing.

OpenSOSData: A Closer Look

OpenSOSData is purpose-built for US compliance workflows. It covers all 50 states plus Washington D.C., Puerto Rico, and the U.S. Virgin Islands — a database of more than 34 million business entities. There are no monthly minimums, which means you pay only for what you query. Volume discounts kick in automatically, bringing live lookup costs as low as $0.0314 and cached lookups as low as $0.00314.

The API's cache_preference parameter gives developers explicit control over data freshness on every single request — something most competitors handle only at the account level, if at all. For a KYB onboarding flow, you'd use live_only. For a nightly compliance monitoring job that screens thousands of existing counterparties, cache_first keeps costs dramatically lower while still refreshing when no cached record exists.

Practical Code Example: Python KYB Lookup

The following Python example shows how to query the OpenSOSData API for a live entity lookup — appropriate for a KYB onboarding check where data freshness is critical. Review the full reference at opensosdata.com/docs/.


import requests

# OpenSOSData API endpoint
API_URL = "https://api.opensosdata.com/v1/lookup"

# Replace with your actual API key from https://app.opensosdata.com
API_KEY = "your_api_key_here"

def verify_business_entity(entity_name: str, state: str) -> dict:
    """
    Perform a live Secretary of State lookup for KYB onboarding.
    Uses cache_preference=live_only to ensure real-time data.
    Cost: $0.10 per call (standard rate).
    """
    headers = {
        "x-api-key": API_KEY,
        "Content-Type": "application/json"
    }

    payload = {
        "entity_name": entity_name,
        "state": state,              # Two-letter state code, e.g. "DE", "CA", "TX"
        "cache_preference": "live_only"  # Ensures real-time data from the state database
    }

    response = requests.post(API_URL, json=payload, headers=headers, timeout=30)
    response.raise_for_status()
    return response.json()


def run_kyb_check(entity_name: str, state: str) -> None:
    """
    Run a KYB entity check and print the compliance-relevant fields.
    """
    print(f"Running KYB lookup: {entity_name} ({state})")
    result = verify_business_entity(entity_name, state)

    # Extract key compliance fields from the API response
    entity = result.get("entity", {})
    print(f"  Entity Name:       {entity.get('name')}")
    print(f"  Entity Type:       {entity.get('type')}")          # LLC, Corp, LP, etc.
    print(f"  State Entity ID:   {entity.get('entity_id')}")     # Anchors BOI filing
    print(f"  Status:            {entity.get('status')}")        # Active, Dissolved, etc.
    print(f"  Formation Date:    {entity.get('formation_date')}")
    print(f"  Registered Agent:  {entity.get('registered_agent')}")
    print(f"  Agent Address:     {entity.get('registered_address')}")

    # Simple compliance gate: flag any non-active entities for review
    if entity.get("status", "").lower() != "active":
        print("  ⚠️  COMPLIANCE FLAG: Entity is not in active standing. Manual review required.")
    else:
        print("  ✅  Entity is active and in good standing.")


# Example: verify a Delaware LLC during onboarding
if __name__ == "__main__":
    run_kyb_check("Acme Logistics LLC", "DE")
  

For bulk compliance monitoring — for example, re-screening your existing vendor or counterparty list — switch cache_preference to cache_first. This drops per-lookup cost to as low as $0.00314 at volume, making nightly sweeps of thousands of entities economically practical.

When to Use Live vs. Cached Lookups

Use live_only when: You are making an onboarding or underwriting decision, processing a loan application, or running a real-time KYB check where a stale status could expose you to BSA or CTA compliance liability.

Use cache_first when: You are running periodic monitoring on an existing portfolio, enriching a large data set in bulk, or performing preliminary screening before a human review step. The cost savings are substantial and the risk profile is different because a human will review flagged records before any decision is made.

Use cache_only when: You need maximum speed and lowest cost for a use case where historical record snapshots are acceptable — for instance, populating a business directory or running analytics on entity data.

How to Evaluate Any Secretary of State API for US Compliance Use

Beyond the features in our comparison table, ask every vendor these questions before signing up:

Getting Started with OpenSOSData

You can create an account at app.opensosdata.com and run your first lookup in minutes. There's no monthly minimum and no contract — you're billed only for the lookups you perform. Volume discounts apply automatically as your usage grows. Full API documentation, including all available fields and error codes, is available at opensosdata.com/docs/.

Frequently Asked Questions

What states does OpenSOSData cover?

OpenSOSData covers all 50 US states plus Washington D.C., Puerto Rico, and the U.S. Virgin Islands — a combined database of more than 34 million business entities. This is broader than most competitors, which often skip smaller states or US territories entirely.

How does the cache_preference parameter work?

Each API request accepts a cache_preference field with three values: live_only (always queries the state database in real time), cache_first (returns a cached record if available, otherwise fetches live), and cache_only (only returns cached data, never fetches live). This per-request control lets you optimize cost and freshness for each use case independently.

Is a Secretary of State lookup sufficient for FinCEN BOI compliance?

Entity verification via Secretary of State records is a necessary component of KYB, but it is not sufficient on its own for full FinCEN BOI compliance. The CTA also requires collecting and verifying beneficial ownership information (name, DOB, address, and ID document for each 25%+ owner or control person). OpenSOSData provides the entity foundation — registered name, state ID, status, and agent — which anchors the broader BOI workflow.

What is the difference between live and cached pricing?

Live lookups query the official state database in real time and cost $0.10 per lookup at standard rates, dropping as low as $0.0314 with volume. Cached lookups return stored snapshots and cost $0.01 at standard rates, dropping to as low as $0.00314 at volume. There are no monthly minimums — you pay only for what you use.

How quickly do live lookups return results?

Response time depends on the state database being queried, but OpenSOSData's infrastructure is optimized to minimize latency on state portal requests. Most live lookups return within a few seconds. For states with historically slower portals, the API manages retries automatically so your application doesn't have to.

Can I use this API for bulk compliance screening?

Yes. Using cache_preference: cache_first, you can screen large portfolios of existing counterparties, vendors, or borrowers at very low cost — as little as $0.00314 per entity at volume. This makes nightly or weekly compliance monitoring economically viable even for teams with thousands of records to screen.

Do I need a contract or monthly commitment to use OpenSOSData?

No. OpenSOSData operates on a pure pay-as-you-go model with no monthly minimums and no contracts. You can sign up at app.opensosdata.com and start making API calls immediately. Volume discounts apply automatically based on your usage tier.

Start Verifying Entities from $0.10 per Lookup

Live lookups from $0.10, as low as $0.0314 with volume. Pay as you go.

Create Free Account
Written by the OpenSOSData team, experts in US Secretary of State data and business entity verification APIs.