September 22, 2026 · 11 min read
Iowa SOS Business Entity Search Scraper: $5.00 per 1,000 results
Priced at $0.005 per result, this scraper extracts structured public registry data from the Iowa Secretary of State across 64 lifetime runs. It extracts official business numbers, legal names, entity statuses, registered agent details, and principal office addresses. It does not return officer rosters, beneficial ownership, or scanned PDF filing documents. This tool is built for compliance officers, legal analysts, and B2B data teams verifying corporate standing. It is not suitable for users seeking individual member names or corporate filing PDFs.
What does a Iowa SOS Business Entity Search Scraper run cost?
Each result costs $0.005 on the free tier, which is $5.00 per 1,000 results. Starting a run is charged separately at $0.01 per GB of Actor memory.
| Apify plan | Per result | Per 1,000 results |
|---|---|---|
| FREE | $0.005 | $5.00 |
| BRONZE | $0.00433 | $4.33 |
| SILVER | $0.00367 | $3.67 |
| GOLD | $0.003 | $3.00 |
| PLATINUM | $0.003 | $3.00 |
| DIAMOND | $0.003 | $3.00 |
At $5.00 per 1,000 results on the free tier, expense scales strictly by returned records. The maxItems setting and the size of the businessNumbers array have the largest direct effect on total spend. Run a single number in mode byNumber first to verify payload fields before batching larger queries.
How do you run Iowa SOS Business Entity Search Scraper from the API?
The schema marks 2 of its 7 controls as required: mode, proxyConfiguration. The payload below uses the schema's own prefilled values, so it runs as written once you substitute your API token.
Call the synchronous endpoint to start a run and receive dataset items in one request:
curl -X POST "https://api.apify.com/v2/acts/crawlerbros~iowa-sos-business-entity-search-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"mode":"byName","businessName":"Amazon","businessNumbers":[],"statusFilter":"any","entityTypeFilter":"any","proxyConfiguration":{"useApifyProxy":true},"maxItems":10}'
The same run from Python, using the official client:
from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run_input = {
"mode": "byName",
"businessName": "Amazon",
"businessNumbers": [],
"statusFilter": "any",
"entityTypeFilter": "any",
"proxyConfiguration": {
"useApifyProxy": True
},
"maxItems": 10
}
run = client.actor("crawlerbros~iowa-sos-business-entity-search-scraper").call(run_input=run_input)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)
And from Node.js:
import { ApifyClient } from 'apify-client'
const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' })
const input = {
"mode": "byName",
"businessName": "Amazon",
"businessNumbers": [],
"statusFilter": "any",
"entityTypeFilter": "any",
"proxyConfiguration": {
"useApifyProxy": true
},
"maxItems": 10
}
const run = await client.actor('crawlerbros~iowa-sos-business-entity-search-scraper').call(input)
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)
The synchronous endpoint holds the connection open until the run finishes, which is convenient for small batches and wrong for large ones. For anything long running, start the run asynchronously and poll, or attach a webhook, so a dropped connection does not cost you the results.
Which Iowa SOS Business Entity Search Scraper inputs matter, and which can you skip?
The input schema exposes 7 controls, requiring mode and proxyConfiguration. The primary driver is mode, which toggles between byName keyword search and exact businessNumbers lookups. Leave entityTypeFilter and statusFilter set to any on initial runs until scoping requirements are confirmed.
mode(string): What to fetch. Default:"byName".businessName(string): Name or partial name to search for, e.g.Amazon. The source's own search matches names that contain this text, case-insensitive. Default:"Amazon".businessNumbers(array): Exact Iowa business number(s) to look up, e.g.637709. Default:[].statusFilter(string): Only include entities with this status. Leave as "Any" to include both. Default:"any".entityTypeFilter(string): Only include this filing type. "Legal" is a registered legal entity (LLC/Corp/etc); "Fictitious name" is a DBA/trade name filed against an Iowa legal entity; "Foreign fictitious" is a DBA/trade name filed against an out-of-state (foreign) entity; "Reserved" is a name reservation (no entity formed yet). Leave as "Any" to include all. Default:"any".proxyConfiguration(object): Uses Apify's free datacenter (AUTO) proxy group to get a fresh IP if a request is rate-limited by the source. Residential proxy is never used by this actor. Default:{"useApifyProxy":true}.maxItems(integer): Hard cap on emitted records. mode=byNumber supports the full 1-25 range (each lookup is independent). mode=byName is internally capped at 10 regardless of this value -- the source's results-page detail links share a short-lived token that expires before more than ~10 sequential detail-page fetches complete; see README. Default:10.
Fixed-choice controls: mode accepts byName, byNumber; statusFilter accepts any, Active, Inactive; entityTypeFilter accepts any, Legal, Fictitious name, Foreign fictitious, Reserved.
Add one control at a time and compare the accepted, uncertain, and excluded records against the previous sample. A control that increases volume without improving decision quality still bills at $0.005 per result.
What does Iowa SOS Business Entity Search Scraper return?
Output records provide legalName, status, registeredAgentAddress, effectiveDate, and the full nameHistory array. They conspicuously omit officer lists, member names, and filed document scans. This makes the data ideal for verification and entity tracking, but insufficient for executive discovery.
The Actor does not publish a per-field output list, so treat the first run as the specification: collect a small sample and record which fields are present before anything downstream depends on them.
How do you build the workflow end to end?
Open Iowa SOS Business Entity Search Scraper and work through these in order. Each step ends with something to check, so a bad configuration surfaces on a small run rather than a scheduled one.
- Select mode as byNumber and enter a single known Iowa business number in businessNumbers to test proxy connectivity and output field structure.
- Verify that the resulting record contains populated legalName, status, registeredAgentAddress, and stateOfIncorporation fields.
- Switch mode to byName, populate businessName with a targeted query string, and set statusFilter to Active.
- Set entityTypeFilter to Legal if only registered corporations or LLCs are needed, or leave it as any to capture DBAs.
- Keep maxItems set to 10 for byName searches to avoid source-side detail token TTL expiration.
- Execute the run and inspect the returned nameHistory array to confirm historical DBA or legal entity name changes.
- Export the structured dataset to your pipeline, using businessNumber as the primary unique key.
How do you apply it? Three worked playbooks
These are Iowa SOS Business Entity Search Scraper's own documented use cases, each worked through as an operating pattern rather than a description.
Use case 1: Vendor/customer due diligence
Outcome: confirm a business is Active before signing a contract
Configure: Set mode to byName, businessName to the target vendor name, statusFilter to Active, entityTypeFilter to Legal, and maxItems to 10.
Working method: Execute the query against the target vendor name and verify the returned legalName matches the contracting counterparty. Review effectiveDate and expirationDate to confirm corporate standing.
Deliverable: A structured JSON verification snapshot containing the entity status, registration chapter, and legal name.
Stop condition: The returned status is Inactive or the legalName does not match the vendor entity.
Use case 2: Compliance monitoring
Outcome: track registered agent and status changes for entities you track
Configure: Set mode to byNumber, populate businessNumbers with monitored entity registry numbers, and leave proxyConfiguration enabled.
Working method: Execute periodic runs using the static list of Iowa business numbers. Compare current registeredAgentName and principalOfficeAddress values against baseline records in your compliance database.
Deliverable: A differential report highlighting changes in registered agents, addresses, or entity status across monitored businesses.
Stop condition: Any monitored business number returns an Inactive status or modified registered agent address.
Use case 3: Lead generation
Outcome: build lists of Iowa-registered businesses by name pattern or filing type
Configure: Set mode to byName, businessName to an industry keyword, statusFilter to Active, entityTypeFilter to any, and maxItems to 10.
Working method: Search for specific naming patterns or business types. Extract principalOfficeAddress, registeredAgentName, and filedName for outbound qualification.
Deliverable: A lead list of active Iowa commercial entities complete with physical office addresses and agent contacts.
Stop condition: The query yields zero matching entities or returns purely Inactive records.
What breaks, and how do you design around it?
- Test a small, representative input against your acceptance criteria before increasing scope.
The source platform enforces a hard cap of 25 results on web search pages, and byName detail extraction is constrained to 10 items due to short-lived session tokens. When querying large name directories, split searches into narrower substrings rather than increasing maxItems. For exact bulk validation, always switch to mode byNumber to query up to 25 items per run independently.
When should you not use Iowa SOS Business Entity Search Scraper?
Do not use this Actor if your project requires corporate officer names, director rosters, or PDF copies of original filing documents. Iowa's free entity search does not expose governance members or original filing attachments; those records require Iowa's paid Fast Track Filing portal. If your deliverable depends on executive lead lists, use a dedicated commercial registry enrichment API or scrape business networking platforms instead. Furthermore, if you need nationwide business entity resolution, single-state scrapers create maintenance overhead; opt instead for a multi-jurisdiction Secretary of State database provider.
What should you check before trusting the output?
- Halt downstream ingestion if businessNumber is missing or null across any returned record.
- Check that legalName is non-empty for every record where recordType equals entity.
- Validate that expirationDate contains either a valid ISO date format or the exact string PERPETUAL.
- Flag records where status is Inactive during active vendor validation workflows.
- Verify that registeredAgentName and registeredAgentCity are populated when checking compliance requirements.
None of this proves a record is correct. It gives a scheduled Iowa SOS Business Entity Search Scraper run defined points where it should stop instead of quietly passing bad data downstream.
Frequently asked questions
How much does it cost to scrape 1,000 Iowa business entity records?
Scraping 1,000 records costs $5.00 on the free tier, which breaks down to $0.005 per result. Higher tier platform plans reduce this unit cost down to $3.00 per 1,000 results.
Why does mode byName limit results to 10 detail records?
The Iowa SOS web portal uses short-lived URL tokens for search results. Fetching detail pages for larger batches causes subsequent links to expire and return HTTP 404 errors. The Actor caps byName detail fetches at 10 to ensure retrieval reliability.
Does this scraper provide company officer or director names?
No. The public Iowa Secretary of State search does not publish officer or member rosters. It returns entity status, registered agents, filing dates, and principal office addresses. Officer details require Iowa's paid Fast Track Filing service.
Why do some records show PERPETUAL for the expirationDate field?
Iowa corporate filings list PERPETUAL for businesses formed without a predetermined dissolution date. The Actor preserves this raw text verbatim rather than treating it as a missing timestamp.
What is the difference between Legal and Fictitious name in entityType?
Legal indicates a distinct registered corporation or LLC. Fictitious name represents a DBA or trade name filed under an existing legal entity. When an entity is a DBA, the filedName field contains the trade name.
Where to go next
Start with the Iowa SOS Business Entity Search Scraper Actor page for the current input schema, pricing tier, and run history.
If you are comparing approaches rather than committing to one Actor, these category pages list every option we publish:
- Search results scrapers covers 11 Actors in this family.
Readers running Iowa SOS Business Entity Search Scraper commonly pair it with:
- VLR.gg Valorant Esports Scraper Scrape Valorant esports data from VLR.gg - world and regional team rankings, match results, upcoming matches, and tournament events.
- Monday.com Marketplace Scraper Scrape the monday.com App Marketplace, browse featured, trending, editor's choice, and new apps; browse by category; or search for specific apps.
- Boxing Stats Scraper Scrape boxing fighter profiles and fight records using TheSportsDB free API.
- Dev.to Scraper Scrape Dev.to, the popular blogging platform for developers (forem.com).
- OpenAlex Scraper Scrape OpenAlex the free, open catalog of 250M+ scholarly works, authors, institutions, and concepts.
- FBref Football Statistics Scraper Scrape FBref (fbref.com) - the Football Reference site.
- UN Comtrade Scraper Scrape UN Comtrade international trade statistics - bilateral trade flows, commodity data by HS/BEC/SITC codes, import/export values, weights, and quantities for any country pair.
- Google Maps Popular Times Scraper Extract popular times busy-hours histograms and live busyness data from Google Maps places - all 7 days with hourly percentages, current busyness, and typical time spent.
Related guides:
- Vivian Health Jobs Scraper: Build 3 Robust Healthcare Data Playbooks
- United Real Estate Homes for Sale Scraper: 3 Practical Use Cases
- Uganda Business Directory Scraper: 3 Operational Workflows
- Tally (Cactus) DAO Governance Scraper: $5.00 per 1,000 results (2026)
Resources
Actor documentation, input schema, and pricing: verified against the published Actor on 2026-09-22.
Actor last updated by its maintainers on 2026-07-21.
Run outcome figures cover the 30 day public window ending 2026-09-22.
● Featured actors
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.
Run on Apify ↗