Getting started
The Adolfjon API lets your scripts, bots and apps read data from Adolfjon.uz: the store catalog, your balance, your orders, your VIP plan and your Hour Boost. It is a plain HTTPS + JSON API. v1 is read-only.
1. Apply for access
- Sign in with your Adolfjon.uz account. Your account must be at least 7 days old and have Telegram or Google linked.
- Open the dashboard and fill in the short application: app name, what it does, and which permissions it needs.
- We review every app by hand. You get a Telegram and email message when it is approved.
2. Create a test key
You do not have to wait for approval. Right after applying, create a key in Test mode. It starts with ak_test_. Catalog endpoints return real data, and account endpoints return realistic fake data, so nothing private is at risk while you build. See Test keys.
The full key is shown once when you create it. Store it like a password. For a quick test, paste it into your script. Never send that file to anyone, upload it to a public repo or show it in a screenshot.
3. Make your first request
Check that the key works with /v1/key, which needs no special permission:
curl https://dev.adolfjon.uz/v1/key \
-H "Authorization: Bearer ak_test_YOUR_KEY"<?php
$apiKey = 'ak_test_YOUR_KEY';
$ch = curl_init('https://dev.adolfjon.uz/v1/key');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . $apiKey],
]);
$res = json_decode(curl_exec($ch), true);
if (!$res['ok']) throw new RuntimeException($res['error']['message']);
print_r($res['data']);const API_KEY = 'ak_test_YOUR_KEY';
const res = await fetch('https://dev.adolfjon.uz/v1/key', {
headers: { Authorization: `Bearer ${API_KEY}` },
});
const body = await res.json();
if (!body.ok) throw new Error(body.error.message);
console.log(body.data);import requests
API_KEY = 'ak_test_YOUR_KEY'
r = requests.get(
'https://dev.adolfjon.uz/v1/key',
headers={'Authorization': f'Bearer {API_KEY}'},
timeout=10,
)
body = r.json()
if not body['ok']:
raise RuntimeError(body['error']['message'])
print(body['data'])A successful response always looks like this:
{
"ok": true,
"data": {
"id": 12,
"name": "My bot",
"prefix": "ak_live_Ab3d",
"mode": "live",
"app": {
"id": 4,
"name": "Stock watcher",
"status": "approved"
},
"scopes": [
"catalog:read",
"balance:read"
],
"ip_allowlist": [],
"limits": {
"per_minute": 30,
"per_day": 2000,
"used_today": 17
},
"expires_at": "2027-01-24T02:00:00+05:00"
},
"meta": {
"request_id": "req_3f9a0c1d2e4b5a6978c0",
"mode": "live"
}
}4. Go live
Once your app is approved, create a Live key (ak_live_) with only the permissions you need. Live keys read your real account. Consider an IP allowlist so the key only works from your server.
What next
- Authentication: how to send the key.
- Errors and rate limits: how to handle failures.
- API reference: every endpoint, with a Try it button.