# WhatsApp API (`devscrapper/whatsappapi`)

A powerful WhatsApp API to send and receive text, images, and videos with ease — built for scalability, flexibility, and seamless integration into CRMs, e-commerce platforms, or chatbots.

- **URL**: https://beta-securitybyobscurity.apify.com/devscrapper/whatsappapi.md
- **Developed by:** [Oussama Production](https://beta-securitybyobscurity.apify.com/devscrapper) (community)
- **Categories:** Developer tools, Automation, Integrations
- **Stats:** 9 total users, 9 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.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

# README

## 📱 WhatsApp API (unofficial) - Send Messages at Scale

**Powerful WhatsApp messaging automation for businesses, e-commerce, and customer support teams**

Send text messages, images, videos, and documents through WhatsApp Business API. Perfect for order notifications, customer support, marketing campaigns, and chatbot integrations.

***

### 🚀 Why Choose This WhatsApp API?

✅ **Enterprise-Grade Reliability** - Built for high-volume messaging\
✅ **Multi-Media Support** - Text, images, videos, audio, documents\
✅ **Group Management** - Send to groups and manage members\
✅ **Real-Time Tracking** - Monitor sent/received messages\
✅ **Easy Integration** - Works with any CRM, e-commerce platform, or chatbot\
✅ **QR Code Automation** - Automatic WhatsApp Web connection setup

***

### 💼 Perfect For

- **E-commerce**: Order confirmations, shipping updates, abandoned cart recovery
- **Customer Support**: Automated responses, ticket notifications
- **Marketing**: Promotional campaigns, event notifications
- **Healthcare**: Appointment reminders, test results
- **Education**: Class notifications, assignment reminders
- **Real Estate**: Property alerts, viewing confirmations

***

### ⚡ Quick Start in 3 Steps

#### Step 1: Create Your Account

```json
{
  "action": "create_account",
  "password": "your-secure-password"
}
```

#### Step 2: Connect WhatsApp

```json
{
  "action": "create_whatsapp", 
  "password": "your-secure-password"
}
```

*Scan the QR code with your WhatsApp Business app*

#### Step 3: Send Messages

```json
{
  "action": "send_message",
  "password": "your-secure-password",
  "unique": "your-whatsapp-id",
  "recipient": "+1234567890",
  "message": "Hello! Your order #12345 is confirmed.",
  "type": "text"
}
```

**That's it! Start sending WhatsApp messages in under 5 minutes.**

***

### 🎯 Key Features & Actions

| Feature | Action | Description |
|---------|--------|-------------|
| 🔐 **Account Setup** | `create_account` | Create your WhatsApp API account with 100 free credits |
| 📊 **Account Info** | `account_info` | View account details, credits, and connected WhatsApp accounts |
| 🔗 **Connect WhatsApp** | `create_whatsapp` | Generate QR code to link your WhatsApp Business account |
| 📋 **List Accounts** | `get_wa_accounts` | See all your connected WhatsApp accounts |
| 🗑️ **Remove Account** | `delete_wa_account` | Disconnect a WhatsApp account |
| 💬 **Send Messages** | `send_message` | Send text, media, or document messages |
| 📥 **Received Messages** | `get_wa_received` | Fetch messages sent to your WhatsApp |
| 📤 **Sent Messages** | `get_wa_sent` | View your message history and delivery status |
| 👥 **Groups** | `get_wa_groups` | List all groups your WhatsApp is part of |
| 👤 **Group Members** | `get_wa_groups_members` | Get member list for specific groups |
| ✅ **Phone Validation** | `validate_wa_phone` | Check if a phone number has WhatsApp |

***

### 📝 Input Configuration

#### Required Parameters

- **`action`**: Choose from 11 available actions
- **`password`**: Your account identifier (auto-generated or custom)

#### Message Parameters

- **`unique`**: WhatsApp account ID (from `get_wa_accounts`)
- **`recipient`**: Phone number in E.164 format (+1234567890) or group ID
- **`message`**: Your text message or media caption
- **`type`**: `text`, `media`, or `document`

#### Media & Document Options

- **Media**: JPG, PNG, GIF, MP4, MP3, OGG files via URL
- **Documents**: PDF, DOC, DOCX, XLS, XLSX, XML files via URL
- **Priority**: Set message urgency (1=immediate, 2=normal)

***

### 💻 Real-World Examples

#### 🛒 E-commerce Order Notification

```json
{
  "action": "send_message",
  "password": "ecommerce-store-2024",
  "unique": "wa_business_001",
  "recipient": "+1234567890",
  "message": "🎉 Order #12345 confirmed!\n\n📦 Items: MacBook Pro\n💰 Total: $1,299\n📅 Delivery: Dec 15\n\nTrack: https://track.example.com/12345",
  "type": "text",
  "priority": 1
}
```

#### 🏥 Medical Appointment Reminder

```json
{
  "action": "send_message",
  "password": "clinic-system",
  "unique": "wa_clinic_01",
  "recipient": "+1234567890",
  "message": "⏰ Appointment Reminder\n\nDr. Smith - Tomorrow 2:00 PM\nPlease arrive 15 minutes early.\n\nCancel: Reply CANCEL",
  "type": "text"
}
```

#### 📸 Send Product Image

```json
{
  "action": "send_message",
  "password": "fashion-store",
  "unique": "wa_fashion_01",
  "recipient": "+1234567890",
  "message": "Check out our new summer collection! 🌞",
  "type": "media",
  "media_url": "https://store.com/images/summer-dress.jpg",
  "media_type": "image"
}
```

#### 📄 Send Invoice Document

```json
{
  "action": "send_message",
  "password": "accounting-firm",
  "unique": "wa_accounting",
  "recipient": "+1234567890",
  "message": "Your invoice is ready for download",
  "type": "document",
  "document_url": "https://invoices.com/inv-12345.pdf",
  "document_name": "Invoice-December-2024.pdf",
  "document_type": "pdf"
}
```

***

### 🔧 Integration Examples

#### Python Integration

```python
from apify_client import ApifyClient

client = ApifyClient("your-apify-token")

## Send welcome message to new customers
def send_welcome_message(phone_number, customer_name):
    run_input = {
        "action": "send_message",
        "password": "your-password",
        "unique": "your-wa-id",
        "recipient": phone_number,
        "message": f"Welcome {customer_name}! Thanks for joining us. 🎉",
        "type": "text"
    }
    
    run = client.actor("whatsapp-api").call(run_input=run_input)
    return run
```

#### JavaScript/Node.js

```javascript
const { ApifyApi } = require('apify-client');
const client = new ApifyApi({ token: 'your-apify-token' });

// Send order confirmation
async function sendOrderConfirmation(orderData) {
    const input = {
        action: 'send_message',
        password: 'your-password',
        unique: 'your-wa-id',
        recipient: orderData.customerPhone,
        message: `Order #${orderData.id} confirmed! Total: $${orderData.total}`,
        type: 'text'
    };
    
    const run = await client.actor('whatsapp-api').call(input);
    console.log('Message sent:', run);
}
```

#### Webhook Integration

```python
## Flask webhook example
@app.route('/order-webhook', methods=['POST'])
def handle_new_order():
    order = request.json
    
    ## Send WhatsApp notification
    apify_input = {
        "action": "send_message",
        "password": "store-password",
        "unique": "wa-store-id",
        "recipient": order['customer_phone'],
        "message": f"Order #{order['id']} received! We'll prepare it shortly.",
        "type": "text"
    }
    
    ## Trigger Apify Actor
    requests.post(APIFY_WEBHOOK_URL, json=apify_input)
    return {"status": "sent"}
