# New Business Registrations: Fresh Company Leads (`italy/new-business-registrations`) Actor

Newly registered companies from official open registers (Connecticut, Colorado, Norway, Finland) in one normalized format. Daily "only new" mode and filters by industry, place and keyword.

- **URL**: https://apify.com/italy/new-business-registrations.md
- **Developed by:** [L Braam](https://apify.com/italy) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.00 / 1,000 company records

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

## New Business Registrations: fresh company leads from official registers

Get **newly registered companies** from official government registers in **one clean, normalized format**: the moment a company appears in the register, you can have it in your CRM, spreadsheet or automation. Run it once, or schedule it daily in **"only new" mode** so you pay only for companies you have not received before.

**Who uses this:** agencies and freelancers (web design, accounting, insurance, payment terminals, bookkeeping software), B2B sales teams, suppliers of office, IT, legal and banking services, market researchers.

### Registers included

| Source code | Register | Contact data in the register | Licence |
|---|---|---|---|
| `US-CT` | Connecticut Secretary of the State (via data.ct.gov) | Email on nearly every record (many are free-mail addresses, dropped by default, see below), NAICS industry, address | Public Domain |
| `US-CO` | Colorado Department of State (via data.colorado.gov) | Address and entity type (no email, no industry) | Public Domain |
| `NO` | Brønnøysundregistrene, Enhetsregisteret (Norway) | Industry (NACE), capital, purpose; email/phone/website for a small share | NLOD 2.0 |
| `FI` | PRH, Finnish Business Information System (YTJ) | Industry (NACE), address; contact data for a small share | CC BY 4.0 |

All records are read live from the official open-data APIs. No login, no scraping of protected pages. More registers can be added on request.

### What you get

One record per company with the same fields for every register: `name`, `legalForm` (normalized: llc, corporation, partnership, cooperative, branch, nonprofit, housing, other), `registrationDate`, `industryCode` (NAICS or NACE) and `industryDescription`, `address`, `status`, `email`, `emailKind` (freemail or business), `phone`, `website` (where the register publishes them), `hasEmail` / `hasPhone` / `hasWebsite` flags, `registryId`, `sourceUrl`, `dataSource` (attribution and licence) and `scrapedAt`.

#### Example record (Connecticut, fictional company)

```json
{
  "source": "US-CT",
  "country": "US",
  "region": "CT",
  "id": "US-CT-0000001",
  "registryId": "0000001",
  "name": "Example Earthworks LLC",
  "legalForm": "llc",
  "legalFormOriginal": "LLC",
  "status": "active",
  "registrationDate": "2026-09-20",
  "industryCode": "238910",
  "industrySystem": "NAICS",
  "industryDescription": "Site Preparation Contractors",
  "address": { "street": "1 Main Street", "city": "Hartford", "postalCode": "06103", "region": "CT", "country": "US" },
  "isForeignEntity": false,
  "formationPlace": "Connecticut",
  "email": "info@exampleearthworks.example",
  "emailKind": "business",
  "hasEmail": true,
  "hasPhone": false,
  "hasWebsite": false,
  "dataSource": "Connecticut Secretary of the State, Business Services Division (Connecticut Business Registry), via data.ct.gov. Public Domain.",
  "scrapedAt": "2026-09-21T08:00:00.000Z"
}
```

### How to use it

1. **One-off list:** choose a register, "Days back" (for example 30) and optional filters, then run.
2. **Daily new-lead feed (the recommended way):** create a saved Task with `onlyNew: true`, a `trackingName` (for example `us-contractors`), your filters, and a daily schedule. Each run returns and charges only companies that are new to that list. Connect the dataset to Google Sheets, Make, Zapier, n8n or a webhook.
3. **Filters:** industry (NAICS or NACE prefixes), legal form, place, postal code prefix, keywords in name/purpose, "must have an email", "only domestic companies".

#### Input example

```json
{
  "sources": ["US-CT"],
  "daysBack": 7,
  "naicsPrefixes": ["238", "236"],
  "requireContact": "email",
  "onlyNew": true,
  "trackingName": "ct-contractors",
  "maxItems": 500
}
```

### Pricing

Pay per result: a small fixed price per returned company (see the pricing box on this page). You are only charged for companies that are actually delivered to the dataset. `maxItems` and your own run spending limit both stop the run immediately.

### Legal notes and responsible use

The data itself comes from open-data portals and APIs that the registers publish for reuse. **What you do with it is your responsibility.** This is general information, not legal advice.

**Licences and attribution**

- Connecticut and Colorado: Public Domain (per the dataset metadata on data.ct.gov and data.colorado.gov). The Actor follows the portals' `Crawl-delay: 1` (one request per second).
- Norway: NLOD 2.0. Credit "Contains data under the Norwegian Licence for Open Government Data (NLOD) distributed by Brønnøysundregistrene". Do not present the data in a misleading way or suggest that the register endorses you. NLOD does not cover personal data without a legal basis to process it.
- Finland: CC BY 4.0. Name the source (PRH / Finnish Business Information System). Do not use PRH or YTJ logos, and do not build a service that looks like the official one.
- Every record carries a `dataSource` field with the wording above. Keep it when you reuse or republish the data.

**Personal data**

- Sole proprietorships, private traders, bankruptcy estates, registered agents and "care of" names are **not** returned. Board members and owners are not returned at all.
- Small companies sometimes register the **private email address of the owner** (for example a Gmail address). Under the GDPR and comparable laws that is personal data. The field `emailKind` marks such addresses as `freemail`. **Business emails only** is ON by default, so such addresses are dropped (the company stays in the result). Switch it off only if you have a lawful basis for processing them. You can also switch off **Include email, phone and website** to receive company data only.
- Finnish and most Norwegian records contain no email; this Actor never adds emails from other sources.

**If you use the data for outreach**

- **EU/EEA (GDPR + national marketing law):** you need a lawful basis (usually legitimate interest), you must inform the people you contact, and you must honour objections. Some countries restrict unsolicited email to individuals, including named business addresses like `first.last@company`. In Norway, marketing email to natural persons needs prior consent; generic company addresses such as `post@company` do not. Sole traders are often treated like individuals.
- **United States (CAN-SPAM):** applies to business email too. Use accurate sender and subject lines, a physical address, and a working opt-out, and honour opt-outs within 10 business days.
- **Colorado:** since Senate Bill 23-037, a solicitation that relates to a Colorado Secretary of State filing must say clearly that it is an advertisement not sent by or affiliated with a government agency, must not look like it comes from an agency or create false urgency, and must give your identity and address. Do not send anything that looks like an official filing notice.
- Do not use the data to send misleading "official" invoices or filing reminders. That is illegal in most places.

This Actor is not affiliated with or endorsed by any register or government.

### Limits and honest notes

- A record appears when the register publishes it. Registers differ in how quickly they update (usually within a day).
- Colorado has no email or industry code. Norway and Finland publish contact data for only a small share of companies, so use them for company data and market analysis rather than for email lists.
- `registrationDate` is the date the company was registered in this register, which is what the date filter and "only new" mode use.
- Maximum period per run: 366 days.
- If a register is down for maintenance, the other registers in the same run still finish and the summary shows the error. If all fail, the run fails and nothing is charged.

### Run summary

Each run stores a `SUMMARY` record with, per register, its status, the number of registrations in the period, how many match your filters, how many were new to you and how many have an email.

### Feedback

Missing a register or a field? Open an issue on the Actor page. Registers with an open licence and a public API are added on request.

# Actor input Schema

## `sources` (type: `array`):

Which official registers to read. Connecticut gives the best leads: nearly every record has an email (free-mail addresses are dropped by default, see below) and an industry code. Colorado has an address only. Norway and Finland have contact details for a small share of companies.

## `daysBack` (type: `integer`):

Companies registered in the last N days (including today). Ignored when you fill in both dates below.

## `dateFrom` (type: `string`):

First registration date, YYYY-MM-DD. Overrides "Days back".

## `dateTo` (type: `string`):

Last registration date, YYYY-MM-DD. Default: today. At most 366 days between the two dates.

## `legalForms` (type: `array`):

Which kinds of entity to return. Default (empty or untouched): companies (LLC, corporation, partnership, cooperative, branch). Add non-profits or housing companies if you want them. Clear all to get everything.

## `includeInactive` (type: `boolean`):

Also return rejected, dissolved or bankrupt registrations. Off by default.

## `onlyDomestic` (type: `boolean`):

Skip branches and companies formed in another state or country.

## `requireContact` (type: `string`):

Only return companies where the register has an email (email), or an email, phone or website (any).

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

Only US records whose NAICS code starts with one of these, e.g. 238 (specialty contractors), 5413 (architecture), 722 (food service). Applies to Connecticut only (Colorado has no industry).

## `naceCodePrefixes` (type: `array`):

Only Norwegian and Finnish records whose NACE code starts with one of these, e.g. 41 (construction), 62 (software), 56 (restaurants).

## `postalCodePrefixes` (type: `array`):

Only companies whose postal code starts with one of these, e.g. 068 or 0150.

## `place` (type: `string`):

Only companies whose city, region or street contains this text (accents ignored), e.g. Stamford, Oslo, Espoo.

## `keywords` (type: `array`):

Only companies where the name, business purpose or industry contains one of these words, e.g. roofing, bakery, software.

## `includeContactDetails` (type: `boolean`):

Turn off to get company data only (flags such as hasEmail stay). Useful if you do not want to process contact data.

## `businessEmailsOnly` (type: `boolean`):

Drops email addresses at free-mail providers (Gmail, Outlook, Yahoo, ...). Those are often private addresses of the owner, which are personal data and are treated more strictly by privacy and marketing law. On by default; the company stays in the result, just without that email. Switch off only if you have a lawful basis for processing such addresses.

## `onlyNew` (type: `boolean`):

Remembers delivered companies between runs (per tracking name) and returns only new ones. Ideal for a daily scheduled run: you only pay for fresh companies. The first run returns everything in the period.

## `trackingName` (type: `string`):

Name of this lead list. Use a different name per scheduled task with different filters, so their memory does not mix. Letters, numbers and dashes.

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

Stops after this many companies. Protects you from unexpected cost.

## `socrataAppToken` (type: `string`):

Free token from Socrata/Tyler for higher rate limits on the Connecticut and Colorado portals. Usually not needed.

## `apiBases` (type: `object`):

Override the register URLs. Leave empty.

## Actor input object example

```json
{
  "sources": [
    "US-CT"
  ],
  "daysBack": 7,
  "legalForms": [
    "llc",
    "corporation",
    "partnership",
    "cooperative",
    "branch"
  ],
  "includeInactive": false,
  "onlyDomestic": false,
  "requireContact": "none",
  "includeContactDetails": true,
  "businessEmailsOnly": true,
  "onlyNew": false,
  "trackingName": "default",
  "maxItems": 100,
  "apiBases": {}
}
```

# Actor output Schema

## `companies` (type: `string`):

All returned companies from the dataset.

## `summary` (type: `string`):

Per register: status, registrations in the period, how many match your filters, how many have an email.

# 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 = {
    "sources": [
        "US-CT"
    ],
    "legalForms": [
        "llc",
        "corporation",
        "partnership",
        "cooperative",
        "branch"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("italy/new-business-registrations").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 = {
    "sources": ["US-CT"],
    "legalForms": [
        "llc",
        "corporation",
        "partnership",
        "cooperative",
        "branch",
    ],
}

# Run the Actor and wait for it to finish
run = client.actor("italy/new-business-registrations").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 '{
  "sources": [
    "US-CT"
  ],
  "legalForms": [
    "llc",
    "corporation",
    "partnership",
    "cooperative",
    "branch"
  ]
}' |
apify call italy/new-business-registrations --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,italy/new-business-registrations"
        }
    }
}
```

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/qPM5b0f8toLqeHdyT/builds/nGhYOT2mV7Zar5l9M/openapi.json
