Reseller panel integration reference: endpoints, actions, webhooks, and service codes.
New to panel integration? Follow the visual setup guide first, then return here for the full reference.
https://www.gainworkers.com/api/v2.action=services, map IDs, test action=add.| URL | https://www.gainworkers.com/api/v2 |
|---|---|
| Method | POST recommended. GET allowed for read-only actions. |
| Authentication | key=gw_live_... in POST body, or Authorization: Bearer gw_live_... |
| Content type | application/x-www-form-urlencoded |
| action | Purpose | Parameters |
|---|---|---|
services | Service catalog (JSON array) | n/a |
balance | Spendable USD balance + deposit URL | n/a |
add | Create order | service, link, quantity, comments, runs, interval |
status | Order status (comma-separated IDs) | order |
cancel | Cancel when allowed | order |
orders | Paginated history | page, per_page, status |
refill | Campaign top-up | order, quantity |
export | Bulk export (max 1000) | status, since, limit |
curl -X POST 'https://www.gainworkers.com/api/v2' \ -d 'key=gw_live_YOUR_KEY' \ -d 'action=add' \ -d 'service=1001' \ -d 'link=https://example.com/landing' \ -d 'quantity=100'
{"order":9841203}
curl -X POST 'https://www.gainworkers.com/api/v2' \ -d 'key=gw_live_YOUR_KEY' \ -d 'action=balance'
{
"balance": "124.5600",
"currency": "USD",
"deposit_url": "https://www.gainworkers.com/wallet/deposit",
"deposits_via_api": false
}
Set a callback URL per API key in Developer Hub → Settings. We POST JSON on status changes with header X-GainWorkers-Signature: sha256=... (HMAC-SHA256 of the raw body).
{
"event": "order.completed",
"order": 12345,
"status": "Completed",
"remains": "0",
"charge": "5.0000",
"currency": "USD",
"timestamp": 1751731200
}
Use webhooks to reduce action=status polling to every 5+ minutes.
| Code | Type | Description |
|---|---|---|
| 1001 | campaign | Micro campaign proof tasks (optional drip: runs + interval) |
| 2001 | live_task | Stream watch |
| 2002 | live_task | Website presence hold |
| 3001 | arena | Headline A/B test |
| 3002 | arena | Visual A/B (image URLs) |
| 4001 | rental | Instagram Story rental |
| 4002 | rental | Instagram Post rental |
| 5001 | task_hunter | Broken link hunt bounty |
| Code | Meaning |
|---|---|
| AUTH_001 | Invalid API key |
| AUTH_002 | IP not whitelisted |
| AUTH_004 | HTTPS required |
| AUTH_005 | API key must not be sent in URL query string |
| RATE_001 | Rate limit exceeded |
| WAL_001 | Insufficient balance (deposit on website) |
| WAL_002 | Deposits blocked via API |
| VAL_005 | Invalid or blocked link URL |
| VAL_007 | Mutation requires POST |
| ORD_001 | Order not found |
add, cancel, refill via POST body.