For developers

Order from your
own tooling.

A small JSON API over HTTPS. Same prices, same plan limits and the same coin balance as the website - there is no separate API pricing.

Getting a key

API access is on the Pro and Elite plans. Create a key in Settings; it is shown once and stored hashed, so if you lose it, make another.

Authorization: Bearer omni_xxxxxxxxxxxxxxxxxxxxxxxx

Base URL https://growyourccu.com. Send JSON, get JSON. Errors come back as {"error": "..."} with a 4xx status.

Endpoints

GET /api/me

Your balance, plan and limits.

curl -H "Authorization: Bearer $KEY" \ https://growyourccu.com/api/me
{ "username": "you", "coins": 1250, "plan": "pro", "limits": { "concurrent": 3, "max_ccu": 50, "max_hours": 12 }, "active_orders": 1 }
GET /api/quote

What a tier costs, before you buy it. No key needed.

curl "https://growyourccu.com/api/quote?kind=visits&tier=50"
{ "coins": 50, "units": 1000, "usd": 5.0, "unit": "visits" }

kind is visits or ccu. tier is the coin price of a tier from the pricing table. hours applies to ccu only.

POST /api/orders

Place an order. Coins come off your balance immediately, exactly as on the website.

curl -X POST -H "Authorization: Bearer $KEY" \ -H "Content-Type: application/json" \ -d '{"kind":"visits","place":189707,"tier":50}' \ https://growyourccu.com/api/orders
{ "id": 412, "kind": "visits", "state": "queued", "place_id": 189707, "place_name": "Natural Disaster Survival", "target": 1000, "delivered": 0, "percent": 0.0, "cost": 50, "coins_left": 1200 }

place takes a place ID or a full Roblox game link. For live players add "hours". Returns 201, or 400 with the same message the site would show - not enough coins, over your plan limit, bad place.

GET /api/orders

Your orders, newest first. Optional state (active or finished) and limit up to 100.

curl -H "Authorization: Bearer $KEY" \ "https://growyourccu.com/api/orders?state=active"
GET /api/orders/{id}

One order, with its queue position and the last 30 progress events.

curl -H "Authorization: Bearer $KEY" \ https://growyourccu.com/api/orders/412
{ "id": 412, "state": "running", "delivered": 640, "target": 1000, "percent": 64.0, "queue_position": 0, "events": [ { "ts": 1794100000, "level": "info", "msg": "Delivered 640 of 1,000 visits" } ] }
POST /api/orders/{id}/cancel

Stop an order. Whatever has not been delivered returns to your balance.

curl -X POST -H "Authorization: Bearer $KEY" \ https://growyourccu.com/api/orders/412/cancel

Rules

AuthBearer key
PlansPro and Elite
Orders30 an hour
Place lookups90 per 5 min
FormatJSON
TransportHTTPS only

Going over a limit returns 429. A key on a plan without API access returns 401, so downgrading a plan turns its keys off without deleting them.

Status codes

200 / 201Done
400Your request
401Key or plan
404Not yours
429Slow down

Keep the key secret

A key spends your coins. Keep it server side, never in a Roblox script or anything a player can read, and revoke it in Settings the moment it leaks.

Manage keys

Something missing?

Tell us what you are building and we will add the endpoint.

Ask in Discord