Reseller API
Buy products with your account balance and pull the delivered accounts/codes into your own system automatically.
Getting started
- Verify your phone number. Your account must be at least 14 days old with at least 1 paid order.
- In Account → API press "Create my key" and enter the code sent to your phone. The key is shown only once — store it safely. You get an e-mail whenever a key is created.
- Add balance. The API buys only with balance; if your balance is not enough, no order is created.
Tiers and limits
Limits rise automatically with your account's total purchases. See your current tier in GET /account and on Account → API.
| Tier | Condition | Daily spending | Requests / minute |
|---|---|---|---|
| 1 | Total $0 purchases, 14-day-old account | $25 | 30 |
| 2 | Total $100 purchases, 30-day-old account | $150 | 60 |
| 3 | Total $500 purchases, 60-day-old account | $500 | 120 |
If you need higher limits, contact our support team. Accounts with a card dispute (chargeback) permanently lose API access.
Authentication
Send the key only in a request header:
curl -H "Authorization: Bearer ftk_YOUR_KEY" https://followturk.com/api/v1/account curl -H "X-API-Key: ftk_YOUR_KEY" https://followturk.com/api/v1/account
Endpoints
Base URL: https://followturk.com/api/v1
| Method | Endpoint | Description |
|---|---|---|
| GET | /account | Balance, daily limit and today's spend |
| GET | /categories | Categories that have API products |
| GET | /products | Products sold through the API (paged) |
| GET | /products/{id} | One product |
| POST | /orders | Place an order paid from balance |
| GET | /orders | Orders you placed through the API |
| GET | /orders/{order_number} | Order status and delivered accounts/codes |
List endpoints accept the query parameters page and per_page (max 100). /products also accepts category_id.
POST /orders
Send a unique Idempotency-Key header with every order (8-64 chars: letters, digits, "-" or "_"). Resending with the same key never creates a second order; it returns the first one, so retrying after a network error is safe.
curl -X POST https://followturk.com/api/v1/orders \
-H "Authorization: Bearer ftk_YOUR_KEY" \
-H "Idempotency-Key: order-20261012-0001" \
-H "Content-Type: application/json" \
-d '{"items":[{"product_id":123,"quantity":2},{"product_id":456,"variant_id":789,"quantity":1}]}'
| Field | Description |
|---|---|
items[].product_id | Product ID (integer, required) |
items[].quantity | Quantity (integer, within the product's min/max) |
items[].variant_id | Required for products with variants, not allowed otherwise |
Delivered accounts and codes are not in the create response; fetch them with GET /orders/{order_number}.
Response format
{ "success": true, "data": { ... }, "meta": { "page": 1, "per_page": 50, "total": 120 } }
{ "success": false, "error": { "code": "insufficient_balance", "message": "Insufficient balance.", "details": { "required": 12.5, "balance": 4 } } }
| HTTP | Code | Meaning |
|---|---|---|
400 | key_in_url / idempotency_key_required | Key in URL, or Idempotency-Key missing |
401 | unauthorized | Missing or invalid key |
402 | insufficient_balance | Not enough balance — no order was created |
403 | account_restricted / phone_not_verified / not_eligible | This account cannot use the API or does not meet the requirements yet |
404 | not_found / product_not_found / order_not_found | Not found |
409 | out_of_stock / idempotency_conflict | Not enough stock, or the Idempotency-Key was used for a different order |
422 | invalid_* / product_unavailable / below_minimum | Invalid request |
429 | rate_limited / daily_limit_reached | Per-minute request limit or daily spending limit reached |
503 | api_disabled / orders_disabled / orders_paused / busy | API or ordering temporarily closed or busy; retry later |