API documentation
Connect your server to Boostsy to list services, place orders and track delivery.
Getting started
Complete your account setup, verify your email and create an API key. Fund your wallet before placing orders. Each key can access only its account’s orders and balance.
| Parameter | Description |
|---|---|
HTTP method | POST |
API URL | https://boostsy.net/api/v2 |
Response format | JSON |
Request format | JSON or application/x-www-form-urlencoded |
Authentication | Authorization: Bearer YOUR_API_KEY, or key in the request body |
Example request
curl -X POST 'https://boostsy.net/api/v2' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"action":"services"}'Use the API key on your server. Do not expose it in browser code. Order and service IDs are strings; preserve them exactly as returned.
Service list
| Parameter | Description |
|---|---|
action | services |
For pricing_model: retail_endings_usd, calculate the base charge from the rate and quantity, then round upward to the next USD .49 or .99 ending. Below $1, round upward to .09, .19, and so on. Exact endings stay unchanged. Other services use proportional pricing. The order status returns the actual wallet charge.
Returns services currently available to your account. rate is the USD price per 1,000 units. min and max are order quantities. Use the returned service ID when ordering.
Example response
[
{
"service": "s0123456789abcdef01234567",
"name": "Example service",
"type": "Default",
"category": "Instagram",
"rate": "2.5",
"min": "100",
"max": "10000",
"refill": true,
"cancel": false
}
]The catalogue can change. Refresh it before quoting customers. Subscription services are managed in the Boostsy workspace and are not returned by this API.
Add order
| Parameter | Description |
|---|---|
action | add |
service | Service ID from the service list |
link | Public target URL for delivery |
quantity | Integer within the service’s min and max; for Custom Comments, the number of nonempty comment lines is used |
idempotency_key | Unique reference for this intended order; alternatively send an Idempotency-Key header |
For Custom Comments services, supply comments as newline-separated text. For Web Traffic services, supply the additional fields below.
| Parameter | Description |
|---|---|
comments | Required for Custom Comments; one comment per line |
country | Required for Web Traffic; country name or code |
device | Required for Web Traffic; integer 1–5 |
type_of_traffic | Required for Web Traffic; integer 1–3 |
google_keyword | Required when type_of_traffic is 1 |
referring_url | Required when type_of_traffic is 2 |
Example request
curl -X POST 'https://boostsy.net/api/v2' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: your-unique-order-reference' \
-d '{"action":"add","service":"SERVICE_ID","link":"https://example.com/public-target","quantity":100}'Example response
{"order":"o0123456789abcdef01234567"}An accepted order is charged to your USD wallet and queued for fulfillment. Reusing the same idempotency key returns the original order ID without charging again. A new key creates a new order, so keep the original key when retrying after a timeout.
Order status
| Parameter | Description |
|---|---|
action | status |
order | One order ID |
orders | Comma-separated order IDs, up to 100; use instead of order |
Single-order response
{
"charge": "0.25",
"start_count": "0",
"status": "Pending",
"remains": "100",
"currency": "USD"
}With orders, the response is an object keyed by each order ID. An unknown or other account’s order returns {"error":"Incorrect order ID"} for that ID. Poll until a terminal status such as Completed, Partial, Canceled or Failed.
Create refill
| Parameter | Description |
|---|---|
action | refill |
order | One completed, refill-eligible order ID |
orders | Comma-separated order IDs, up to 100; use instead of order |
Single-order response
{"refill":"0123456789abcdef01234567"}With orders, the response is an array of {"order":"ORDER_ID","refill":"REFILL_ID"} entries. An ineligible order returns an error in its refill field. A refill can be requested only after completion when the service supports it.
Refill status
| Parameter | Description |
|---|---|
action | refill_status |
refill | One refill ID |
refills | Comma-separated refill IDs, up to 100; use instead of refill |
Single-refill response
{"status":"Pending"}With refills, the response is an array of {"refill":"REFILL_ID","status":"Pending"} entries. Unknown IDs return an error in the status field.
Cancel orders
| Parameter | Description |
|---|---|
action | cancel |
orders | Comma-separated order IDs, up to 100; include one ID for a single cancellation |
Example response
[
{"order":"ORDER_ID","cancel":1},
{"order":"OTHER_ORDER_ID","cancel":{"error":"Cancellation is not available for this service"}}
]cancel: 1 means the request was accepted. A submitted order may remain in Cancellation requested until the supplier confirms the outcome. Check its status for the final result.
Balance
| Parameter | Description |
|---|---|
action | balance |
Example response
{"balance":"100","currency":"USD"}The API spends the authenticated account’s wallet. Add funds in the wallet; a pending deposit is not available balance.
Errors and limits
Errors return a JSON object such as {"error":"Insufficient balance. Add funds to continue."} with a non-2xx HTTP status. Check both the status code and the error field. Authentication failures return 401, insufficient wallet funds return 402, and rate limiting returns 429.
The limit is 120 requests per minute per account. Batch status, refill and cancellation requests accept up to 100 IDs. If an order submission times out, retry only with the same idempotency key; if the outcome remains unclear, check order history or contact support before creating another order.