REST API
API مربوط به Hivesigner روی https://hivesigner.com/api/ است. حساب کاربر واردشده را برمیگرداند، عملیات انتشار را بهجای او منتشر میکند، کدها را با توکن مبادله میکند و برنامههایی را که از Hivesigner استفاده میکنند فهرست میکند. این صفحه هر نقطه پایانی را با درخواستها، پاسخها و خطاهای آن شرح میدهد.
درخواستها و احراز هویت
- نشانی پایه:
https://hivesigner.com/api/. هر نقطه پایانی زیر نسبت بهhttps://hivesigner.comاست. - توکن: آن را همانگونه که هست بهعنوان سرایند
Authorizationبفرستید:Authorization: ACCESS_TOKEN. پیشوندBearerهم پذیرفته میشود. میتوانید آن را بهعنوانaccess_tokenدر رشته پرسوجو یا در بدنه هم بفرستید، اما سرایند آن را از نشانیها و گزارشها دور نگه میدارد. - بدنهها: JSON با
Content-Type: application/json، یا یک فرم (application/x-www-form-urlencoded). - پاسخها: JSON.
- مرورگرها: API درخواستهای میانمبدأ را مجاز میکند، پس یک برنامه وب میتواند مستقیم آن را صدا بزند.
برای گرفتن توکن، ببینید ورود با OAuth2. برای اینکه توکن چه چیزی در خود دارد، ببینید توکنها.
خطاها
پاسخ خطا یک وضعیت خطای HTTP و این بدنه را دارد:
{
"error": "invalid_scope",
"error_description": "The access_token scope does not allow the following operation(s): transfer"
}
| وضعیت | error |
چه زمانی |
|---|---|---|
| 401 | invalid_grant |
توکن نیست یا معتبر نیست، یا برای این نقطه پایانی از گونه نادرست است ("The token has invalid role"). در /api/oauth2/token همچنین "The code or secret is not valid". |
| 401 | invalid_scope |
/api/broadcast: عملیاتی که توکن آن را مجاز نمیکند. توضیح، نام عملیات را میبرد. |
| 401 | unauthorized_client |
/api/broadcast: عملیاتی که نویسندهاش کاربر توکن نیست، یک account_update2 که کلیدها را دست میزند، نبود اجازه اختیار انتشار، یا حسابی که بار نشد. توضیح میگوید کدام است. |
| 500 | server_error |
/api/broadcast: شبکه Hive تراکنش را رد کرد. error_description پیام آن را در خود دارد. |
| 503 | unavailable |
/api/apps: فهرست هنوز در حال ساخته شدن است. |
GET /api/me
حسابی را که توکن برای آن است برمیگرداند. از آن برای دانستن اینکه چه کسی وارد شده، یا برای بررسی یک توکن استفاده کنید.
- روشها:
GETیاPOST. - توکن: یک توکن دسترسی، از جمله توکن
loginکه نام برنامهای را دارد.
curl https://hivesigner.com/api/me -H 'Authorization: ACCESS_TOKEN'
پاسخ، کوتاهشده:
{
"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 } }
}
| فیلد | معنا |
|---|---|
user |
نام کاربری Hive که توکن برای آن است. _id و name همان را تکرار میکنند. |
account |
کل حساب، همانگونه که condenser_api.get_accounts در Hive برمیگرداند. |
scope |
آنچه توکن مجاز میکند: ["login"] برای توکن ورود، و در غیر این صورت عملیاتی که /api/broadcast میپذیرد. |
user_metadata |
فراداده پروفایل حساب، خواندهشده از JSON. |
/api/me نام برنامهای را که توکن برایش ساخته شده نمیبرد. برای بررسی آن، توکن را رمزگشایی کنید: ببینید از API بپرسید.
POST /api/broadcast
عملیات انتشار کاربر توکن را با کلید انتشار @hivesigner امضا میکند و به Hive میفرستد.
- روش:
POST. - توکن: یک توکن دسترسی
posting، از جریان توکن یا جریان کد. - پیش از آنکه کار کند: کاربر به حساب برنامه شما اختیار انتشار داده باشد (صفحه رضایت این کار را میکند) و حساب برنامه شما به @hivesigner اختیار انتشار داده باشد.
- بدنه:
{ "operations": [...] }، که در آن هر عملیات[name, fields]است، همانگونه که روی زنجیره Hive هست. همه عملیات یک درخواست در یک تراکنش میروند.
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 }]
]
}
همان درخواست با curl:
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}]]}'
دنبال کردن یک عملیات custom_json است:
{
"operations": [
["custom_json", {
"required_auths": [],
"required_posting_auths": ["alice"],
"id": "follow",
"json": "[\"follow\",{\"follower\":\"alice\",\"following\":\"bob\",\"what\":[\"blog\"]}]"
}]
]
}
API بهمحض آنکه گرهای از Hive تراکنش را بپذیرد پاسخ میدهد. result.id شناسه تراکنش است:
{
"result": { "id": "TRANSACTION_ID" }
}
وقتی شبکه تراکنش را رد کند، پاسخ 500 با server_error است. error_description آن پیام شبکه را در خود دارد و response خطای خام را.
broadcast چه میپذیرد
توکن انتشار به API اجازه میدهد این عملیات را منتشر کند و نه چیز دیگری. در هر کدام، کاربر توکن باید همان حسابی باشد که در فیلد نشاندادهشده آمده است:
| عملیات | کاربر توکن باید باشد |
|---|---|
vote |
voter |
comment |
author |
delete_comment |
author |
comment_options |
author |
custom_json |
نخستین حساب در required_posting_auths |
claim_reward_balance |
account |
account_update2 |
account |
- هر عملیات دیگر با
invalid_scopeرد میشود. توکنloginهیچ عملیاتی را مجاز نمیکند. - عملیاتی برای حساب دیگر با
unauthorized_clientرد میشود. توکن همیشه تنها بهجای کاربر خودش منتشر میکند. account_update2تنها میتواند فراداده حساب را عوض کند. عملیاتی با فیلدowner،activeیاpostingباunauthorized_clientرد میشود.custom_json:required_authsرا تهی بگذارید. API با اختیار انتشار امضا میکند، پس عملیاتی که به اختیار فعال نیاز دارد روی شبکه شکست میخورد.
انتقالها و دیگر عملیات کیف پول به کلید فعال کاربر نیاز دارند. آنها را بهجای این کار بهصورت پیوندهای امضا بفرستید.
POST /api/oauth2/token
یک کد را با توکن، یا یک توکن تازهسازی را با توکنهای تازه مبادله میکند. تنها از سرور خودتان صدا بزنید. ببینید جریان کد.
- روش:
POST، با مقادیر در بدنه. - بدنه:
codeوclient_secret، یاrefresh_tokenوclient_secret. - سرایندها: هیچ سرایند
Authorizationنفرستید.
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"
}
هر فراخوانی یک توکن دسترسی تازه و یک توکن تازهسازی تازه برمیگرداند. هر دو را @hivesigner امضا میکند. expires_in عمر توکن دسترسی بر حسب ثانیه است (۷ روز).
خطاها: 401 invalid_grant. وقتی مقدار فرستادهشده کد یا توکن تازهسازی معتبری نباشد، توضیح «The token has invalid role» است. وقتی کد یا کلید محرمانه جور نباشد، «The code or secret is not valid» است.
POST /api/oauth2/token/revoke
به Hivesigner میگوید که کاربر از برنامه شما خارج شده است. برنامه شما خودش توکن را دور میاندازد.
- روش:
POST. - توکن: توکن دسترسی، در سرایند
Authorization.
curl -X POST https://hivesigner.com/api/oauth2/token/revoke -H 'Authorization: ACCESS_TOKEN'
{ "success": true }
تابع revokeToken() در کیت توسعه JavaScript همین فراخوانی را انجام میدهد و سپس توکن را فراموش میکند. برای برداشتن همیشگی دسترسی برنامه شما، کاربر آن را در https://hivesigner.com/authorized-apps برمیدارد. ببینید خروج و برداشتن دسترسی.
GET /api/apps
فهرست عمومی برنامهها: برنامههایی که از راه Hivesigner منتشر میکنند، مرتبشده بر پایه شمار کاربرانشان. به هیچ توکنی نیاز ندارد. https://hivesigner.com/apps همان فهرست را نشان میدهد.
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
}
]
}
| فیلد | معنا |
|---|---|
updated_at |
آخرین باری که فهرست ساخته شده است. |
building |
تا زمانی که نخستین ساخت دادهای نداشته باشد true است. apps آنگاه تهی است. |
window_days |
شمار روزهایی که رتبهبندی پوشش میدهد. |
featured |
نامهای کاربری که نخست نشان داده میشوند، به همان ترتیب. |
apps[].username |
حساب برنامه. |
apps[].name, about |
از پروفایل حساب برنامه، یا null. |
apps[].website |
وبسایت از پروفایل، وقتی روی دامنه خودش پاسخ دهد. در غیر این صورت null. |
apps[].site |
نتیجه بررسی وبسایت: ok، no_website، invalid، redirected، blocked یا unreachable. مدخل redirected مقدار redirects_to را هم دارد. |
apps[].users |
کاربران متمایز روزانه، جمعشده روی بازه. |
apps[].requests |
درخواستهای موفق API که در آن بازه برای برنامه انجام شدهاند. |
apps[].first_seen, last_seen |
نخستین روزی که Hivesigner برنامه را ثبت کرده و آخرین روزی که به کار رفته، یا null. |
apps[].new |
وقتی برنامه نخستین بار درون همان بازه پیدا شده باشد true است. |
پاسخ میتواند تا ۵ دقیقه در حافظه نهان بماند. پیش از نخستین ساخت فهرست، API با 503 و unavailable پاسخ میدهد. بعدها دوباره تلاش کنید.
نامها و توضیحها را هر حساب برنامه خودش منتشر میکند. Hivesigner هیچکدام را تأیید نمیکند.