# Georgia Secretary of State Business Search (unofficial) (`civicfeeds/ga-new-business-filings`) Actor

Search Georgia Secretary of State corporate records: entity name, registered agent, officer, control number, plus new LLC and corporation filings by date for lead generation. Returns filing date, status, type, agent, officers. Unofficial; not affiliated with the Georgia Secretary of State.

- **URL**: https://apify.com/civicfeeds/ga-new-business-filings.md
- **Developed by:** [Joshua Budd](https://apify.com/civicfeeds) (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 $5.00 / 1,000 business 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

## Georgia Secretary of State Business Search & New Business Filings Scraper

> **Unofficial tool.** This actor is not affiliated with, endorsed by, or
> sponsored by the Georgia Secretary of State. It is an independent tool that
> retrieves public records from the state's public business search portal
> (ecorp.sos.ga.gov).

Get **Georgia new business leads** and run **KYB (Know Your Business) checks in
Georgia** straight from the official source: the Georgia Secretary of State
Corporations Division business registry (ecorp.sos.ga.gov). This actor is a
**Georgia Secretary of State business search API**: give it a company name,
registered agent, officer, or control number, and it returns clean, structured
JSON records; or run it in **new-filings mode** to discover the newest LLC and
corporation registrations in Georgia for lead generation.

### What data does this Georgia business search return?

Each result is one structured record of Georgia corporate registry data:

| Field | Example |
| --- | --- |
| `entityName` | `PEACHTREE CONSULTING & SALES, LLC` |
| `controlNumber` | `07082195` |
| `filingDate` | `10/2/2007` (Date of Formation / Registration Date) |
| `status` | `Active/Compliance`, `Admin. Dissolved`, ... |
| `entityType` | `Domestic Limited Liability Company` |
| `registeredAgent` | `Hendrick III, Frank O` |
| `registeredAgentAddress` | `3282 Northside Parkway Suite 250, Atlanta, GA, 30327, USA` |
| `principalAddress` | `3562 LANGLEY OAKS COURT, MARIETTA, GA, 30067, USA` |
| `officers` | `[{ "name": "...", "title": "CEO", "address": "..." }]` (when listed) |
| `naicsCode` | `Professional, Scientific, and Technical Services` |
| `stateOfFormation` | `Georgia` |
| `lastAnnualRegistration` | `2008` |
| `dissolvedDate` | `09/15/2010` (when applicable) |
| `businessPurpose` | `NONE` or stated purpose |
| `detailUrl` | Link to the entity's page on ecorp.sos.ga.gov |

### Use cases

- **Georgia new business leads**: new LLC and corporation filings are the
  warmest B2B leads that exist; every new entity needs banking, insurance,
  bookkeeping, marketing, web design, phones, and office space.
- **KYB Georgia / business verification**: verify a Georgia company exists, is
  active, and who its registered agent is before onboarding a vendor,
  customer, or counterparty. Works as an MCP tool for AI-agent KYB flows.
- **Registered agent intelligence**: map which agents represent which
  entities.
- **Due diligence and OSINT**: officer names, principal addresses, filing
  history for research on Georgia companies.

### How to search Georgia Secretary of State business records

1. Create a free Apify account (no credit card needed).
2. Open the Actor page and click **Try for free**.
3. Pick a `searchMode`: `entityName` for a Georgia LLC lookup or company
   search, `registeredAgent` / `officer` for people-centric searches,
   `controlNumber` for an exact lookup, or `newFilings` for the newest
   Georgia business registrations.
4. Click **Start**. When the run finishes, open the **Dataset** tab and
   export the records as JSON, CSV, Excel, XML or RSS.
5. Optional: add a **Schedule** to run `newFilings` mode daily and wake up
   to a fresh list of new Georgia business leads every morning.

### Input

```json
{
    "searchMode": "entityName",
    "searchTerm": "peachtree consulting",
    "searchCriteria": "Contains",
    "maxResults": 25,
    "fetchDetails": true
}
```

Search modes:

- `entityName` - search by business name (`StartsWith` / `Contains` / `ExactMatch`)
- `registeredAgent` - find every entity a registered agent represents
- `officer` - search by officer name
- `controlNumber` - exact lookup of one entity by control number
- `newFilings` - **the lead-gen mode**: discovers the newest Georgia
  registrations by walking the state's sequential control numbers
  (2-digit year + 6-digit sequence) backwards from the newest filing.
  Optionally seed it with `startControlNumber` to resume from a known point,
  e.g. run it daily and start from yesterday's newest number.

```json
{
    "searchMode": "newFilings",
    "maxResults": 50,
    "statusFilter": "Active",
    "fetchDetails": true
}
```

Other options: `statusFilter` (keep only records whose status contains the
text), `fetchDetails` (visit each entity's detail page for filing date,
agent address, NAICS, and officers), `requestDelaySecs` (politeness delay,
default 3s).

#### Proxy (`proxyConfiguration`)

Optional, **off by default**. Search-only runs (`fetchDetails: false`) pass
Cloudflare fine without any proxy, so most runs need nothing here. Detail
pages sit behind a stricter Cloudflare managed challenge that can be slow or
time out; if you fetch full details at scale and see challenge timeouts,
select the Apify **RESIDENTIAL** proxy group in this field for reliable
detail fetching. The proxy traffic is billed against **your own Apify plan's
proxy allowance** (a datacenter proxy adds nothing here, so do not bother
with it).

### Output example

```json
{
    "entityName": "PEACHTREE CONSULTING & SALES, LLC",
    "controlNumber": "07082195",
    "entityType": "Domestic Limited Liability Company",
    "status": "Admin. Dissolved",
    "filingDate": "10/2/2007",
    "principalAddress": "3562 LANGLEY OAKS COURT, MARIETTA, GA, 30067, USA",
    "registeredAgent": "Hendrick III, Frank O",
    "registeredAgentAddress": "3282 Northside Parkway Suite 250, Atlanta, GA, 30327, USA",
    "registeredAgentCounty": "NONE",
    "stateOfFormation": "Georgia",
    "lastAnnualRegistration": "2008",
    "officers": [],
    "detailUrl": "https://ecorp.sos.ga.gov/BusinessSearch/BusinessInformation?businessId=1296074&businessType=Domestic%20Limited%20Liability%20Company",
    "source": "Georgia Secretary of State, ecorp.sos.ga.gov",
    "scrapedAt": "2026-09-28T23:59:59.000Z"
}
```

### How much does Georgia business registry data cost?

Pay per event: you are charged a small fee per business record delivered.
No subscriptions, no minimums; 50 leads costs cents.

### Georgia business search API: integrate with code or AI agents (MCP)

Call this Actor from any language with the Apify API and use it as a
**Georgia Secretary of State business search API**.

JavaScript (apify-client):

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

const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('civicfeeds/ga-new-business-filings').call({
    searchMode: 'newFilings',
    maxResults: 50,
    statusFilter: 'Active',
    fetchDetails: true,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
```

Python (apify-client):

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("civicfeeds/ga-new-business-filings").call(run_input={
    "searchMode": "entityName",
    "searchTerm": "peachtree consulting",
    "searchCriteria": "Contains",
    "maxResults": 25,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item["entityName"], item["status"], item["registeredAgent"])
```

**MCP for AI agents.** Every Apify Actor is also an MCP (Model Context
Protocol) tool. Point your agent (Claude, Cursor, or any MCP client) at
`https://mcp.apify.com` with your Apify token and it can run Georgia KYB
checks or pull new business filings on demand inside agent workflows.

Apify integrations also connect runs to **Google Sheets, Make, Zapier,
Slack and webhooks**, and Schedules let you run new-filings discovery
daily without writing any code.

### Compliance

This actor returns **public corporate records** published by the Georgia
Secretary of State. These filings are public records under the Georgia Open
Records Act (O.C.G.A. 50-18-70 et seq.). It contains no consumer information.

**This data is NOT a consumer report and must NOT be used for tenant
screening, employment screening, credit decisions, insurance eligibility, or
any other purpose regulated by the Fair Credit Reporting Act (FCRA).** Use it
for business verification (KYB), B2B lead generation, and corporate research
only.

**GDPR**: if you collect personal data with this tool (for example officer or
registered agent names), you, the end user, are the data controller for that
data. EU users are responsible for establishing their own lawful basis for any
processing of personal data.

The actor is polite by design: low request rates, realistic delays, a single
session, and no parallel hammering of the state portal.

**Operating rule**: this actor respects targeted revocation. If the target
site issues a cease-and-desist or otherwise individually revokes access,
access folds: the actor will be paused and reassessed immediately.

### FAQ

**Is there an official Georgia Secretary of State API?** The state does not
offer a public search API for the business registry. This actor fills that
gap by returning the same public records anyone can view on
ecorp.sos.ga.gov, delivered as structured JSON.

**Is it legal to scrape the Georgia business registry?** The records are
public filings under the Georgia Open Records Act, retrieved at a polite
request rate. See the Compliance section above, including the FCRA
restriction on how the data may be used.

**How do I get new Georgia LLC filings every day?** Schedule the actor to
run daily in `newFilings` mode. Optionally pass `startControlNumber` from
the previous run to pick up exactly where you left off.

**Can I export to CSV, Excel or Google Sheets?** Yes. Apify datasets export
to JSON, CSV, Excel, XML and RSS, and integrate with Google Sheets, Make,
Zapier and webhooks.

### Keywords

Georgia new business leads, Georgia Secretary of State business search API,
Georgia business entity search, KYB Georgia, Georgia LLC lookup, Georgia
corporation search, new LLC filings Georgia, Georgia registered agent search,
Georgia business registry data, ecorp.sos.ga.gov scraper.

# Actor input Schema

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

How to find records. `entityName` searches by business name; `registeredAgent` searches by registered agent name; `officer` searches by officer name; `controlNumber` looks up one entity by its control number; `newFilings` walks control numbers backwards from a starting control number to discover the newest registrations (Georgia control numbers are assigned sequentially, so this yields new-business leads).

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

The business name, agent name, officer name, or control number to search for. Required for every mode except `newFilings`.

## `searchCriteria` (type: `string`):

How the search term is matched (name-based modes only).

## `startControlNumber` (type: `string`):

Control number to start walking backwards from in `newFilings` mode. Leave empty to let the actor discover a recent control number automatically. Georgia control numbers are 8 digits: 2-digit year + 6-digit sequence (e.g. 26123456).

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

Stop after this many records have been pushed to the dataset.

## `statusFilter` (type: `string`):

Only output entities whose status contains this text (e.g. `Active`). Leave empty for all statuses.

## `fetchDetails` (type: `boolean`):

Visit each entity's detail page to capture filing date, registered agent, principal address, and officers. Turning this off is faster and cheaper but returns only the search-results columns (name, control number, type, status).

## `requestDelaySecs` (type: `integer`):

Politeness delay between page loads. Minimum 3 seconds to respect the state portal.

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

Optional. If detail pages time out on Cloudflare challenges, select Apify RESIDENTIAL proxy (uses your plan's proxy allowance) for reliable detail fetching. Search-only runs pass Cloudflare without any proxy, so the default is off.

## Actor input object example

```json
{
  "searchMode": "entityName",
  "searchTerm": "peachtree",
  "searchCriteria": "Contains",
  "maxResults": 25,
  "fetchDetails": true,
  "requestDelaySecs": 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 = {
    "searchTerm": "peachtree",
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("civicfeeds/ga-new-business-filings").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": "peachtree",
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("civicfeeds/ga-new-business-filings").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": "peachtree",
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call civicfeeds/ga-new-business-filings --silent --output-dataset

```

## MCP server setup

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

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/cEB2OldMJqzvgxdNs/builds/m8PBncusO4GucMjUC/openapi.json
