# Rhode Island Short-Term Rental Registry Bulk Export & Lookup (`scrapebench/rhode-island-short-term-rental-registration-lookup`) Actor

Bulk export of every Rhode Island short-term rental registration (DBR): owner, rental address, status, expiry, registration date, plus the owner's mailing address, email and phone where filed.

- **URL**: https://apify.com/scrapebench/rhode-island-short-term-rental-registration-lookup.md
- **Developed by:** [ScrapeBench](https://apify.com/scrapebench) (community)
- **Categories:** Real estate, Lead generation
- **Security:** Limited permissions
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$0.004 / short-term rental registration

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## Rhode Island Short-Term Rental Registry Bulk Export & Lookup

### Pain points

- The Department of Business Regulation's public search returns registrations as result cards and has no export or download action (checked 2026-11-03), so a town's list means copying cards by hand.
- On 7,932 of the 10,373 registrations (2026-11-03) the result card shows no rental address at all; the address is only on each registration's own detail page, one click per property.
- The registrant's mailing address and the date the rental was first registered are also only on the detail page, and the search has no street-address field (only city, state and ZIP, which match only the registrations whose card shows an address), so 'is this house registered?' cannot be asked of it directly.

### What we solve

- Returns the whole registry in one run: 10,373 registrations on 2026-11-03 (3,684 ACTIVE, 6,689 INACTIVE), filterable by status, town and registrant type.
- Reads each registration's detail page, so every row carries the rental address, the first registration date and, where the registrant filed one, a separate mailing address.
- Looks up a batch of rental street addresses, registration numbers or registrant names in one run and says, free of charge, which ones have no registration.

### Summary

Rhode Island short-term rental registrations from the Department of Business Regulation (DBR) registry in one dataset. Each row has the registration number, the registrant (person, company or trust), the rental's street address and town, ACTIVE/INACTIVE status, expiry date and the date it was first registered. Where the registrant filed them, the row also has a mailing address (34% of active registrations, sometimes out of state), an email (3%) or a phone (rare). On 2026-11-03 the registry held 10,373 registrations, 3,684 of them active. The search cards carry no address for 7,932 of them, so the actor reads each registration's own page. Look up rental addresses, registration numbers or registrant names, or export a whole town or status. Pay only per registration returned.

### Who it's for

- Property managers, cleaners, insurers and STR software vendors prospecting Rhode Island hosts
- Town officials and compliance teams checking listings against the state registry
- Buyers, agents and neighbours checking whether a specific rental address is registered
- Researchers tracking Rhode Island's short-term rental stock by town

### How to use

This actor does two jobs. Run it, then collect results from the run's dataset (export to JSON/CSV/Excel, or pull via the Apify API).

**Get a list (export):** no names, just filters; returns the whole matching list.

```json
{
  "categories": [
    "ACTIVE"
  ],
  "city": "Jamestown",
  "maxResults": 100
}
```

**Check specific rentals (lookup):** put rental street addresses, registration numbers or registrant names in `queries`; **Inputs** below says how each is matched.

```json
{
  "queries": [
    "RE.00638-STR",
    "63 Buoy St",
    "Simplify Real Estate Trust"
  ],
  "maxResults": 5
}
```

See **Inputs** below for every available field.

### What you get

One row per record:

| Field | Description |
|---|---|
| `listing_id` | DBR registration number (e.g. RE.0201549.STR or RE.00638-STR) |
| `name` | Registrant, as the DBR prints it ("Last, First" for most individuals) |
| `street` | Street address of the short-term rental |
| `city` | Town of the rental, as written on the registration |
| `postal_code` | ZIP code of the rental |
| `extras.status` | ACTIVE or INACTIVE |
| `extras.expires` | Registration expiry date |
| `extras.registered` | Date the rental was first registered |
| `extras.entity_type` | INDIVIDUAL, COMPANY, Organization, LLC, ... |
| `extras.mailing_street` | Registrant's mailing (business) street address, where filed |
| `extras.mailing_city` | Mailing city, where filed |
| `extras.mailing_region` | Mailing state, where filed |
| `extras.mailing_postal_code` | Mailing ZIP code, where filed |
| `email` | Registrant email, on the few registrations that show one (125 of 3,684 active) |
| `phone` | Registrant phone, on the very few that show one; phone_e164 has it in +1 format |
| `source_url` | The DBR public search, keyed by registration number |

Sample:

```json
{
  "listing_id": "RE.0201549.STR",
  "name": "Simplify Real Estate Trust",
  "street": "11 Tupelo Trail",
  "city": "Narragansett",
  "region": "Rhode Island",
  "postal_code": "02882",
  "country": "US",
  "category": "Short-Term Rental",
  "categories": [
    "Short-Term Rental"
  ],
  "source": "live",
  "source_url": "https://ridbrprod-search.state-reg-eastern.tylerapp.com/#RE.0201549.STR",
  "extras": {
    "status": "ACTIVE",
    "expires": "2027-02-04",
    "registered": "2026-02-05",
    "entity_type": "Organization",
    "tyler_id": "C228959",
    "mailing_street": "3 Lark Ln",
    "mailing_city": "Norwalk",
    "mailing_region": "Connecticut",
    "mailing_postal_code": "06851",
    "mailing_country": "United States"
  }
}
```

### Inputs

| Field | Required | Type | Default | Description |
|---|---|---|---|---|
| `mode` | no | string | `"auto"` | export: no names, just filters; returns the whole matching list. lookup: put registrant names, registration numbers (RE.00638-STR) or rental street addresses (23 Conanicus Ave; active registrations) in 'queries'. auto picks the mode for you. |
| `query` | no | string | — | One of: registrant names, registration numbers (RE.00638-STR) or rental street addresses (23 Conanicus Ave; active registrations), to look up live. Kept alongside 'queries' for saved tasks. |
| `queries` | no | array | `[]` | One of: registrant names, registration numbers (RE.00638-STR) or rental street addresses (23 Conanicus Ave; active registrations), to look up live. Several values in one run; combined with 'query'. |
| `city` | no | string | — | Only listings in this city. Kept alongside 'cities' for saved tasks. |
| `cities` | no | array | `[]` | Only listings in this city. Several values in one run; combined with 'city'. |
| `entity_type` | no | string | — | Only listings in this entity_type. Kept alongside 'entity_types' for saved tasks. |
| `entity_types` | no | array | `[]` | Only listings in this entity_type. Several values in one run; combined with 'entity_type'. |
| `categories` | no | array | `[]` | Only rows from this registration status (one or more). Available: ACTIVE, INACTIVE. |
| `maxResults` | no | integer | `500` | Per query in lookup mode; per run in export mode. |
| `proxyConfiguration` | no | object | `{"useApifyProxy": false}` | Used for every request to the source; off by default. |

### Pricing (Pay Per Event)

You pay per result (`dataset-item`) — **no charge for empty runs**. Example: **1000 short-term rental registrations** at *$0.004/result* ≈ **$4.00**.

Notices (no match, out of time, source unavailable) are free. Apify platform usage is billed separately per your plan.

### Use cases

- Host lists: every active registration in Newport or Narragansett, with the owner's mailing address where filed.
- Compliance checks: look up a batch of rental addresses and see which have no active registration.
- Absentee-owner outreach: registrations whose mailing address is outside Rhode Island.
- New-host tracking: active registrations first registered in the last 90 days.

### Why this actor

- The whole DBR registry, 10,373 registrations, not one search card at a time.
- Every row has the rental address, including the 7,932 registrations whose search card shows none.
- Address lookup: give a street address, get its registration, which the DBR search cannot do.
- Every filter and lookup takes a list; a batch runs in one go.
- Pay per registration; notices are free.

### Limitations & updates

Covers the Rhode Island DBR short-term rental registry only, not municipal STR permits or listings on Airbnb or Vrbo. Mailing address, email and phone appear only where the registrant filed them. Address lookups check active registrations; use an INACTIVE export for lapsed ones. Data is read live from the DBR search on every run.

### FAQ

**Where does the data come from?**

The Rhode Island Department of Business Regulation's public licence search (the short-term rental registrations it holds under the Real Estate board). The actor reads the search and each registration's detail page live on every run.

**How do I check whether an address is registered?**

Put the street address (e.g. 63 Buoy St) in queries. The actor matches the house number and street words against every active registration and returns the match, or a free no-match notice. An address lookup reads all active registrations, which took about 3 minutes on 2026-11-03; a batch of addresses shares that one read.

**Why do only some rows have a mailing address?**

The mailing (business) address is what the registrant filed, and many filed none. Across all 3,684 active registrations on 2026-11-03, 1,255 (34%) had one. Email and phone are rarer still: 125 showed an email and 5 a phone.

**How do I get only active registrations?**

Put ACTIVE in Registration status (categories). INACTIVE returns registrations that are no longer active, the larger part of the registry (6,689 of 10,373 on 2026-11-03).

**Can I filter by town?**

Yes: city takes one or more towns as written on the registration (Newport, Narragansett, New Shoreham ...). Matching ignores case and punctuation. Some registrations write a village or island name instead of the town (Wakefield, Block Island), so add those spellings too.

**How long does a run take?**

Every run reads the search, plus the detail page of each registration it needs: about 3 minutes for one town's active registrations (Jamestown, 131 rows) and 7.5 minutes for all 3,684 active registrations in the state (measured 2026-11-03). If the run's timeout is reached first, it delivers what it has and adds a free notice saying how many rows are missing their detail page.

**How am I charged?**

One event per registration returned. Notices are free.

### Guides & use cases

Written up on **[scrapebench.dev](https://scrapebench.dev)** — the bench that runs and verifies this actor against the live source every night:

- **How-to:** [How to run Rhode Island Short-Term Rental Registry Bulk Export & Lookup](https://scrapebench.dev/guides/how-to-rhode-island-short-term-rental-registration-lookup/)
- **Use case:** [Newport RI Short-Term Rental Registrations List](https://scrapebench.dev/use-cases/newport-short-term-rentals/)

More actors, coverage and nightly verification results: **[scrapebench.dev](https://scrapebench.dev)**

### Works with AI assistants (MCP)

Callable as an MCP tool, so Claude, Cursor, VS Code Copilot and other MCP clients can run it directly. Grab the config from the [MCP tab](https://apify.com/scrapebench/rhode-island-short-term-rental-registration-lookup/api/mcp) on this page — Apify hosts the server and keeps that snippet current, and OAuth signs you in on first connect, so no API token goes in your config file.

Then just ask:

> "List the active short-term rental registrations in Jamestown, Rhode Island, with each rental address, registration expiry date and the owner's mailing address."

That is categories \['ACTIVE'], city 'Jamestown': 131 registrations on 2026-11-03. Keep maxResults small on a first call. Runs started this way bill exactly like any other run.

### Data & lawful use

This actor collects publicly available information that the Rhode Island Department of Business Regulation publishes for public
lookup — licence records, business listings and the contact details professionals list there.
Some of it identifies individuals (sole proprietors, licence holders, agents), so treat any
names, phone numbers and emails in your results as personal data.

When you run this actor, you decide what is collected and what it is used for, so you are the
controller of that data and we act only as your processor (Apify Standard Actor Contract).
You need a lawful basis for your use, must honour opt-out and deletion requests, and must
follow the marketing rules that apply to you (CAN-SPAM, TCPA, GDPR, CCPA and similar).
Don't use the output for unsolicited bulk messaging, for screening covered by the FCRA, or
for anything the source's own terms forbid.

Your results are stored in your own Apify account. We don't keep a copy of your results and
don't sell or share them.

### Disclaimer

This is an independent tool. It is not affiliated with, endorsed by or sponsored by
the Rhode Island Department of Business Regulation. Names and marks are used only to describe the data source. Records are
provided as published by the source and may be out of date or incomplete. For anything
consequential (hiring, a permit, a legal decision), confirm the record with the issuing
agency. You are responsible for making sure your use complies with applicable law and the
source's terms.

### Need help?

Open an issue on this actor's **Issues** tab and we'll respond there. Bug reports, missing
fields and feature requests are all welcome. Guides and examples: [scrapebench.dev](https://scrapebench.dev).

If you are a person named in this data and want your record removed from our copy, email
apify-help@scrapebench.dev; the source agency remains the official record.

Your run may be used to improve our services. If something looks off, or you want this actor to fit your use better, please share your run data with us: [Apify Console → Settings → Security → Share run data with developers](https://console.apify.com/settings/security). It lets us see exactly what went wrong and keep improving the actor.

# Actor input Schema

## `mode` (type: `string`):

export: no names, just filters; returns the whole matching list. lookup: put registrant names, registration numbers (RE.00638-STR) or rental street addresses (23 Conanicus Ave; active registrations) in 'queries'. auto picks the mode for you.

## `query` (type: `string`):

One of: registrant names, registration numbers (RE.00638-STR) or rental street addresses (23 Conanicus Ave; active registrations), to look up live. Kept alongside 'queries' for saved tasks.

## `queries` (type: `array`):

One of: registrant names, registration numbers (RE.00638-STR) or rental street addresses (23 Conanicus Ave; active registrations), to look up live. Several values in one run; combined with 'query'.

## `city` (type: `string`):

Only listings in this city. Kept alongside 'cities' for saved tasks.

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

Only listings in this city. Several values in one run; combined with 'city'.

## `entity_type` (type: `string`):

Only listings in this entity_type. Kept alongside 'entity_types' for saved tasks.

## `entity_types` (type: `array`):

Only listings in this entity_type. Several values in one run; combined with 'entity_type'.

## `categories` (type: `array`):

Only rows from this registration status (one or more). Available: ACTIVE, INACTIVE.

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

Per query in lookup mode; per run in export mode.

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

Used for every request to the source; off by default.

## Actor input object example

```json
{
  "mode": "auto",
  "queries": [],
  "cities": [],
  "entity_types": [],
  "categories": [],
  "maxResults": 500,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

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

One row per short-term rental registration; notices are free.

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapebench/rhode-island-short-term-rental-registration-lookup").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 = {}

# Run the Actor and wait for it to finish
run = client.actor("scrapebench/rhode-island-short-term-rental-registration-lookup").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 '{}' |
apify call scrapebench/rhode-island-short-term-rental-registration-lookup --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,scrapebench/rhode-island-short-term-rental-registration-lookup"
        }
    }
}
```

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/ZEgsqVbwylHiVILfG/builds/Bh9KxSqHcZ0vWTPCH/openapi.json
