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.
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.
| Scheme | Location | Value |
|---|---|---|
| JWT bearer | Header | Authorization: Bearer <token> |
| API key | Header | X-API-Key: pk_xxxxxxxx |
| API secret | Header | X-API-Secret: sk_xxxxxxxx |
Headers
| Header | Required | Description |
|---|---|---|
| Authorization | Optional | Bearer JWT issued by the token endpoint. |
| X-API-Key | Yes | Your API key (pk_…). |
| X-API-Secret | Yes | Your API secret (sk_…), shown once at creation. |
| Content-Type | Yes | application/json |
| X-Request-Id | No | Your idempotency key; echoed back in the response. |
Parameters & validation rules
| Name | Type | Required | Validation | Description |
|---|---|---|---|---|
| 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
| Code | Meaning |
|---|---|
| 200 | Success - verification completed and wallet debited. |
| 400 | Validation failed - check the parameter rules below. |
| 401 | Missing or invalid JWT / API key. |
| 402 | Insufficient wallet balance. |
| 403 | API not purchased or key not permitted for this endpoint. |
| 404 | Record not found at the source registry. |
| 422 | Upstream provider returned an unprocessable response. |
| 429 | Rate limit exceeded - retry after the window resets. |
| 500 | Unexpected server error - safe to retry with the same request_id. |
| 503 | Upstream 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.