# BetaList Scraper (`michael.g/betalist-scraper`) Actor

Scrape data on BetaList startups and their makers from the BetaList topics directory. Export scraped data, schedule via API, and integrate with other tools or AI workflows.

- **URL**: https://apify.com/michael.g/betalist-scraper.md
- **Developed by:** [Michael G](https://apify.com/michael.g) (community)
- **Categories:** Lead generation, AI, Automation
- **Stats:** 70 total users, 6 monthly users, 99.4% runs succeeded, 11 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $5.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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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

### What does BetaList Scraper do?

BetaList Scraper allows you to extract valuable data about startups and their makers from [any topic page on BetaList](https://betalist.com/browse): product name, short description, website URL, maker name, maker profile link, and more.

### About BetaList

BetaList is an online platform where users can discover and explore new internet startups. It features over 21,000 startups across 600 categories. The platform serves as a hub for early adopters and provides founders with the opportunity to showcase their startups while receiving initial user feedback.

### Product Data Fields

| Field Name             | Type         | Description                                                 |
|------------------------|--------------|-------------------------------------------------------------|
| ID                     | Integer      | Product id                                                  |
| Url                    | String (URL) | Product URL on BetaList                                     |
| Product Name           | String       | Name of the product                                         |
| Short Description      | String       | One-line description of the product                         |
| Long Description       | String       | Long description of the product                             |
| Website                | String (URL) | Product's website URL                                       |
| Featured Date          | String       | Date when the product was featured                          |
| Topics                 | List         | Categories or topics associated with the product            |

### Maker Data Fields

| Field Name         | Type         | Description                                               |
|--------------------|--------------|-----------------------------------------------------------|
| Maker Name         | String       | Name of the maker                                         |
| Maker Link         | String (URL) | URL to the maker’s BetaList profile or social media page  |
| Maker Identifier   | String       | Unique identifier for the maker                           |

### Why Scrape BetaList?

- **Lead Generation:** identifying startups for potential collaboration or investment.
- **Market Research:** analyzing trends and popular niches in the startup ecosystem.
- **Startup Landscape Analysis:** gain insights into successful strategies and business models.
- **Inspiration:** discover innovative ideas and technologies that can influence your project.
- **User Feedback Collection:** monitor comments and reviews on new products to assess customer interest and satisfaction.

### Example Input

BetaList topic page URL: https://betalist.com/topics/adventure-travel

![Input Example](https://i.imghippo.com/files/hhd9496GN.png)

And here’s the same, just in JSON.:

```json
{
    "maxResults": 100,
    "scrapeMaker": true,
    "url": "https://betalist.com/topics/adventure-travel"
}
````

### Output Sample

The extracted results are organized into a dataset, which you can view in the Storage tab. The data is presented in a table format for easy viewing. Here's an example of some of the output from a previous search:

![Output Sample](https://i.imghippo.com/files/VyZ2819dwk.png)

By clicking on the green Export button, you can download the dataset in XML, CSV, Excel, HTML, or JSON. See an example of a JSON file:

```json
{
    "id": 113921,
    "url": "https://betalist.com/startups/wander-maps",
    "product_name": "Wander Maps",
    "short_description": "Curate a global map of all the restaurants, hikes, hotels, and places.",
    "long_description": "Wander Maps , Curate a global map of all the restaurants, hikes, hotels, and places you want to visit by importing social posts, websites, and videos into Wander.",
    "website": "https://wandermaps.com/",
    "featured_date": "2024-12-26T15:00:00Z",
    "topics": [
      "Travel",
      "Social Travel",
      "Online Travel",
      "Travel & Tourism",
      "Adventure Travel"
    ],
    "maker_name": "AJ",
    "maker_link": "https://betalist.com/@ajbrau",
    "maker_identifier": "@ajbrau"
}
```

### How Do I Use BetaList Scraper?

BetaList Scraper is user-friendly and requires no prior technical expertise. Follow these simple steps to extract data from BetaList:

1. **Enter the BetaList Topic Page URL:** Copy and paste the URL from a BetaList topics page into the scraper's input field.
2. **Select the "Scrape Maker" Option:** Set this option to true if you need information about the maker of the product.
3. **Run the Scraper:** Click the Start button and wait for the data extraction process to complete.
4. Export Your Data: Download your dataset in Excel, CSV, JSON, HTML, or access it via the API.

### How much does BetaList Scraper cost?

This scraper uses the Pay-per-result pricing model, so your costs can be easily calculated: it will cost you **$10 to scrape 1,000 companies**, which is $0.010 per item. Apify provides you with $5 in free usage credits every month on the [Apify Free plan](https://apify.com/pricing?fpr=home), allowing you to **scrape over 50 companies** from the BetaList directory for free using those credits.

For regular data extraction, consider upgrading to the [$29/month Starter plan](https://apify.com/pricing?fpr=home), which can **get you over 2,900 companies every month.**

### Integrations and BetaList Scraper

BetaList Scraper can be connected with almost any cloud service or web app thanks to integrations on the Apify platform. You can integrate with Make, n8n, Zapier, Apollo, Clay, Slack, Airbyte, GitHub, Google Sheets, Google Drive, and [more](https://docs.apify.com/platform/integrations).

### Your feedback

We’re always working on improving the performance of our Actors. If you’ve got any technical feedback for BetaList Scraper or simply found a bug, please create an issue on the actor’s [Issues tab](https://console.apify.com/actors/DfC4STXSc13JYg4Pv/issues) in Apify Console.

# Actor input Schema

## `url` (type: `string`):

BetaList Topic Url.

Go to the [BetaList directory](https://betalist.com/browse), select a Topic, and once you are done, copy the full URL from the address bar and paste it here.

## `scrapeMaker` (type: `boolean`):

If true, the actor will scrape information about a product maker.

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

Maximum number of results to return. Leave empty for no limit.

## Actor input object example

```json
{
  "url": "https://betalist.com/browse/travel-hospitality/adventure-travel"
}
```

# Actor output Schema

## `dataset` (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 = {
    "url": "https://betalist.com/browse/travel-hospitality/adventure-travel",
    "scrapeMaker": false
};

// Run the Actor and wait for it to finish
const run = await client.actor("michael.g/betalist-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 = {
    "url": "https://betalist.com/browse/travel-hospitality/adventure-travel",
    "scrapeMaker": False,
}

# Run the Actor and wait for it to finish
run = client.actor("michael.g/betalist-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "url": "https://betalist.com/browse/travel-hospitality/adventure-travel",
  "scrapeMaker": false
}' |
apify call michael.g/betalist-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=michael.g/betalist-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "BetaList Scraper",
        "description": "Scrape data on BetaList startups and their makers from the BetaList topics directory. Export scraped data, schedule via API, and integrate with other tools or AI workflows.",
        "version": "0.0",
        "x-build-id": "HTCznvWFyhdCggQAx"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/michael.g~betalist-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-michael.g-betalist-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/michael.g~betalist-scraper/runs": {
            "post": {
                "operationId": "runs-sync-michael.g-betalist-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/michael.g~betalist-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-michael.g-betalist-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "url"
                ],
                "properties": {
                    "url": {
                        "title": "Topic URL",
                        "type": "string",
                        "description": "BetaList Topic Url. \n\nGo to the [BetaList directory](https://betalist.com/browse), select a Topic, and once you are done, copy the full URL from the address bar and paste it here."
                    },
                    "scrapeMaker": {
                        "title": "Scrape Maker",
                        "type": "boolean",
                        "description": "If true, the actor will scrape information about a product maker."
                    },
                    "maxResults": {
                        "title": "Maximum Results",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Maximum number of results to return. Leave empty for no limit."
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
