# GetLatka Scraper (`normdata/getlatka-scraper`) Actor

Scrape the GetLatka SaaS database: 72,000+ companies with revenue and its history, growth, funding rounds, lead investors, valuation, employees, customers, CEO and founders with LinkedIn, competitors and CEO interviews. Filter by country, city, industry, revenue, funding and more.

- **URL**: https://apify.com/normdata/getlatka-scraper.md
- **Developed by:** [Norm Data](https://apify.com/normdata) (community)
- **Categories:** Lead generation
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $16.00 / 1,000 company saveds

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

![Norm Data](https://raw.githubusercontent.com/FabriAV/normdata/refs/heads/main/assets/banner_norm2.png)

## 📈 GetLatka Scraper - SaaS Company Revenue & Funding Data

Extract SaaS companies from **GetLatka**, the database by Nathan Latka with **72,000+ software companies** and the revenue their founders shared on camera. For each company you get the **latest revenue (yearly, ARR or run rate), its month, growth from a year earlier, whether it is reported or estimated and where it comes from, Latka Top rank, valuation, market cap, total raised, number of rounds, last round type, amount and month, employees, customers, status (active, acquired, public or shut down), owner, acquisition price and month, industry and every category, city, region, country, year founded, website, LinkedIn, X (Twitter), Facebook, YouTube and Crunchbase**. Each row also has **the CEO with title and LinkedIn, founders, the team with LinkedIn, the full revenue history, every funding round with its lead investors, headcount history, CEO interviews with the figures said on camera and links to the second, and the main competitors with their revenue, funding and size**. Search with **a keyword and 14 filters**, or paste links, and run it on a schedule to get **only new companies**.

### 🎯 Who uses it?

#### 🤝 B2B sales teams selling to SaaS companies

Build lead lists of software companies by revenue, headcount, funding, industry and place, with the CEO's name and LinkedIn on every row.

#### 💼 VC, PE and M\&A analysts

Find SaaS companies in a revenue band, see how fast they grow, how much they raised, who led each round and what they were valued at.

#### 🚀 SaaS founders and operators

Benchmark your revenue, team size and customers against competitors in your category, and read what their CEOs said on camera.

#### 📊 Market researchers

Map a whole software category: who is in it, how big they are, where they are based and who shut down or got acquired.

### ✨ What it does

- **The whole database.** Every company on GetLatka, or only those matching your keyword and filters.
- **14 filters.** Countries, states or regions, cities, industries (1,651 categories), CEO interviewed or not, Latka Top only, revenue range, reported revenue only, funding range, valuation range, employees range, founded range and status. GetLatka applies them itself, like on its own table, so a search reads only the companies that match.
- **History included.** Every row has the full revenue, funding and headcount history, the team, interviews and competitors, at no extra cost.
- **Or paste links.** Company pages, searches copied from the site (with their filters), industry and top industry pages, and country, state or city pages. Filters are not used with links.
- **Monitoring:** run it on a schedule with **Only new companies**, and each run saves only the companies you haven't received yet.

### 🏆 Why this scraper

- **Far more than the revenue figure.** Revenue history, growth, valuation, rounds with lead investors, headcount history, CEO and team with LinkedIn, interviews and competitors.
- **Real filters, applied by the site.** Revenue, funding, valuation, employees, founded year, status and place are filtered by GetLatka itself, and the log shows how many companies match before anything is read.
- **Clean, typed data.** Amounts are numbers in US dollars, months are ISO (2026-07), yes/no fields are true or false, lists are lists. 56 fields, one row per company.
- **Fast.** 1,000 companies in about 25 seconds, the whole database in about 30 minutes.
- **Nothing to set up.** No proxy, no login, no GetLatka account.

### ⚖️ How it compares

| | **This Actor** | [jungle_synthesizer](https://apify.com/jungle_synthesizer/getlatka-saas-company-revenue-directory-scraper) |
| --- | --- | --- |
| Filters | ✅ keyword and 14 filters | ❌ none |
| Paste links (companies, searches, industries, places) | ✅ | ❌ |
| Fields per company | ✅ 56 | 11 |
| Revenue history, growth and estimate or reported | ✅ | ❌ |
| Funding rounds with lead investors and valuation | ✅ | ❌ |
| CEO, founders and team with LinkedIn | ✅ | CEO name |
| CEO interviews and figures said on camera | ✅ | ❌ |
| Competitors | ✅ | ❌ |
| Only new companies (monitoring) | ✅ | ❌ |

Checked on the Apify Store in October 2026.

### 📦 What data you get

| Field | Description |
| --- | --- |
| `imageUrl` | Company logo. |
| `name` | Company name. |
| `description` | What the company does. |
| `status` | Active, Acquired, Public company or Shut down. |
| `owner`, `acquisitionPrice` | Who bought the company and for how much, when acquired. |
| `industry` | Main industry on GetLatka. |
| `city`, `region`, `country` | Headquarters city, state or region, and country. |
| `foundedYear` | Year founded. |
| `ceoName`, `ceoTitle` | CEO name and title. |
| `revenue`, `revenueAsOf`, `revenueGrowthYoY` | Latest yearly revenue in US dollars, the month or year it is from, and growth from a year earlier in percent. |
| `revenueType` | What the revenue figure is: Annual revenue, ARR (said on camera) or Revenue run rate (worked out by GetLatka from what was said). |
| `revenueSource` | Where the latest revenue comes from: the founder on camera, a named public source, or whose estimate it is. |
| `latkaTopRank` | Rank on the Latka Top list of interviewed companies by revenue. |
| `valuation`, `valuationAsOf` | Last known valuation and its month. |
| `marketCap`, `marketCapAsOf` | Public companies: market cap and its month. |
| `totalRaised`, `fundingRoundsCount` | Total funding raised (for public companies, the sum of their rounds; 0 when bootstrapped) and number of rounds. |
| `lastRoundType`, `lastRoundAmount` | Latest funding round: type and amount. |
| `employees`, `employeesAsOf` | Latest headcount and its month. |
| `customers` | Number of customers, as shown on the page or said in an interview. |
| `interviewsCount` | Number of interviews with the CEO or founders. |
| `id` | GetLatka page name of the company (used by monitoring). |
| `revenueIsEstimate` | True when the latest revenue is an estimate, not a reported figure. |
| `interviewed` | True when Nathan Latka interviewed the CEO or a founder. |
| `website` | Company website. |
| `ceoLinkedinUrl` | CEO LinkedIn profile. |
| `linkedinUrl`, `twitterUrl`, `facebookUrl`, `youtubeUrl`, `crunchbaseUrl` | Company LinkedIn, X (Twitter), Facebook, YouTube and Crunchbase pages. |
| `profileUrl` | Company page on GetLatka. |
| `founders` | Founder names. |
| `categories` | Every industry category the company is listed in. |
| `leadInvestors` | Investors that led any of its rounds. |
| `people` | CEO, founders and executives: name, title, GetLatka page and LinkedIn. |
| `revenueHistory` | Every revenue reading: month or year, amount, estimate or not, source and source link (founder figures link to the second of the interview). |
| `fundingRounds` | Every round: month, type, amount, valuation, lead investors, source and source link. |
| `headcountHistory` | Every headcount reading: month or year, employees, source and source link. |
| `interviews` | Interviews: title, month, guest and title, page, video, thumbnail and the figures said (metric, value, number and the link to the second). |
| `competitors` | Main competitors: name, GetLatka page, revenue, funding, employees, customers and year founded. |
| `acquiredAt` | Month the company was bought. |
| `lastRoundDate` | Month of the latest funding round. |
| `lastInterviewDate` | Month of the latest interview. |
| `updatedAt` | Day GetLatka last updated the page. |
| `scrapedAt` | When this row was saved. |

#### Example row (trimmed)

```json
{
  "imageUrl": "https://storage.getlatka.com/images/airslate.com.png",
  "name": "airSlate",
  "description": "airSlate is a Boston-based company that sells document editing, e-signature and legal forms software, mostly to small businesses. It grew out of pdfFiller, the PDF editor Vadim ...",
  "status": "Active",
  "industry": "E-Signature Software",
  "city": "Brookline",
  "region": "Massachusetts",
  "country": "United States",
  "foundedYear": 2008,
  "ceoName": "Vadim Yasinovsky",
  "ceoTitle": "CEO and Co-Founder",
  "revenue": 200000000,
  "revenueAsOf": "2026",
  "revenueType": "Annual revenue",
  "revenueSource": "Vadim Yasinovsky on camera",
  "latkaTopRank": 32,
  "valuation": 1300000000,
  "valuationAsOf": "2022-06",
  "totalRaised": 181500000,
  "fundingRoundsCount": 4,
  "lastRoundType": "Series C",
  "lastRoundAmount": 51500000,
  "employees": 650,
  "employeesAsOf": "2026",
  "customers": 1100000,
  "interviewsCount": 2,
  "id": "airslate",
  "revenueIsEstimate": false,
  "interviewed": true,
  "website": "https://airslate.com",
  "ceoLinkedinUrl": "https://www.linkedin.com/in/clearfweb",
  "linkedinUrl": "https://www.linkedin.com/company/airslate",
  "twitterUrl": "https://twitter.com/airSlate",
  "facebookUrl": "https://www.facebook.com/airSlate/",
  "youtubeUrl": "https://www.youtube.com/c/airSlate",
  "crunchbaseUrl": "https://www.crunchbase.com/organization/airslate",
  "profileUrl": "https://getlatka.com/companies/airslate",
  "founders": ["Vadim Yasinovsky"],
  "categories": ["Autodesk Construction Cloud Integration Partners", "Salesforce AppExchange Apps", "Work Management Software"],
  "leadInvestors": ["G Squared"],
  "people": [{ "name": "Vadim Yasinovsky", "title": "CEO and Co-Founder", "profileUrl": "https://getlatka.com/people/vadim-yasinovsky-airslate.com", "linkedinUrl": "https://www.linkedin.com/in/clearfweb" }],
  "revenueHistory": [{ "asOf": "2008", "revenue": 20000, "estimate": false, "source": "Interview", "sourceUrl": null }],
  "fundingRounds": [
    { "date": "2022-06", "round": "Series C", "raised": 51500000, "valuation": 1300000000, "leadInvestors": ["G Squared"], "source": "Yahoo Finance", "sourceUrl": "https://finance.yahoo.com/news/airslate-completes-51-5-million-130000171.html" }
  ],
  "headcountHistory": [{ "asOf": "2026", "employees": 650, "source": "Vadim Yasinovsky on camera", "sourceUrl": "https://getlatka.com/companies/airslate/interviews/airslate-vadim-yasinovsky-2026/watch#t=210" }],
  "interviews": [
    { "title": "How airSlate Reached $200M Revenue and 1.1 Million Paying Customers (Interview with Vadim Yasinovsky)", "date": "2026-07", "guestName": "Vadim Yasinovsky", "guestTitle": "CEO", "url": "https://getlatka.com/companies/airslate/interviews/airslate-vadim-yasinovsky-2026", "videoUrl": "https://getlatka.com/companies/airslate/interviews/airslate-vadim-yasinovsky-2026/watch", "thumbnailUrl": "https://i.ytimg.com/vi/pouSLsXOzgE/mqdefault.jpg", "figures": [{ "metric": "Revenue", "value": "$200M", "number": 200000000, "watchUrl": "https://getlatka.com/companies/airslate/interviews/airslate-vadim-yasinovsky-2026/watch#t=445" }] }
  ],
  "competitors": [{ "name": "Adobe", "profileUrl": "https://getlatka.com/companies/adobe", "revenue": 23800000000, "funding": null, "employees": 40500, "customers": 37000000, "foundedYear": 1982 }],
  "lastRoundDate": "2022-06",
  "lastInterviewDate": "2026-07",
  "updatedAt": "2026-10-15",
  "scrapedAt": "2026-10-22T01:33:57.909Z"
}
```

### 💡 Use cases

- **Outbound lists:** US SaaS companies with $5M to $50M revenue and 20 to 200 employees, with the CEO's LinkedIn.
- **Deal sourcing:** companies founded since 2020 that raised under $10M but already report revenue.
- **Competitive research:** every company in your industry with revenue, growth, customers and their own competitors.
- **Acquisition tracking:** companies marked acquired, with the owner, or shut down, by industry.
- **Content and podcast research:** CEOs interviewed by Nathan Latka, with the figures they said and links to the exact second.

### ⚙️ How the input is organised

| Section | What it's for |
| --- | --- |
| **Maximum results** | Always first, caps the whole run. Empty means no limit. |
| **What to scrape** | Company name or domain, countries, states or regions, cities, industries, interviewed by Latka and only Latka Top. |
| **Filters** | Revenue from (USD), revenue to (USD), only reported revenue, total raised from (USD), total raised to (USD), valuation from (USD), valuation to (USD), employees from, employees to, founded from (year), founded to (year) and status. |
| **Monitoring** | Only new companies and monitor name. |
| **Links** | Links instead of the fields above. Filters are ignored with links. |

### 💰 Pricing

Pay-per-event: a one-time **$0.003** when the run starts, plus a price per company saved to your dataset. The price depends on your Apify plan tier:

| Your Apify plan | Price per company |
| --- | --- |
| Free | $0.022 |
| Bronze | $0.020 |
| Silver | $0.018 |
| Gold | $0.016 |

The history, team, interviews and competitors are included in that price. Companies left out by filters are free. New Apify accounts start with $5 in free credit. On the Free plan, a run saves up to 10 companies.

### 🚀 Run it

1. Create a free Apify account with $5 in credit.
2. Open the GetLatka Scraper.
3. Pick countries, industries, a revenue range or other filters (or keep them empty for the whole database), then click **Start**.
4. Export the results as CSV, Excel, JSON or XML from the Dataset tab.

### 🤖 Use with AI agents (MCP)

Connect the [Apify MCP server](https://mcp.apify.com) to Claude, ChatGPT, Cursor or any MCP client, then ask in plain words, for example: *"Find CRM software companies in Germany with over $1M revenue on GetLatka, with their CEO's LinkedIn"*. The agent runs this Actor and reads the results.

### 🔧 Troubleshooting

- **The run reads more companies than it saves.** Industries, reported revenue and CEO interviewed are also checked on each company page: the site's own industry filter only knows each company's main industry, and its interview flag misses some interviews. The log shows how many were read. A rare industry with no other filters can take minutes; adding a country, state or city makes it faster.
- **A revenue is an estimate.** Many companies never shared their revenue, so GetLatka shows its own estimate. `revenueIsEstimate` tells them apart and `revenueSource` says where the figure comes from. Use **Only reported revenue** to keep figures from the founders or public sources.
- **A range filter drops a company.** Companies without that figure do not match a range filter. A few company pages do not show the figure GetLatka filtered on, so those are left out too.
- **Valuation looks different from the filter.** The valuation filter works like the site's: market cap for public companies (`marketCap`) and the sale price for acquired ones (`acquisitionPrice`).
- **Employees is empty but the page shows a number.** Some companies show a range like 1 to 3, not a count, so `employees` and `employeesAsOf` stay empty. `headcountHistory` still has every reading.
- **A country, industry or status was skipped.** The log says which value was not one of the site's choices. Pick values from the lists in the input.

### ❓ FAQ

**How many companies are there?** About 72,000 as of October 2026.

**Which currency are amounts in?** US dollars, like on the site. Revenue, funding, valuation and round amounts are plain numbers.

**Does it get emails?** No. GetLatka does not publish emails. You get the website, company LinkedIn, X, Facebook, YouTube and Crunchbase pages, and the LinkedIn of the CEO and team.

**Can I pick several values?** Yes. In each filter, companies matching any of the values you pick are kept. Different filters must all match.

**Do I need a proxy?** No.

### 🛡️ Limits & responsible use

This Actor collects company profiles that GetLatka publishes for everyone, reads only public pages and keeps a moderate pace. People are listed with the public work details shown on the company page. Use the data in line with GetLatka's terms and data protection law (GDPR), and contact companies responsibly.

### 📧 Contact

Questions, bugs or a field you need: norm.data.scrapers@gmail.com

### 🧪 Local development

```bash
bun install
bun scripts/gen-schemas.mjs
sh test/run.sh first '{"maxItems":10,"countries":["united-states"]}'
```

# Actor input Schema

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

Stop after this many companies in total. Leave empty for no limit. The Apify Free plan is always capped at 10.

## `keyword` (type: `string`):

Words in the company name or website, like "crm" or "hubspot.com". Empty = every company.

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

Where the company is based. Empty = anywhere.

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

Like "California", "Texas", "England" or "Ontario". Empty = anywhere.

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

Like "San Francisco", "Austin" or "London". Empty = anywhere.

## `industries` (type: `array`):

Keep companies in any of these industries (main industry or any category on their page). Checked on each company page: with few other filters it reads many pages, so add a country to make it faster.

## `interviewed` (type: `string`):

Companies whose CEO or founder Nathan Latka interviewed (figures said on camera), or only the others.

## `latkaTopOnly` (type: `boolean`):

Keep the about 1,400 interviewed companies ranked by revenue on the Latka Top list.

## `revenueFrom` (type: `integer`):

Keep companies with yearly revenue of at least this amount.

## `revenueTo` (type: `integer`):

Keep companies with yearly revenue of at most this amount.

## `reportedRevenueOnly` (type: `boolean`):

Leave out companies whose latest revenue is an estimate. Keeps figures said by the founder or from a named public source.

## `fundingFrom` (type: `integer`):

Keep companies that raised at least this amount in total.

## `fundingTo` (type: `integer`):

Keep companies that raised at most this amount in total.

## `valuationFrom` (type: `integer`):

Keep companies whose valuation is at least this amount (market cap for public companies, sale price for acquired ones).

## `valuationTo` (type: `integer`):

Keep companies whose valuation is at most this amount (market cap for public companies, sale price for acquired ones).

## `employeesFrom` (type: `integer`):

Keep companies with at least this many employees.

## `employeesTo` (type: `integer`):

Keep companies with at most this many employees.

## `foundedFrom` (type: `integer`):

Keep companies founded in or after this year, like 2020.

## `foundedTo` (type: `integer`):

Keep companies founded in or before this year.

## `statuses` (type: `array`):

Keep companies with any of these statuses. Empty = all.

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

Skip companies saved by earlier runs with the same monitor name.

## `monitorName` (type: `string`):

Runs with the same name share their history. Use a different name for each schedule.

## `startUrls` (type: `array`):

Company pages (https://getlatka.com/companies/airslate), searches copied from the site with their filters (https://getlatka.com/saas-companies?country=germany), industry pages (https://getlatka.com/companies/industries/i-crm-software), top industry pages (https://getlatka.com/companies/top-industries/ai-agents) or location pages (https://getlatka.com/companies/countries/united-states/cities/austin).

## Actor input object example

```json
{
  "maxItems": 10,
  "countries": [
    "united-states"
  ]
}
```

# 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 = {
    "maxItems": 10,
    "countries": [
        "united-states"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("normdata/getlatka-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 = {
    "maxItems": 10,
    "countries": ["united-states"],
}

# Run the Actor and wait for it to finish
run = client.actor("normdata/getlatka-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 '{
  "maxItems": 10,
  "countries": [
    "united-states"
  ]
}' |
apify call normdata/getlatka-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,normdata/getlatka-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/fPcUxyhnjWZb9XN8X/builds/fbksQgCTP1Z8vVCXh/openapi.json
