Place Order API

Creates an upstream order for the given service id, target link and quantity. The response contains the upstream order id used for status tracking.

v1
POST https://versatile-lavender-rat.163-61-39-39.cpanel.site/api/v1/place-order

Authentication

API key + API secret headers, or a Bearer JWT. Obtain the JWT from POST /api/v1/auth/token using your key and secret; tokens are valid for 3600 seconds.

SchemeLocationValue
JWT bearerHeaderAuthorization: Bearer <token>
API keyHeaderX-API-Key: pk_xxxxxxxx
API secretHeaderX-API-Secret: sk_xxxxxxxx

Headers

HeaderRequiredDescription
AuthorizationOptionalBearer JWT issued by the token endpoint.
X-API-KeyYesYour API key (pk_…).
X-API-SecretYesYour API secret (sk_…), shown once at creation.
Content-TypeYesapplication/json
X-Request-IdNoYour idempotency key; echoed back in the response.

Parameters & validation rules

NameTypeRequiredValidationDescription
api_key string Yes Your API key.
service integer Yes Service ID from the services list.
link string Yes valid URL Target URL (profile, post, video, etc.).
quantity integer Yes min 1 Number of units to order.

Example request

curl -X POST \
  "https://www.apicentre.in/api/order" \
  -d "api_key=YOUR_API_KEY&service=SERVICE&link=LINK&quantity=QUANTITY"
<?php
$ch = curl_init("https://www.apicentre.in/api/order");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, "api_key=YOUR_API_KEY&service=SERVICE&link=LINK&quantity=QUANTITY");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = json_decode(curl_exec($ch), true);
curl_close($ch);
print_r($data);
const res = await fetch("https://www.apicentre.in/api/order", {
  method: "POST",
  headers: { "Content-Type": "application/x-www-form-urlencoded" },
  body: "api_key=YOUR_API_KEY&service=SERVICE&link=LINK&quantity=QUANTITY",
});
console.log(await res.json());
import requests

res = requests.post("https://www.apicentre.in/api/order", data=dict(item.split('=') for item in "api_key=YOUR_API_KEY&service=SERVICE&link=LINK&quantity=QUANTITY".split('&')))
print(res.json())

Responses

Success 200
{
    "status": "200",
    "order": 89432
}
Error 4xx
{
    "status": "400",
    "message": "Insufficient Balance"
}

HTTP status codes

CodeMeaning
200Success - verification completed and wallet debited.
400Validation failed - check the parameter rules below.
401Missing or invalid JWT / API key.
402Insufficient wallet balance.
403API not purchased or key not permitted for this endpoint.
404Record not found at the source registry.
422Upstream provider returned an unprocessable response.
429Rate limit exceeded - retry after the window resets.
500Unexpected server error - safe to retry with the same request_id.
503Upstream registry temporarily unavailable.

Rate limit & billing

Rate limit
30 req/min per key
Charge
₹0.00 per successful call
Failed calls
Not charged (4xx/5xx)

When throttled, the API returns 429 with X-RateLimit-Limit, X-RateLimit-Remaining and Retry-After headers.