# Internshala Scraper (`automation-lab/internshala-scraper`) Actor

Scrape internship and job listings from Internshala — India's largest internship platform. Extract title, company, stipend, skills, location, duration, and more.

- **URL**: https://apify.com/automation-lab/internshala-scraper.md
- **Developed by:** [Stas Persiianenko](https://apify.com/automation-lab) (community)
- **Categories:** Jobs
- **Stats:** 8 total users, 6 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per event

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

## Internshala Scraper

### What does it do?

Internshala Scraper extracts internship and job listings from [Internshala](https://internshala.com) — India's largest internship and fresher jobs platform with over 7,000 active listings at any time. The scraper fetches structured data from search results pages and optionally enriches each listing with full detail page information including the complete job description, start date, apply-by deadline, and company background.

The actor uses pure HTTP requests and Cheerio for fast, lightweight scraping — no browser required. It runs in 256 MB of memory and typically completes 100 listings in under 30 seconds.

### Who is it for?

- 🎓 **Career coaches and placement officers** who maintain internship databases for students and need bulk exports on a schedule
- 📊 **HR analytics teams** tracking stipend benchmarks, skill demand trends, and hiring velocity across industries in India
- 🤖 **Job board developers** building aggregator platforms focused on Indian fresher hiring
- 📈 **Recruiters and talent acquisition teams** monitoring competitor hiring activity and supply of candidates by skill
- 🔬 **Researchers and policy analysts** studying the Indian internship market, WFH trends, and industry skill requirements

### Why use it?

✅ **No browser required** — pure HTTP+Cheerio means fast, cheap runs (< $0.01 for 100 listings)

✅ **Filters by keyword** — narrow results by role type, technology, or domain (e.g. `python`, `marketing`, `data-science`)

✅ **Covers both internships and jobs** — switch between internship listings and fresher job listings with one input field

✅ **Rich skill data** — every listing includes the full array of required skills extracted from the card

✅ **Detail page enrichment** — optionally fetch the full job description, company about section, start date, and apply-by deadline

✅ **Automatic pagination** — scrapes as many pages as needed to hit your `maxResults` target

### What data does it extract?

| Field | Description | Example |
|-------|-------------|---------|
| `id` | Internshala listing ID | `3145597` |
| `title` | Job/internship title | `Business Development (Sales)` |
| `company` | Company name | `Basti Ki Pathshala Foundation` |
| `companyLogoUrl` | Company logo image URL | `https://internshala-uploads.internshala.com/...` |
| `location` | City or "Work from home" | `Mumbai`, `Work from home` |
| `isWorkFromHome` | Boolean WFH flag | `true` |
| `stipend` | Monthly or lump-sum stipend | `₹ 5,000 /month`, `₹ 15,000 lump sum` |
| `duration` | Internship duration or job experience | `3 Months`, `1-3 year(s)` |
| `skills` | Array of required skills | `["Python", "SQL", "Excel"]` |
| `description` | Brief job description from listing card | `"1. Build dashboards..."` |
| `postedAt` | When posted | `Few hours ago`, `2 days ago` |
| `isPartTime` | Part-time flag | `false` |
| `isActivelyHiring` | Currently actively hiring | `true` |
| `applyBy` | Application deadline (detail page) | `10 Jun' 26` |
| `startDate` | Start date (detail page) | `Immediately`, `1 Jul' 26` |
| `aboutCompany` | Company description (detail page) | `"DineMatters is a fast-growing SaaS..."` |
| `fullDescription` | Full job description (detail page) | `"Selected intern's day-to-day..."` |
| `url` | Full detail page URL | `https://internshala.com/internship/detail/...` |

> **Note:** `applyBy`, `startDate`, `aboutCompany`, and `fullDescription` are only populated when `fetchDetails: true` is set.

### How much does it cost?

Internshala Scraper uses **Pay Per Event** pricing:

| Tier | Price per listing |
|------|-------------------|
| FREE | $0.005/result |
| BRONZE | $0.0035/result |
| SILVER | $0.0027/result |
| GOLD | $0.0021/result |
| PLATINUM | $0.0014/result |
| DIAMOND | $0.001/result |

A one-time run start fee of $0.005 covers initialization. Volume-tier discounts apply automatically based on your Apify subscription plan.

**Typical costs at BRONZE:**
- 20 listings (test run): ~$0.075
- 100 listings (standard research): ~$0.355
- 500 listings (bulk export): ~$1.755
- With `fetchDetails: true`, each run makes one additional HTTP request per listing, adding a small amount of compute cost

The per-result pricing is competitive with similar scrapers on the Apify Store (market range: $0.001–$0.005 per result). Start with 20 results to verify output before scaling up.

### How to use it

1. Go to the **Input** tab in the Apify Console
2. Set your **search keyword** (e.g. `python`, `marketing`) or leave blank for all listings
3. Choose **search mode**: `internships` or `jobs`
4. Set **max results** (start with 20 for testing)
5. Toggle **fetch details** if you need the full description and apply-by date
6. Click **Start** — results appear in the **Output** tab within seconds

#### Step-by-step example

**Goal:** Find all Python internships and export to a spreadsheet

1. Set `searchQuery: "python"`
2. Set `searchMode: "internships"`
3. Set `maxResults: 100`
4. Click **Start**
5. In the **Output** tab, click **Export** → **CSV**
6. Open in Excel/Google Sheets — each row is one internship with title, company, stipend, skills, and more

### Input parameters

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `searchQuery` | string | `""` | Keyword to filter listings. Passed directly to Internshala's URL slug. Use hyphens for multi-word terms: `data-science`, `business-development`. |
| `searchMode` | select | `internships` | Whether to scrape `internships` or `jobs`. |
| `fetchDetails` | boolean | `false` | Fetch the detail page for each listing to get `applyBy`, `startDate`, `aboutCompany`, and `fullDescription`. Adds one HTTP request per listing. |
| `maxResults` | integer | `50` | Maximum number of results. Pagination is handled automatically. |
| `maxRequestRetries` | integer | `3` | Retry attempts for failed requests. |

### Output example

```json
{
  "id": "3145597",
  "title": "Business Development (Sales)",
  "company": "Basti Ki Pathshala Foundation",
  "companyLogoUrl": "https://internshala-uploads.internshala.com/logo/...",
  "location": "Work from home",
  "isWorkFromHome": true,
  "stipend": "₹ 1,500 - 15,000 lump sum",
  "duration": "1 Month",
  "skills": ["Social Media Marketing", "MS-Office", "Digital Marketing"],
  "description": "1. Develop and implement strategic sales plans...",
  "postedAt": "Few hours ago",
  "isPartTime": true,
  "isActivelyHiring": true,
  "applyBy": "10 Jun' 26",
  "startDate": "Immediately",
  "aboutCompany": "Basti Ki Pathshala Foundation is a Government-registered organization...",
  "fullDescription": "Selected intern's day-to-day responsibilities include: ...",
  "url": "https://internshala.com/internship/detail/work-from-home-business-development-sales-..."
}
````

### Tips for best results

💡 **Use hyphens in multi-word keywords** — Internshala's URL system uses hyphens: `data-science` not `data science`

💡 **Leave `searchQuery` blank** for the broadest results — scrapes all active listings, not filtered by category

💡 **Use `fetchDetails: false` first** — get 100 listings in seconds, then refine your keyword before enabling detail fetching

💡 **Combine with scheduling** — run daily to detect new postings; compare with yesterday's export using the `id` field as a stable key

💡 **Filter by WFH** — use `isWorkFromHome: true` in downstream processing (no input filter needed; the field is always extracted)

💡 **Internship categories** — popular Internshala keyword slugs: `computer-science`, `marketing`, `finance`, `design`, `engineering`, `data-science`, `content-writing`, `accounting`

### Integrations

#### Google Sheets pipeline

Run the scraper daily with a schedule → connect the Apify dataset to Google Sheets via the **Google Sheets integration** in Apify → share a live sheet with your team that auto-updates with new Internshala listings every morning.

#### Airtable internship database

Use Apify's Airtable integration to push each new result to an Airtable base. Add a formula field to flag listings where `isActivelyHiring = true` and `stipend` contains "month" for paid internships, and share the filtered view with candidates.

#### Slack job alerts

Connect the actor output to a Zapier or Make webhook trigger → filter for listings where `postedAt` is "Few hours ago" → post to a Slack channel for real-time alerts on new hot internships.

#### CRM lead enrichment

For recruiters: extract the `company` field and company URL from `url`, then cross-reference with your CRM. Use the `isActivelyHiring` flag and `skills` array to identify target companies and auto-tag them by tech stack in your CRM.

### API usage

#### Node.js

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

const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });

const run = await client.actor('automation-lab/internshala-scraper').call({
  searchQuery: 'python',
  searchMode: 'internships',
  maxResults: 100,
  fetchDetails: false,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Scraped ${items.length} listings`);
items.forEach(item => console.log(item.title, item.company, item.stipend));
```

#### Python

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_API_TOKEN")

run = client.actor("automation-lab/internshala-scraper").call(run_input={
    "searchQuery": "marketing",
    "searchMode": "internships",
    "maxResults": 50,
    "fetchDetails": True,
})

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item["title"], item["company"], item["stipend"])
```

#### cURL

```bash
curl -s -X POST \
  "https://api.apify.com/v2/acts/automation-lab~internshala-scraper/runs?token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "searchQuery": "data-science",
    "searchMode": "internships",
    "maxResults": 50
  }'
```

### Use with Claude (MCP)

You can use this scraper directly from Claude Code, Claude Desktop, Cursor, or VS Code via the Apify MCP server.

#### Claude Code

```bash
claude mcp add --transport http apify "https://mcp.apify.com?tools=automation-lab/internshala-scraper"
```

Then in Claude Code:

> "Scrape 50 Python internships from Internshala and list the top ones by stipend"

> "Get all marketing internships with fetchDetails enabled and summarize the most common required skills"

#### Claude Desktop / Cursor / VS Code

Add to your MCP config (e.g. `~/.claude/claude_desktop_config.json`):

```json
{
  "mcpServers": {
    "apify": {
      "type": "http",
      "url": "https://mcp.apify.com?tools=automation-lab/internshala-scraper",
      "headers": { "Authorization": "Bearer YOUR_APIFY_TOKEN" }
    }
  }
}
```

**Example Claude prompts:**

- "Find the 20 best-paying Python internships on Internshala right now"
- "Scrape 100 marketing jobs from Internshala and show the ones that are work-from-home"
- "Get Internshala internships for data science and list all unique required skills"

### Legality — Is scraping Internshala legal?

Web scraping publicly available job listings is generally permissible for personal research, academic, and business intelligence purposes under most jurisdictions. Internshala's listings are publicly accessible without login. Always review Internshala's [Terms of Service](https://internshala.com/terms) for the latest guidance, and use this tool responsibly and respectfully.

This actor only reads publicly available data and does not submit applications, create accounts, or interact with authenticated endpoints. Respect rate limits and avoid running extremely large scrapes that could impact Internshala's service for real users.

### FAQ — Frequently asked questions

**Q: Can I filter by location?**
A: Not directly via input — but you can use the `location` field in the output to filter results downstream, or use Internshala's URL patterns as a `searchQuery` value (e.g. `internship-in-mumbai` maps to their Mumbai filter page).

**Q: Why does my run return fewer results than `maxResults`?**
A: This happens when there are fewer matching listings than your limit. For example, searching `"fortran"` may only find a handful of results. The actor stops gracefully when no more pages are available.

**Q: The run succeeded but some fields like `stipend` or `postedAt` are empty — is that a bug?**
A: No. Some listings (especially fresher jobs) don't display stipend or posted-date in their listing card. Jobs listings use a salary range format instead of `₹/month`. These fields are optional on Internshala's side.

**Q: I see "Ignored attempt to charge for an event" in local test logs — is that normal?**
A: Yes, this message appears during local `apify run` testing and can be safely ignored. Pay-per-event charges only apply during cloud runs on the Apify platform.

**Q: Can I scrape a specific company's listings?**
A: Not directly — Internshala's public search doesn't expose company-specific URLs in a predictable pattern. Use the actor to scrape broadly and filter by `company` in the output.

### Related scrapers

- [LinkedIn Scraper](https://apify.com/automation-lab) — for global job listings
- [Naukri Scraper](https://apify.com/automation-lab) — India's largest job portal for experienced professionals
- [Indeed Scraper](https://apify.com/automation-lab) — multi-country job listings

# Actor input Schema

## `searchQuery` (type: `string`):

Keyword to filter listings (e.g. 'python', 'marketing', 'data-science'). Leave blank to scrape all listings.

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

Scrape internships or jobs.

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

Fetch the full detail page for each listing to extract additional fields: start date, apply-by deadline, about company, and full job description. Slower but richer data.

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

Maximum number of listings to return.

## `maxRequestRetries` (type: `integer`):

Number of retry attempts for failed HTTP requests.

## Actor input object example

```json
{
  "searchQuery": "marketing",
  "searchMode": "internships",
  "fetchDetails": false,
  "maxResults": 20,
  "maxRequestRetries": 3
}
```

# Actor output Schema

## `overview` (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 = {
    "searchQuery": "marketing",
    "searchMode": "internships",
    "fetchDetails": false,
    "maxResults": 20,
    "maxRequestRetries": 3
};

// Run the Actor and wait for it to finish
const run = await client.actor("automation-lab/internshala-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 = {
    "searchQuery": "marketing",
    "searchMode": "internships",
    "fetchDetails": False,
    "maxResults": 20,
    "maxRequestRetries": 3,
}

# Run the Actor and wait for it to finish
run = client.actor("automation-lab/internshala-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 '{
  "searchQuery": "marketing",
  "searchMode": "internships",
  "fetchDetails": false,
  "maxResults": 20,
  "maxRequestRetries": 3
}' |
apify call automation-lab/internshala-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Internshala Scraper",
        "description": "Scrape internship and job listings from Internshala — India's largest internship platform. Extract title, company, stipend, skills, location, duration, and more.",
        "version": "0.1",
        "x-build-id": "seqQndST4g5dfCGlo"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/automation-lab~internshala-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-automation-lab-internshala-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/automation-lab~internshala-scraper/runs": {
            "post": {
                "operationId": "runs-sync-automation-lab-internshala-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/automation-lab~internshala-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-automation-lab-internshala-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": {
                    "searchQuery": {
                        "title": "🔍 Search keyword",
                        "type": "string",
                        "description": "Keyword to filter listings (e.g. 'python', 'marketing', 'data-science'). Leave blank to scrape all listings."
                    },
                    "searchMode": {
                        "title": "📋 Search mode",
                        "enum": [
                            "internships",
                            "jobs"
                        ],
                        "type": "string",
                        "description": "Scrape internships or jobs.",
                        "default": "internships"
                    },
                    "fetchDetails": {
                        "title": "📄 Fetch detail pages",
                        "type": "boolean",
                        "description": "Fetch the full detail page for each listing to extract additional fields: start date, apply-by deadline, about company, and full job description. Slower but richer data.",
                        "default": false
                    },
                    "maxResults": {
                        "title": "📊 Max results",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Maximum number of listings to return.",
                        "default": 50
                    },
                    "maxRequestRetries": {
                        "title": "🔄 Max request retries",
                        "minimum": 1,
                        "maximum": 10,
                        "type": "integer",
                        "description": "Number of retry attempts for failed HTTP requests.",
                        "default": 3
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
