Oregon Company Registry Scraper — SOS Active Businesses avatar

Oregon Company Registry Scraper — SOS Active Businesses

Pricing

from $1.80 / 1,000 company scrapeds

Go to Apify Store
Oregon Company Registry Scraper — SOS Active Businesses

Oregon Company Registry Scraper — SOS Active Businesses

Search Oregon's active business registry by name or registry number, or stream new registrations since a date. Returns normalized records: business name, entity type, registry number, formation date, jurisdiction and registered-agent addresses. Public Socrata API (data.oregon.gov), no proxy needed.

Pricing

from $1.80 / 1,000 company scrapeds

Rating

0.0

(0)

Developer

Vladimir Chernykh

Vladimir Chernykh

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 minutes ago

Last modified

Share

Search every active business registered with the Oregon Secretary of State by name or registry number, or stream new registrations since a date.

The source is Oregon's own public Socrata publication of the business registry (data.oregon.gov, dataset tckn-sxa6 "Active Businesses - ALL"): 1 583 956 rows, a plain JSON API, no cookies, no captcha, no proxy.

What you get

One row per company, in a stable shape — every field is always present, and what Oregon does not publish is null rather than missing.

FieldSourceNotes
name, legalNamebusiness_name
entityTypeentity_typepublished verbatim, never guessed
documentNumber, sourceIdregistry_numberOregon's own registry number
jurisdictionjurisdictionfull state name
formationDateregistry_dateISO 8601; the oldest entity dates to 1850
principalAddressassociated_name_type = PRINCIPAL PLACE OF BUSINESS
mailingAddressassociated_name_type = MAILING ADDRESS
registeredAgent.addressassociated_name_type for the agentname is not published
status—always ACTIVE, see the caveat below

Always null / empty because Oregon does not publish them in this dataset: ein, dbaName, statusDate, dissolutionDate, officers, annualReports, lastEvent.

Three modes

{ "mode": "search", "searchTerms": ["NIKE"], "maxResults": 100 }
{ "mode": "search", "registryNumbers": ["299818"] }
{ "mode": "new", "sinceDays": 7, "maxResults": 500 }

mode: "new" is the one worth scheduling: it returns only companies registered after the previous run and skips everything already delivered, using a cursor in the key-value store. Put the actor on a daily schedule and you get a new-registrations feed instead of paying for the same companies every day.

One row per company, not per source row

This is the part that matters for the price. Oregon's dataset is a table of associated names: a company with both a mailing and a principal address appears as two rows, each carrying one address in address/city/state/zip.

The actor folds those rows by registry_number before saving, so a company with two addresses becomes one record with both addresses filled. maxResults counts companies. The run summary reports sourceRows and mergedRows so the merge is auditable on every run.

Caveat: active businesses only

The dataset is titled "Active Businesses - ALL" and contains no dissolved or inactive entities. That is why status is the constant ACTIVE and dissolutionDate is always null — the absence of a company here means it is not currently registered, not that it never existed. If you need historical entities, this dataset cannot answer that question.

Cost and speed

$2.00 per 1 000 companies ($0.002 per company record). You are charged per company saved to the dataset — not per request, not per page, not per source row.

513 bytes and ~229 ms per source row on the Apify platform, 1000 rows per request. Each saved company is charged once; re-reading a company's second address row is not charged again, because the merge happens before saving.

The economics are possible without a proxy: data.oregon.gov is a public JSON endpoint, so there is no per-request cost to pass on. For mode: "new" a scheduled run typically costs one request and no charge at all when nothing new was registered — the run summary reports charged so you can see it per run.

Input reference

InputDefaultMeaning
modesearchsearch uses the terms/IDs; new returns the incremental feed
searchTerms—case-insensitive substring match on the business name, min 2 chars
registryNumbers—exact Oregon registry numbers, one request each
maxResults100cap on saved companies (this is what you pay for)
sinceDays7first-run lookback for mode: "new"
sinceDate—explicit YYYY-MM-DD start for mode: "new"
maxPagesPerTerm10caps paging per term (1000 rows per page)
includeRawfalseattach the merged source rows
maxConcurrency3parallel requests
requestTimeoutSecs30per-request timeout
proxyConfigurationoffnot needed; kept for unusual network setups

Output

Company records go to the default dataset (see the Companies tab). Run counters — pushed, skippedSeen, companies, sourceRows, mergedRows, requestFailures, truncated, cursor, sourceTotalRows, charged — are stored in the key-value store under SUMMARY.