```

***

### 📊 Output Examples

#### Successful Message Response

```json
{
  "success": true,
  "data": {
    "id": "msg_12345",
    "status": "sent",
    "recipient": "+1234567890",
    "timestamp": "2024-12-15T10:30:00Z",
    "credits_used": 1,
    "message_type": "text"
  }
}
```

#### Account Creation Response

```json
{
  "success": true,
  "account_data": {
    "PASSWORD": "generated-password-123",
    "credits": 100,
    "timezone": "America/New_York",
    "country": "US",
    "theme": "dark",
    "wa_accounts": []
  },
  "message": "Account created successfully"
}
```

#### WhatsApp QR Code Response

```json
{
  "success": true,
  "data": {
    "unique": "wa_business_12345",
    "qr_link": "https://zender.com/qr/wa_business_12345",
    "base64": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA...",
    "status": "waiting",
    "expires_in": 300
  }
}
```

***

### ⚠️ Common Issues & Solutions

#### 🔐 Authentication Error

**Problem**: `"Invalid password or account not found"`\
**Solution**: First run `create_account` to set up your account

#### 🆔 Missing WhatsApp ID

**Problem**: `"unique key is required"`\
**Solution**: Run `get_wa_accounts` to get your WhatsApp account IDs

#### 📱 Phone Number Issues

**Problem**: Messages not delivering\
**Solution**: Use E.164 format (+country+number) and validate with `validate_wa_phone`

#### 🖼️ Media Upload Errors

**Problem**: Media files not sending\
**Solution**: Ensure URLs are publicly accessible and files are under 16MB

***

### 💡 Pro Tips

#### 🎯 Best Practices

- **Rate Limiting**: Send max 80 messages/minute per WhatsApp account
- **Opt-in Required**: Only message users who opted in
- **Personal Touch**: Use recipient names in messages
- **Time Zones**: Send messages during business hours
- **Media Optimization**: Compress images/videos for faster delivery

#### 🔒 Security Tips

- Store passwords securely (use environment variables)
- Validate all phone numbers before sending
- Monitor failed delivery rates
- Rotate API credentials regularly

#### 📈 Scaling Tips

- Use multiple WhatsApp accounts for high volume
- Implement retry logic for failed messages
- Cache frequently used data
- Monitor credit usage and top up automatically

### 🔗 Use Cases by Industry

#### 🛍️ **E-commerce & Retail**

- Order confirmations and shipping updates
- Abandoned cart recovery messages
- New product announcements
- Customer support and returns

#### 🏥 **Healthcare & Wellness**

- Appointment reminders and confirmations
- Test results and health reports
- Medication reminders
- Emergency notifications

#### 🏫 **Education**

- Class schedules and assignments
- Exam results and grades
- Parent-teacher communications
- Event notifications

#### 🏢 **Business Services**

- Meeting reminders and updates
- Invoice and payment notifications
- Service completion updates
- Client onboarding messages

#### 🚗 **Automotive**

- Service reminders and appointments
- Delivery notifications for parts
- Warranty and recall notices
- Customer satisfaction surveys

***

### 🛠️ Technical Specifications

- **Built With**: Python 3.8+, AsyncIO, HTTPx
- **Database**: MySQL with connection pooling
- **Rate Limits**: 80 messages/minute per account
- **File Size Limits**: 16MB for media, 100MB for documents
- **Supported Formats**: JPG, PNG, GIF, MP4, PDF, DOC, XLS, etc.
- **Response Time**: < 2 seconds average
- **Uptime**: 99.9% SLA

***

### 🤝 Support & Community

#### 📚 Documentation

- Complete API reference and examples
- Integration tutorials for popular platforms
- Video guides and best practices

#### 💬 Get Help

- GitHub issues for bug reports
- Community Discord for discussions
- Email support for enterprise customers
- Live chat during business hours

***

**🚀 Ready to automate your WhatsApp messaging?**

Click "Try for free" and send your first message in under 5 minutes!

# Actor input Schema

## `action` (type: `string`):

Action to perform on whatsapp account

## `password` (type: `string`):

Simple password

## `unique` (type: `string`):

WhatsApp Account Unique ID (required for delete\_wa\_account and send\_message)

## `recipient` (type: `string`):

Recipient mobile number (E.164 format) or group address (required for send\_message)

## `message` (type: `string`):

Text message or caption to send (required for text messages or media with caption)

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

Type of WhatsApp message

## `priority` (type: `integer`):

Message priority (1 = immediate, 2 = normal)

## `media_url` (type: `string`):

Direct URL to media file (jpg, png, gif, mp4, mp3, ogg) - required for media type

## `media_type` (type: `string`):

Type of media file (required when using media\_url)

## `document_url` (type: `string`):

Direct URL to document file (pdf, xml, xls, xlsx, doc, docx) - required for document type

## `document_name` (type: `string`):

Name of the document file including extension (e.g., document.pdf) - required when using document\_url

## `group_id` (type: `string`):

Group ID (required for get\_wa\_groups\_members)

## `phone` (type: `string`):

Phone Number (required for validate\_wa\_phone)

## `document_type` (type: `string`):

Type of document file (required when using document\_url)

## Actor input object example

```json
{
  "action": "create_account",
  "password": "password 1234",
  "type": "text",
  "priority": 1
}
```

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

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

# Run the Actor and wait for it to finish
run = client.actor("devscrapper/whatsappapi").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 '{}' |
apify call devscrapper/whatsappapi --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "WhatsApp API",
        "description": "A powerful WhatsApp API to send and receive text, images, and videos with ease — built for scalability, flexibility, and seamless integration into CRMs, e-commerce platforms, or chatbots.",
        "version": "0.0",
        "x-build-id": "YzWkGKJRRyQ7yq1Ov"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/devscrapper~whatsappapi/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-devscrapper-whatsappapi",
                "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/devscrapper~whatsappapi/runs": {
            "post": {
                "operationId": "runs-sync-devscrapper-whatsappapi",
                "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/devscrapper~whatsappapi/run-sync": {
            "post": {
                "operationId": "run-sync-devscrapper-whatsappapi",
                "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": [
                    "action"
                ],
                "properties": {
                    "action": {
                        "title": "Action",
                        "enum": [
                            "create_account",
                            "account_info",
                            "create_whatsapp",
                            "get_wa_accounts",
                            "delete_wa_account",
                            "send_message",
                            "get_wa_received",
                            "get_wa_sent",
                            "get_wa_groups",
                            "get_wa_groups_members",
                            "validate_wa_phone"
                        ],
                        "type": "string",
                        "description": "Action to perform on whatsapp account",
                        "default": "create_account"
                    },
                    "password": {
                        "title": "Password",
                        "type": "string",
                        "description": "Simple password",
                        "default": "password 1234"
                    },
                    "unique": {
                        "title": "WhatsApp Unique ID",
                        "type": "string",
                        "description": "WhatsApp Account Unique ID (required for delete_wa_account and send_message)"
                    },
                    "recipient": {
                        "title": "Recipient",
                        "type": "string",
                        "description": "Recipient mobile number (E.164 format) or group address (required for send_message)"
                    },
                    "message": {
                        "title": "Message",
                        "type": "string",
                        "description": "Text message or caption to send (required for text messages or media with caption)"
                    },
                    "type": {
                        "title": "Message Type",
                        "enum": [
                            "text",
                            "media",
                            "document"
                        ],
                        "type": "string",
                        "description": "Type of WhatsApp message",
                        "default": "text"
                    },
                    "priority": {
                        "title": "Priority",
                        "type": "integer",
                        "description": "Message priority (1 = immediate, 2 = normal)",
                        "default": 1
                    },
                    "media_url": {
                        "title": "Media URL",
                        "type": "string",
                        "description": "Direct URL to media file (jpg, png, gif, mp4, mp3, ogg) - required for media type"
                    },
                    "media_type": {
                        "title": "Media Type",
                        "enum": [
                            "image",
                            "audio",
                            "video"
                        ],
                        "type": "string",
                        "description": "Type of media file (required when using media_url)"
                    },
                    "document_url": {
                        "title": "Document URL",
                        "type": "string",
                        "description": "Direct URL to document file (pdf, xml, xls, xlsx, doc, docx) - required for document type"
                    },
                    "document_name": {
                        "title": "Document Name",
                        "type": "string",
                        "description": "Name of the document file including extension (e.g., document.pdf) - required when using document_url"
                    },
                    "group_id": {
                        "title": "Group ID",
                        "type": "string",
                        "description": "Group ID (required for get_wa_groups_members)"
                    },
                    "phone": {
                        "title": "Phone Number",
                        "type": "string",
                        "description": "Phone Number (required for validate_wa_phone)"
                    },
                    "document_type": {
                        "title": "Document Type",
                        "enum": [
                            "pdf",
                            "xml",
                            "xls",
                            "xlsx",
                            "doc",
                            "docx"
                        ],
                        "type": "string",
                        "description": "Type of document file (required when using document_url)"
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
