REST API
Hivesigner API'si https://hivesigner.com/api/ manzilida joylashgan. U tizimga kirgan foydalanuvchining hisobini qaytaradi, uning nomidan posting amallarini tarmoqqa yuboradi, kodlarni tokenlarga almashtiradi va Hivesigner'dan foydalanadigan ilovalarni roʻyxatlaydi. Bu sahifa har bir manzilni soʻrovlari, javoblari va xatolari bilan tavsiflaydi.
Soʻrovlar va autentifikatsiya
- Asosiy manzil:
https://hivesigner.com/api/. Quyidagi har bir manzilhttps://hivesigner.comga nisbatan beriladi. - Token: uni
Authorizationsarlavhasida qanday boʻlsa shundayligicha yuboring:Authorization: ACCESS_TOKEN.Bearerprefiksi ham qabul qilinadi. Uni soʻrov qatorida yoki tanadaaccess_tokensifatida ham yuborishingiz mumkin, ammo sarlavha tokenni URL manzillari va jurnallardan tashqarida saqlaydi. - Tanalar:
Content-Type: application/jsonbilan JSON yoki forma (application/x-www-form-urlencoded). - Javoblar: JSON.
- Brauzerlar: API domenlararo soʻrovlarga ruxsat beradi, shuning uchun veb-ilova uni bevosita chaqira oladi.
Token olish uchun qarang: OAuth2 orqali kirish. Token nimalarni saqlashi haqida qarang: Tokenlar.
Xatolar
Xato javobi HTTP xato holatiga va shunday tanaga ega boʻladi:
{
"error": "invalid_scope",
"error_description": "The access_token scope does not allow the following operation(s): transfer"
}
| Holat | error |
Qachon |
|---|---|---|
| 401 | invalid_grant |
Token yoʻq yoki yaroqsiz, yoki u bu manzil uchun notoʻgʻri turdagi («The token has invalid role»). /api/oauth2/token da yana «The code or secret is not valid». |
| 401 | invalid_scope |
/api/broadcast: token ruxsat bermaydigan amal. Tavsifda amallar nomi koʻrsatiladi. |
| 401 | unauthorized_client |
/api/broadcast: muallifi token foydalanuvchisi boʻlmagan amal, kalitlarga tegadigan account_update2, yetishmayotgan posting vakolati ruxsati yoki yuklab boʻlmagan hisob. Tavsif qaysi biri ekanini aytadi. |
| 500 | server_error |
/api/broadcast: Hive tarmogʻi tranzaksiyani rad etdi. error_description uning xabarini olib keladi. |
| 503 | unavailable |
/api/apps: katalog hali tuzilmoqda. |
GET /api/me
Token tegishli boʻlgan hisobni qaytaradi. Undan kim kirganini bilish yoki tokenni tekshirish uchun foydalaning.
- Usullar:
GETyokiPOST. - Token: kirish tokeni, shu jumladan ilovani koʻrsatadigan
logintokeni.
curl https://hivesigner.com/api/me -H 'Authorization: ACCESS_TOKEN'
Qisqartirilgan javob:
{
"user": "alice",
"_id": "alice",
"name": "alice",
"account": { "id": 1370484, "name": "alice" },
"scope": [
"vote",
"comment",
"delete_comment",
"comment_options",
"custom_json",
"claim_reward_balance",
"account_update2"
],
"user_metadata": { "profile": { "name": "Alice", "version": 2 } }
}
| Maydon | Maʼnosi |
|---|---|
user |
Token tegishli boʻlgan Hive foydalanuvchi nomi. _id va name ham shu qiymatni takrorlaydi. |
account |
Hive'ning condenser_api.get_accounts chaqiruvi qaytargan koʻrinishdagi butun hisob. |
scope |
Token nimaga ruxsat berishi: kirish tokeni uchun ["login"], aks holda /api/broadcast qabul qiladigan amallar. |
user_metadata |
Hisobning profil maʼlumotlari, JSON'dan ajratib olingan. |
/api/me token qaysi ilova uchun yaratilganini aytmaydi. Buni tekshirish uchun tokenni dekodlang: qarang: API'dan soʻrang.
POST /api/broadcast
Token foydalanuvchisi uchun posting amallarini @hivesigner posting kaliti bilan imzolaydi va ularni Hive tarmogʻiga yuboradi.
- Usul:
POST. - Token: token oqimidan yoki kod oqimidan olingan
postingkirish tokeni. - Avval nima boʻlishi kerak: foydalanuvchi ilova hisobingizga posting vakolatini bergan boʻlishi (buni ruxsat ekrani bajaradi) va ilova hisobingiz @hivesigner'ga posting vakolatini bergan boʻlishi kerak.
- Tana:
{ "operations": [...] }, bunda har bir amal Hive blokcheynidagidek[name, fields]koʻrinishida boʻladi. Bitta soʻrovdagi barcha amallar bitta tranzaksiyaga tushadi.
POST /api/broadcast HTTP/1.1
Host: hivesigner.com
Authorization: ACCESS_TOKEN
Content-Type: application/json
{
"operations": [
["vote", { "voter": "alice", "author": "bob", "permlink": "my-first-post", "weight": 10000 }]
]
}
Xuddi shu soʻrov curl bilan:
curl -X POST https://hivesigner.com/api/broadcast \
-H 'Authorization: ACCESS_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"operations":[["vote",{"voter":"alice","author":"bob","permlink":"my-first-post","weight":10000}]]}'
Obuna bu custom_json amali:
{
"operations": [
["custom_json", {
"required_auths": [],
"required_posting_auths": ["alice"],
"id": "follow",
"json": "[\"follow\",{\"follower\":\"alice\",\"following\":\"bob\",\"what\":[\"blog\"]}]"
}]
]
}
Hive tuguni tranzaksiyani qabul qilishi bilanoq API javob beradi. result.id bu tranzaksiya identifikatori:
{
"result": { "id": "TRANSACTION_ID" }
}
Tarmoq tranzaksiyani rad etganda javob server_error bilan 500 boʻladi. Uning error_description maydoni tarmoq xabarini, response esa xom xatoni olib keladi.
broadcast nimani qabul qiladi
Posting tokeni API'ga faqat shu amallarni yuborishga ruxsat beradi, boshqasiga emas. Ularning har birida token foydalanuvchisi koʻrsatilgan maydondagi hisob boʻlishi kerak:
| Amal | Token foydalanuvchisi kim boʻlishi kerak |
|---|---|
vote |
voter |
comment |
author |
delete_comment |
author |
comment_options |
author |
custom_json |
required_posting_auths dagi birinchi hisob |
claim_reward_balance |
account |
account_update2 |
account |
- Boshqa har qanday amal
invalid_scopebilan rad etiladi.logintokeni hech qanday amalga ruxsat bermaydi. - Boshqa hisob uchun amal
unauthorized_clientbilan rad etiladi. Token faqat oʻz foydalanuvchisi nomidan tranzaksiya yuboradi. account_update2faqat hisobning profil maʼlumotlarini oʻzgartira oladi.owner,activeyokipostingmaydoni bor amalunauthorized_clientbilan rad etiladi.custom_json:required_authsmaydonini boʻsh qoldiring. API posting vakolati bilan imzolaydi, shuning uchun active vakolat talab qiladigan amal tarmoqda muvaffaqiyatsiz tugaydi.
Pul oʻtkazmalari va hamyon bilan bogʻliq boshqa amallar foydalanuvchining active kalitini talab qiladi. Ularni buning oʻrniga imzo havolasi sifatida yuboring.
POST /api/oauth2/token
Kodni tokenlarga yoki yangilash tokenini yangi tokenlarga almashtiradi. Uni faqat serveringizdan chaqiring. Qarang: Kod oqimi.
- Usul:
POST, qiymatlar tanada. - Tana:
codevaclient_secretyokirefresh_tokenvaclient_secret. - Sarlavhalar:
Authorizationsarlavhasini yubormang.
curl -X POST https://hivesigner.com/api/oauth2/token \
-H 'Content-Type: application/json' \
-d '{"code": "CODE", "client_secret": "CLIENT_SECRET"}'
{
"access_token": "ACCESS_TOKEN",
"refresh_token": "REFRESH_TOKEN",
"expires_in": 604800,
"username": "alice"
}
Har bir chaqiruv yangi kirish tokeni va yangi yangilash tokenini qaytaradi. Ikkalasini ham @hivesigner imzolaydi. expires_in bu kirish tokenining sekundlardagi amal qilish muddati (7 kun).
Xatolar: 401 invalid_grant. Yuborilgan qiymat yaroqli kod yoki yangilash tokeni boʻlmaganda tavsif «The token has invalid role» boʻladi. Kod yoki maxfiy kalit mos kelmaganda esa «The code or secret is not valid» boʻladi.
POST /api/oauth2/token/revoke
Hivesigner'ga foydalanuvchi ilovangizdan chiqqanini bildiradi. Tokenni ilovangiz oʻzi tashlab yuboradi.
- Usul:
POST. - Token: kirish tokeni,
Authorizationsarlavhasida.
curl -X POST https://hivesigner.com/api/oauth2/token/revoke -H 'Authorization: ACCESS_TOKEN'
{ "success": true }
JavaScript SDK'sining revokeToken() funksiyasi shu chaqiruvni bajaradi va keyin tokenni unutadi. Ilovangiz ruxsatini butunlay olib tashlash uchun foydalanuvchi uni https://hivesigner.com/authorized-apps sahifasida oʻchiradi. Qarang: Chiqish va ruxsatni olib tashlash.
GET /api/apps
Ochiq ilovalar katalogi: Hivesigner orqali tranzaksiya yuboradigan ilovalar, ulardan qancha odam foydalanishiga qarab tartiblangan. Unga token kerak emas. https://hivesigner.com/apps xuddi shu roʻyxatni koʻrsatadi.
curl https://hivesigner.com/api/apps
{
"updated_at": "2026-09-19T06:00:00.000Z",
"building": false,
"window_days": 7,
"featured": ["myapp"],
"apps": [
{
"username": "myapp",
"name": "My App",
"about": "A short description from the app's profile.",
"website": "https://myapp.example",
"site": "ok",
"users": 412,
"requests": 9310,
"first_seen": "2026-08-01",
"last_seen": "2026-09-19",
"new": false
}
]
}
| Maydon | Maʼnosi |
|---|---|
updated_at |
Katalog oxirgi marta qachon tuzilgani. |
building |
Birinchi tuzish maʼlumotga ega boʻlgunicha true. Shu vaqtda apps boʻsh boʻladi. |
window_days |
Tartiblash necha kunni qamrab olishi. |
featured |
Avval koʻrsatiladigan foydalanuvchi nomlari, aynan shu tartibda. |
apps[].username |
Ilova hisobi. |
apps[].name, about |
Ilova hisobining profilidan olinadi yoki null boʻladi. |
apps[].website |
Profildagi veb-sayt, agar u oʻz domenida javob bersa. Aks holda null. |
apps[].site |
Veb-sayt tekshiruvi natijasi: ok, no_website, invalid, redirected, blocked yoki unreachable. redirected yozuvida yana redirects_to boʻladi. |
apps[].users |
Davr boʻyicha jamlangan kunlik noyob foydalanuvchilar soni. |
apps[].requests |
Davr davomida ilova uchun bajarilgan muvaffaqiyatli API soʻrovlari. |
apps[].first_seen, last_seen |
Hivesigner ilovani birinchi marta qayd etgan kun va u oxirgi marta ishlatilgan kun yoki null. |
apps[].new |
Ilova davr ichida birinchi marta paydo boʻlgan boʻlsa true. |
Javob 5 daqiqagacha keshlanishi mumkin. Katalog birinchi marta tuzilgunicha API unavailable bilan 503 javobini beradi. Keyinroq qayta urinib koʻring.
Nomlar va tavsiflarni har bir ilova hisobi oʻzi eʼlon qiladi. Hivesigner ularni tekshirmaydi.