# Rhode Island Business Registry - Officers, Agents & Filings (`scrapers_lat/rhode-island-corporations-scraper`) Actor

Search Rhode Island's business register by company name, officer, registered agent, street address, NAICS code or stated purpose. Get officers with addresses, agent, principal office, NAICS, purpose, share classes, former and fictitious names, mergers and full filing history.

- **URL**: https://apify.com/scrapers\_lat/rhode-island-corporations-scraper.md
- **Developed by:** [Scrapers Lat](https://apify.com/scrapers_lat) (community)
- **Categories:**
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $13.00 / 1,000 results

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?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Rhode Island Business Registry — Officers, Agents & Filings

Structured company data for **Rhode Island**, straight from the state's official public business
register. Look a company up by name, by the **person** who runs it, by its **registered agent**, by
**street address**, by **NAICS industry code** or by the **words in its filed business purpose** — and
get back what actually matters for KYB, lead generation and diligence: who runs the business, who
its registered agent is, where it really sits, what it says it does, and everything it has ever filed.

**📥 [Input](https://apify.com/scrapers_lat/rhode-island-corporations-scraper/input-schema) · 📤 [Output](https://apify.com/scrapers_lat/rhode-island-corporations-scraper/output-schema) · 💰 [Pricing](https://apify.com/scrapers_lat/rhode-island-corporations-scraper/pricing) · ▶️ [Examples](https://apify.com/scrapers_lat/rhode-island-corporations-scraper/examples)**

Results come back as JSON, CSV, Excel or via API.

***

### Seven ways to find a business

Most registry scrapers give you one search box: the company name. This one gives you seven, and the
five in bold are the ones that turn a registry into a prospecting database.

| Search by | Use it for |
|---|---|
| **Company name** | Begins with, exact match, full text, or sounds like (Soundex) |
| **Officer or director name** | Every Rhode Island company a named person sits on — with their position and their address |
| **Registered agent** | Every company a law firm or agent company represents in the state |
| **Street address** | Every company registered at an address, a building or a street |
| **NAICS industry code** | A whole industry at once — restaurants, contractors, clinics, dispensaries |
| **Business purpose keyword** | Companies whose filed purpose mentions cannabis, solar, logistics, staffing … |
| ID number | Resolving a known Rhode Island ID number straight to its full record |

Pass a **list** of names, agents, addresses, codes or keywords and one run covers every one of them.

#### No paging ceiling

Where other tools stop at the first page, this one takes the complete result set for each search —
thousands of companies for a busy registered agent or a large industry code — and reports in the run
log exactly how many the register held versus how many were collected. Nothing is quietly dropped.

***

### What you get for every business

**Identity**

- Registered name, plus the **exact name of record** and how the register classifies it
- Rhode Island **ID number**
- Entity type (domestic profit corporation, foreign corporation, LLC, LLP, limited partnership,
  non-profit, trust) plus a simplified `entityCategory` you can group on
- Status — active or inactive — and for inactive records **why**: dissolved, revoked, withdrawn,
  cancelled, or merged into another entity, with the date it happened
- Date of incorporation, or of qualification for out-of-state companies, plus the effective date
- Home state and country for out-of-state and foreign companies, with an `isForeign` flag
- The Rhode Island General Laws title the entity was formed under

**What the business actually does**

- **NAICS industry code and its plain-English description**
- The full **statement of purpose** as filed with the state, in the company's own words

**Addresses — split into usable columns**

- Principal office address with street, city, state, ZIP and country as separate fields
- Mailing or specified office address, split the same way
- Registered agent address, split the same way
- Every row is mappable, filterable and ready for a CRM

**People**

- **Registered agent** for service of process, with a flag for whether that agent has resigned
- Every named **officer and director**, each with their title and **their own address** broken into
  street, city, state, ZIP and country
- Convenience columns: CEO, CFO, president, vice president, treasurer, secretary, manager
- A separate list of everyone holding a director title
- Officer count, all officer names and all titles held, ready for filtering and enrichment

**Corporate detail**

- Every class of stock with its series, par value per share, authorised shares and issued shares
- Totals for authorised and issued shares across all classes
- **Every former name** the company has traded under, with the date each name changed
- **Mergers** — companies merged into this one with dates, and the entity it was merged into if it
  no longer exists separately
- **Fictitious names (DBAs)** filed by the company, each with its filing date, so a trading name maps
  back to the legal entity behind it

**Filing history (optional)**

- Every filing on record — annual reports, amendments, mergers, dissolutions, reinstatements,
  conversions, restatements — with its type, year, exact filed timestamp and filing number
- A **direct link to the filed PDF** for each one, plus its page count
- The year of the most recent annual report and the date of the most recent filing of any kind

***

### Filters (you are never charged for filtered-out records)

Narrow before anything counts as a result:

- Active only · inactive only · both
- Specific inactive reasons — dissolved, revoked, withdrawn, cancelled, merged
- Entity category or entity type contains
- Rhode Island entities only, or out-of-state and foreign only, or by home jurisdiction
- City, state, ZIP code, country
- **Incorporated or qualified between two dates** — a ready-made new-company feed
- Name contains · purpose contains · NAICS prefix
- Officer name contains · officer title contains
- Registered agent contains
- **Exclude commercial registered-agent firms**, leaving the companies whose agent is a real person
  at the business — the ones actually worth calling
- Only companies with named officers · only companies with a registered agent
- Only companies that have filed a fictitious name
- Minimum authorised shares

Anything filtered out is discarded before it counts as a result, so you only pay for the records you
actually asked for.

***

### Who is it for

- **Sales and lead generation** — every restaurant LLC formed in Providence in the last 90 days, with
  the manager's name and address
- **KYB and onboarding** — resolve a Rhode Island ID number or name to its legal entity, status,
  registered agent, officers and share structure
- **Registered-agent intelligence** — the full book of business behind any agent or law firm
- **Competitive and industry research** — a whole NAICS code, or every company whose purpose mentions
  your market
- **DBA resolution** — map a trading name back to the company that owns it
- **Corporate research** — trace name changes, mergers and filings back to the original incorporation

***

### How to use it

1. Choose **Search by** — company name, officer, registered agent, address, NAICS, purpose or ID.
2. Fill the matching list field with one or more values.
3. Pick a status scope and any filters you want.
4. Set **Maximum results**, switch on filing history if you need it, and run.
5. Export as JSON, CSV, Excel, XML or an HTML table, or pull it from the Apify API.

***

### FAQ

**Do I pay for a run that finds nothing?**
No. You are charged per delivered business record. Failed runs, empty searches and filtered-out
records are never charged.

**Are contact emails and phone numbers included?**
The state register does not publish business emails or phone numbers, so this actor does not invent
them. What it does give you is the officer, director or agent **name plus their address**, which is
what makes the record actionable.

**Do all companies list officers?**
Corporations almost always do. Limited liability companies in Rhode Island often file without naming
officers, so those records carry the registered agent and the full company detail instead. The
`officerCount` field tells you which is which, and there is a filter to keep only records with named
people.

**Does it cover inactive and dissolved companies?**
Yes — set the status scope to inactive or to both. Inactive records also tell you why the company
left the register and when.

**Can I get the actual filed documents?**
Yes. Switch on filing history and every filing comes back with a direct link to its PDF.

**How current is the data?**
Every record is read live from the public register at run time.

**Do I need a login, cookies or a proxy?**
No. Everything is handled internally.

***

### Related actors

Other company-registry scrapers from scrapers.lat cover Minnesota, Colorado, Florida, New York,
Texas and California-adjacent registries, US federal contractor and SEC filings, professional
licensing boards, and company registers across Europe and Latin America.

***

### Notes on coverage

- Dates are normalised to `YYYY-MM-DD`, timestamps to ISO 8601.
- Only information the register publishes openly is returned.
- Status comes from the register's own active and inactive indexes. A company can be active and
  still show an old revocation date on its file, from a revocation it was later restored from, so
  the status event is reported as its own field rather than overriding the status.
- Records are de-duplicated across searches within a run.
- Results are flushed as they are collected, so a stopped run never loses what it already found.

***

*scrapers.lat is an independent data provider and is not affiliated with, endorsed by, or connected
to the State of Rhode Island or any government agency.*

# Actor input Schema

## `searchMode` (type: `string`):

How to look businesses up. The register can be searched by company name, by a person who is an officer or director, by registered agent, by street address, by NAICS industry code, by the stated business purpose, or by ID number.

## `entityNames` (type: `array`):

One or more company names to look up. Used when Search by = Company name.

## `nameMatchType` (type: `string`):

How company or person names are matched. Begins with is the broadest useful option; Soundex finds names that sound alike.

## `lastNames` (type: `array`):

Last names of officers or directors to look up. Used when Search by = Officer / director name.

## `firstName` (type: `string`):

Optional first name, applied to every last name searched.

## `middleName` (type: `string`):

Optional middle name, applied to every last name searched.

## `registeredAgentNames` (type: `array`):

Registered agent names, e.g. a law firm or a corporate agent company. Returns every business that agent represents in Rhode Island. Used when Search by = Registered agent.

## `agentMatchType` (type: `string`):

How the registered agent name is matched.

## `addresses` (type: `array`):

Street address fragments, e.g. "1027 NEWPORT AVE" or "MAIN ST". Returns every business registered at a matching address. Used when Search by = Street address.

## `naicsCodes` (type: `array`):

Full six-digit NAICS industry codes, e.g. 722511 for full-service restaurants. Partial codes are not accepted by the register. Used when Search by = NAICS industry code.

## `purposeKeywords` (type: `array`):

Keywords that appear in the filed statement of purpose, e.g. CANNABIS, SOLAR, REAL ESTATE. Used when Search by = Business purpose.

## `idNumbers` (type: `array`):

Rhode Island business ID numbers to look up directly, e.g. 000015908. Used when Search by = ID number.

## `statusScope` (type: `string`):

Whether to return active businesses, inactive ones (dissolved, revoked, withdrawn, merged, cancelled), or both.

## `includeFilingHistory` (type: `boolean`):

Also collect every filing on record (annual reports, amendments, mergers, dissolutions) with its date, filing number and PDF link. Adds one extra request per business.

## `maxResults` (type: `integer`):

How many business records to return. Free Apify plans are capped at 10 per run.

## `entityCategories` (type: `array`):

Keep only these categories.

## `entityTypeContains` (type: `string`):

Keep only businesses whose registered type contains this text, e.g. "Foreign" or "Non-Profit".

## `domicile` (type: `string`):

Keep only Rhode Island entities, or only out-of-state and foreign entities qualified to do business there.

## `jurisdictions` (type: `array`):

For out-of-state entities, keep only these home states or countries, e.g. DE, MA, NY.

## `cities` (type: `array`):

Keep only businesses whose principal office or registered agent is in one of these cities.

## `states` (type: `array`):

Keep only businesses whose principal office is in one of these states.

## `zipCodes` (type: `array`):

Keep only businesses whose principal office is in one of these ZIP codes.

## `countries` (type: `array`):

Keep only businesses whose principal office is in one of these countries, e.g. USA, CAN.

## `incorporatedFrom` (type: `string`):

Keep only businesses formed or qualified on or after this date (YYYY-MM-DD). Useful for a newly formed company feed.

## `incorporatedTo` (type: `string`):

Keep only businesses formed or qualified on or before this date (YYYY-MM-DD).

## `nameContains` (type: `string`):

Keep only businesses whose name contains this text.

## `officerNameContains` (type: `string`):

Keep only businesses with an officer or director whose name contains this text.

## `officerTitleContains` (type: `string`):

Keep only businesses that list an officer with this title, e.g. CEO, TREASURER, MANAGER.

## `registeredAgentContains` (type: `string`):

Keep only businesses whose registered agent name contains this text.

## `excludeCommercialAgents` (type: `boolean`):

Drop businesses fronted by a commercial registered-agent company (CT Corporation, CSC, Registered Agents Inc and similar), leaving the ones whose agent is a real person at the business.

## `purposeContains` (type: `string`):

Keep only businesses whose filed statement of purpose contains this text.

## `naicsPrefixes` (type: `array`):

Keep only businesses whose NAICS code starts with one of these, e.g. 72 for accommodation and food services.

## `inactiveReasons` (type: `array`):

Keep only inactive businesses with these reasons, e.g. Dissolved, Revoked Entity, Withdrawn, Cancelled, Merged into an entity of record.

## `requireOfficers` (type: `boolean`):

Drop businesses that list no officers or directors.

## `requireRegisteredAgent` (type: `boolean`):

Drop businesses with no registered agent on file.

## `hasFictitiousNames` (type: `boolean`):

Keep only businesses that have filed at least one fictitious (trading / DBA) name.

## `minAuthorizedShares` (type: `integer`):

Keep only businesses authorised to issue at least this many shares.

## `concurrency` (type: `integer`):

How many business files to open at once. The register throttles bursts, so the actor paces itself automatically; raising this rarely makes a run faster.

## `maxDetailFetches` (type: `integer`):

Safety cap on how many business files are opened while filters are narrowing results down.

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

Optional proxy. The register is reachable without one, so leaving this off is usually fastest.

## `minRequestIntervalMs` (type: `integer`):

Slowest starting pace between requests. The actor widens this on its own whenever the register throttles, so it normally does not need changing.

## Actor input object example

```json
{
  "searchMode": "entityName",
  "entityNames": [
    "HASBRO"
  ],
  "nameMatchType": "beginsWith",
  "agentMatchType": "contains",
  "statusScope": "active",
  "includeFilingHistory": false,
  "maxResults": 10,
  "domicile": "any",
  "excludeCommercialAgents": false,
  "requireOfficers": false,
  "requireRegisteredAgent": false,
  "hasFictitiousNames": false,
  "concurrency": 3,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# 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 = {
    "entityNames": [
        "HASBRO"
    ],
    "maxResults": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapers_lat/rhode-island-corporations-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 = {
    "entityNames": ["HASBRO"],
    "maxResults": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("scrapers_lat/rhode-island-corporations-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 '{
  "entityNames": [
    "HASBRO"
  ],
  "maxResults": 10
}' |
apify call scrapers_lat/rhode-island-corporations-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,scrapers_lat/rhode-island-corporations-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/JE6NYuZqSMqT8JeCK/builds/k8FkokJDUNEqHseYH/openapi.json
