# Minnesota Business Registry Scraper (`parseforge/minnesota-business-registry-scraper`) Actor

Scrape Minnesota business filings by name: status, standing, type, filing date, principal office, registered agent and officers. Export to CSV, Excel, JSON or XML.

- **URL**: https://apify.com/parseforge/minnesota-business-registry-scraper.md
- **Developed by:** [ParseForge](https://apify.com/parseforge) (community)
- **Categories:** Lead generation, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 business record scrapeds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

![ParseForge Banner](https://raw.githubusercontent.com/ParseForge/apify-assets/main/banner-v3.webp)

## 🏛 Minnesota Business Registry Scraper

> 🚀 **Export Minnesota business entities in seconds.** Name, file number, status, standing, type, filing date, principal office, registered agent and officers for businesses in the official Minnesota Secretary of State database, with no account and no API key.

The Minnesota Secretary of State publishes its Business Filings database online. This Actor searches it by business name and returns one flat row per filing, with the principal executive office, the registered agent and the officers when you ask for details.

| 🎯 Target Audience | 💡 Primary Use Cases |
| --- | --- |
| Sales and lead generation teams | Find registered Minnesota companies and confirm they are active |
| Lawyers and paralegals | Find the registered agent and principal office of a Minnesota company |
| Banks, KYC and compliance teams | Check existence, type and standing of a counterparty |
| Registered agent services | Track filings by name and status |
| Journalists and researchers | See who is listed on a Minnesota company filing |
| Data teams | Seed or refresh a company table for Minnesota |

### 📋 What the Minnesota Business Registry Scraper does

> 💡 **Why it matters:** a company name alone proves nothing. The Secretary of State filing shows whether the business exists, what it is, and who is listed on it.

- Searches the official Minnesota Business Filings database.
- Search by business name.
- Returns status, standing, business type, filing date and home jurisdiction.
- Optional detail pass adds the principal executive office, the registered agent and the officers with their roles.
- Writes an unbilled error row when the registry refuses or finds nothing.

### 🎬 Full Demo (🚧 Coming soon)

### 📊 Output

Every row is one Minnesota business entity. Minnesota offers name search only in this database. Search by ID, agent or officer is not available.

| Field | Type | Description |
| --- | --- | --- |
| 🏢 `corporateName` | string | Legal name of the entity as the registry prints it |
| 🧾 `corporationType` | string | Entity type, for example corporation or LLC |
| 🔢 `documentNumber` | string | Minnesota file number of the business |
| 📅 `dateFiled` | string | Filing date as printed by the registry |
| 📍 `state` | string | Home jurisdiction, for example MN or DE |
| 🚦 `status` | string | Registry status of the entity |
| ✅ `standing` | string | Standing shown with the status, for example Good Standing |
| 📬 `principalAddress` | object | Principal office address: street, city, state, zip |
| 🧑‍💼 `registeredAgent` | object | Registered agent: name and address |
| 👥 `officers` | array | Officers and managers listed on the filing: role, name and address |
| 🔗 `detailUrl` | string | Link to the filing on mblsportal.sos.state.mn.us |
| 🕒 `scrapedAt` | string | ISO 8601 timestamp of the extraction |
| ❌ `error` | string | Error message on a failed row, null on a real record |

Real records from a run:

```json
[
  {
    "corporateName": "TARGET & BEYOND LLC",
    "corporationType": "Limited Liability Company (Domestic)",
    "documentNumber": "631180100027",
    "dateFiled": "12/20/2012",
    "state": "MN",
    "status": "Active",
    "standing": "In Good Standing",
    "principalAddress": {
      "street": "84 SARATOGA CT",
      "city": "WINONA",
      "state": "MN",
      "zip": "55987-1368"
    },
    "registeredAgent": {
      "name": "(Optional) Currently No Agent",
      "address": "84 Saratoga Ct, Winona, MN 55987, USA"
    },
    "officers": [
      {
        "title": "Manager",
        "name": "Target & Beyond",
        "address": "84 SARATOGA CT, WINONA, MN 55987-1368, USA"
      }
    ],
    "detailUrl": "https://mblsportal.sos.mn.gov/Business/SearchDetails?filingGuid=e4d83ed9-ae4b-e211-bc43-001ec94ffe7f",
    "scrapedAt": "2026-10-23T22:04:29.563Z",
    "error": null
  },
  {
    "corporateName": "Target Brands, Inc.",
    "corporationType": "Business Corporation (Domestic)",
    "documentNumber": "10K-311",
    "dateFiled": "12/14/1998",
    "state": "MN",
    "status": "Active",
    "standing": "In Good Standing",
    "principalAddress": {
      "street": "1000 Nicollet Mall",
      "city": "Minneapolis",
      "state": "MN",
      "zip": "55403-2542"
    },
    "registeredAgent": {
      "name": "C T Corporation System",
      "address": "1010 Dale St N, St Paul, MN 55117-5603, USA"
    },
    "officers": [
      {
        "title": "Number of Shares",
        "name": "1,000",
        "address": ""
      },
      {
        "title": "Chief Executive Officer",
        "name": "Stephen Lee",
        "address": "1000 Nicollet Mall, Minneapolis, MN 55403-2542, USA"
      }
    ],
    "detailUrl": "https://mblsportal.sos.mn.gov/Business/SearchDetails?filingGuid=4845a99a-acd4-e011-a886-001ec94ffe7f",
    "scrapedAt": "2026-10-23T22:04:30.780Z",
    "error": null
  },
  {
    "corporateName": "Target Bunwal Healthcare L.L.C.",
    "corporationType": "Limited Liability Company (Domestic)",
    "documentNumber": "1672435000024",
    "dateFiled": "9/30/2026",
    "state": "MN",
    "status": "Active",
    "standing": "In Good Standing",
    "principalAddress": {
      "street": "",
      "city": "",
      "state": "MN",
      "zip": ""
    },
    "registeredAgent": {
      "name": "Michael Appiah",
      "address": "7447 Egan Dr Ste 100, Savage, MN 55378-2254, USA"
    },
    "officers": [
      {
        "title": "Mailing Address",
        "name": "5748 178th St WLakeville, MN 55044–5191United States",
        "address": ""
      }
    ],
    "detailUrl": "https://mblsportal.sos.mn.gov/Business/SearchDetails?filingGuid=13babe23-18bd-f111-90aa-00155d01c53c",
    "scrapedAt": "2026-10-23T22:04:34.651Z",
    "error": null
  }
]
```

### ✨ Why choose this Actor

- **Official source.** Every row comes from mblsportal.sos.state.mn.us.
- **Registered agent and officers.** Name, address and roles in one row.
- **Standing included.** Status and standing on every row.
- **Honest limits.** Name search only, and the README says so.
- **Clean tables.** Fixed column order, ready for CSV, Excel, JSON or XML.

### 📈 How it compares to alternatives

| | This Actor | Multi-state registry scrapers | Manual lookups |
| --- | --- | --- | --- |
| Minnesota official source | ✅ SOS database | Sometimes | ✅ |
| Status and standing | ✅ | Sometimes | ✅ one at a time |
| Registered agent and principal office | ✅ with details | Rare | ✅ one at a time |
| Officers | ✅ with details | Rare | ✅ one at a time |
| Search by ID or agent | ❌ name only | Varies | ✅ |
| Bulk export to CSV, Excel, JSON | ✅ | ✅ | ❌ |

### 🚀 How to use

1. Create a free Apify account. New accounts get $5 in free credit: [sign up here](https://console.apify.com/sign-up?fpr=vmoqkp).
2. Open the Minnesota Business Registry Scraper and click **Try for free**.
3. Type the business name or part of it.
4. Set the maximum number of businesses you want.
5. Keep **Include full details** on if you need the registered agent, principal office and officers, or turn it off for a faster list.
6. Click **Start** and watch the run log.
7. When the run finishes, open the **Storage** tab and download CSV, Excel, JSON or XML, or pull the same rows through the Apify API.

### 💼 Business use cases

#### Lead generation

Search a company name and keep only active, good standing businesses.

#### Counterparty checks

Confirm a Minnesota business exists and see its type and standing.

#### Legal and service of process

Pull the registered agent and its address.

#### Data enrichment

Match your own company list to the registry by name.

### 🔌 Automating Minnesota Business Registry Scraper

- **Make and Zapier**: run the Actor on a schedule and push new entities into a CRM or a spreadsheet.
- **Slack**: post an alert when a watched business changes status.
- **Airbyte**: sync the dataset into a warehouse and join it to your own customer data.
- **GitHub Actions**: run weekly and commit the CSV so a status history builds itself.
- **Google Drive**: drop each export into a shared folder for the compliance team.
- **Apify Scheduler**: run daily, weekly or hourly with no external tooling at all.

### 🌟 Beyond business use cases

- **Research**: study formation trends and entity types in Minnesota.
- **Journalism**: check who stands behind a company named in a story.
- **Personal**: confirm that a contractor or a landlord is registered and in good standing.
- **Non-profit**: verify the legal status of partner organizations.

### 🤖 Ask an AI assistant about this scraper

Paste this into ChatGPT, Claude or any assistant:

> I am using the Minnesota Business Registry Scraper on Apify. It returns fields such as corporateName, documentNumber, status, standing, dateFiled, registeredAgent and officers. Help me design a workflow that checks a list of Minnesota supplier names against the registry and flags the ones that are not in good standing.

### ❓ Frequently Asked Questions

#### 🔎 Which searches does it support?

Business name only. Minnesota does not offer search by ID, agent or officer in this database.

#### 🌐 Which registry does it read?

The Minnesota Secretary of State Business Filings database at mblsportal.sos.state.mn.us.

#### 📍 Why are some address columns empty?

Addresses and agents come from the filing page and need full details on.

#### 📅 What date format is used?

The registry format, kept as printed.

#### 🔑 Do I need an account or API key for the registry?

No. The Actor reads the public Minnesota registry. There is nothing to sign up for and no key to paste.

#### 🧾 Is this personal data?

The Actor returns business entity records as the registry publishes them: legal name, ID, status, addresses of the business and its registered agent. It does not look anyone up elsewhere and adds nothing to what the registry prints. Use the data in line with the privacy and marketing laws that apply to you.

#### 📦 How many records can I export?

As many as the registry returns for the search, up to 1,000,000 on a paid plan. Free accounts are limited to 10 records per run.

#### 🔀 Can the same entity appear twice?

Not within one run for searches that list entities. Rows are deduplicated on the registry identifier where the registry lists several rows per entity.

#### 🌐 Do I need a proxy?

The default is Apify Proxy with a United States exit, which is enough in most cases. If the registry refuses it, the Actor retries from a residential US exit on its own.

#### 🛑 What happens when the registry does not answer?

The Actor writes one error row that says what went wrong and does not charge for it. A run that finds nothing says so on a row instead of finishing silently empty.

#### 💰 What am I charged for?

One result per business record delivered. Error rows and empty searches are not charged. The price per result is on the Pricing tab of the Actor page.

#### 📤 Which formats can I export?

CSV, Excel, JSON and XML from the Storage tab, or through the Apify API.

### 🔌 Integrate with any app

Every run writes to an Apify dataset you can read over the REST API, stream into a webhook, or export as CSV, Excel, JSON or XML. Apify's integrations cover Make, Zapier, Airbyte, Slack, Google Drive, GitHub, Google Sheets and plain HTTP webhooks, so the rows land wherever your team already works.

### 🔗 Recommended Actors

- [Sunbiz Florida Scraper](https://apify.com/parseforge/sunbiz-florida) for Florida business entities.
- [Texas SOS Business Scraper](https://apify.com/parseforge/texas-sos-business-scraper) for Texas business entities.
- [Delaware Business Search Scraper](https://apify.com/parseforge/delaware-business-search-scraper) for Delaware entities, where many corporations are incorporated.
- [NY Business Entity Scraper](https://apify.com/parseforge/ny-business-entity-scraper) for New York entities.

> 💡 **Pro Tip:** browse the complete [ParseForge collection](https://apify.com/parseforge).

**🆘 Need Help?** [Open our contact form](https://tally.so/r/BzdKgA)

> **⚠️ Disclaimer:** This is an independent tool and is not affiliated with, endorsed by, or connected to the Minnesota Secretary of State. It collects only publicly available data.

# Actor input Schema

## `searchTerm` (type: `string`):

A Minnesota business name or part of it. The registry matches names that contain the text.

## `maxItems` (type: `integer`):

Maximum number of business records to collect. Free users are limited to 10 items, paid users can collect up to 1,000,000.

## `searchType` (type: `string`):

What the search term is matched against.

## `includeDetails` (type: `boolean`):

Open the filing page of each business to add the file number, formation date, principal office, registered agent and officers. One extra request per business; turn it off for a faster name list.

## `proxyConfiguration` (type: `object`):

Proxy used for registry requests. The default is Apify Proxy with United States exit. If the registry refuses it, the Actor retries from a residential US exit by itself.

## Actor input object example

```json
{
  "searchTerm": "Target",
  "maxItems": 10,
  "searchType": "EntityName",
  "includeDetails": true,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyCountry": "US"
  }
}
```

# Actor output Schema

## `overview` (type: `string`):

Key fields in a readable table.

## `fullData` (type: `string`):

Complete dataset with every field.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "searchTerm": "Target",
    "maxItems": 10,
    "searchType": "EntityName",
    "includeDetails": true,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyCountry": "US"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("parseforge/minnesota-business-registry-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "searchTerm": "Target",
    "maxItems": 10,
    "searchType": "EntityName",
    "includeDetails": True,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyCountry": "US",
    },
}

# Run the Actor and wait for it to finish
run = client.actor("parseforge/minnesota-business-registry-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "searchTerm": "Target",
  "maxItems": 10,
  "searchType": "EntityName",
  "includeDetails": true,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyCountry": "US"
  }
}' |
apify call parseforge/minnesota-business-registry-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,parseforge/minnesota-business-registry-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/JCukhglEcTKG8T1Nh/builds/EqMxCWpyt7B7cMpFb/openapi.json
