# Lobsters Scraper | Tech News and Discussions (`parseforge/lobsters-scraper`) Actor

Scrape tech stories from Lobsters including titles, links, tags, scores, comment counts, submitters and timestamps. Build datasets of developer-focused news and discussions for trend analysis, content curation and technology research projects at scale across the full catalog

- **URL**: https://apify.com/parseforge/lobsters-scraper.md
- **Developed by:** [ParseForge](https://apify.com/parseforge) (community)
- **Categories:** News, Developer tools, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $19.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

![ParseForge Banner](https://github.com/ParseForge/apify-assets/blob/ad35ccc13ddd068b9d6cba33f323962e39aed5b2/banner.jpg?raw=true)

## 🦞 Lobste.rs Tech News Scraper

> 🚀 **Export curated tech stories from Lobste.rs in seconds.** Get titles, scores, tags, authors, and discussion links. no account, no auth, no rate limits.

> 🕒 **Last updated:** 2026-05-22 · **📊 14 fields** per record · **Unlimited items** · **Global coverage**

Lobste.rs is an invite-only, curated tech community where experts share and discuss links across programming, security, systems, web development, and more. Unlike mainstream aggregators, every submitter is accountable. real usernames, real reputations. This scraper taps Lobste.rs's fully public JSON API to export stories in real time, with zero authentication or proxies required.

Whether you're tracking technology trends, monitoring specific tags like `security` or `python`, or building a developer-focused news feed, this actor delivers clean, structured data in seconds.

**Coverage:** Thousands of curated tech stories across 50+ community-maintained tags, covering programming languages, operating systems, web, security, mathematics, hardware, and more. Every record includes the story's score, flag count, comment count, author username, tags, and optionally the full description for self-posts.

### Target Audience / Use Cases

| Audience | Use Case |
|---|---|
| Researchers & Analysts | Track technology trends and community sentiment over time |
| Content Teams | Monitor developer community discussions for content ideas |
| Data Scientists | Build datasets of high-quality, expert-curated tech links |
| News Aggregators | Power developer-focused newsletters or Slack digests |
| Security Teams | Watch the `security` tag for emerging vulnerability discussions |
| Educators | Find the most-discussed topics in specific programming domains |

### 📋 What the Lobste.rs Scraper does

- Fetches stories from the **hottest** feed (ranked by community score) or **newest** feed (chronological)
- Filters by any Lobste.rs tag: `programming`, `javascript`, `python`, `security`, `linux`, `web`, `ask`, `show`, and 50+ more
- Paginates automatically to collect as many stories as you need (up to 1,000,000)
- Returns structured records with title, URL, score, flags, comment count, tags, author, and timestamps
- Captures full description text for self-posts (ask/show posts written directly on Lobste.rs)
- Uses a polite 500ms delay between pages to respect the community server

> 💡 **Why it matters:** Lobste.rs is one of the most signal-rich tech communities on the internet. Unlike Hacker News, every member is vouched by a real person. The stories that trend here represent genuine expert consensus. not viral noise.

### 🎬 Full Demo

🚧 Coming soon

### ⚙️ Input

| Field | Type | Default | Description |
|---|---|---|---|
| `feedType` | select | `hottest` | Feed to scrape: `hottest` (by score) or `newest` (chronological) |
| `tag` | string | _(empty)_ | Filter by tag slug (e.g. `programming`, `security`, `linux`). Leave empty for all stories. |
| `maxItems` | integer | 10 | Max stories to return. Free: limited to 10. Paid: up to 1,000,000. |

**Example 1 - Top security stories:**
```json
{
    "feedType": "hottest",
    "tag": "security",
    "maxItems": 100
}
````

**Example 2 - Latest programming stories:**

```json
{
    "feedType": "newest",
    "tag": "programming",
    "maxItems": 50
}
```

> ⚠️ **Good to Know:** The `tag` field accepts any tag slug that Lobste.rs uses in their URLs (e.g. `https://lobste.rs/t/security`). Common tags include: `programming`, `javascript`, `python`, `security`, `linux`, `web`, `ask`, `show`, `go`, `rust`, `c`, `devops`, `math`, `hardware`, `browsers`, `practices`. Self-posts (ask/show) include description text; link posts have `description: null`.

### 📊 Output

| Field | Type | Description |
|---|---|---|
| 📰 `title` | string | Story headline |
| 🔗 `url` | string | External URL (or lobste.rs URL for self-posts) |
| 🦞 `lobstersUrl` | string | Lobste.rs discussion page URL |
| ⭐ `score` | integer | Community score (upvotes minus flags, weighted) |
| 🚩 `flags` | integer | Number of flags (downvote signals) from the community |
| 💬 `commentCount` | integer | Number of comments on the story |
| 🏷️ `tags` | array | Community tags assigned to the story |
| 👤 `submittedBy` | string | Username of the person who submitted the story |
| 📝 `description` | string or null | Full self-post body (HTML); null for link posts |
| 📅 `createdAt` | string | ISO 8601 timestamp of submission |
| 🔗 `commentsUrl` | string | Direct URL to the comments section |
| 🔑 `shortId` | string | Lobste.rs short ID (used in URLs) |
| 🕒 `scrapedAt` | string | ISO 8601 timestamp of when this record was scraped |
| ❌ `error` | string or null | Error message if something went wrong; always last |

**Sample record (link post):**

```json
{
    "title": "Chromium publishes fixed exploit 4 years later, turns out it's actually unfixed",
    "url": "https://infosec.exchange/@rebane2001/116606719764376414",
    "lobstersUrl": "https://lobste.rs/s/e7lsqn",
    "score": 97,
    "flags": 1,
    "commentCount": 13,
    "tags": ["browsers", "security"],
    "submittedBy": "hugoarnal",
    "description": null,
    "createdAt": "2026-05-20T15:29:05.000-05:00",
    "commentsUrl": "https://lobste.rs/s/e7lsqn/chromium_publishes_fixed_exploit_4_years",
    "shortId": "e7lsqn",
    "scrapedAt": "2026-05-22T01:43:03.583Z",
    "error": null
}
```

**Sample record (self-post with description):**

```json
{
    "title": "Internships for early university / no former employment",
    "url": "https://lobste.rs/s/r87zln",
    "lobstersUrl": "https://lobste.rs/s/r87zln",
    "score": 28,
    "flags": 0,
    "commentCount": 15,
    "tags": ["ask", "job"],
    "submittedBy": "runxiyu",
    "description": "<p>As a rising freshman beginning an undergraduate computer science degree...</p>",
    "createdAt": "2026-05-21T10:09:32.000-05:00",
    "commentsUrl": "https://lobste.rs/s/r87zln/internships_for_early_university_no",
    "shortId": "r87zln",
    "scrapedAt": "2026-05-22T01:43:03.583Z",
    "error": null
}
```

### ✨ Why choose this Actor

| Feature | Detail |
|---|---|
| 🚀 No auth required | Lobste.rs JSON API is fully public. no login, no token |
| ⚡ Real-time data | Always fetches live data, never cached responses |
| 🏷️ Tag filtering | Narrow to any of Lobste.rs's 50+ community tags in one field |
| 📄 Full pagination | Collects across multiple pages automatically |
| 🛡️ Polite crawling | 500ms delay between pages, respects the community server |
| 🔍 Clean output | All fields normalized, null for genuinely absent data |
| 💸 Pay-per-event pricing | Only pay for what you collect |
| 🌐 Zero proxy cost | Plain fetch. no proxy needed, no IP rotation overhead |

### 📈 How it compares to alternatives

| Feature | This Actor | Manual API calls | RSS feeds |
|---|---|---|---|
| Structured JSON output | ✅ | Requires custom parsing | Partial |
| Tag filtering | ✅ | ✅ | Limited |
| Automatic pagination | ✅ | Manual | No |
| Apify dataset integration | ✅ | No | No |
| Webhook / schedule support | ✅ | No | Limited |
| CSV / Excel export | ✅ | No | No |

### 🚀 How to use

1. [Create a free Apify account](https://console.apify.com/sign-up?fpr=vmoqkp) (includes $5 free credit)
2. Go to the [Lobste.rs Tech News Scraper](https://apify.com/parseforge/lobsters-scraper) page
3. Click **Try for free**
4. Set your `feedType` (`hottest` or `newest`), optional `tag`, and `maxItems`
5. Click **Start** and wait a few seconds
6. Download your dataset as JSON, CSV, Excel, or XML

### 💼 Business use cases

#### Tech Trend Analysis

Monitor which topics are gaining traction in the developer community. Track score velocity on `security` or `ai` tags over days or weeks. Correlate community interest spikes with product launch cycles.

#### Content Intelligence

Know what developers are actually reading and discussing. Use the hottest feed as an editorial signal for blog posts, videos, or podcast topics. Identify underserved niches by watching what generates high comment counts with low scores.

#### Competitive and Threat Intelligence

Security teams can monitor the `security` tag in real time. When a CVE or novel attack technique surfaces on Lobste.rs, it often trends before mainstream outlets. Get structured, timestamped records to feed into SIEM or alerting pipelines.

#### Developer Community Research

Academic and industry researchers can build longitudinal datasets of expert-curated tech links. Study how community reception (score, flags, comments) correlates with article quality, recency, or domain authority.

### 🔌 Automating Lobste.rs Scraper

Connect this actor to your workflows with no code:

- **Make (Integromat):** Schedule runs, then send new stories to Slack, Notion, Airtable, or Google Sheets
- **Zapier:** Trigger a Zap when a run finishes - push top stories to your CMS or email list
- **Slack:** Pipe the hottest `security` stories into a #security-feed channel every morning
- **Google Sheets:** Build a living spreadsheet of tech trends with daily scheduled runs
- **Webhooks:** Use Apify's webhook system to POST results to any internal API or dashboard

### 🌟 Beyond business use cases

#### Research

Build citation-quality datasets of expert-curated tech literature. Lobste.rs's invite-only model means submitters are accountable - the links represent genuine expert consensus, not algorithmic noise.

#### Creative

Run weekly "best of Lobste.rs" newsletters or zines. Use the description field of self-posts to surface community-written content. Build a reading list generator that matches your tag interests.

#### Non-profit and Open Source

Track open-source project discussions by watching tags like `open-source` or `freebsd`. Monitor community health signals across sub-communities by comparing score distributions over time.

#### Experimentation

Build a personal recommendation engine trained on Lobste.rs community signals. Train a classifier to predict story success from title alone, using score as the label.

### 🤖 Ask an AI assistant about this scraper

> "I want to track security vulnerabilities discussed by expert developers. How can I use the Lobste.rs Scraper to build a daily digest?"
>
> "Show me how to export the top 500 Python stories from Lobste.rs this month as a CSV."
>
> "I'm building a developer newsletter. How do I connect the Lobste.rs Scraper to Mailchimp via Zapier?"

Paste any of these into ChatGPT, Claude, or Gemini alongside the actor URL for step-by-step integration guidance.

### ❓ Frequently Asked Questions

**🔑 Do I need an account to use this?**
No. Lobste.rs has a completely public JSON API. This actor requires no credentials, no auth tokens, and no proxies.

**📄 How many stories can I get per run?**
Paid users can collect up to 1,000,000 stories. Free users get a 10-item preview. Lobste.rs paginates in batches of ~25 stories per page.

**🏷️ What tags are available?**
Lobste.rs maintains 50+ community tags. Common ones: `programming`, `javascript`, `python`, `rust`, `go`, `c`, `security`, `linux`, `web`, `devops`, `math`, `hardware`, `browsers`, `practices`, `ask`, `show`. Browse all tags at `https://lobste.rs/tags`.

**📝 Why is `description` null for most stories?**
Only self-posts (ask/show posts written directly on Lobste.rs) have a description. Link posts that point to external URLs have `description: null` - this is correct behavior from the source.

**⭐ What is `score` vs `flags`?**
`score` is the net community rating. `flags` counts how many users flagged a story as off-topic or low quality. A story with high score and low flags is strongly endorsed by the community.

**🔄 How fresh is the data?**
Data is fetched in real time on every run. There is no caching. Results reflect Lobste.rs's current state at the moment you start the actor.

**📊 Can I get comments, not just stories?**
This actor returns story-level data including comment counts and links to the comments page. For full comment text, you would need to fetch individual story detail pages.

**🗓️ Can I schedule daily runs?**
Yes. Use Apify's built-in scheduler to run this actor on a cron schedule (e.g., every morning at 8am UTC) and accumulate a longitudinal dataset.

**🔌 Can I send results directly to Google Sheets?**
Yes. Use the Apify-Google Sheets integration or connect via Make or Zapier to push each run's results into a spreadsheet automatically.

**🚦 Is there a rate limit risk?**
The actor uses a polite 500ms delay between page requests and sends a standard User-Agent header. Lobste.rs's public API is designed for programmatic access.

**💸 How is pricing calculated?**
This actor uses pay-per-event pricing - you only pay for the stories you actually collect. There are no run-time fees for idle pages or failed requests.

### 🔌 Integrate with any app

Export your Lobste.rs dataset to: JSON - CSV - Excel - XML - Google Sheets - Airtable - Notion - Slack - Zapier - Make - Power Automate - REST API - Webhooks - S3 - BigQuery - Snowflake - PostgreSQL - MongoDB - Elasticsearch

### 🔗 Recommended Actors

| Actor | Description |
|---|---|
| [Hacker News Scraper](https://apify.com/parseforge) | Export stories and comments from Hacker News |
| [GitHub Trending Scraper](https://apify.com/parseforge) | Track trending repositories by language and time period |
| [Dev.to Article Scraper](https://apify.com/parseforge) | Export developer articles from Dev.to by tag or author |

> 💡 **Pro Tip:** browse the complete [ParseForge collection](https://apify.com/parseforge) for 50+ specialized data extractors covering developer tools, tech communities, job boards, and more.

***

*This actor is not affiliated with or endorsed by Lobste.rs. It uses only publicly available data from the official Lobste.rs JSON API. Use responsibly and in accordance with Lobste.rs's terms of service.*

# Actor input Schema

## `feedType` (type: `string`):

Which feed to scrape

## `tag` (type: `string`):

Filter by tag (e.g. 'programming', 'javascript', 'python', 'security', 'linux', 'web', 'ask', 'show'). Leave empty for all stories.

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

Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000

## Actor input object example

```json
{
  "feedType": "hottest",
  "maxItems": 10
}
```

# 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
};

// Run the Actor and wait for it to finish
const run = await client.actor("parseforge/lobsters-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 }

# Run the Actor and wait for it to finish
run = client.actor("parseforge/lobsters-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 '{
  "maxItems": 10
}' |
apify call parseforge/lobsters-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Lobsters Scraper | Tech News and Discussions",
        "description": "Scrape tech stories from Lobsters including titles, links, tags, scores, comment counts, submitters and timestamps. Build datasets of developer-focused news and discussions for trend analysis, content curation and technology research projects at scale across the full catalog",
        "version": "0.1",
        "x-build-id": "gTVp6g26GmjMQFTg7"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/parseforge~lobsters-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-parseforge-lobsters-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/parseforge~lobsters-scraper/runs": {
            "post": {
                "operationId": "runs-sync-parseforge-lobsters-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/parseforge~lobsters-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-parseforge-lobsters-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",
                "properties": {
                    "feedType": {
                        "title": "Feed Type",
                        "enum": [
                            "hottest",
                            "newest"
                        ],
                        "type": "string",
                        "description": "Which feed to scrape",
                        "default": "hottest"
                    },
                    "tag": {
                        "title": "Tag Filter",
                        "type": "string",
                        "description": "Filter by tag (e.g. 'programming', 'javascript', 'python', 'security', 'linux', 'web', 'ask', 'show'). Leave empty for all stories."
                    },
                    "maxItems": {
                        "title": "Max Items",
                        "minimum": 1,
                        "maximum": 1000000,
                        "type": "integer",
                        "description": "Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000"
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
