Iowa SOS Business Entity Search Scraper
Pricing
from $3.00 / 1,000 results
Iowa SOS Business Entity Search Scraper
Search the Iowa Secretary of State's free public business entity database by name or business number. Get business number, legal/DBA name, status, filing type, formation/effective/expiration dates, registered agent, and principal office address.
Pricing
from $3.00 / 1,000 results
Rating
0.0
(0)
Developer
Crawler Bros
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Search the Iowa Secretary of State's free public business entity database. Look up a business by name (contains match) or exact business number and get status, filing type, formation/effective/expiration dates, registered agent name and address, and principal office address. HTTP-only via the public sos.iowa.gov/search/business search — no login required.
Data Source & Usage Notes
- Free, public, no login.
sos.iowa.gov/search/businessis Iowa's own free entity search; no account, API key, or paywall stands between a user and this data. - Originally scoped as a Maryland SDAT (egov.maryland.gov/BusinessExpress) scraper. Maryland's own search form embeds a Cloudflare Turnstile CAPTCHA widget directly in the submit flow — confirmed live via browser automation (the Search button never returns a result after entering a query and clicking Search; the token is required before the form will submit). Per this project's zero-cost-cloud-reliability policy, CAPTCHA-gated sources are replaced rather than fought with a paid solving service. This actor is the replacement: same category (state business-entity registry), no login/CAPTCHA/paid proxy required, and a richer free field set than Maryland's own search (formation/effective/expiration dates, registered agent, principal office address — all confirmed live and populated).
- Result cap. A name search returns at most 25 rows per query on the source's own results page (confirmed live: a 35-hit query for "Amazon" returned exactly 25 rows). This is a genuine source-side limit, not an actor bug — narrow the query for more precise results.
byNamedetail fetch is capped at 10 items regardless ofmaxItems. Each results-page row links to its detail page via aqtoken that is bound to a short server-side TTL on the source (confirmed live: fetching detail pages for a 15-row batch reliably returns HTTP 404 from roughly the 11th row onward, regardless of how the actor paces or parallelizes those requests — 10-row batches never failed across repeated live runs).mode=byNumberis not affected (each lookup is fully independent with its own token) and supports the full 1-25 range.- Not affiliated with the State of Iowa. This is an independent third-party tool using the source's own public, no-login search form.
What this actor does
- Two modes:
byName(contains match, up to 25 results),byNumber(exact business-number lookup, one or more numbers per run) - Full entity detail — automatically follows through from search results to each entity's summary detail page
- Registered agent info — name and full address when on file
- Principal office address — when on file
- Status and filing-type filters — narrow
byNameresults to Active/Inactive and/or Legal entity / Fictitious name (DBA) / Foreign fictitious name (DBA) / Reserved name - Empty fields are omitted
What's NOT included (and why)
- Officers, members, or filing documents. Iowa's free entity search exposes entity-level facts (status, dates, agent, principal address) but not officer/member rosters or scanned filing documents — those require the paid "Fast Track Filing" system, which is out of scope for a free, no-login actor.
- More than 25 results per name search. This is the source's own hard cap on its free results page (confirmed live), not a pagination bug in the actor.
Output per entity
businessNumber— Iowa business numberlegalName— the underlying registered legal entity's namefiledName— the specific filed/DBA name actually matched, when it differs fromlegalName(present forFictitious namerows; omitted forLegalrows, where it would just repeatlegalName)status— e.g.Active,Inactive(of the specific filed name matched, not necessarily the parent legal entity)entityType— filing type of the specific filed name matched:Legal(a registered legal entity),Fictitious name(a DBA/trade name filed against an Iowa legal entity),Foreign fictitious(a DBA/trade name filed against an out-of-state entity), orReserved(a name reservation with no entity formed yet)stateOfIncorporation— 2-letter state/jurisdiction codechapter— Iowa Code chapter/entity-kind description, e.g.CODE 490 FOREIGN PROFITexpirationDate—YYYY-MM-DD, or the literalPERPETUALwhen the entity has no expirationeffectiveDate,filingDate—YYYY-MM-DDnameHistory— array of every name (current and prior) ever filed under this business number, each as{type, status, modified, name}, taken from the source's own "Names" table (confirmed live: some business numbers carry both an Active current name and one or more Inactive prior names)registeredAgentNameregisteredAgentAddress,registeredAgentAddress2,registeredAgentCity,registeredAgentState,registeredAgentZipprincipalOfficeName— name on file for the principal office contact, when present (usually omitted -- most entities have no separate principal-office name on file)principalOfficeAddress,principalOfficeAddress2,principalOfficeCity,principalOfficeState,principalOfficeZipsourceUrl— the entity's own bookmarkablesummary.aspx?q=...detail page when resolved, otherwise the search pagerecordType: "entity",scrapedAt
Input
| Field | Type | Default | Description |
|---|---|---|---|
mode | string | byName | byName / byNumber |
businessName | string | Amazon | Contains-match on business name (mode=byName) |
businessNumbers | array | – | Exact business numbers to look up (mode=byNumber) |
statusFilter | string | any | any / Active / Inactive (mode=byName) |
entityTypeFilter | string | any | any / Legal / Fictitious name / Foreign fictitious / Reserved (mode=byName) |
proxyConfiguration | object | AUTO proxy | Apify proxy config; always datacenter (AUTO), never residential |
maxItems | int | 10 | Hard cap (1–25) |
Example: search by business name
{"mode": "byName","businessName": "Pizza","statusFilter": "Active","maxItems": 10}
Example: lookup by exact business number(s)
{"mode": "byNumber","businessNumbers": ["637709", "699474"]}
Use cases
- Vendor/customer due diligence — confirm a business is Active before signing a contract
- Compliance monitoring — track registered agent and status changes for entities you track
- Lead generation — build lists of Iowa-registered businesses by name pattern or filing type
- Legal & title research — verify formation/effective/expiration dates and registered agent of record
- Company registry enrichment — bulk-append Iowa entity status to an existing business dataset
FAQ
Is this an official State of Iowa product? No. This is an independent tool that uses the Iowa Secretary of State's own free, public, no-login business entity search.
Why does businessName use a "contains" match instead of "starts with"?
That's how the source's own search behaves — confirmed live.
Why is expirationDate sometimes the text PERPETUAL instead of a date?
Iowa's own detail page literally renders PERPETUAL for entities with no expiration date. This is preserved as-is rather than treated as missing data.
Can I look up officers or members? No — Iowa's free entity search does not expose that data; see "What's NOT included" above.