· 13 min read
Massachusetts Secretary of State Business Search Scraper: Setup, Cost
Each record carries 24 output fields, including entity type, status, registered agent details, principal office addresses, and the full officers list. Searching costs $5.00 per 1,000 results on Apify's free plan, where you can gather up to 1,000 records each month without entering a credit card. It is designed for compliance officers, legal researchers, and analysts validating corporate standing in Massachusetts. It is not for teams needing certified filing document PDFs or stock share details, which the registry omits.
Try it: open Massachusetts Secretary of State Business Search Scraper on Apify, sign in on the free plan and run the prefilled example.
Can you try Massachusetts Secretary of State Business Search Scraper before paying?
Yes. Apify's free plan includes $5.00 of prepaid usage every month and asks for no credit card. At $0.005 per result, that covers up to 1,000 results of Massachusetts Secretary of State Business Search Scraper a month, before run-start charges and platform usage.
The example request further down caps maxItems at 10, so a first run returns at most 10 results and costs at most $0.05 in result charges. That is enough to see the real shape of the data before deciding anything.
Massachusetts Secretary of State Business Search Scraper was last updated on 2026-07-21. It is one of 1,725 Actors CrawlerBros publishes on Apify, which together have 674,853 lifetime public runs and an average rating of 4.63 out of 5 across 416 reviews.
What does it cost to run Massachusetts Secretary of State Business Search Scraper?
Each result costs $0.005 on Apify's free plan, which is $5.00 per 1,000 results. Starting a run is charged separately at $0.005 per GB of Actor memory. Apify also bills the platform usage each run consumes, at the rates of your Apify plan, on top of these charges.
| 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 |
Your choice of input query and the maxItems cap directly drive dataset output size and overall cost. Because each result requires a separate detail-page request, setting maxItems prevents unexpected charges. Setting maxItems to 10 on a first run caps result charges at $0.05, though Apify platform usage and run-start charges apply additionally.
How do you run Massachusetts Secretary of State Business Search Scraper from the API?
The schema marks 1 of its 11 controls as required: mode. 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~massachusetts-sos-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"mode":"byEntityName","entityName":"microsoft","entityMatchMode":"B","individualMatchMode":"B","maxItems":10,"proxyConfiguration":{"useApifyProxy":true}}'
The same run from Python, using the official client:
from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run_input = {
"mode": "byEntityName",
"entityName": "microsoft",
"entityMatchMode": "B",
"individualMatchMode": "B",
"maxItems": 10,
"proxyConfiguration": {
"useApifyProxy": True
}
}
run = client.actor("crawlerbros~massachusetts-sos-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": "byEntityName",
"entityName": "microsoft",
"entityMatchMode": "B",
"individualMatchMode": "B",
"maxItems": 10,
"proxyConfiguration": {
"useApifyProxy": true
}
}
const run = await client.actor('crawlerbros~massachusetts-sos-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 Massachusetts Secretary of State Business Search Scraper inputs matter, and which can you skip?
The mode control dictates search strategy, allowing selection between entity name, individual name, identification number, or filing number modes. Fill in entityName for company searches or lastName when searching by officer name. Most runs only require setting mode and a single matching search term.
mode(string): Which axis of the Massachusetts Corporations Division search to use. Default:"byEntityName".entityName(string): Business/entity name to search for. Default:"microsoft".entityMatchMode(string): HowentityNameis matched against the registry. Default:"B".lastName(string): Officer/registered-agent last name to search for.firstName(string): Officer/registered-agent first name (optional, narrows results).middleName(string): Officer/registered-agent middle name (optional, narrows results).individualMatchMode(string): How the individual's name fields are matched against the registry. Default:"B".identificationNumber(string): The entity's Massachusetts identification number (numeric, commonly 9 digits, e.g.000445089).filingNumber(string): A specific filing/document number within an entity's history (found via that entity's 'View filings' list on its detail page) -- not the entity's own identification number.maxItems(integer): Hard cap on emitted records (each record requires a separate detail-page fetch, so keep this modest). Default:10.proxyConfiguration(object): Used only as an escalation fallback if the source rate-limits the run. The free Apify AUTO (datacenter) group is used -- no paid proxy is required. Default:{"useApifyProxy":true}.
Fixed-choice controls: mode accepts byEntityName (Search by entity/business name), byIndividualName (Search by officer/agent (individual) name), byIdentificationNumber (Lookup by identification number), byFilingNumber (Lookup by filing/document number); entityMatchMode accepts B (Begins with), M (Exact match), F (Full text), S (Soundex (sounds like)); individualMatchMode accepts B (Begins with), M (Exact match), F (Full text), S (Soundex (sounds like)).
What does Massachusetts Secretary of State Business Search Scraper return?
Output datasets provide structured corporate profiles useful for verifying company status, mapping corporate officers, and checking entity registration dates. The output intentionally omits downloadable filing history PDFs and stock share distributions, as these are either gated behind paid official orders or blank in source records.
entityNameentityType- e.g.Domestic Profit Corporation,Foreign Corporation,Domestic Limited Liability CompanyidentificationNumber- Massachusetts identification numberoldIdentificationNumber- legacy identification number, when on filestatus-ActiveorInactive(derived from the presence of an inactivity date)statusReason- the source's own inactivity label (e.g.Date of Involuntary Dissolution by Court Order or by the SOC), when inactivestatusDate-YYYY-MM-DD, when inactivedateOfOrganization-YYYY-MM-DDdateOfRevival-YYYY-MM-DD, when on filecurrentFiscalMonthDay,previousFiscalMonthDay- e.g.12/31principalOfficeAddress(combined) plusprincipalOfficeStreet,principalOfficeCity,principalOfficeState,principalOfficeZip,principalOfficeCountryregisteredAgentName,registeredAgentAddressofficers- array of{ title, name, address }jurisdictionState,jurisdictionCountry,jurisdictionDate- state/country of incorporation and date, when on file (foreign entities only -- domestic MA entities omit this section on the source since they're organized under Massachusetts law by definition)mergedWith- array of{ entityName, date, sourceUrl }, when on file (entities this one absorbed via merger, each linking to that now-inactive entity's own detail page)previousNames- array of{ previousName, date }, when on file (the entity's legal name-change history)publiclyTraded-truewhen the source's own checkbox is checked (omitted, notfalse, when unchecked/unknown)sourceUrl- the entity'sCorpSummary.aspxdetail page URLrecordType: "entity",scrapedAt
These are the documented fields. Optional ones can be empty on a given record, so measure how often each field your deliverable depends on is populated across a real sample before automating the handoff.
How do you build the workflow end to end?
Open Massachusetts Secretary of State Business 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 by specifying byEntityName, byIndividualName, byIdentificationNumber, or byFilingNumber in the input config.
- Populate entityName when running byEntityName, or set lastName for byIndividualName searches.
- Set entityMatchMode or individualMatchMode to B for prefix matches or M for exact string matches.
- Cap maxItems at 10 for your initial test run to control request volume.
- Keep proxyConfiguration set to useApifyProxy: true so the run utilizes Apify AUTO proxy settings.
- Execute the run and review the dataset output to verify entityName and status fields are present.
- Inspect returned officers and registeredAgentName structures to confirm detail pages parsed correctly.
- Adjust maxItems up to the allowed maximum of 100 once data structure choices are verified.
How do you apply it? Three worked playbooks
These are Massachusetts Secretary of State Business Search Scraper's own documented use cases, each worked through as an operating pattern rather than a description.
Use case 1: Due diligence
Outcome: Confirm a counterparty's Massachusetts entity type, status, and registered agent before contracting
Configure: Set mode to "byEntityName", entityName to "MICROSOFT CORPORATION", entityMatchMode to "M", and maxItems to 5.
Working method: Execute an exact entity name query to locate the target corporate entry. Inspect entityType, status, and registeredAgentName in the dataset record to confirm valid corporate standing.
Deliverable: A structured entity record showing legal entity status, registered agent, and principal office address.
Stop condition: The returned entity status is Inactive or entityName fails to match counterparty documentation.
Use case 2: Officer/director research
Outcome: Find every Massachusetts entity a named individual is an officer, director, or registered agent of
Configure: Set mode to "byIndividualName", lastName to "SMITH", firstName to "JOHN", individualMatchMode to "B", and maxItems to 20.
Working method: Execute an individual name search across registered agent and officer filings. Inspect the officers array across returned records to isolate all positions tied to the individual.
Deliverable: A collection of corporate profiles detailing every entity where the person holds an official position.
Stop condition: The officers array yields no matching entries for the specified person across all returned items.
Use case 3: Compliance & KYC
Outcome: Cross-check a business's legal entity name and identification number
Configure: Set mode to "byIdentificationNumber", identificationNumber to "000445089", and maxItems to 1.
Working method: Run a direct entity lookup using the official state identification number. Compare entityName, dateOfOrganization, and jurisdictionState against submitted KYC forms.
Deliverable: A confirmed state registry record containing legal entity details and formation records.
Stop condition: The identification number yields no state record or produces an entity name contradicting submitted files.
What breaks, and how do you design around it?
Keep maxItems set to modest caps up to 100 per run as specified by the input schema. When searching common officer surnames in byIndividualName mode, provide firstName or select exact match mode B or M to narrow results. For bulk company lookups, execute separate runs using identificationNumber rather than broad name queries.
When should you not use Massachusetts Secretary of State Business Search Scraper?
Do not use this Actor if you require official Certificates of Good Standing or certified filing PDFs, which require paid ordering channels on the state site. If your business verification requires coverage outside Massachusetts, select a scraper targeted at that specific jurisdiction, such as Rhode Island Secretary of State Business Search Scraper or Vermont SOS Business Registration Search Scraper. Additionally, skip this tool if you require capital stock details, as those fields are unpopulated on source web pages.
What should you check before trusting the output?
- Verify status resolves to Active or Inactive for every retrieved entity record.
- Ensure statusReason contains text whenever status is reported as Inactive.
- Confirm identificationNumber is present as a string in each returned entity object.
- Check that officers entries contain title, name, and address fields when populated.
- Stop scheduled runs if consecutive executions return zero dataset items for known identification numbers.
None of this proves a record is correct. It gives a scheduled Massachusetts Secretary of State Business 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 retrieve 1,000 business records?
On Apify's free plan, results cost $0.005 each, which equals $5.00 per 1,000 results. Apify's free plan includes $5.00 of monthly usage without requiring a credit card, covering up to 1,000 results before platform usage and run-start fees.
What is the difference between the search match modes?
Match modes control search precision: B (Begins with) matches starting characters, M (Exact match) requires exact string alignment, F (Full text) searches anywhere within the name, and S (Soundex) matches phonetic similarities.
Why does byIndividualName return unexpected entities?
Results return every entity appointment matching the individual's name. Common names return multiple businesses across different individuals; narrow queries by providing firstName or using exact match mode.
Why does byFilingNumber return 0 results for an entity ID?
A filing number identifies one specific filing transaction rather than a company profile. To look up a business using its official state identifier, set mode to byIdentificationNumber instead.
Are results from this scraper legally binding?
No. The scraper retrieves public informational search data. Certified copies or official Certificates of Good Standing require paid requests directly through the Corporations Division.
Where to go next
When you are ready to run it, open Massachusetts Secretary of State Business Search Scraper on Apify; the free plan covers up to 1,000 results a month.
Other Actors we maintain for related data:
- Colorado Secretary of State Business Search Scraper: Search Colorado's official business entity registry by entity name, entity ID, registered agent name, or principal city.
- Mississippi SOS Business Search Scraper: Search the Mississippi Secretary of State's free public business entity database by business name or exact business ID.
- Missouri Secretary of State Business Search Scraper: Search Missouri's free public Business Entity Search (bsd.sos.mo.gov) by business name or registered agent name.
- Rhode Island Secretary of State Business Search Scraper: Search Rhode Island's free public business entity database by entity name, officer name, ID number, filing number, registered agent, address, NAICS code, or purpose.
- Vermont SOS Business Registration Search Scraper: Verify one or more companies against Vermont's Secretary of State Business Registration registry by exact name.
- Hawaii Business Express Scraper: Search Hawaii's free public business registry (DCCA Business Registration Division) by name, exact file number, or record ID.
- Washington SOS Business Search Scraper: Search Washington State's Corporations & Charities Filing System by business name, UBI number, or advanced filters.
- Wisconsin DFI Business Entity Search Scraper: Search Wisconsin's official Corporate Records registry (apps.dfi.wi.gov).
Related guides:
- Mississippi SOS Business Search Scraper: 17 Data Fields per Record
- Florida Sunbiz Business Entity Search Scraper: 3 Practical Use Cases
- Iowa SOS Business Entity Search Scraper: $5.00 per 1,000 results
- Delaware Corporation Entity Search Scraper: 17 Data Fields per Record
Resources
Actor documentation, input schema, and pricing: verified against the published Actor on 2026-09-26.
Actor last updated by its maintainers on 2026-07-21.
Run outcome figures cover the 30 day public window ending 2026-09-26.
Massachusetts Secretary of State Business Search Scraper on Apify
Featured actors
Massachusetts Secretary of State Business Search Scraper
Search the Massachusetts Corporations Division (Secretary of the Commonwealth) business registry by entity name, officer/agent name, or identification number. Get entity type, status, registered agent, principal office address, and officers/directors.
Run on Apify ↗