Colorado Business Entities Scraper
Pricing
Pay per event
Colorado Business Entities Scraper
Search and export official Colorado business entity records for verification and recurring registry checks.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Share
Search and export Colorado business entities from the official Colorado Open Data registry.
Use company names, entity IDs, status, type, principal city, registered-agent name, or formation dates to retrieve structured records for verification and recurring registry checks.
The Actor returns entity identifiers, status, formation details, addresses, registered agents, official source-record URLs, and filing-history API links.
What does Colorado Business Entities Scraper do?
Colorado Business Entities Scraper turns the Colorado Department of State's public business-entity dataset into a configurable Apify workflow.
It can:
- search registered entity names with case-insensitive terms;
- look up exact Colorado entity IDs;
- filter by entity status and entity type code;
- filter by principal city;
- search registered-agent person or organization names;
- select entities by formation-date range;
- sort results by name or formation date;
- export up to 10,000 matching records per run;
- link every result to official record and filing-history data.
Results are saved in the default Apify dataset for JSON, CSV, Excel, XML, RSS, and integration-friendly export.
Who is this Colorado registry scraper for?
Compliance and KYB teams can refresh public registration facts before a review.
Sales operations teams can build bounded lists by city, formation date, or current status.
Researchers and analysts can export a reproducible slice of Colorado SOS data without writing SoQL queries.
Developers and data engineers can call the Actor through the Apify API, schedules, webhooks, Make, Zapier, or MCP.
Operations teams can schedule the same filters and compare datasets between runs in their own pipeline.
This Actor does not decide whether a business is trustworthy, licensed, or suitable for a transaction.
Why use this Actor?
- Official source: records come from Colorado Open Data dataset
4ykn-tg5h. - No login: the selected source is a public, keyless JSON API.
- Useful filters: users do not need to learn Socrata query syntax.
- Structured output: addresses and registered-agent details are normalized into objects.
- Stable pagination: results use deterministic ordering and entity-ID deduplication.
- Source traceability: every row includes record, filing-history, dataset, and official-search links.
- Cost-efficient route: direct API requests avoid browser and proxy overhead.
- Fail-closed validation: malformed IDs, dates, filters, and limits stop with a clear error.
What Colorado business entity data is extracted?
| Field | Meaning |
|---|---|
entityId | Colorado Secretary of State entity identifier |
entityName | Registered entity name |
status | Current status published in the open dataset |
entityType | Colorado entity type code, such as DLLC |
jurisdictionOfFormation | Formation jurisdiction reported by the source |
formationDate | Entity formation date |
principalAddress | Published principal address |
mailingAddress | Published mailing address |
registeredAgent | Person or organization name and published addresses |
sourceDatasetUrl | Official dataset page |
sourceRecordApiUrl | Official API query for this entity |
filingHistoryApiUrl | Official transaction-history API query for this entity |
officialBusinessSearchUrl | Colorado SOS business-search page |
retrievedAt | UTC retrieval time |
Some fields are absent when the source does not publish a value.
Getting started
- Open the Actor in Apify Console.
- Enter at least one search filter.
- Keep
maxItemssmall for the first run. - Click Start.
- Open the Dataset tab when the run succeeds.
- Export the rows or connect them to your workflow.
A simple name search:
{"searchTerms": ["APIFY"],"maxItems": 10}
Input parameters
| Input | Type | Description |
|---|---|---|
searchTerms | string[] | Entity-name substrings; any term may match |
entityIds | string[] | Exact numeric Colorado entity IDs |
statuses | string[] | Exact statuses, case-insensitive |
entityTypes | string[] | Exact Colorado entity type codes |
principalCities | string[] | Exact principal cities, case-insensitive |
agentName | string | Substring matched against agent person or organization fields |
formedFrom | YYYY-MM-DD | Inclusive earliest formation date |
formedTo | YYYY-MM-DD | Inclusive latest formation date |
sortBy | string | entityNameAsc, formationDateAsc, or formationDateDesc |
maxItems | integer | Maximum unique entities, from 1 to 10,000 |
All supplied filters from different fields are combined with AND.
Multiple values inside name, ID, status, type, or city fields are combined as alternatives.
Search examples
Find entities containing a company-name term:
{"searchTerms": ["APIFY"],"maxItems": 10}
Look up one exact entity:
{"entityIds": ["20241583107"],"maxItems": 1}
Find recently formed, good-standing Colorado Springs entities:
{"principalCities": ["Colorado Springs"],"statuses": ["Good Standing"],"formedFrom": "2026-07-01","sortBy": "formationDateDesc","maxItems": 25}
Search by registered-agent organization or person name:
{"agentName": "Registered Agent","statuses": ["Good Standing"],"maxItems": 100}
Output example
A representative dataset item has this shape:
{"entityId": "20250001234","entityName": "Sample Mountain Services LLC","status": "Good Standing","entityType": "DLLC","jurisdictionOfFormation": "CO","formationDate": "2025-01-15T00:00:00.000","principalAddress": {"address1": "100 Sample Street","city": "Denver","state": "CO","postalCode": "80202","country": "US"},"registeredAgent": {"fullName": "Sample Registered Agent","organizationName": "Sample Agent Services Inc."},"sourceDatasetUrl": "https://data.colorado.gov/d/4ykn-tg5h","sourceRecordApiUrl": "https://data.colorado.gov/resource/4ykn-tg5h.json?entityid=20250001234","filingHistoryApiUrl": "https://data.colorado.gov/resource/casm-dbbj.json?entityid=20250001234","officialBusinessSearchUrl": "https://www.sos.state.co.us/biz/BusinessEntityCriteriaExt.do","retrievedAt": "2025-01-15T12:00:00.000Z"}
The example values are anonymized; live rows preserve the public source values.
How much does it cost to search Colorado business entities?
The Actor uses pay-per-event pricing:
- a one-time Start charge for each run;
- an Item processed charge for each entity saved to the dataset;
- no separate charge for addresses, agent details, or source links included in that item.
Pricing starts at $0.005 per run and the BRONZE tier is $0.003464 per saved entity.
The per-item rate decreases across Apify usage tiers.
At BRONZE rates:
| Saved entities | BRONZE calculation |
|---|---|
| 1 | start fee + 1 × item rate |
| 25 | start fee + 25 × item rate |
| 100 | start fee + 100 × item rate |
| 1,000 | start fee + 1,000 × item rate |
Multiply the live per-item tier rate by the number of saved entities and add the one-time run fee. Apify rounds billing according to platform rules. Check the live pricing panel before a production run.
Recurring verification workflow
Use a stable filter and Apify schedule to refresh the same registry segment.
A typical flow is:
- run daily or weekly with the required city, status, or agent filters;
- export the dataset through an integration or webhook;
- key records by
entityIdin your database; - compare status, address, agent, and formation fields with the previous snapshot;
- route meaningful differences for review;
- verify consequential decisions against the live official record.
The Actor returns current source records. It does not itself calculate changes or retain a historical snapshot.
Export and integration patterns
Spreadsheet refresh: export the default dataset as CSV or Excel.
Database upsert: use entityId as the stable source key and retrievedAt as collection metadata.
KYB intake: look up a supplied entity ID, then send the typed row to a review queue.
New-registration feed: use formedFrom, formedTo, and formationDateDesc on a schedule.
Agent research: combine agentName with status, city, or date filters.
Filing enrichment: follow filingHistoryApiUrl only when your downstream workflow needs transaction rows.
Run with the Apify API using cURL
curl -X POST \"https://api.apify.com/v2/acts/automation-lab~colorado-entity-search-scraper/runs?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"searchTerms":["APIFY"],"maxItems":10}'
To wait for completion and obtain dataset items in one request, use the Apify synchronous dataset endpoint when the expected run fits its timeout.
Run with JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/colorado-entity-search-scraper').call({principalCities: ['Colorado Springs'],statuses: ['Good Standing'],formedFrom: '2026-07-01',sortBy: 'formationDateDesc',maxItems: 25,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Run with Python
import osfrom apify_client import ApifyClientclient = ApifyClient(os.environ["APIFY_TOKEN"])run = client.actor("automation-lab/colorado-entity-search-scraper").call(run_input={"entityIds": ["20241583107"],"maxItems": 1,})items = client.dataset(run["defaultDatasetId"]).list_items().itemsprint(items)
Use with MCP and AI agents
Claude Code setup
claude mcp add --transport http apify \"https://mcp.apify.com?tools=automation-lab/colorado-entity-search-scraper"
Claude Desktop setup
Add this server to your Claude Desktop MCP configuration:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=automation-lab/colorado-entity-search-scraper"}}}
Cursor setup
Use the same HTTP URL in Cursor's MCP settings and name the server apify.
VS Code setup
Add the same HTTP MCP server URL through your MCP-compatible VS Code extension or workspace configuration.
Example prompts:
- “Look up Colorado entity ID 20241583107 and summarize its current public registry facts.”
- “Export up to 25 good-standing businesses formed in Colorado Springs since 2026-07-01.”
- “Find Colorado entities whose registered name contains APIFY and return their filing-history links.”
Treat agent-generated interpretations as assistance, not legal or compliance conclusions.
Pagination, retries, and performance
The Actor requests up to 1,000 rows per API page and stops as soon as maxItems unique records have been saved.
It retries network errors, rate limits, and temporary server failures up to three times with exponential backoff and jitter.
It does not retry malformed input, stable client errors, unexpected response formats, or schema bugs.
The implementation uses a direct HTTP API and requires no proxy configuration.
A 256 MB memory allocation is normally sufficient for the bounded page size.
Limits and source freshness
- Maximum output is 10,000 entities per run.
- At least one search filter is required to prevent accidental full-registry exports.
- Name and agent searches are substring matches.
- City, status, and type filters are exact after case normalization.
- Entity type values are source codes, not expanded legal advice.
- The open dataset controls update timing and field availability.
- A filing-history URL is provided, but filing transactions are not copied into the default entity row.
- This Actor does not scrape documents, images, certificates, or paid filings.
- This Actor does not infer owners, beneficial owners, licenses, or good reputation.
Empty results and errors
A successful run with zero records means no current source row matched all supplied filters.
If a known entity is missing:
- verify that the ID contains digits only;
- remove other filters that may exclude it;
- try the exact ID in the official business search;
- check whether the open dataset is temporarily delayed.
A failed run preserves a non-zero status and logs the validation or upstream error.
Data quality tips
Use entity IDs instead of names when you need deterministic lookup.
Store the original entityType code rather than guessing a legal structure.
Expect address capitalization and city formatting to reflect source data.
Do not assume all registered agents are people; organizationName may be the only name field.
For time-sensitive verification, follow the source links and review the live official record.
Responsible and legal use
Colorado business registration records are public government data, but public availability does not remove all obligations.
Use the data for lawful purposes and follow applicable privacy, consumer-protection, anti-discrimination, marketing, and record-retention rules.
Do not use the Actor to harass registered agents or individuals whose addresses appear in public filings.
Do not represent the output as legal advice, certification, sanctions screening, ownership proof, or a complete due-diligence decision.
Review the source's terms and attribute Colorado Open Data where your use requires it.
Troubleshooting
The run says that a search filter is required.
Add searchTerms, entityIds, a status/type/city filter, agentName, or a formation-date bound.
The API returned HTTP 429 or 5xx.
The Actor retries temporary failures automatically. If all attempts fail, wait before rerunning rather than starting many concurrent runs.
I received fewer records than maxItems.
maxItems is a ceiling. The source may have fewer rows matching the combined filters.
A field is missing from one row.
Source records are not uniform. Optional addresses, agent components, and formation fields are omitted when unavailable.
Can I search filing text?
No. This Actor searches current business entity records and provides a filing-history API link for each entity.
FAQ
Is this an official Colorado government Actor?
No. It is an independent Apify Actor that reads the official public Colorado Open Data API.
Does it need a Colorado SOS account?
No. The selected open-data endpoint is keyless.
Does it support fuzzy company matching?
It supports case-insensitive substring matching, not similarity scoring or identity resolution.
Can it find newly formed businesses?
Yes. Set formedFrom, optionally add a city/status/type filter, and sort by formationDateDesc.
Does it monitor changes automatically?
Apify can schedule runs, but change comparison belongs in your downstream database or automation.
Are results complete in real time?
No. Results reflect the open dataset at retrieval time and may lag the live filing system.
Are registered-agent fields always present?
No. The Actor returns them only when included in the source row.
What identifies a duplicate?
The Actor deduplicates rows by entityId within each run.
Related Automation Lab Actors
Use SEC EDGAR Filings Scraper when you need US federal public-company filing data rather than Colorado state registration records.
Use Delaware Corporations Search Scraper for comparable official state-registry checks in Delaware.
Choose this Actor when the job is a focused, official Colorado business-entity lookup or recurring Colorado registry export.