California SOS Business Search Scraper avatar

California SOS Business Search Scraper

Under maintenance

Pricing

from $10.00 / 1,000 california sos record returneds

Go to Apify Store
California SOS Business Search Scraper

California SOS Business Search Scraper

Under maintenance

Search California Secretary of State BizFile business entities by name or entity number and return normalized status, filing, agent, address, and risk signals.

Pricing

from $10.00 / 1,000 california sos record returneds

Rating

0.0

(0)

Developer

Muhammad Afzal

Muhammad Afzal

Maintained by Community

Actor stats

0

Bookmarked

10

Total users

4

Monthly active users

3 days ago

Last modified

Share

Access limitation — October 18, 2026: California SOS currently denies ordinary access or presents an hCaptcha challenge. DataImpulse rejects this target with SITE_PERMANENTLY_BLOCKED, and the last verified Oxylabs tests rejected it. Data retrieval is not restored. This build limits wasted usage and reports access failures explicitly; it does not solve CAPTCHAs. Do not use it for a guaranteed live registry lookup until approved source access is available.

Free plan limit: Free-plan users can receive up to 5 result records per run. Paid-plan and local/unknown runs retain the Actor's existing limits.

Search the official California Secretary of State BizFile Online business registry by company name or California entity number. The actor returns compact, typed records for due diligence, KYB checks, registered-agent research, business-status monitoring, and AI-agent workflows.

What it does

Use this actor when you need public California registry data for corporations, LLCs, LPs, and nonprofit entities. It first makes a bounded HTTP request to the public page-backed search endpoint. If a normal browser session is needed, it opens the official search form once and observes the form's response. No sessions are rotated after a denial or CAPTCHA. It does not file documents, order certificates, download filing images, log in to an account, or bypass a CAPTCHA or anti-bot challenge.

The actor is designed for compliance teams, legal and due-diligence researchers, sales operations teams validating business names, journalists, and AI agents that need a small structured answer instead of a browser transcript.

When to use it

Use it for questions such as:

  • Is a company registered with the California Secretary of State?
  • What is the entity number, status, standing, entity type, initial filing date, or formation jurisdiction?
  • What registered agent or address did the public registry return?
  • Which companies in a short list look active, suspended, forfeited, dissolved, or otherwise need review?

Do not use it for California tax balances, certified copies, private account data, LLP or general-partnership records that the portal does not index, or legal conclusions. The status risk score is a transparent triage signal, not a legal, credit, or compliance opinion.

Input

{
"businessNames": ["Apple Inc", "C0806592"],
"maxItems": 10,
"includeRawFields": false,
"requestDelayMs": 2500
}

businessNames is required and accepts company names or entity numbers. maxItems defaults to 10 and caps the total unique records across all queries. includeRawFields defaults to false and can be enabled when you need the original fields returned by the registry. requestDelayMs defaults to 2500 milliseconds between separate searches.

Output

One dataset item is emitted per unique registry row. The stable fields are:

FieldDescription
entityNameRegistered entity name
entityNumberCalifornia entity/file number when returned
statusPublic registry status
standingPublic standing value when returned
entityTypeEntity classification
formationDateInitial filing or formation date
jurisdictionFormed-in state or country
registeredAgentPublic agent text
principalAddressPrincipal address when returned
mailingAddressMailing address when returned
riskScore0-100 triage score from status and standing text
riskLevellow, medium, high, or critical
riskSignalsHuman-readable reasons for the score
searchQueryInput query that produced the row
sourceUrlOfficial BizFile Online search page
scrapedAtISO 8601 collection timestamp
rawFieldsOriginal row fields when opted in; otherwise null

Active or good-standing text maps to a low score. Suspended, inactive, delinquent, or not-good-standing text maps to a high score. Dissolved, cancelled, revoked, surrendered, merged, or forfeited text maps to a critical score. Unknown or missing status text is intentionally called out rather than silently treated as healthy.

The OUTPUT key-value record contains terminal status, counts, warnings, and target diagnostics. An empty match is a successful empty run. If Imperva blocks every search, the run is marked blocked with a diagnostic message rather than pretending that the business names have no matches.

Pricing

This Actor uses pay-per-event pricing with all-in pricing (Apify platform usage is included in the event prices, with no separate platform fees charged to users):

EventTiered Price (USD)When it is charged
sos-recordFREE: $0.014
BRONZE: $0.013
SILVER: $0.012
GOLD / PLATINUM / DIAMOND: $0.010
California SOS record returned — Charged for each unique normalized business entity returned in the dataset.
apify-actor-start$0.005Actor Start — Synthetic event: one event per GB allocated, minimum one. A 1 GB run charges one start event.

For example, ten records cost $0.145 on FREE, $0.135 on BRONZE, $0.125 on SILVER, or $0.105 on GOLD at 1 GB, including one $0.005 start event. Free-plan output is limited to five records. Prices are the existing live prices; this repair does not change them.

JavaScript API

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('YOUR_USERNAME/sos-scraper').call({
businessNames: ['Apple Inc', 'C0806592'],
maxItems: 10
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python API

from apify_client import ApifyClient
import os
client = ApifyClient(os.environ["APIFY_TOKEN"])
run = client.actor("YOUR_USERNAME/sos-scraper").call({
"businessNames": ["Apple Inc", "C0806592"],
"maxItems": 10,
})
items = list(client.dataset(run["defaultDatasetId"]).iterate_items())
print(items)

Reliability notes

BizFile Online can deny ordinary requests or require a CAPTCHA. The Actor makes at most one direct HTTP attempt for a pending query and one browser session per run. It stops on a browser denial, CAPTCHA, proxy failure, or HTTP 429. It uses the owner-configured proxy, or one US Apify residential session when no custom proxy is configured. DataImpulse is not used because its gateway denies this target.

The browser blocks images, fonts, and media. Browser request retries and session rotations are disabled. Live runs use 1 GB by default with a 120-second hard timeout; the Actor starts shutting down after at most 85 seconds. Large batches can return partial data before this deadline. HTTP-only runs avoid browser and proxy traffic. Query names and entity identities are deduplicated before writing or charging.

OUTPUT reports terminal status, stop reason, delivered records, actual custom result-event counts, effective limit, request counts, browser launches, and stage timing. Only a recognized search response with zero rows is EMPTY. Access denials, rate limits, malformed responses, and proxy failures are distinct errors. Valid partial results remain in the dataset. A failed or empty lookup has zero sos-record charges; the platform-managed start fee can still apply.

This actor accesses publicly displayed business-registry information. Users are responsible for complying with the California Secretary of State website terms, applicable laws, privacy obligations, and any downstream data-use restrictions. The data is not certified, and the California Secretary of State is the authoritative source for legal reliance.

FAQ

Why did a run return no records?

The query may have no matching indexed entity, or the target may have returned a valid empty response. Check the OUTPUT warnings and try the registered name or entity number.

Why did a run become blocked?

Imperva can reject a browser session before the JSON search executes. The Actor stops after one public browser session when it sees a denial or CAPTCHA. Approved source or provider access is required if this persists; changing selectors does not repair an access restriction.

Does this download filing PDFs?

No. It is a read-only structured business-search actor. It does not order documents or access authenticated filing workflows.

Can I search all California businesses?

Use a bounded list of names or entity numbers. This actor is designed for targeted lookups and bounded batches; maxItems is capped at 10,000 to keep runtime, load, and billing predictable.

What does the risk score mean?

It is a deterministic mapping of returned status and standing text. It flags records for review; it does not determine legal good standing, solvency, tax compliance, or fraud.