# SaaS Launch Monitor (`datapilot/saas-launch-monitor`) Actor

Discover  Show HN startup launches from Hacker News with keyword-based search. This scraper extracts product names, creators, launch dates, points, comments, website URLs, and Hacker News links, helping you monitor new SaaS, AI, developer tools, and trending startup projects.

- **URL**: https://apify.com/datapilot/saas-launch-monitor.md
- **Developed by:** [Data Pilot](https://apify.com/datapilot) (community)
- **Categories:** AI, Agents, Jobs
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 scraped results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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

## SaaS Launch Monitor

🚀 **SaaS Launch Monitor** is a powerful Apify Actor designed to discover, track, and monitor **SaaS Launch** opportunities from Hacker News "Show HN" posts. This tool provides real-time **SaaS Launch** intelligence including project names, founders, website links, community engagement metrics, and launch timing. Whether you're hunting for emerging SaaS products, tracking startup launches, or conducting competitive intelligence, the SaaS Launch Monitor delivers actionable **SaaS Launch** opportunities efficiently.

With Hacker News Algolia API integration, advanced filtering by keyword, engagement metrics tracking, founder information extraction, and PPE billing support, the SaaS Launch Monitor ensures comprehensive **SaaS Launch** discovery and analysis. It focuses on key **SaaS Launch** signals including community upvotes, comment count, founder details, and timeline data, making it an essential tool for **SaaS Launch** research and early-stage startup identification.

---

### 📋 Table of Contents

- [Features](#-features)
- [Data Source](#-data-source)
- [How It Works](#-how-it-works)
- [Input](#-input)
- [Output](#-output)
- [Technical Stack](#-technical-stack)
- [Data Fields](#-data-fields)
- [Launch Signals](#-launch-signals)
- [Use Cases](#-use-cases)
- [Quick Start](#-quick-start)
- [Configuration](#-configuration)
- [Performance](#-performance)
- [Billing](#-billing)
- [Important Notes](#-important-notes)
- [Keywords](#-keywords)
- [Changelog](#-changelog)
- [Support](#-support)

---

### 🔥 Features

- **Hacker News Integration** – Direct integration with Hacker News Algolia API for **SaaS Launch** posts.
- **Show HN Filtering** – Automatically filters for "Show HN" posts (project launches only).
- **Keyword Search** – Search **SaaS Launch** by specific keywords (AI, blockchain, fintech, etc.).
- **Project Discovery** – Discovers newly launched **SaaS Launch** projects.
- **Founder Extraction** – Captures founder/author name for each **SaaS Launch**.
- **Engagement Metrics** – Tracks upvotes (points) and comment counts.
- **Website Extraction** – Captures website URL for each **SaaS Launch**.
- **HN URL Generation** – Provides direct links to **SaaS Launch** discussion threads.
- **Launch Date** – Records exact launch date on Hacker News.
- **Community Signal** – Measures community interest via engagement metrics.
- **Lead Identification** – Identifies high-potential **SaaS Launch** opportunities.
- **Trending Analysis** – Identifies trending **SaaS Launch** keywords.
- **Early Access** – Gets early access to new **SaaS Launch** before broader launch.
- **Competitive Intelligence** – Track competitor **SaaS Launch** activity.
- **Market Research** – Understand **SaaS Launch** trends and categories.
- **Network Building** – Connect with founders through **SaaS Launch** data.
- **Investment Intelligence** – Identify investment targets via **SaaS Launch** signals.
- **Product Validation** – Validate product ideas via community response.
- **Bulk Lead Generation** – Generate multiple **SaaS Launch** leads per keyword.
- **Configurable Results** – Control result count (hits per page).
- **PPE Billing Integration** – Pay-per-event billing per **SaaS Launch** lead.
- **Charge Limit Handling** – Respects user's maximum PPE charge limits.
- **Proxy Support** – Apify residential proxy support for reliability.
- **Real-Time Dataset Push** – Pushes results to Apify Dataset with metadata.
- **Detailed Logging** – Comprehensive logging of charges and progress.
- **Asyncio-Friendly** – Non-blocking async/await architecture.

---

### 📊 Data Source

#### **Hacker News Algolia API**

- **Authority**: Official Hacker News search via Algolia
- **Coverage**: All "Show HN" posts (project launches)
- **Data**: Complete post metadata, engagement metrics, author information
- **Updates**: Real-time as posts are published
- **API**: Public REST API, no authentication required
- **Reliability**: Highly reliable, used by HN community

---

### ⚙️ How It Works

The SaaS Launch Monitor accepts a keyword to search for **SaaS Launch** projects on Hacker News. It queries the Hacker News Algolia API with the keyword combined with "Show HN" tag filter to find only project launches. For each result, it extracts key fields including project name, founder, engagement metrics, website, and Hacker News URL. All **SaaS Launch** leads are pushed to the dataset with PPE charging per lead. A completion summary is generated with total leads found and charged.

**Key Processing Steps:**

1. **Input Parsing** – Accept keyword and configuration
2. **Proxy Setup** – Configure Apify residential proxy
3. **API Query** – Build HN Algolia search query
4. **API Request** – Query Hacker News Algolia API
5. **Results Parsing** – Parse JSON response
6. **Title Cleaning** – Remove "Show HN:" prefix from titles
7. **Field Extraction** – Extract name, author, points, comments, date, URL
8. **Lead Object Creation** – Build structured lead object
9. **Dataset Push** – Push lead to Apify Dataset
10. **PPE Charging** – Charge per lead found
11. **Charge Limit Check** – Stop if user limit reached
12. **Progress Logging** – Log each charge
13. **Completion Report** – Report final statistics

**Key Benefits:**

- Discover **SaaS Launch** opportunities automatically
- Stay ahead of broader market knowledge
- Monitor **SaaS Launch** trends in real-time
- Identify high-engagement **SaaS Launch** projects
- Build **SaaS Launch** lead database
- Track competitor **SaaS Launch** activity

---

### 📥 Input

The Actor accepts the following input parameters:

| Field | Type | Default | Description |
|-------|------|---------|-------------|
| `keyword` | string | required | Search keyword for **SaaS Launch** (e.g., "AI", "blockchain", "fintech") |
| `hitsPerPage` | integer | `50` | Maximum **SaaS Launch** results per search (1-100) |
| `useApifyProxy` | boolean | `true` | Enable Apify residential proxies |
| `apifyProxyGroups` | array | `["RESIDENTIAL"]` | Proxy group configuration |

**Example Input:**

```json
{
  "keyword": "artificial intelligence",
  "hitsPerPage": 50,
  "useApifyProxy": true
}
````

**Search for AI Products:**

```json
{
  "keyword": "AI",
  "hitsPerPage": 100
}
```

**Search for Blockchain Apps:**

```json
{
  "keyword": "blockchain",
  "hitsPerPage": 75
}
```

***

### 📤 Output

The Actor pushes **SaaS Launch** lead records with the following structure:

**SaaS Launch Lead Record:**

| Field | Type | Description |
|-------|------|-------------|
| `name` | string | **SaaS Launch** project name (cleaned title) |
| `author` | string | Founder/creator username |
| `points` | integer | Hacker News upvotes on launch post |
| `comments` | integer | Number of comments on launch discussion |
| `launched` | string | Launch date (YYYY-MM-DD) |
| `website` | string | Project website URL |
| `hn_url` | string | Direct link to Hacker News discussion |
| `keyword` | string | Search keyword used |
| `scraped_at` | string | ISO 8601 scrape timestamp |

**Example SaaS Launch Lead Record:**

```json
{
  "name": "Cursor - AI-First Code Editor Built for Pair Programming",
  "author": "aman_sanger",
  "points": 2847,
  "comments": 523,
  "launched": "2023-03-14",
  "website": "https://www.cursor.sh/",
  "hn_url": "https://news.ycombinator.com/item?id=35123456",
  "keyword": "AI",
  "scraped_at": "2025-02-14T12:00:00"
}
```

**Example Multiple Leads (Batch):**

```json
[
  {
    "name": "Mistral - Open-Source Language Model",
    "author": "arthur_mensch",
    "points": 1923,
    "comments": 342,
    "launched": "2023-09-27",
    "website": "https://mistral.ai/",
    "hn_url": "https://news.ycombinator.com/item?id=37654321",
    "keyword": "AI",
    "scraped_at": "2025-02-14T12:00:00"
  },
  {
    "name": "Perplexity AI - Answer Engine",
    "author": "aravind_srinivas",
    "points": 1567,
    "comments": 287,
    "launched": "2023-08-11",
    "website": "https://www.perplexity.ai/",
    "hn_url": "https://news.ycombinator.com/item?id=37234567",
    "keyword": "AI",
    "scraped_at": "2025-02-14T12:00:00"
  }
]
```

***

### 🧰 Technical Stack

- **API Source:** Hacker News Algolia API
- **HTTP Client:** httpx for async HTTP requests
- **Query Building:** urllib.parse for URL encoding
- **Async:** asyncio for non-blocking operations
- **Data Format:** JSON for request/response
- **Proxy:** Apify Proxy with RESIDENTIAL configuration
- **Logging:** Apify Actor logging system
- **Platform:** Apify Actor serverless environment
- **Billing:** Apify PPE (Pay-Per-Event) system

***

### 📈 Launch Signals

#### **High-Engagement Signals**

Projects with **SaaS Launch** signals:

- **High Points**: 500+ upvotes indicates strong community interest
- **High Comments**: 100+ comments shows active discussion
- **Ratio**: Points-to-comments ratio shows depth of engagement
- **Early Traction**: Quick point accumulation shows viral potential

#### **Finding Hot Launches**

**High Engagement:**

```
points > 1000 & comments > 200 = Strong launch
```

**Moderate Engagement:**

```
500 < points < 1000 & 50 < comments < 200 = Growing interest
```

**Early Stage:**

```
points < 500 & comments < 50 = Emerging opportunity
```

***

### 🎯 Use Cases

- **Product Discovery** – Discover new **SaaS Launch** products before mainstream adoption
- **Competitive Intelligence** – Track competitor **SaaS Launch** activity and launches
- **Investment Research** – Identify investment targets via **SaaS Launch** momentum
- **Market Trends** – Understand emerging **SaaS Launch** trends by keyword
- **Lead Generation** – Generate **SaaS Launch** leads for sales/partnerships
- **Founding Ideas** – Get inspired by **SaaS Launch** ideas and market validation
- **Due Diligence** – Research startup launches for investment due diligence
- **Community Building** – Connect with founders through **SaaS Launch** communities
- **Partnership Opportunities** – Identify partnership targets via **SaaS Launch**
- **Talent Acquisition** – Find emerging startup talent through **SaaS Launch** founders
- **API Integration** – Build on successful **SaaS Launch** platforms
- **User Research** – Understand user needs via community discussions
- **Social Proof** – Gather testimonials and use cases from **SaaS Launch** communities
- **Marketing Benchmarking** – Benchmark marketing success via **SaaS Launch** engagement
- **Product Strategy** – Inform product strategy based on **SaaS Launch** trends

***

### 🚀 Quick Start

#### **1. Prepare Input**

Go to Apify Console and enter:

```json
{
  "keyword": "artificial intelligence",
  "hitsPerPage": 50,
  "useApifyProxy": true
}
```

#### **2. Run the Actor**

Click **Start** button. The Actor will:

- Connect to Hacker News Algolia API
- Search for "Show HN" posts matching keyword
- Extract lead information
- Push leads to Dataset
- Charge per lead

#### **3. Monitor Progress**

Console shows:

```
Starting search on Hacker News for keyword: 'artificial intelligence'
Proxy configuration successfully loaded.
Found 48 Show HN posts for keyword 'artificial intelligence'
✅ [CHARGED] Lead saved | Name: Cursor - AI-First Code Editor | Author: aman_sanger | Total charged: 1
✅ [CHARGED] Lead saved | Name: Mistral AI - Open Source | Author: arthur_mensch | Total charged: 2
✅ [CHARGED] Lead saved | Name: Perplexity AI | Author: aravind_srinivas | Total charged: 3
...
🎉 Done! Total leads saved and charged: 48 | Keyword: 'artificial intelligence'
```

#### **4. View & Download Results**

- **Results Tab**: All **SaaS Launch** leads
- **Export**: JSON, CSV, Excel
- **Filter**: By engagement or date
- **Sort**: By points or comments

***

### ⚙️ Configuration

#### **Search Scope**

Specific technology:

```json
{
  "keyword": "blockchain"
}
```

Broader category:

```json
{
  "keyword": "fintech"
}
```

#### **Result Volume**

Small sample:

```json
{
  "hitsPerPage": 25
}
```

Comprehensive:

```json
{
  "hitsPerPage": 100
}
```

***

### 📈 Performance

#### **Processing Speed**

- \~5-10 seconds per search
- \~50 leads per request
- Fast API response (< 2 seconds)
- Parsing overhead minimal

#### **Resource Usage**

- Memory: ~50-80MB
- CPU: ~20-30% during processing
- Network: ~1-2MB per search
- API calls: 1 per search

***

### 💰 Billing

#### **PPE (Pay-Per-Event) Billing**

- **Event Name:** "scraped-result"
- **Charge:** 1 credit per **SaaS Launch** lead found
- **Billing Trigger:** Per lead processed
- **Typical Cost:** 25-100 credits per search

#### **Cost Examples**

- 50 leads × 1 credit = 50 credits
- 100 leads × 1 credit = 100 credits
- 30 leads × 1 credit = 30 credits

***

### ⚠️ Important Notes

#### **Legal & Compliance**

- **Fair Use**: Respects Hacker News ToS and rate limits
- **Attribution**: Respects post authors and copyright
- **Community**: Supports Hacker News community spirit
- **Etiquette**: Follows HN guidelines
- **Rate Limiting**: Minimal API load

#### **Data Quality**

- **Freshness**: Real-time from Hacker News
- **Completeness**: All available fields
- **Accuracy**: Official HN data
- **Reliability**: Stable API
- **Verification**: Always verify with original sources

#### **Best Practices**

- Use residential proxies
- Respect Hacker News community norms
- Follow up with founders professionally
- Verify project details independently
- Check website/domain validity
- Review project comments for context
- Respect creator privacy
- Engage authentically with community
- Don't spam or mass-message
- Provide genuine value in interactions

### 📦 Changelog

#### v1.0.0 (February 2025)

**Initial Release:**

- Hacker News Algolia API integration
- "Show HN" tag filtering for project launches
- Keyword-based search functionality
- Full result set fetching (up to 100 per page)
- Title cleaning (removal of "Show HN:" prefix)
- Author/founder extraction
- Points (upvotes) extraction
- Comments count extraction
- Launch date extraction
- Website URL extraction
- HN URL generation for direct discussion links
- Structured lead object creation
- PPE billing per lead
- Charge limit detection and stopping
- Apify proxy support
- Real-time Dataset push
- Detailed progress logging
- Configurable results per page (1-100)
- Comprehensive error handling
- Asyncio executor support

***

### 🧑‍💻 Support & Feedback

- **Issues:** Submit via Apify console with keyword
- **Documentation:** Check Actor details page
- **Community:** Apify forum discussions
- **Feature Requests:** Suggest improvements
- **Bug Reports:** Include keyword and error details

***

### 💾 Apify Integration

#### **Automatic Features**

```python
## Hacker News query
url = f"https://hn.algolia.com/api/v1/search?query=Show+HN+{quote_plus(keyword)}"

## Lead data push
await Actor.push_data(lead)

## PPE charging
charge_result = await Actor.charge(event_name="scraped-result")
```

#### **Output Access**

- **Results Tab**: All **SaaS Launch** leads
- **Export**: JSON, CSV, Excel
- **Filter**: By author or date
- **API**: Query via Apify API

***

### 📄 License & Legal

**Terms of Use:**

- Use for legitimate business and research
- Respect Hacker News ToS and policies
- Respect post authors and copyright
- Don't republish without permission
- Comply with applicable laws
- Use data ethically and responsibly

**Disclaimer:**
SaaS Launch Monitor is provided as-is for research purposes. Users are responsible for ensuring compliance with Hacker News ToS and applicable laws. Always verify information with original sources.

***

### 🎉 Get Started Today

**Deploy now for **SaaS Launch** discovery!**

Use for:

- 📊 Product Discovery
- 🔍 Competitive Intelligence
- 💡 Investment Research
- 📈 Market Trends
- 🎯 Lead Generation

**Perfect for:**

- VCs & Angels
- Product Managers
- Entrepreneurs
- Business Development
- Researchers

***

**Last Updated:** February 2025\
**Version:** 1.0.0\
**Status:** Production Ready\
**Platform:** Apify Actor\
**Architecture:** Async/Await\
**Python:** 3.8+\
**API Source:** Hacker News Algolia

***

### 📚 Related Tools

- Grants & Funding Opportunities Harvester
- News Mention Alert Engine
- Business Social Media Finder
- App Review Intelligence Monitor

**Your complete Apify-powered **SaaS Launch** discovery solution!** 🚀✨

***

### 🚀 SaaS Launch Excellence

This Actor is optimized for **SaaS Launch** discovery with:

- ✅ Real-time Hacker News integration
- ✅ Project launch filtering
- ✅ Engagement metrics tracking
- ✅ Founder information extraction
- ✅ Community signal analysis
- ✅ PPE billing support
- ✅ Real-time Dataset push
- ✅ Error recovery
- ✅ Production-ready code

**Discover SaaS launches effortlessly!** 💎🚀

# Actor input Schema

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

Enter the keyword to find launches (e.g. AI, CRM, analytics, database).

## `hitsPerPage` (type: `integer`):

Number of product hits to fetch from the API.

## `useApifyProxy` (type: `boolean`):

Enable proxy to route API requests through Apify's proxy servers.

## `apifyProxyGroups` (type: `array`):

Select proxy groups (e.g., RESIDENTIAL or DATACENTER).

## Actor input object example

```json
{
  "keyword": "AI",
  "hitsPerPage": 50,
  "useApifyProxy": true,
  "apifyProxyGroups": [
    "RESIDENTIAL"
  ]
}
```

# 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 = {
    "keyword": "AI"
};

// Run the Actor and wait for it to finish
const run = await client.actor("datapilot/saas-launch-monitor").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 = { "keyword": "AI" }

# Run the Actor and wait for it to finish
run = client.actor("datapilot/saas-launch-monitor").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 '{
  "keyword": "AI"
}' |
apify call datapilot/saas-launch-monitor --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=datapilot/saas-launch-monitor",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "SaaS Launch Monitor",
        "description": "Discover  Show HN startup launches from Hacker News with keyword-based search. This scraper extracts product names, creators, launch dates, points, comments, website URLs, and Hacker News links, helping you monitor new SaaS, AI, developer tools, and trending startup projects.",
        "version": "0.0",
        "x-build-id": "8cYidBkmarH8iVyBb"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/datapilot~saas-launch-monitor/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-datapilot-saas-launch-monitor",
                "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/datapilot~saas-launch-monitor/runs": {
            "post": {
                "operationId": "runs-sync-datapilot-saas-launch-monitor",
                "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/datapilot~saas-launch-monitor/run-sync": {
            "post": {
                "operationId": "run-sync-datapilot-saas-launch-monitor",
                "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": [
                    "keyword"
                ],
                "properties": {
                    "keyword": {
                        "title": "Search Keyword",
                        "type": "string",
                        "description": "Enter the keyword to find launches (e.g. AI, CRM, analytics, database)."
                    },
                    "hitsPerPage": {
                        "title": "Max Results",
                        "minimum": 1,
                        "maximum": 100,
                        "type": "integer",
                        "description": "Number of product hits to fetch from the API.",
                        "default": 50
                    },
                    "useApifyProxy": {
                        "title": "Use Apify Proxy",
                        "type": "boolean",
                        "description": "Enable proxy to route API requests through Apify's proxy servers.",
                        "default": true
                    },
                    "apifyProxyGroups": {
                        "title": "Proxy Groups",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Select proxy groups (e.g., RESIDENTIAL or DATACENTER).",
                        "items": {
                            "type": "string",
                            "enum": [
                                "RESIDENTIAL",
                                "DATACENTER"
                            ]
                        },
                        "default": [
                            "RESIDENTIAL"
                        ]
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
