فهرست مطالب میخواهم … برنامهتان را انتخاب کنید؛ زیر آن فقط گامهای لازم آمده است. مرجع کامل پایینتر میآید.
یک ربات بسازم برنامهام را وصل کنم ورود با tellmelo در سایتم GIF و ویدیو جاسازی کنمربات را در یکی از گروههایتان، در منوی گروه در «رباتها ← رباتهای من»، با تصویر، نام و @نام بسازید. توکنش را فقط یک بار میبینید. پیوند «افزودن ربات» آن را به اشتراک بگذارید یا آن را برای فهرست رباتها بفرستید که پس از بررسی تیم آنجا دیده میشود؛ کسی که در گروهی اجازهٔ مدیریت نقشها را دارد، آن را با دسترسیهایی که میپذیرد اضافه میکند. آنچه در گروههایش رخ میدهد را بهصورت جریان (GET /v2/events/stream) یا در نشانی خودتان دریافت کنید و با POST /v2/channels/{id}/messages بنویسید. بیشتر در رباتها . فرمانها را ثبت کنید (PUT /v2/me/commands) و با کارت و دکمه پاسخ دهید؛ ربات با جایی در کانال صوتی موسیقی پخش میکند (POST /v2/channels/{id}/voice). نمای کلی نسخهٔ ۲ به برنامههای خودتان اجازه میدهد با tellmelo حرف بزنند: یک کلید در هر درخواست، پاسخ JSON، و همهٔ فهرستها یکسان صفحهبندی میشوند. همان قوانین برنامه برقرار است.
هر مسیر با https://api.tellmelo.com/v2 آغاز میشود. درخواستها و پاسخها JSON با UTF-8 هستند. نام فیلدها، کدها و مقدارها انگلیسیاند و انگلیسی میمانند. کلید بهجای حساب شما عمل میکند: آنچه در برنامه نمیتوانید ببینید، آن هم نمیتواند بخواند. https://api.tellmelo.com/v2شروع سریع در «بخش توسعهدهندگان ← API» کلیدی بسازید و کپیاش کنید. فقط یک بار نشان داده میشود. با آن ریشه را فراخوانی کنید. پاسخ، نسخه، اختیارات کلید و درخواستهای باقیماندهٔ این دقیقه را نشان میدهد. همهٔ مسیرها یکسان کار میکنند: کلید در سرآیند، پاسخ JSON، و برای فهرستها items و next. curl -H "Authorization: Bearer tm_key_…" https://api.tellmelo.com/v2{
"name": "tellmelo",
"version": "2.20",
"scope": "read write",
"rateLimit": {
"limit": 120,
"remaining": 117
},
"docs": "/developers/docs",
"spec": "/api/v2/openapi.json"
}بعدی: /me برای پروفایلتان، /posts برای پستهای عمومی، /feed برای فیدتان.
امتحانش کنید کاری انتخاب کنید، فیلدها را پر کنید و درخواست را کپی کنید یا از همینجا بفرستید. نوشتن ابتدا میپرسد. کد کلید را از TELLMELO_KEY میخواند.
کار GET / GET /posts GET /posts/{id} POST /posts DELETE /posts/{id} GET /me/scheduled POST /posts/{id}/schedule POST /posts/{id}/edit GET /posts/{id}/reply-settings PUT /posts/{id}/reply-settings POST /posts/{id}/coauthor DELETE /posts/{id}/coauthor POST /posts/{id}/pin GET /posts/{id}/replies POST /posts/{id}/replies POST /replies/{id}/edit DELETE /replies/{id} POST /replies/{id}/like POST /replies/{id}/vote POST /replies/{id}/pick GET /posts/{id}/replies/waiting POST /replies/{id}/decide GET /posts/{id}/replies/planned PUT /me/planned-replies/{id} POST /me/planned-replies/{id}/send DELETE /me/planned-replies/{id} POST /posts/{id}/vote GET /profiles/{handle} GET /profiles/{handle}/posts GET /profiles/{handle}/events POST /me/events PUT /me/events/{id} DELETE /me/events/{id} GET /me/events/{id}/signups POST /events/{id}/signup GET /communities GET /communities/{id} GET /communities/{id}/posts GET /communities/{id}/members GET /communities/{id}/roles GET /communities/{id}/bell GET /invites/{code} PUT /roles/{id}/self GET /communities/{id}/emojis PUT /communities/{id}/bell POST /invites/{code}/join GET /communities/{id}/bots GET /communities/{id}/channels GET /channels/{id}/messages POST /channels/{id}/messages POST /channels/{id}/read DELETE /channel-messages/{id} GET /communities/{id}/voice POST /communities/{id}/emojis DELETE /communities/{id}/emojis/{name} POST /communities/{id}/roles PUT /roles/{id} DELETE /roles/{id} PUT /communities/{id}/roles/order PUT /roles/{id}/members/{member} POST /communities/{id}/channels PUT /channels/{id} DELETE /channels/{id} PUT /communities/{id}/channels/order PUT /communities/{id}/channels/shape GET /channels/{id}/overrides PUT /channels/{id}/overrides/{role} POST /communities/{id}/categories PUT /categories/{id} DELETE /categories/{id} PUT /communities/{id}/feed GET /communities/{id}/invites POST /communities/{id}/invites DELETE /invites/{code} POST /channel-messages/{id}/remove POST /communities/{id}/posts/{post}/remove DELETE /communities/{id}/members/{member} PUT /communities/{id}/members/{member}/timeout DELETE /communities/{id}/members/{member}/timeout GET /communities/{id}/bans PUT /communities/{id}/bans/{member} DELETE /communities/{id}/bans/{member} GET /communities/{id}/log POST /communities PUT /communities/{id} GET /events GET /events/stream GET /me/commands PUT /me/commands POST /interactions/{id}/reply POST /channels/{id}/voice GET /tags GET /search GET /emojis GET /media GET /media/mine GET /media/{id} POST /media/uploads POST /media/{id} DELETE /media/{id} GET /me GET /feed POST /me/pictures PUT /me/profile GET /me/emojis POST /me/emojis/pictures POST /me/emojis DELETE /me/emojis/{name} PUT /me/emojis/sharing GET /me/webhooks POST /me/webhooks DELETE /me/webhooks/{id} POST /me/webhooks/{id}/test GET /notifications POST /notifications/read GET /conversations GET /conversations/{with}/messages POST /conversations/{with}/messages POST /conversations/{with}/read DELETE /conversations/{with}/messages/{id} POST /conversations/{with}/planned GET /me/planned-messages POST /me/planned-messages/{id}/send DELETE /me/planned-messages/{id} POST /relations GET /profiles/{handle}/followers GET /profiles/{handle}/following GET /me/relations GET /me/collections POST /me/collections PUT /me/collections/{id} DELETE /me/collections/{id} GET /me/collections/{id}/posts POST /me/collections/{id}/posts GET /partner/quota GET /partner/gifts POST /partner/gifts GET /gift-drops POST /gift-drops read نسخهٔ API و نام این سرور.
curl \
-H "Authorization: Bearer $TELLMELO_KEY" \
"https://api.tellmelo.com/v2"کلید شما تا ۱۰ کلید برای هر حساب، هرکدام با نام، دسترسیهای خود و در صورت تمایل تاریخ پایان. کلید با tm_key_ شروع میشود و فقط یک بار نشان داده میشود. گمش کردید؟ تمدیدش کنید؛ مقدار قدیمی دیگر کار نمیکند.
آن را در «بخش توسعهدهندگان ← API» میسازید. در سرآیند درخواست فرستاده میشود:
curl -H "Authorization: Bearer tm_key_…" \
https://api.tellmelo.com/v2/postsیا اگر راحتتر است، در یک سرآیند جداگانه:
curl -H "X-Tellmelo-Key: tm_key_…" https://api.tellmelo.com/v2نه در نشانی: آنجا در گزارشها و تاریخچهٔ مرورگر میماند.
همان کلید تصویرها را هم بارگیری میکند: هر url به /api/media اشاره میکند؛ آنجا هم کلید را در سرآیند بفرستید.
curl -H "Authorization: Bearer tm_key_…" \
-o picture.webp "https://api.tellmelo.com/media?id=…"یک کلید چه کاری میتواند بکند کلید همیشه میتواند بخواند و اگر اجازه بدهید، بنویسد، هدیه بدهد، رسانه بارگذاری کند و گروهها را اداره کند. هر مسیر در زیر میگوید چه لازم دارد:
read : خواندن. پستهای عمومی، نمایهها، گروهها و برچسبها، بهعلاوهٔ فید، اعلانها، پیامها و کانالهای گروههایتان.write : عمل کردن. منتشر کردن، پاسخ دادن، رأی دادن، پیام فرستادن، نوشتن در گفتوگوی گروه، دنبال کردن، پیوستن، مسدود کردن، خواندهشده زدن اعلانها.gifts : هدیه دادن. از سهمیهٔ یک شریک به یک عضو، و هدیه زیر یک پست تازه. اجازهای جداگانه تا کلیدی که برای انتشار ساخته شده هرگز نتواند چیزی ببخشد.media : کتابخانهٔ رسانهٔ خودتان. بارگذاری، تغییر، اشتراکگذاری و حذف GIF و ویدیو. یک مجوز جداگانه، چون بارگذاریها از امتیازهای ویدیوی حساب کم میکنند. برای پیدا کردن GIF و ویدیوهای اشتراکی فقط read لازم است.groups : مدیریت گروهها. نقشها، کانالها، دستهها، پیوندهای دعوت، کانال فید، برداشتن، بیصدا کردن، اخراج و مسدود کردن، تا جایی که حساب شما در گروه اجازه دارد. اختیاری جداگانه، تا کلیدی برای انتشار هرگز تغییر ندهد چه کسی در گروه چه کاری میتواند.آنچه هیچ کلیدی نمیتواند هیچ کلیدی به رمز عبور، نشانی ایمیل، نوع حساب، مکان، نقش، حذف، نشستها، دستگاههای اعلان یا کلیدهای دیگر نمیرسد، و نه به مدیریت یا ادارهٔ گروه. آنچه رمز عبور از آن محافظت میکند، هیچ کلیدی نمیتواند.
باتها بات یک حساب مستقل از نوع bot برای گروههاست: بدون رمز عبور و ایمیل، که برنامهٔ شما با کلید خودش اجرایش میکند. همان API هر حساب را به کار میبرد و در گروهها هر کاری را که نقشش اجازه دهد انجام میدهد.
در یکی از گروههایتان منوی گروه را باز کنید و در «رباتها ← رباتهای من» رباتی با تصویر، تصویر سربرگ، نام، نام کاربری و توضیح بسازید. توکن فقط یک بار نشان داده میشود و دسترسیهای read، write، media و groups را دارد. پیوند ربات را به دیگران بدهید یا آن را برای فهرست رباتها بفرستید؛ بهمحض اینکه تیم آن را بررسی کند، آنجا دیده میشود. کسی که در گروهی اجازهٔ مدیریت نقشها را دارد دسترسیها را انتخاب میکند؛ ربات عضو میشود و نقش خودش را میگیرد. برنامهتان توکن را بهصورت Authorization: Bearer … میفرستد، رویدادهای گروههایش را بهصورت جریان میخواند و با مسیرهای رباتها ، کانالها و گروهها کار میکند. یک ربات کوچک که رویدادها را بهصورت جریان میخواند و به فرمان /ping فقط برای پرسنده با pong پاسخ میدهد:
// Node 18 or newer: reads the events of the bot's groups as they happen and answers /ping.
const BASE = 'https://api.tellmelo.com/v2';
const KEY = process.env.TELLMELO_BOT_TOKEN;
const call = (method, path, body) =>
fetch(BASE + path, {
method,
headers: { Authorization: 'Bearer ' + KEY, 'Content-Type': 'application/json' },
body: body && JSON.stringify(body),
}).then((r) => r.json());
await call('PUT', '/me/commands', { commands: [{ name: 'ping', description: 'Answers pong' }] });
let last = '';
for (;;) {
// The stream closes after ten minutes; Last-Event-ID goes on where it stopped.
const res = await fetch(BASE + '/events/stream', {
headers: { Authorization: 'Bearer ' + KEY, ...(last && { 'Last-Event-ID': last }) },
});
const reader = res.body.pipeThrough(new TextDecoderStream()).getReader();
let buffer = '';
for (;;) {
const { value, done } = await reader.read();
if (done) break;
buffer += value;
let end;
while ((end = buffer.indexOf('
')) >= 0) {
const data = buffer.slice(0, end).split('
').find((l) => l.startsWith('data: '));
buffer = buffer.slice(end + 2);
if (!data) continue;
const event = JSON.parse(data.slice(6));
last = event.id;
if (event.type === 'command' && event.data.command === 'ping')
await call('POST', '/interactions/' + event.data.interaction + '/reply', { text: 'pong', private: true });
}
}
}همان ربات در پایتون که رویدادها را صفحه به صفحه میگیرد:
# Python 3 with requests: the same bot, reading the events page by page.
import os, time, requests
BASE = 'https://api.tellmelo.com/v2'
H = {'Authorization': 'Bearer ' + os.environ['TELLMELO_BOT_TOKEN']}
requests.put(BASE + '/me/commands', headers=H,
json={'commands': [{'name': 'ping', 'description': 'Answers pong'}]})
since = '0'
while True:
page = requests.get(BASE + '/events', headers=H, params={'since': since}).json()
for event in page['items']:
if event['type'] == 'command' and event['data']['command'] == 'ping':
requests.post(f"{BASE}/interactions/{event['data']['interaction']}/reply",
headers=H, json={'text': 'pong'})
since = page['next'] or since
time.sleep(2)اینکه ربات در گروه چه کاری میتواند بکند را نقشش در آنجا تعیین میکند، نه توکن. نقش نام ربات را دارد؛ گروه دسترسیهای آن را در بخش نقشها در تنظیمات گروه تغییر میدهد و ربات را در منوی گروه در «رباتها ← در این گروه» حذف میکند. تا ۵ ربات برای هر حساب؛ برای هر گروه به اندازهای که امتیازهایش اجازه میدهد. ربات در هر گروه حداکثر ۳۰ پیام در دقیقه مینویسد، در جستجو پیدا نمیشود و فقط به کسانی مینویسد که اول به او نوشتهاند. محدودیتها برقرارند. رویدادها به نشانی HTTPS خودتان هم میرسند (مانند وبهوکها امضاشده، با تلاش دوباره). بهعلاوه: فرمانها (PUT /v2/me/commands) با پاسخ برای همه یا فقط پرسنده، کارتها و دکمهها در پیامها و موسیقی در کانال صوتی (POST /v2/channels/{id}/voice): همه در رباتها . صفحهها هر فهرست limit و cursor میگیرد و با items و next پاسخ میدهد. next را بهعنوان cursor پس بفرستید تا صفحهٔ بعد را بگیرید؛ وقتی next خالی است، تمام است. نشانگر مبهم است: آن را تجزیه نکنید، خودتان نسازید.
{ "items": [ … ], "next": "MTc1ODYyNDAwMDAwMDo1ZjBjMmE5ZS04ZDQx" }
curl -H "Authorization: Bearer tm_key_…" \
"https://api.tellmelo.com/v2/posts?limit=20&cursor=MTc1ODYyNDAwMDAwMDo1ZjBjMmE5ZS04ZDQx"بدون limit، ۲۰ ورودی، حداکثر ۵۰. بعضی فهرستها صفحهبندی نمیشوند؛ nextِ آنها همیشه null است.
فقط چیزهای تازه هر پاسخ یک ETag دارد. دفعهٔ بعد آن را بهعنوان If-None-Match پس بفرستید: اگر چیزی تغییر نکرده باشد، 304 بدون بدنه میگیرید.
ETag: W/"3Qk1mJ7fQe2Yb0sVxT9aL4pNdRc"
If-None-Match: W/"3Qk1mJ7fQe2Yb0sVxT9aL4pNdRc" → 304استثناها: /feed هیچ ETagای ندارد چون ترتیبش مدام تغییر میکند، و نوشتنها هرگز 304 پاسخ نمیدهند.
سقفها هر کلید میتواند ۱۲۰ درخواست در دقیقه بدهد، با اشتراک «سازمان» ۶۰۰، مگر اینکه مدیریت چیز دیگری تعیین کند. بیش از آن 429 میگیرید و چیزی انجام نشده است. یک دقیقه صبر کنید و درخواست را دوباره بفرستید.
X-RateLimit-Limit: 120
X-RateLimit-Remaining: 117
X-RateLimit-Reset: 1758624060نوشتنها از سقفهای برنامه هم کم میکنند، مثلاً چند پست در چند دقیقه. آن هم با 429 و rate_limited پاسخ میدهد.
وقتی چیزی کار نمیکند خطاها بهصورت JSON میآیند: یک کد ثابت انگلیسی در error برای برنامهٔ شما و یک جمله در message برای آدمها، بهعلاوهٔ کد وضعیت مناسب. فقط کد را مقایسه کنید؛ جمله ممکن است تغییر کند.
{ "error": "rate_limited",
"message": "Too many requests. Try again in a minute.",
"limit": 120 }بعضی خطاها یک فیلد بیشتر دارند: docs همراه 401 برای کلید غایب، limit همراه 429.
وضعیت کد معنا 400bad_requestدرخواست خواندنی نیست، فیلدی لازم کم است، یا مقداری مجاز نیست. 401key_missingکلیدی در سرآیند نیست. 401key_invalidکلید معتبر نیست: اشتباه تایپ شده، جایگزین شده، یا حساب مسدود است. 401unauthorizedبهعنوان واردنشده رد شد، به دلیلی جز کلید. 403scope_missingکلید اختیار لازم را ندارد، معمولاً write. 403account_data_lockedاطلاعات حساب مثل رمز عبور، نشانی ایمیل یا حذف برای کلیدها ممنوع است. 403forbiddenحساب شما اجازهٔ این کار را ندارد، مثلاً بهخاطر اختیار پسگرفتهشده یا مسدودی. 403timed_outبیصدایی اکنون حساب شما را در این گروه ساکت کرده است. 404unknown_pathچنین مسیری نیست، یا با این روش نیست. 404not_foundپیدا نشد، یا اجازهٔ دیدنش را ندارید. 409conflictبا چیزی که از قبل هست برخورد دارد، مثلاً نامی که گرفته شده. 409feed_offکانال فید این گروه خاموش است. 413too_largeبرای این سرور خیلی بزرگ است. 422unprocessableخواندنی است، اما به این شکل ممکن نیست. 429rate_limitedدرخواستها زیادند. اتفاقی نیفتاد؛ صبر کنید و دوباره تلاش کنید. 500internal_errorدر سرور مشکلی پیش آمد.
نسخهها نسخه در مسیر آمده است. تا وقتی v2 نوشته شده، مسیرها و فیلدها همان میمانند؛ فقط چیزهای تازه اضافه میشوند.
افزودهها عدد دوم را بالا میبرند. هر مسیر میگوید از کی وجود دارد.
https://api.tellmelo.com/v1/ دیگر نیست: مسیرهای قدیمی 410 پاسخ میدهند و راه تازه را در بدنه نام میبرند.
نقطههای پایانی همهٔ مسیرها در یک نگاه، سپس هر کدام با مثال.
راه ورود اولین درخواست هر برنامه: کلید کار میکند، و چه میتواند بکند؟
GET /v2نسخهٔ API و نام این سرور.
اختیار read با ETag از v2.0 بدون اسلش در پایان: https://api.tellmelo.com/v2/ با 308 به https://api.tellmelo.com/v2 میرود، و همهٔ برنامهها دنبالش نمیروند.
درخواست نمونه curl \
-H "Authorization: Bearer tm_key_…" \
"https://api.tellmelo.com/v2"پاسخ با یک Service پاسخ میدهد.
مثال {
"name": "tellmelo",
"version": "2.20",
"scope": "read write",
"rateLimit": {
"limit": 120,
"remaining": 117
},
"docs": "/developers/docs",
"spec": "/api/v2/openapi.json"
}وضعیتهای ممکن: 200304401429
پستها خواندن پستهای عمومی، انتشار پستهای خودتان و حذف دوبارهشان.
GET /v2/postsپستهای عمومی، تازهترین اول.
اختیار read صفحهبندیپذیر با ETag از v2.0 در مسیرهای عمومی، counts.likes و counts.reposts همیشه 0 و pinned همیشه false است.
پستهای گروهها اینجا نیستند بلکه در /communities/{id}/posts.
پارامترها نام نوع معنا limitدر پرسوجو integerاختیاری شمار ورودی در هر صفحه: پیشفرض ۲۰، حداکثر ۵۰. cursorدر پرسوجو stringاختیاری مقدار next پاسخ قبلی. بدون آن، از آغاز.
درخواست نمونه curl \
-H "Authorization: Bearer tm_key_…" \
"https://api.tellmelo.com/v2/posts?limit=20"پاسخ با یک صفحه از Post پاسخ میدهد، بهصورت `items` و `next`.
مثال {
"items": [
{
"id": "5f0c2a9e-8d41-4b7a-9c3e-2e61d0f4a7b1",
"text": "The bees are back in the garden 🐝 #garden",
"kind": "poll",
"author": {
"id": "a3e1f7c2-54b9-4d0e-8f16-7b2c9d4e1a05",
"handle": "mara",
"name": "Mara 🌻",
"verified": true,
"accountKind": "person"
},
"community": {
"id": "c81d4e2a-0f3b-4a6c-9e57-1d2b3c4a5f60",
"name": "Urban Gardening"
},
"media": [
{
"url": "/api/media?id=b2d7e9f1-3c4a-4e8b-a1f0-6d5c4b3a2918",
"kind": "image",
"poster": null,
"ai": "without"
}
],
"poll": {
"options": [
{
"text": "Lavender",
"votes": 12
},
{
"text": "Sunflowers",
"votes": 7
},
{
"text": "Clover",
"votes": 3
}
],
"total": 22,
"multiple": false,
"endsAt": null,
"running": true,
"resultsVisible": true,
"myVotes": [
0
]
},
"quotes": null,
"continues": null,
"counts": {
"replies": 4,
"likes": 31,
"reposts": 2
},
"pinned": false,
"giftDrop": {
"item": "plan",
"quantity": 3,
"places": 10,
"left": 4,
"audience": "followers",
"newAccounts": false,
"status": "open",
"claimed": true
},
"createdAt": 1758624000000
}
],
"next": "MTc1ODYyNDAwMDAwMDo1ZjBjMmE5ZS04ZDQx"
}وضعیتهای ممکن: 200304401429
GET /v2/posts/{id}یک پست، با id آن.
اختیار read با ETag از v2.0 در مسیرهای عمومی، counts.likes و counts.reposts همیشه 0 و pinned همیشه false است.
پستهای گروهها اینجا نیستند بلکه در /communities/{id}/posts.
پارامترها نام نوع معنا idدر مسیر stringاجباری id یک پست.
درخواست نمونه curl \
-H "Authorization: Bearer tm_key_…" \
"https://api.tellmelo.com/v2/posts/5f0c2a9e-8d41-4b7a-9c3e-2e61d0f4a7b1"پاسخ با یک Post پاسخ میدهد.
مثال {
"id": "5f0c2a9e-8d41-4b7a-9c3e-2e61d0f4a7b1",
"text": "The bees are back in the garden 🐝 #garden",
"kind": "poll",
"author": {
"id": "a3e1f7c2-54b9-4d0e-8f16-7b2c9d4e1a05",
"handle": "mara",
"name": "Mara 🌻",
"verified": true,
"accountKind": "person"
},
"community": {
"id": "c81d4e2a-0f3b-4a6c-9e57-1d2b3c4a5f60",
"name": "Urban Gardening"
},
"media": [
{
"url": "/api/media?id=b2d7e9f1-3c4a-4e8b-a1f0-6d5c4b3a2918",
"kind": "image",
"poster": null,
"ai": "without"
}
],
"poll": {
"options": [
{
"text": "Lavender",
"votes": 12
},
{
"text": "Sunflowers",
"votes": 7
},
{
"text": "Clover",
"votes": 3
}
],
"total": 22,
"multiple": false,
"endsAt": null,
"running": true,
"resultsVisible": true,
"myVotes": [
0
]
},
"quotes": null,
"continues": null,
"counts": {
"replies": 4,
"likes": 31,
"reposts": 2
},
"pinned": false,
"giftDrop": {
"item": "plan",
"quantity": 3,
"places": 10,
"left": 4,
"audience": "followers",
"newAccounts": false,
"status": "open",
"claimed": true
},
"createdAt": 1758624000000
}وضعیتهای ممکن: 200304400401404429
POST /v2/postsانتشار یک پست.
پست به متن یا نظرسنجی نیاز دارد. طول، گزینههای نظرسنجی و آهنگ را سرور تعیین میکند؛ فراتر از آن 400 یا 429 میگیرید.
تصاویر، یک GIF یا یک ویدیو را با media پیوست کنید. GIF یا ویدیو بهتنهایی میآید. میتوانید GIF و ویدیوهای اشتراکی دیگران را در tellmelo استفاده کنید.
پست برای دوستان نزدیک یا با همنویسنده فوراً منتشر میشود، نه در گروه و نه زمانبندیشده. هر دو با هم ممکن نیست.
پارامترها نام نوع معنا textدر بدنه stringاختیاری متن پست، پاسخ یا پیام. communityدر بدنه stringاختیاری id گروهی که پست به کانال فید آن میرود؛ باید روشن باشد و مجوزش را داشته باشی. بدون آن پست بیرون از هر گروهی است.quotesدر بدنه stringاختیاری id پستی که این پست نقل میکند.pollدر بدنه string[]اختیاری گزینههای پاسخ بهصورت فهرستی از متنها. mediaدر بدنه string[]اختیاری شناسهٔ تصاویری که در اپ بارگذاری شدهاند، یا یک GIF یا ویدیو از کتابخانهٔ رسانه (از 2.14). audienceدر بدنه stringاختیاری چه کسی پست را میبیند: everyone همهٔ کسانی که اجازه دارند، close فقط دوستان نزدیک شما.everyoneclose coauthorدر بدنه stringاختیاری id حسابی که به همنویسندگی دعوت میکنید. باید یکدیگر را دنبال کنید.
درخواست نمونه curl -X POST \
-H "Authorization: Bearer tm_key_…" \
-H "Content-Type: application/json" \
-d '{"text":"The bees are back in the garden 🐝 #garden","audience":"everyone"}' \
"https://api.tellmelo.com/v2/posts"پاسخ با یک Created پاسخ میدهد.
مثال {
"id": "5f0c2a9e-8d41-4b7a-9c3e-2e61d0f4a7b1",
"scheduledFor": null,
"deleteAt": null
}وضعیتهای ممکن: 200400401403429
DELETE /v2/posts/{id}حذف یکی از پستهای خودتان.
پارامترها نام نوع معنا idدر مسیر stringاجباری id یک پست.
درخواست نمونه curl -X DELETE \
-H "Authorization: Bearer tm_key_…" \
"https://api.tellmelo.com/v2/posts/5f0c2a9e-8d41-4b7a-9c3e-2e61d0f4a7b1"پاسخ با یک Ok پاسخ میدهد.
مثال {
"ok": true
}وضعیتهای ممکن: 200400401403404429
GET /v2/me/scheduledپستهایی از شما که هنوز منتشر نشدهاند و منتظر چه هستند.
اختیار read با ETag از v2.12 درخواست نمونه curl \
-H "Authorization: Bearer tm_key_…" \
"https://api.tellmelo.com/v2/me/scheduled"پاسخ با یک صفحه از ScheduledPost پاسخ میدهد، بهصورت `items` و `next`.
مثال {
"items": [
{
"id": "5f0c2a9e-8d41-4b7a-9c3e-2e61d0f4a7b1",
"text": "Market day tomorrow – see you at the bee stand! #garden",
"communityId": null,
"publishAt": 1758710400000,
"deleteAt": null,
"waitingFor": "time",
"createdAt": 1758624000000
}
],
"next": null
}وضعیتهای ممکن: 200304401429
POST /v2/posts/{id}/scheduleتغییر زمان انتشار یک پست زمانبندیشده، یا زمان حذف خودکار یک پست.
فقط پستهای خودتان. تا وقتی هدیههای پستی پرداخت نشده، نمیتوان آن را زمانبندی کرد.
پارامترها نام نوع معنا idدر مسیر stringاجباری id یک پست.publishAtدر بدنه integerاختیاری زمان انتشار پست زمانبندیشده، به میلیثانیه از ۱۹۷۰. deleteAtدر بدنه integerاختیاری زمان حذف خودکار پست، به میلیثانیه از ۱۹۷۰.
درخواست نمونه curl -X POST \
-H "Authorization: Bearer tm_key_…" \
"https://api.tellmelo.com/v2/posts/5f0c2a9e-8d41-4b7a-9c3e-2e61d0f4a7b1/schedule"پاسخ با یک Ok پاسخ میدهد.
مثال {
"ok": true
}وضعیتهای ممکن: 200400401403404429
POST /v2/posts/{id}/editتغییر متن یکی از پستهایتان.
فقط در مدت ویرایشی که اشتراکتان میدهد. پستهای زمانبندیشده ویرایش نمیشوند.
پارامترها نام نوع معنا idدر مسیر stringاجباری id یک پست.textدر بدنه stringاجباری متن پست، پاسخ یا پیام.
درخواست نمونه curl -X POST \
-H "Authorization: Bearer tm_key_…" \
-H "Content-Type: application/json" \
-d '{"text":"The bees are back in the garden 🐝🌻 #garden"}' \
"https://api.tellmelo.com/v2/posts/5f0c2a9e-8d41-4b7a-9c3e-2e61d0f4a7b1/edit"پاسخ با یک Ok پاسخ میدهد.
مثال {
"ok": true
}وضعیتهای ممکن: 200400401403404429
GET /v2/posts/{id}/reply-settingsچه کسانی میتوانند به پست شما پاسخ دهند، آیا پاسخها منتظر تأییدند و حالت آهسته.
اختیار read با ETag از v2.19 پارامترها نام نوع معنا idدر مسیر stringاجباری id یک پست.
درخواست نمونه curl \
-H "Authorization: Bearer tm_key_…" \
"https://api.tellmelo.com/v2/posts/5f0c2a9e-8d41-4b7a-9c3e-2e61d0f4a7b1/reply-settings"پاسخ با یک ReplySettings پاسخ میدهد.
مثال {
"audience": "following",
"approval": false,
"slow": "auto"
}وضعیتهای ممکن: 200304400401404429
PUT /v2/posts/{id}/reply-settingsتنظیمات پاسخ پست خودتان را تغییر دهید. هرچه را نگویید، همان میماند.
فقط پستهای خودتان.
پارامترها نام نوع معنا idدر مسیر stringاجباری id یک پست.audienceدر بدنه stringاختیاری چه کسانی میتوانند پاسخ دهند: همه، حسابهایی که دنبال میکنید، نامبردهشدهها یا هیچکس.allfollowingmentionednobody approvalدر بدنه booleanاختیاری آیا پاسخها فقط پس از تأیید شما نمایش داده میشوند. slowدر بدنه stringاختیاری حالت آهسته: auto با رسیدن پاسخهای زیاد خودش روشن میشود، on همیشه، off هرگز.autoonoff
درخواست نمونه curl -X PUT \
-H "Authorization: Bearer tm_key_…" \
-H "Content-Type: application/json" \
-d '{"audience":"following","approval":false,"slow":"auto"}' \
"https://api.tellmelo.com/v2/posts/5f0c2a9e-8d41-4b7a-9c3e-2e61d0f4a7b1/reply-settings"پاسخ با یک ReplySettings پاسخ میدهد.
مثال {
"audience": "following",
"approval": false,
"slow": "auto"
}وضعیتهای ممکن: 200400401403404429
POST /v2/posts/{id}/coauthorدعوت به همنویسندگی را بپذیرید یا رد کنید.
پارامترها نام نوع معنا idدر مسیر stringاجباری id یک پست.acceptدر بدنه booleanاجباری true دعوت را میپذیرد، false رد میکند.
درخواست نمونه curl -X POST \
-H "Authorization: Bearer tm_key_…" \
-H "Content-Type: application/json" \
-d '{"accept":true}' \
"https://api.tellmelo.com/v2/posts/5f0c2a9e-8d41-4b7a-9c3e-2e61d0f4a7b1/coauthor"پاسخ با یک Ok پاسخ میدهد.
مثال {
"ok": true
}وضعیتهای ممکن: 200400401403404429
DELETE /v2/posts/{id}/coauthorاز همنویسندگی کنار بروید یا بهعنوان نویسنده، همنویسنده را از پست بردارید.
برای همنویسنده و نویسندهٔ پست.
پارامترها نام نوع معنا idدر مسیر stringاجباری id یک پست.
درخواست نمونه curl -X DELETE \
-H "Authorization: Bearer tm_key_…" \
"https://api.tellmelo.com/v2/posts/5f0c2a9e-8d41-4b7a-9c3e-2e61d0f4a7b1/coauthor"پاسخ با یک Ok پاسخ میدهد.
مثال {
"ok": true
}وضعیتهای ممکن: 200400401403404429
POST /v2/posts/{id}/pinپست خودتان را بالای نمایه سنجاق کنید یا سنجاق را بردارید.
فقط پستهای قابلدیدن خودتان. تعداد سنجاقها به اشتراک شما بستگی دارد.
پارامترها نام نوع معنا idدر مسیر stringاجباری id یک پست.activeدر بدنه booleanاجباری true پست را سنجاق میکند، false سنجاق را برمیدارد.
درخواست نمونه curl -X POST \
-H "Authorization: Bearer tm_key_…" \
-H "Content-Type: application/json" \
-d '{"active":true}' \
"https://api.tellmelo.com/v2/posts/5f0c2a9e-8d41-4b7a-9c3e-2e61d0f4a7b1/pin"پاسخ با یک Ok پاسخ میدهد.
مثال {
"ok": true
}وضعیتهای ممکن: 200400401403404429
پاسخها پاسخهای زیر یک پست، بهصورت فهرست با parentId.
GET /v2/posts/{id}/repliesپاسخهای یک پست، بدون حسابهای مسدود.
اختیار read صفحهبندیپذیر با ETag از v2.0 فهرست تخت و به ترتیب نوشتن است؛ parentId آن را به درخت تبدیل میکند. هر صفحه همیشه رشتههای کامل دارد. پاسخهای حسابهای مسدود حذف میشوند.
پارامترها نام نوع معنا idدر مسیر stringاجباری id یک پست.limitدر پرسوجو integerاختیاری شمار ورودی در هر صفحه: پیشفرض ۲۰، حداکثر ۵۰. cursorدر پرسوجو stringاختیاری مقدار next پاسخ قبلی. بدون آن، از آغاز.
درخواست نمونه curl \
-H "Authorization: Bearer tm_key_…" \
"https://api.tellmelo.com/v2/posts/5f0c2a9e-8d41-4b7a-9c3e-2e61d0f4a7b1/replies?limit=20"پاسخ با یک صفحه از Reply پاسخ میدهد، بهصورت `items` و `next`.
مثال {
"items": [
{
"id": "9e4b1c7d-2a3f-4d5e-8b6c-0f1e2d3c4b5a",
"text": "Same here, the lavender is full of them.",
"kind": "post",
"author": {
"id": "d4c3b2a1-6e5f-4a7b-9c8d-1e2f3a4b5c6d",
"handle": "jon",
"name": "Jon",
"verified": false,
"accountKind": "person"
},
"community": null,
"media": [],
"poll": null,
"quotes": null,
"continues": null,
"counts": {
"replies": 0,
"likes": 3,
"reposts": 0
},
"pinned": false,
"giftDrop": null,
"createdAt": 1758624600000,
"postId": "5f0c2a9e-8d41-4b7a-9c3e-2e61d0f4a7b1",
"parentId": null
}
],
"next": "MTc1ODYyNDAwMDAwMDo1ZjBjMmE5ZS04ZDQx"
}وضعیتهای ممکن: 200304400401404429
POST /v2/posts/{id}/repliesپاسخ به یک پست.
در حالت آهسته، هر نفر هر ۱۰ دقیقه یک پاسخ، وگرنه 429. نویسنده و حسابهایی که دنبال میکند مستثنا هستند.
با media حداکثر یک تصویر، GIF یا ویدیو.
پارامترها نام نوع معنا idدر مسیر stringاجباری id یک پست.textدر بدنه stringاجباری متن پست، پاسخ یا پیام. parentIdدر بدنه stringاختیاری id پاسخی که این پاسخ به آن است. بدون آن، مستقیم به پست.mediaدر بدنه string[]اختیاری شناسهٔ تصاویری که در اپ بارگذاری شدهاند، یا یک GIF یا ویدیو از کتابخانهٔ رسانه (از 2.14). publishAtدر بدنه integerاختیاری زمان انتشار پاسخ، به میلیثانیه از ۱۹۷۰. بدون آن، فوراً منتشر میشود.
درخواست نمونه curl -X POST \
-H "Authorization: Bearer tm_key_…" \
-H "Content-Type: application/json" \
-d '{"text":"Same here, the lavender is full of them."}' \
"https://api.tellmelo.com/v2/posts/5f0c2a9e-8d41-4b7a-9c3e-2e61d0f4a7b1/replies"پاسخ با یک Created پاسخ میدهد.
مثال {
"id": "5f0c2a9e-8d41-4b7a-9c3e-2e61d0f4a7b1",
"scheduledFor": null,
"deleteAt": null
}وضعیتهای ممکن: 200400401403404429
POST /v2/replies/{id}/editتغییر متن یکی از پاسخهایتان.
پارامترها نام نوع معنا idدر مسیر stringاجباری شناسهٔ پاسخ. textدر بدنه stringاجباری متن پست، پاسخ یا پیام.
درخواست نمونه curl -X POST \
-H "Authorization: Bearer tm_key_…" \
-H "Content-Type: application/json" \
-d '{"text":"Same here, the lavender and the clover are full of them."}' \
"https://api.tellmelo.com/v2/replies/9e4b1c7d-2a3f-4d5e-8b6c-0f1e2d3c4b5a/edit"پاسخ با یک Ok پاسخ میدهد.
مثال {
"ok": true
}وضعیتهای ممکن: 200400401403404429
DELETE /v2/replies/{id}حذف یکی از پاسخهایتان.
پارامترها نام نوع معنا idدر مسیر stringاجباری شناسهٔ پاسخ.
درخواست نمونه curl -X DELETE \
-H "Authorization: Bearer tm_key_…" \
"https://api.tellmelo.com/v2/replies/9e4b1c7d-2a3f-4d5e-8b6c-0f1e2d3c4b5a"پاسخ با یک Ok پاسخ میدهد.
مثال {
"ok": true
}وضعیتهای ممکن: 200400401403404429
POST /v2/replies/{id}/likeبه پاسخی رأی مثبت دهید (از وقتی به پاسخها رأی داده میشود، پسند همان رأی مثبت است) یا رأی را پس بگیرید؛ رأی منفی میماند.
اختیار write از v2.12 منسوخ از ۲.۱۹ منسوخ شده است: از POST /replies/{id}/vote استفاده کنید. این مسیر فعلاً میماند.
پارامترها نام نوع معنا idدر مسیر stringاجباری شناسهٔ پاسخ. activeدر بدنه booleanاجباری true رابطه را برقرار میکند، false آن را برمیدارد.
درخواست نمونه curl -X POST \
-H "Authorization: Bearer tm_key_…" \
-H "Content-Type: application/json" \
-d '{"active":true}' \
"https://api.tellmelo.com/v2/replies/9e4b1c7d-2a3f-4d5e-8b6c-0f1e2d3c4b5a/like"پاسخ با یک Ok پاسخ میدهد.
مثال {
"ok": true
}وضعیتهای ممکن: 200400401403404429
POST /v2/replies/{id}/voteبه یک پاسخ رأی مثبت یا منفی بدهید یا رأی خود را پس بگیرید. رأی شما و امتیاز پس از آن را برمیگرداند.
پارامترها نام نوع معنا idدر مسیر stringاجباری شناسهٔ پاسخ. voteدر بدنه stringاجباری up رأی مثبت، down رأی منفی، none رأی شما را پس میگیرد.updownnone
درخواست نمونه curl -X POST \
-H "Authorization: Bearer tm_key_…" \
-H "Content-Type: application/json" \
-d '{"vote":"up"}' \
"https://api.tellmelo.com/v2/replies/9e4b1c7d-2a3f-4d5e-8b6c-0f1e2d3c4b5a/vote"پاسخ با یک ReplyVote پاسخ میدهد.
مثال {
"vote": "up",
"score": 12
}وضعیتهای ممکن: 200400401403404429
POST /v2/replies/{id}/pickیک پاسخ زیر پست خودتان را بهعنوان بهترین برجسته کنید یا برجستهسازی را بردارید.
فقط زیر پستهای خودتان و فقط پاسخهای مستقیم به پست. برجستهسازی جدید جای قبلی را میگیرد.
پارامترها نام نوع معنا idدر مسیر stringاجباری شناسهٔ پاسخ. activeدر بدنه booleanاجباری true پاسخ را برجسته میکند، false برجستهسازی را برمیدارد.
درخواست نمونه curl -X POST \
-H "Authorization: Bearer tm_key_…" \
-H "Content-Type: application/json" \
-d '{"active":true}' \
"https://api.tellmelo.com/v2/replies/9e4b1c7d-2a3f-4d5e-8b6c-0f1e2d3c4b5a/pick"پاسخ با یک Ok پاسخ میدهد.
مثال {
"ok": true
}وضعیتهای ممکن: 200400401403404429
GET /v2/posts/{id}/replies/waitingپاسخهایی که زیر یک پست منتظر تأییدند: زیر پست خودتان همه، وگرنه فقط پاسخهای خودتان.
اختیار read با ETag از v2.19 اینکه پاسخها منتظر بمانند یا نه را نویسنده در تنظیمات پاسخ تعیین میکند.
پارامترها نام نوع معنا idدر مسیر stringاجباری id یک پست.
درخواست نمونه curl \
-H "Authorization: Bearer tm_key_…" \
"https://api.tellmelo.com/v2/posts/5f0c2a9e-8d41-4b7a-9c3e-2e61d0f4a7b1/replies/waiting"پاسخ با یک صفحه از Reply پاسخ میدهد، بهصورت `items` و `next`.
مثال {
"items": [
{
"id": "9e4b1c7d-2a3f-4d5e-8b6c-0f1e2d3c4b5a",
"text": "Same here, the lavender is full of them.",
"kind": "post",
"author": {
"id": "d4c3b2a1-6e5f-4a7b-9c8d-1e2f3a4b5c6d",
"handle": "jon",
"name": "Jon",
"verified": false,
"accountKind": "person"
},
"community": null,
"media": [],
"poll": null,
"quotes": null,
"continues": null,
"counts": {
"replies": 0,
"likes": 3,
"reposts": 0
},
"pinned": false,
"giftDrop": null,
"createdAt": 1758624600000,
"postId": "5f0c2a9e-8d41-4b7a-9c3e-2e61d0f4a7b1",
"parentId": null
}
],
"next": null
}وضعیتهای ممکن: 200304400401404429
POST /v2/replies/{id}/decideیک پاسخ منتظر زیر پست خودتان را تأیید یا رد کنید. پاسخ ردشده حذف میشود.
پارامترها نام نوع معنا idدر مسیر stringاجباری شناسهٔ پاسخ. approveدر بدنه booleanاجباری true پاسخ را تأیید میکند، false آن را رد میکند.
درخواست نمونه curl -X POST \
-H "Authorization: Bearer tm_key_…" \
-H "Content-Type: application/json" \
-d '{"approve":true}' \
"https://api.tellmelo.com/v2/replies/9e4b1c7d-2a3f-4d5e-8b6c-0f1e2d3c4b5a/decide"پاسخ با یک Ok پاسخ میدهد.
مثال {
"ok": true
}وضعیتهای ممکن: 200400401403404429
GET /v2/posts/{id}/replies/plannedپاسخهای شما زیر یک پست که برای بعد زمانبندی شدهاند.
اختیار read با ETag از v2.19 هنگام پاسخ دادن با publishAt زمانبندی میشود. حداکثر ۲۰ پاسخ زمانبندیشده همزمان.
پارامترها نام نوع معنا idدر مسیر stringاجباری id یک پست.
درخواست نمونه curl \
-H "Authorization: Bearer tm_key_…" \
"https://api.tellmelo.com/v2/posts/5f0c2a9e-8d41-4b7a-9c3e-2e61d0f4a7b1/replies/planned"پاسخ با یک صفحه از PlannedReply پاسخ میدهد، بهصورت `items` و `next`.
مثال {
"items": [
{
"id": "3b2a1c0d-9e8f-4a7b-b6c5-d4e3f2a1b0c9",
"parentId": null,
"text": "Count me in for Saturday!",
"publishAt": 1758710400000,
"state": "waiting"
}
],
"next": null
}وضعیتهای ممکن: 200304400401404429
PUT /v2/me/planned-replies/{id}متن یا زمان یک پاسخ زمانبندیشده را تغییر دهید. پاسخ ناموفق دوباره منتظر میماند.
پارامترها نام نوع معنا idدر مسیر stringاجباری id پاسخ زمانبندیشده.textدر بدنه stringاختیاری متن پست، پاسخ یا پیام. publishAtدر بدنه integerاختیاری زمان انتشار پاسخ، به میلیثانیه از ۱۹۷۰. بدون آن، فوراً منتشر میشود.
درخواست نمونه curl -X PUT \
-H "Authorization: Bearer tm_key_…" \
-H "Content-Type: application/json" \
-d '{"text":"See you there!","publishAt":1758700000000}' \
"https://api.tellmelo.com/v2/me/planned-replies/3b2a1c0d-9e8f-4a7b-b6c5-d4e3f2a1b0c9"پاسخ با یک Ok پاسخ میدهد.
مثال {
"ok": true
}وضعیتهای ممکن: 200400401403404429
POST /v2/me/planned-replies/{id}/sendیک پاسخ زمانبندیشده را همین حالا بفرستید.
پارامترها نام نوع معنا idدر مسیر stringاجباری id پاسخ زمانبندیشده.
درخواست نمونه curl -X POST \
-H "Authorization: Bearer tm_key_…" \
"https://api.tellmelo.com/v2/me/planned-replies/3b2a1c0d-9e8f-4a7b-b6c5-d4e3f2a1b0c9/send"پاسخ با یک Ok پاسخ میدهد.
مثال {
"ok": true
}وضعیتهای ممکن: 200400401403404429
DELETE /v2/me/planned-replies/{id}یک پاسخ زمانبندیشده را حذف کنید.
پارامترها نام نوع معنا idدر مسیر stringاجباری id پاسخ زمانبندیشده.
درخواست نمونه curl -X DELETE \
-H "Authorization: Bearer tm_key_…" \
"https://api.tellmelo.com/v2/me/planned-replies/3b2a1c0d-9e8f-4a7b-b6c5-d4e3f2a1b0c9"پاسخ با یک Ok پاسخ میدهد.
مثال {
"ok": true
}وضعیتهای ممکن: 200400401403404429
نظرسنجیها نظرسنجی پستی است که poll آن تنظیم شده است. رأی دادن مسیر خودش را دارد.
POST /v2/posts/{id}/voteشرکت در نظرسنجی.
رأیهای هر گزینه تا وقتی رأی ندهید یا نظرسنجی تمام نشود null هستند. total همیشه هست.
پارامترها نام نوع معنا idدر مسیر stringاجباری id یک پست.optionدر بدنه integerاجباری کدام گزینه، شمرده از ۰. برای چندگزینهای، برای هر گزینه یک بار فراخوانی کنید. retractدر بدنه booleanاختیاری true رأی را پس میگیرد.
درخواست نمونه curl -X POST \
-H "Authorization: Bearer tm_key_…" \
-H "Content-Type: application/json" \
-d '{"option":0}' \
"https://api.tellmelo.com/v2/posts/5f0c2a9e-8d41-4b7a-9c3e-2e61d0f4a7b1/vote"پاسخ با یک Ok پاسخ میدهد.
مثال {
"ok": true
}وضعیتهای ممکن: 200400401403404429
پروفایلها پروفایلهای عمومی با نام کوتاهشان، و آنچه منتشر کردهاند.
GET /v2/profiles/{handle}یک پروفایل، با نام کوتاهش.
اختیار read با ETag از v2.0 پارامترها نام نوع معنا handleدر مسیر stringاجباری نام کوتاه یک پروفایل؛ بزرگ یا کوچک بودن حروف فرقی نمیکند.
درخواست نمونه curl \
-H "Authorization: Bearer tm_key_…" \
"https://api.tellmelo.com/v2/profiles/mara"پاسخ با یک Profile پاسخ میدهد.
مثال {
"id": "a3e1f7c2-54b9-4d0e-8f16-7b2c9d4e1a05",
"handle": "mara",
"name": "Mara 🌻",
"verified": true,
"accountKind": "person",
"about": "Beekeeper, allotment, too many seeds. :tellmelo:",
"website": "https://mara-imkerei.example/",
"websiteVerified": true,
"followers": 148,
"createdAt": 1750848000000
}وضعیتهای ممکن: 200304400401404429
GET /v2/profiles/{handle}/postsپستهای عمومی یک پروفایل، تازهترین اول.
اختیار read صفحهبندیپذیر با ETag از v2.0 در مسیرهای عمومی، counts.likes و counts.reposts همیشه 0 و pinned همیشه false است.
پستهای گروهها اینجا نیستند بلکه در /communities/{id}/posts.
پارامترها نام نوع معنا handleدر مسیر stringاجباری نام کوتاه یک پروفایل؛ بزرگ یا کوچک بودن حروف فرقی نمیکند. limitدر پرسوجو integerاختیاری شمار ورودی در هر صفحه: پیشفرض ۲۰، حداکثر ۵۰. cursorدر پرسوجو stringاختیاری مقدار next پاسخ قبلی. بدون آن، از آغاز.
درخواست نمونه curl \
-H "Authorization: Bearer tm_key_…" \
"https://api.tellmelo.com/v2/profiles/mara/posts?limit=20"پاسخ با یک صفحه از Post پاسخ میدهد، بهصورت `items` و `next`.
مثال {
"items": [
{
"id": "5f0c2a9e-8d41-4b7a-9c3e-2e61d0f4a7b1",
"text": "The bees are back in the garden 🐝 #garden",
"kind": "poll",
"author": {
"id": "a3e1f7c2-54b9-4d0e-8f16-7b2c9d4e1a05",
"handle": "mara",
"name": "Mara 🌻",
"verified": true,
"accountKind": "person"
},
"community": {
"id": "c81d4e2a-0f3b-4a6c-9e57-1d2b3c4a5f60",
"name": "Urban Gardening"
},
"media": [
{
"url": "/api/media?id=b2d7e9f1-3c4a-4e8b-a1f0-6d5c4b3a2918",
"kind": "image",
"poster": null,
"ai": "without"
}
],
"poll": {
"options": [
{
"text": "Lavender",
"votes": 12
},
{
"text": "Sunflowers",
"votes": 7
},
{
"text": "Clover",
"votes": 3
}
],
"total": 22,
"multiple": false,
"endsAt": null,
"running": true,
"resultsVisible": true,
"myVotes": [
0
]
},
"quotes": null,
"continues": null,
"counts": {
"replies": 4,
"likes": 31,
"reposts": 2
},
"pinned": false,
"giftDrop": {
"item": "plan",
"quantity": 3,
"places": 10,
"left": 4,
"audience": "followers",
"newAccounts": false,
"status": "open",
"claimed": true
},
"createdAt": 1758624000000
}
],
"next": "MTc1ODYyNDAwMDAwMDo1ZjBjMmE5ZS04ZDQx"
}وضعیتهای ممکن: 200304400401404429
GET /v2/profiles/{handle}/eventsرویدادهای پیشروی یک نمایه، نزدیکترینها اول.
اختیار read با ETag از v2.19 فقط تا وقتی اشتراک نمایه رویداد دارد. بین حسابهایی که یکدیگر را مسدود کردهاند چیزی نیست.
پارامترها نام نوع معنا handleدر مسیر stringاجباری نام کوتاه یک پروفایل؛ بزرگ یا کوچک بودن حروف فرقی نمیکند.
درخواست نمونه curl \
-H "Authorization: Bearer tm_key_…" \
"https://api.tellmelo.com/v2/profiles/mara/events"پاسخ با یک صفحه از Event پاسخ میدهد، بهصورت `items` و `next`.
مثال {
"items": [
{
"id": "2a3b4c5d-6e7f-4809-9a1b-2c3d4e5f6a7b",
"title": "Seed swap",
"startsAt": 1758883200000,
"endsAt": 1758890400000,
"place": "Community garden",
"description": "Bring seeds, take seeds.",
"signups": {
"count": 14,
"going": true
}
}
],
"next": null
}وضعیتهای ممکن: 200304400401404429
POST /v2/me/eventsیک رویداد بسازید. id آن را برمیگرداند.
به اشتراکی با رویداد نیاز دارد، وگرنه 403. تعداد رویدادهای پیشرو به اشتراک بستگی دارد.
پارامترها نام نوع معنا titleدر بدنه stringاجباری عنوان. startsAtدر بدنه integerاجباری شروع، به میلیثانیه از ۱۹۷۰. endsAtدر بدنه integerاختیاری پایان، به میلیثانیه از ۱۹۷۰. اختیاری. placeدر بدنه stringاختیاری کجا برگزار میشود. descriptionدر بدنه stringاختیاری یک توضیح. signupsدر بدنه booleanاختیاری آیا میتوان ثبتنام کرد. به اشتراکی با ثبتنام نیاز دارد. capacityدر بدنه integerاختیاری حداکثر چند نفر میتوانند ثبتنام کنند. بدون آن، بیحد.
درخواست نمونه curl -X POST \
-H "Authorization: Bearer tm_key_…" \
-H "Content-Type: application/json" \
-d '{"title":"Seed swap","startsAt":1758700000000,"place":"Community garden","signups":true,"capacity":30}' \
"https://api.tellmelo.com/v2/me/events"پاسخ با یک Made پاسخ میدهد.
مثال {
"id": "0d9c8b7a-6f5e-4d3c-2b1a-0f9e8d7c6b5a"
}وضعیتهای ممکن: 200400401403429
PUT /v2/me/events/{id}یکی از رویدادهایتان را تغییر دهید. همهٔ فیلدها دوباره تنظیم میشوند.
رویدادی که شروع شده، زمان شروعش را نگه میدارد.
پارامترها نام نوع معنا idدر مسیر stringاجباری id رویداد.titleدر بدنه stringاجباری عنوان. startsAtدر بدنه integerاجباری شروع، به میلیثانیه از ۱۹۷۰. endsAtدر بدنه integerاختیاری پایان، به میلیثانیه از ۱۹۷۰. اختیاری. placeدر بدنه stringاختیاری کجا برگزار میشود. descriptionدر بدنه stringاختیاری یک توضیح. signupsدر بدنه booleanاختیاری آیا میتوان ثبتنام کرد. به اشتراکی با ثبتنام نیاز دارد. capacityدر بدنه integerاختیاری حداکثر چند نفر میتوانند ثبتنام کنند. بدون آن، بیحد.
درخواست نمونه curl -X PUT \
-H "Authorization: Bearer tm_key_…" \
-H "Content-Type: application/json" \
-d '{"title":"Seed swap","startsAt":1758700000000,"place":"Community garden","signups":true,"capacity":30}' \
"https://api.tellmelo.com/v2/me/events/2a3b4c5d-6e7f-4809-9a1b-2c3d4e5f6a7b"پاسخ با یک Made پاسخ میدهد.
مثال {
"id": "0d9c8b7a-6f5e-4d3c-2b1a-0f9e8d7c6b5a"
}وضعیتهای ممکن: 200400401403404429
DELETE /v2/me/events/{id}یکی از رویدادهایتان را حذف کنید.
پارامترها نام نوع معنا idدر مسیر stringاجباری id رویداد.
درخواست نمونه curl -X DELETE \
-H "Authorization: Bearer tm_key_…" \
"https://api.tellmelo.com/v2/me/events/2a3b4c5d-6e7f-4809-9a1b-2c3d4e5f6a7b"پاسخ با یک Ok پاسخ میدهد.
مثال {
"ok": true
}وضعیتهای ممکن: 200400401403404429
GET /v2/me/events/{id}/signupsچه کسانی برای یکی از رویدادهای شما ثبتنام کردهاند.
اختیار read با ETag از v2.19 پارامترها نام نوع معنا idدر مسیر stringاجباری id رویداد.
درخواست نمونه curl \
-H "Authorization: Bearer tm_key_…" \
"https://api.tellmelo.com/v2/me/events/2a3b4c5d-6e7f-4809-9a1b-2c3d4e5f6a7b/signups"پاسخ با یک صفحه از EventSignup پاسخ میدهد، بهصورت `items` و `next`.
مثال {
"items": [
{
"id": "a3e1f7c2-54b9-4d0e-8f16-7b2c9d4e1a05",
"handle": "mara",
"name": "Mara 🌻",
"at": 1758624000000
}
],
"next": null
}وضعیتهای ممکن: 200304400401404429
POST /v2/events/{id}/signupبرای یک رویداد ثبتنام کنید یا انصراف دهید.
فقط برای رویدادهای با ثبتنام، نه رویدادهای خودتان. اگر پر باشد، 409.
پارامترها نام نوع معنا idدر مسیر stringاجباری id رویداد.goingدر بدنه booleanاجباری true شما را ثبتنام میکند، false انصراف.
درخواست نمونه curl -X POST \
-H "Authorization: Bearer tm_key_…" \
-H "Content-Type: application/json" \
-d '{"going":true}' \
"https://api.tellmelo.com/v2/events/2a3b4c5d-6e7f-4809-9a1b-2c3d4e5f6a7b/signup"پاسخ با یک Ok پاسخ میدهد.
مثال {
"ok": true
}وضعیتهای ممکن: 200400401403404429
گروهها گروههای باز و گروههای خودتان، با پستها، اعضا، نقشها و پیوندهای دعوتشان.
GET /v2/communitiesگروههای باز این نمونه؛ با mine=true گروههای حسابتان.
اختیار read با ETag از v2.0 بر اساس شمار اعضا مرتب شده و صفحهبندی نمیشود؛ next همیشه null است.
پارامترها نام نوع معنا limitدر پرسوجو integerاختیاری شمار ورودی در هر صفحه: پیشفرض ۲۰، حداکثر ۵۰. mineدر پرسوجو booleanاختیاری true برای گروههای حسابتان، حتی داخلی و پنهان، به ترتیب نام.
درخواست نمونه curl \
-H "Authorization: Bearer tm_key_…" \
"https://api.tellmelo.com/v2/communities?limit=20"پاسخ با یک صفحه از Community پاسخ میدهد، بهصورت `items` و `next`.
مثال {
"items": [
{
"id": "c81d4e2a-0f3b-4a6c-9e57-1d2b3c4a5f60",
"name": "Urban Gardening",
"handle": "urbangardening",
"description": "Balconies, allotments, rooftops: whatever grows.",
"tags": [
"garden",
"bees"
],
"members": 312,
"joinPolicy": "open",
"visibility": "open",
"feedChannel": true,
"sparks": 24,
"perks": [
"tint",
"welcome"
],
"membership": {
"leader": null,
"roles": [
"4e5f6a7b-8c9d-4e0f-a1b2-c3d4e5f6a7b8"
],
"permissions": [
"attach",
"invite",
"send",
"view"
],
"mutedUntil": null
}
}
],
"next": null
}وضعیتهای ممکن: 200304401429
GET /v2/communities/{id}یک گروه، با id آن.
اختیار read با ETag از v2.0 گروههای داخلی و پنهان فقط اگر حسابتان عضو باشد.
پارامترها نام نوع معنا idدر مسیر stringاجباری id یک گروه.
درخواست نمونه curl \
-H "Authorization: Bearer tm_key_…" \
"https://api.tellmelo.com/v2/communities/c81d4e2a-0f3b-4a6c-9e57-1d2b3c4a5f60"پاسخ با یک Community پاسخ میدهد.
مثال {
"id": "c81d4e2a-0f3b-4a6c-9e57-1d2b3c4a5f60",
"name": "Urban Gardening",
"handle": "urbangardening",
"description": "Balconies, allotments, rooftops: whatever grows.",
"tags": [
"garden",
"bees"
],
"members": 312,
"joinPolicy": "open",
"visibility": "open",
"feedChannel": true,
"sparks": 24,
"perks": [
"tint",
"welcome"
],
"membership": {
"leader": null,
"roles": [
"4e5f6a7b-8c9d-4e0f-a1b2-c3d4e5f6a7b8"
],
"permissions": [
"attach",
"invite",
"send",
"view"
],
"mutedUntil": null
}
}وضعیتهای ممکن: 200304400401404429
GET /v2/communities/{id}/postsپستهای کانال فید یک گروه، تازهترین اول.
اختیار read صفحهبندیپذیر با ETag از v2.0 در مسیرهای عمومی، counts.likes و counts.reposts همیشه 0 و pinned همیشه false است.
اگر کانال فید خاموش باشد، مسیر با 409 و feed_off پاسخ میدهد.
پارامترها نام نوع معنا idدر مسیر stringاجباری id یک گروه.limitدر پرسوجو integerاختیاری شمار ورودی در هر صفحه: پیشفرض ۲۰، حداکثر ۵۰. cursorدر پرسوجو stringاختیاری مقدار next پاسخ قبلی. بدون آن، از آغاز.
درخواست نمونه curl \
-H "Authorization: Bearer tm_key_…" \
"https://api.tellmelo.com/v2/communities/c81d4e2a-0f3b-4a6c-9e57-1d2b3c4a5f60/posts?limit=20"پاسخ با یک صفحه از Post پاسخ میدهد، بهصورت `items` و `next`.
مثال {
"items": [
{
"id": "5f0c2a9e-8d41-4b7a-9c3e-2e61d0f4a7b1",
"text": "The bees are back in the garden 🐝 #garden",
"kind": "poll",
"author": {
"id": "a3e1f7c2-54b9-4d0e-8f16-7b2c9d4e1a05",
"handle": "mara",
"name": "Mara 🌻",
"verified": true,
"accountKind": "person"
},
"community": {
"id": "c81d4e2a-0f3b-4a6c-9e57-1d2b3c4a5f60",
"name": "Urban Gardening"
},
"media": [
{
"url": "/api/media?id=b2d7e9f1-3c4a-4e8b-a1f0-6d5c4b3a2918",
"kind": "image",
"poster": null,
"ai": "without"
}
],
"poll": {
"options": [
{
"text": "Lavender",
"votes": 12
},
{
"text": "Sunflowers",
"votes": 7
},
{
"text": "Clover",
"votes": 3
}
],
"total": 22,
"multiple": false,
"endsAt": null,
"running": true,
"resultsVisible": true,
"myVotes": [
0
]
},
"quotes": null,
"continues": null,
"counts": {
"replies": 4,
"likes": 31,
"reposts": 2
},
"pinned": false,
"giftDrop": {
"item": "plan",
"quantity": 3,
"places": 10,
"left": 4,
"audience": "followers",
"newAccounts": false,
"status": "open",
"claimed": true
},
"createdAt": 1758624000000
}
],
"next": "MTc1ODYyNDAwMDAwMDo1ZjBjMmE5ZS04ZDQx"
}وضعیتهای ممکن: 200304400401404429
GET /v2/communities/{id}/membersاعضای یک گروه با نقشهایشان.
اختیار read با ETag از v2.15 اول رهبری، بعد بر اساس بالاترین نقش؛ حداکثر ۳۰۰.
پارامترها نام نوع معنا idدر مسیر stringاجباری id یک گروه.
درخواست نمونه curl \
-H "Authorization: Bearer tm_key_…" \
"https://api.tellmelo.com/v2/communities/c81d4e2a-0f3b-4a6c-9e57-1d2b3c4a5f60/members"پاسخ با یک صفحه از GroupMember پاسخ میدهد، بهصورت `items` و `next`.
مثال {
"items": [
{
"id": "d4c3b2a1-6e5f-4a7b-9c8d-1e2f3a4b5c6d",
"handle": "jon",
"name": "Jon",
"bot": false,
"leader": null,
"roles": [
"4e5f6a7b-8c9d-4e0f-a1b2-c3d4e5f6a7b8"
],
"mutedUntil": null
}
],
"next": null
}وضعیتهای ممکن: 200304400401404429
GET /v2/communities/{id}/rolesنقشهای یک گروه، بالاترین اول، @everyone آخر.
اختیار read با ETag از v2.15 پارامترها نام نوع معنا idدر مسیر stringاجباری id یک گروه.
درخواست نمونه curl \
-H "Authorization: Bearer tm_key_…" \
"https://api.tellmelo.com/v2/communities/c81d4e2a-0f3b-4a6c-9e57-1d2b3c4a5f60/roles"پاسخ با یک صفحه از Role پاسخ میدهد، بهصورت `items` و `next`.
مثال {
"items": [
{
"id": "4e5f6a7b-8c9d-4e0f-a1b2-c3d4e5f6a7b8",
"name": "Gardeners",
"everyone": false,
"color": "green",
"permissions": [
"attach",
"invite",
"send",
"view"
],
"members": 24,
"editable": true,
"selfable": false
}
],
"next": null
}وضعیتهای ممکن: 200304400401404429
GET /v2/communities/{id}/bellیک گروه چه اعلانهایی برایت میفرستد.
اختیار read با ETag از v2.15 پارامترها نام نوع معنا idدر مسیر stringاجباری id یک گروه.
درخواست نمونه curl \
-H "Authorization: Bearer tm_key_…" \
"https://api.tellmelo.com/v2/communities/c81d4e2a-0f3b-4a6c-9e57-1d2b3c4a5f60/bell"پاسخ با یک Bell پاسخ میدهد.
مثال {
"level": "important"
}وضعیتهای ممکن: 200304400401404429
GET /v2/invites/{code}گروه پشت یک پیوند دعوت، پیش از پیوستن.
اختیار read با ETag از v2.15 پارامترها نام نوع معنا codeدر مسیر stringاجباری کد پیوند دعوت، انتهای نشانی آن.
درخواست نمونه curl \
-H "Authorization: Bearer tm_key_…" \
"https://api.tellmelo.com/v2/invites/k7Qm2xPa"پاسخ با یک InvitePreview پاسخ میدهد.
مثال {
"community": {
"id": "c81d4e2a-0f3b-4a6c-9e57-1d2b3c4a5f60",
"name": "Urban Gardening",
"members": 312,
"rules": [
"Be kind.",
"No advertising."
]
},
"member": false
}وضعیتهای ممکن: 200304400401404429
PUT /v2/roles/{id}/selfگرفتن یا کنار گذاشتن یک نقش خودانتخابی.
فقط نقشهایی که مدیریت بهصورت خودانتخابی ارائه میدهد (selfable) و فقط برای حساب خودتان.
پارامترها نام نوع معنا idدر مسیر stringاجباری id یک نقش.activeدر بدنه booleanاختیاری false نقش را میگیرد؛ وگرنه داده میشود.
درخواست نمونه curl -X PUT \
-H "Authorization: Bearer tm_key_…" \
-H "Content-Type: application/json" \
-d '{"active":true}' \
"https://api.tellmelo.com/v2/roles/4e5f6a7b-8c9d-4e0f-a1b2-c3d4e5f6a7b8/self"پاسخ با یک Ok پاسخ میدهد.
مثال {
"ok": true
}وضعیتهای ممکن: 200400401403404429
GET /v2/communities/{id}/emojisایموجیهای خود یک گروه.
اختیار read با ETag از v2.20 پارامترها نام نوع معنا idدر مسیر stringاجباری id یک گروه.
درخواست نمونه curl \
-H "Authorization: Bearer tm_key_…" \
"https://api.tellmelo.com/v2/communities/c81d4e2a-0f3b-4a6c-9e57-1d2b3c4a5f60/emojis"پاسخ با یک صفحه از GroupEmoji پاسخ میدهد، بهصورت `items` و `next`.
مثال {
"items": [
{
"name": "seedling",
"url": "/api/media?id=8c7b6a59-4837-4261-9f5e-d4c3b2a1f0e9",
"animated": false
}
],
"next": null
}وضعیتهای ممکن: 200304400401404429
PUT /v2/communities/{id}/bellتنظیم اینکه یک گروه چه اعلانهایی برایت بفرستد.
پارامترها نام نوع معنا idدر مسیر stringاجباری id یک گروه.levelدر بدنه stringاجباری چه اعلانهایی میآیند.allimportantoff
درخواست نمونه curl -X PUT \
-H "Authorization: Bearer tm_key_…" \
-H "Content-Type: application/json" \
-d '{"level":"important"}' \
"https://api.tellmelo.com/v2/communities/c81d4e2a-0f3b-4a6c-9e57-1d2b3c4a5f60/bell"پاسخ با یک Bell پاسخ میدهد.
مثال {
"level": "important"
}وضعیتهای ممکن: 200400401403404429
POST /v2/invites/{code}/joinپیوستن به گروه با پیوند دعوت.
پارامترها نام نوع معنا codeدر مسیر stringاجباری کد پیوند دعوت، انتهای نشانی آن. rulesدر بدنه booleanاختیاری true اگر قوانین گروه را میپذیری؛ اگر قانون دارد لازم است.
درخواست نمونه curl -X POST \
-H "Authorization: Bearer tm_key_…" \
"https://api.tellmelo.com/v2/invites/k7Qm2xPa/join"پاسخ با یک Joined پاسخ میدهد.
مثال {
"community": "c81d4e2a-0f3b-4a6c-9e57-1d2b3c4a5f60"
}وضعیتهای ممکن: 200400401403404429
GET /v2/communities/{id}/botsرباتهای یک گروه با آنچه نقششان اجازه میدهد.
اختیار read با ETag از v2.19 پارامترها نام نوع معنا idدر مسیر stringاجباری id یک گروه.
درخواست نمونه curl \
-H "Authorization: Bearer tm_key_…" \
"https://api.tellmelo.com/v2/communities/c81d4e2a-0f3b-4a6c-9e57-1d2b3c4a5f60/bots"پاسخ با یک صفحه از GroupBot پاسخ میدهد، بهصورت `items` و `next`.
مثال {
"items": [
{
"id": "a3e1f7c2-54b9-4d0e-8f16-7b2c9d4e1a05",
"handle": "gardenbot",
"name": "Garden bot",
"description": "Reminds the group of watering days.",
"permissions": [
"send",
"view"
]
}
],
"next": null
}وضعیتهای ممکن: 200304400401404429
کانالها کانالهای گروههایتان و گفتوگوی آنها: خواندن، نوشتن، خواندهشده زدن.
GET /v2/communities/{id}/channelsکانالهایی از گروه که میبینید، به ترتیبشان.
اختیار read با ETag از v2.15 کانال فید (kind: feed) فقط تا وقتی روشن است اینجا هست؛ پستهایش از /communities/{id}/posts میآیند.
پارامترها نام نوع معنا idدر مسیر stringاجباری id یک گروه.
درخواست نمونه curl \
-H "Authorization: Bearer tm_key_…" \
"https://api.tellmelo.com/v2/communities/c81d4e2a-0f3b-4a6c-9e57-1d2b3c4a5f60/channels"پاسخ با یک صفحه از Channel پاسخ میدهد، بهصورت `items` و `next`.
مثال {
"items": [
{
"id": "0d9c8b7a-6f5e-4d3c-2b1a-0f9e8d7c6b5a",
"kind": "chat",
"name": "harvest",
"topic": "What came in this week",
"category": {
"id": "9a8b7c6d-5e4f-4a3b-8c2d-1e0f9a8b7c6d",
"name": "Garden",
"symbol": {
"emoji": null,
"icon": null,
"image": null,
"color": null,
"shape": null
}
},
"unread": 3,
"permissions": [
"view",
"send"
],
"symbol": {
"emoji": "🌻",
"icon": null,
"image": null,
"color": "amber",
"shape": "circle"
}
}
],
"next": null
}وضعیتهای ممکن: 200304400401404429
GET /v2/channels/{id}/messagesپیامهای یک کانال گفتوگو، تازهترین اول.
اختیار read صفحهبندیپذیر با ETag از v2.15 تا ۵۰ پیام در هر صفحه. پیامهای حسابهایی که مسدودشان کردهاید یا شما را مسدود کردهاند نمیآیند.
پارامترها نام نوع معنا idدر مسیر stringاجباری id یک کانال.cursorدر پرسوجو stringاختیاری مقدار next پاسخ قبلی. بدون آن، از آغاز. threadدر پرسوجو stringاختیاری پیامی که رشتهاش خوانده میشود: خودش و پاسخهایش بهجای گفتگو.
درخواست نمونه curl \
-H "Authorization: Bearer tm_key_…" \
"https://api.tellmelo.com/v2/channels/0d9c8b7a-6f5e-4d3c-2b1a-0f9e8d7c6b5a/messages"پاسخ با یک صفحه از ChannelMessage پاسخ میدهد، بهصورت `items` و `next`.
مثال {
"items": [
{
"id": "61a2b3c4-d5e6-4f70-8192-a3b4c5d6e7f8",
"text": "@jon the first tomatoes are ripe 🍅",
"author": {
"id": "a3e1f7c2-54b9-4d0e-8f16-7b2c9d4e1a05",
"handle": "mara",
"name": "Mara 🌻",
"bot": false
},
"media": [
{
"url": "/api/media?id=b2d7e9f1-3c4a-4e8b-a1f0-6d5c4b3a2918",
"kind": "image",
"poster": null,
"ai": "without"
}
],
"replyTo": "72b3c4d5-e6f7-4081-92a3-b4c5d6e7f809",
"roleColor": "green",
"threadOf": null,
"threadCount": 3,
"card": null,
"buttons": [],
"createdAt": 1758631200000
}
],
"next": "MTc1ODYyNDAwMDAwMDo1ZjBjMmE5ZS04ZDQx"
}وضعیتهای ممکن: 200304400401404429
POST /v2/channels/{id}/messagesنوشتن پیام در کانال گفتوگو.
@نام به یک عضو خبر میدهد و @everyone با مجوزش به همه، حداکثر شش بار در ساعت.
پارامترها نام نوع معنا idدر مسیر stringاجباری id یک کانال.textدر بدنه stringاختیاری متن پست، پاسخ یا پیام. replyToدر بدنه stringاختیاری id پیامی در همان کانال که به آن پاسخ میدهید.mediaدر بدنه string[]اختیاری شناسهٔ تصاویری که در اپ بارگذاری شدهاند، یا یک GIF یا ویدیو از کتابخانهٔ رسانه (از 2.14). threadدر بدنه stringاختیاری پیام گفتگو که در رشتهاش پاسخ داده میشود؛ بدون آن پیام به گفتگو میرود. cardدر بدنه objectاختیاری یک کارت { title, text, color, fields: [{ name, value }] }، حداکثر ۱۰ فیلد. buttonsدر بدنه object[]اختیاری حداکثر ۵ دکمه، هر کدام { id, label, style } با style برابر primary، secondary یا danger. فشردن بهصورت رویداد interaction میرسد.
درخواست نمونه curl -X POST \
-H "Authorization: Bearer tm_key_…" \
-H "Content-Type: application/json" \
-d '{"text":"Who has seeds to swap?"}' \
"https://api.tellmelo.com/v2/channels/0d9c8b7a-6f5e-4d3c-2b1a-0f9e8d7c6b5a/messages"پاسخ با یک Made پاسخ میدهد.
مثال {
"id": "0d9c8b7a-6f5e-4d3c-2b1a-0f9e8d7c6b5a"
}وضعیتهای ممکن: 200400401403404429
POST /v2/channels/{id}/readخواندهشده زدن کانال گفتوگو تا یک زمان.
پارامترها نام نوع معنا idدر مسیر stringاجباری id یک کانال.atدر بدنه integerاجباری تا چه زمانی خوانده شده، به میلیثانیه، معمولاً createdAt تازهترین پیام.
درخواست نمونه curl -X POST \
-H "Authorization: Bearer tm_key_…" \
"https://api.tellmelo.com/v2/channels/0d9c8b7a-6f5e-4d3c-2b1a-0f9e8d7c6b5a/read"پاسخ با یک Ok پاسخ میدهد.
مثال {
"ok": true
}وضعیتهای ممکن: 200400401403404429
DELETE /v2/channel-messages/{id}حذف یکی از پیامهای خودتان در کانال گفتوگو.
فقط پیامهای خودتان؛ پیام دیگران را رهبری با مجوز groups برمیدارد.
پارامترها نام نوع معنا idدر مسیر stringاجباری id پیامی در کانال گفتوگو.
درخواست نمونه curl -X DELETE \
-H "Authorization: Bearer tm_key_…" \
"https://api.tellmelo.com/v2/channel-messages/61a2b3c4-d5e6-4f70-8192-a3b4c5d6e7f8"پاسخ با یک Ok پاسخ میدهد.
مثال {
"ok": true
}وضعیتهای ممکن: 200400401403404429
GET /v2/communities/{id}/voiceچه کسانی هماکنون در کانالهای صوتی یک گروه هستند، به تفکیک کانال.
اختیار read با ETag از v2.19 فقط کانالهایی که اجازهٔ دیدنشان را دارید. بدون سرور رسانه فهرست خالی است.
پارامترها نام نوع معنا idدر مسیر stringاجباری id یک گروه.
درخواست نمونه curl \
-H "Authorization: Bearer tm_key_…" \
"https://api.tellmelo.com/v2/communities/c81d4e2a-0f3b-4a6c-9e57-1d2b3c4a5f60/voice"پاسخ با یک صفحه از VoiceRoom پاسخ میدهد، بهصورت `items` و `next`.
مثال {
"items": [
{
"channel": "0d9c8b7a-6f5e-4d3c-2b1a-0f9e8d7c6b5a",
"people": [
{
"id": "a3e1f7c2-54b9-4d0e-8f16-7b2c9d4e1a05",
"handle": "mara",
"name": "Mara 🌻",
"muted": false,
"deaf": false,
"camera": false,
"screen": true
}
]
}
],
"next": null
}وضعیتهای ممکن: 200304400401404429
اداره کردن گروهها آنچه تنظیمات گروه در برنامه میتواند، با مجوز groups . اینکه حسابتان چه میتواند بکند را گروه مثل برنامه تعیین میکند: رهبری، نقشها و ترتیبشان.
POST /v2/communities/{id}/emojisافزودن ایموجی به گروه.
فقط کسی که اجازه مدیریت کانالهای گروه را دارد. تصویر مانند ایموجی خودتان بارگذاری میشود (POST /me/emojis/pictures)؛ هر نام در میان همه ایموجیها فقط یک بار داده میشود.
پارامترها نام نوع معنا idدر مسیر stringاجباری id یک گروه.nameدر بدنه stringاجباری نامی که شکلک را با آن مینویسید، به شکل :نام:. pictureدر بدنه stringاجباری id از POST /me/emojis/pictures.
درخواست نمونه curl -X POST \
-H "Authorization: Bearer tm_key_…" \
-H "Content-Type: application/json" \
-d '{"name":"seedling","picture":"8c7b6a59-4837-4261-9f5e-d4c3b2a1f0e9"}' \
"https://api.tellmelo.com/v2/communities/c81d4e2a-0f3b-4a6c-9e57-1d2b3c4a5f60/emojis"پاسخ با یک صفحه از GroupEmoji پاسخ میدهد، بهصورت `items` و `next`.
مثال {
"items": [
{
"name": "seedling",
"url": "/api/media?id=8c7b6a59-4837-4261-9f5e-d4c3b2a1f0e9",
"animated": false
}
],
"next": null
}وضعیتهای ممکن: 200400401403404429
DELETE /v2/communities/{id}/emojis/{name}حذف یک ایموجی از گروه.
پارامترها نام نوع معنا idدر مسیر stringاجباری id یک گروه.nameدر مسیر stringاجباری نام شکلک، بدون دونقطه.
درخواست نمونه curl -X DELETE \
-H "Authorization: Bearer tm_key_…" \
"https://api.tellmelo.com/v2/communities/c81d4e2a-0f3b-4a6c-9e57-1d2b3c4a5f60/emojis/seedling"پاسخ با یک صفحه از GroupEmoji پاسخ میدهد، بهصورت `items` و `next`.
مثال {
"items": [
{
"name": "seedling",
"url": "/api/media?id=8c7b6a59-4837-4261-9f5e-d4c3b2a1f0e9",
"animated": false
}
],
"next": null
}وضعیتهای ممکن: 200400401403404429
POST /v2/communities/{id}/rolesساختن نقش.
فقط نقشهای زیر بالاترین نقش شما و فقط مجوزهایی که خودتان دارید؛ رهبری بالای همه است.
پارامترها نام نوع معنا idدر مسیر stringاجباری id یک گروه.nameدر بدنه stringاختیاری نام نقش؛ @everyone نام خودش را نگه میدارد. colorدر بدنه stringاختیاری رنگ؛ خالی برای بدون رنگ.indigovioletroseambergreenteal permissionsدر بدنه string[]اختیاری اختیارات: view، send، attach، post_feed، invite، mention_everyone، moderate، timeout_members، kick_members، ban_members، manage_channels، manage_roles. selfableدر بدنه booleanاختیاری true: اعضا نقش را خودشان میگیرند. فقط برای نقشهایی که بیش از مشارکت اجازه نمیدهند (view, send, attach, voice_connect, voice_speak, voice_video).
درخواست نمونه curl -X POST \
-H "Authorization: Bearer tm_key_…" \
-H "Content-Type: application/json" \
-d '{"name":"Gardeners","permissions":["view","send","invite"],"selfable":false}' \
"https://api.tellmelo.com/v2/communities/c81d4e2a-0f3b-4a6c-9e57-1d2b3c4a5f60/roles"پاسخ با یک Made پاسخ میدهد.
مثال {
"id": "0d9c8b7a-6f5e-4d3c-2b1a-0f9e8d7c6b5a"
}وضعیتهای ممکن: 200400401403404429
PUT /v2/roles/{id}تغییر نام، رنگ و مجوزهای یک نقش.
نام، رنگ و مجوزها را جایگزین میکند؛ آنچه را نفرستی خالی میشود.
فقط نقشهای زیر بالاترین نقش شما و فقط مجوزهایی که خودتان دارید؛ رهبری بالای همه است.
پارامترها نام نوع معنا idدر مسیر stringاجباری id یک نقش.nameدر بدنه stringاختیاری نام نقش؛ @everyone نام خودش را نگه میدارد. colorدر بدنه stringاختیاری رنگ؛ خالی برای بدون رنگ.indigovioletroseambergreenteal permissionsدر بدنه string[]اختیاری اختیارات: view، send، attach، post_feed، invite، mention_everyone، moderate، timeout_members، kick_members، ban_members، manage_channels، manage_roles. selfableدر بدنه booleanاختیاری true: اعضا نقش را خودشان میگیرند. فقط برای نقشهایی که بیش از مشارکت اجازه نمیدهند (view, send, attach, voice_connect, voice_speak, voice_video).
درخواست نمونه curl -X PUT \
-H "Authorization: Bearer tm_key_…" \
-H "Content-Type: application/json" \
-d '{"name":"Gardeners","permissions":["view","send","invite"],"selfable":false}' \
"https://api.tellmelo.com/v2/roles/4e5f6a7b-8c9d-4e0f-a1b2-c3d4e5f6a7b8"پاسخ با یک Made پاسخ میدهد.
مثال {
"id": "0d9c8b7a-6f5e-4d3c-2b1a-0f9e8d7c6b5a"
}وضعیتهای ممکن: 200400401403404429
DELETE /v2/roles/{id}حذف نقش.
پارامترها نام نوع معنا idدر مسیر stringاجباری id یک نقش.
درخواست نمونه curl -X DELETE \
-H "Authorization: Bearer tm_key_…" \
"https://api.tellmelo.com/v2/roles/4e5f6a7b-8c9d-4e0f-a1b2-c3d4e5f6a7b8"پاسخ با یک Ok پاسخ میدهد.
مثال {
"ok": true
}وضعیتهای ممکن: 200400401403404429
PUT /v2/communities/{id}/roles/orderتعیین ترتیب نقشها.
پارامترها نام نوع معنا idدر مسیر stringاجباری id یک گروه.rolesدر بدنه string[]اجباری شناسههای id همهٔ نقشهای پایینتر از بالاترین نقش خودتان، بالاترین اول؛ برای رهبری همه بهجز @everyone.
درخواست نمونه curl -X PUT \
-H "Authorization: Bearer tm_key_…" \
"https://api.tellmelo.com/v2/communities/c81d4e2a-0f3b-4a6c-9e57-1d2b3c4a5f60/roles/order"پاسخ با یک Ok پاسخ میدهد.
مثال {
"ok": true
}وضعیتهای ممکن: 200400401403404429
PUT /v2/roles/{id}/members/{member}دادن نقش به عضو یا گرفتن آن.
پارامترها نام نوع معنا idدر مسیر stringاجباری id یک نقش.memberدر مسیر stringاجباری id حساب یک عضو.activeدر بدنه booleanاختیاری false نقش را میگیرد؛ وگرنه داده میشود.
درخواست نمونه curl -X PUT \
-H "Authorization: Bearer tm_key_…" \
-H "Content-Type: application/json" \
-d '{"active":true}' \
"https://api.tellmelo.com/v2/roles/4e5f6a7b-8c9d-4e0f-a1b2-c3d4e5f6a7b8/members/d4c3b2a1-6e5f-4a7b-9c8d-1e2f3a4b5c6d"پاسخ با یک Ok پاسخ میدهد.
مثال {
"ok": true
}وضعیتهای ممکن: 200400401403404429
POST /v2/communities/{id}/channelsساختن کانال گفتوگو.
پارامترها نام نوع معنا idدر مسیر stringاجباری id یک گروه.nameدر بدنه stringاختیاری نام، بدون #؛ خالی برای نامی که برنامه در هر زبان میدهد. topicدر بدنه stringاختیاری موضوعی که بالای کانال میآید. categoryدر بدنه stringاختیاری id دستهای که کانال در آن قرار میگیرد؛ خالی برای هیچ.emojiدر بدنه stringاختیاری یک ایموجی بهعنوان نماد. iconدر بدنه stringاختیاری نمادی از مجموعهٔ برنامه، با نامش.homehashmegaphonevolumemessagehelpinfobellcalendarbookbookmarkpinshieldstarheartsparklesflamezaptrophygiftrocketlightbulbcodewrenchbriefcasegraduationpalettecamerafilmmusicgamepaddumbbellleafflowerpawsunmooncloudglobemapcoffeepizzasmile imageدر بدنه stringاختیاری شناسهٔ تصویری که با /media/emoji بارگذاری کردهاید. colorدر بدنه stringاختیاری رنگ کاشی.brandindigovioletroseambergreentealred shapeدر بدنه stringاختیاری شکل کاشی؛ بدون آن دایره.circlesquaretrianglediamondhexagonoctagonshieldstar
درخواست نمونه curl -X POST \
-H "Authorization: Bearer tm_key_…" \
-H "Content-Type: application/json" \
-d '{"name":"harvest","emoji":"🌻","color":"amber"}' \
"https://api.tellmelo.com/v2/communities/c81d4e2a-0f3b-4a6c-9e57-1d2b3c4a5f60/channels"پاسخ با یک Made پاسخ میدهد.
مثال {
"id": "0d9c8b7a-6f5e-4d3c-2b1a-0f9e8d7c6b5a"
}وضعیتهای ممکن: 200400401403404429
PUT /v2/channels/{id}تغییر نام، موضوع و دستهٔ یک کانال.
نام، موضوع و دسته را جایگزین میکند؛ آنچه را نفرستی خالی میشود.
پارامترها نام نوع معنا idدر مسیر stringاجباری id یک کانال.nameدر بدنه stringاختیاری نام، بدون #؛ خالی برای نامی که برنامه در هر زبان میدهد. topicدر بدنه stringاختیاری موضوعی که بالای کانال میآید. categoryدر بدنه stringاختیاری id دستهای که کانال در آن قرار میگیرد؛ خالی برای هیچ.emojiدر بدنه stringاختیاری یک ایموجی بهعنوان نماد. iconدر بدنه stringاختیاری نمادی از مجموعهٔ برنامه، با نامش.homehashmegaphonevolumemessagehelpinfobellcalendarbookbookmarkpinshieldstarheartsparklesflamezaptrophygiftrocketlightbulbcodewrenchbriefcasegraduationpalettecamerafilmmusicgamepaddumbbellleafflowerpawsunmooncloudglobemapcoffeepizzasmile imageدر بدنه stringاختیاری شناسهٔ تصویری که با /media/emoji بارگذاری کردهاید. colorدر بدنه stringاختیاری رنگ کاشی.brandindigovioletroseambergreentealred shapeدر بدنه stringاختیاری شکل کاشی؛ بدون آن دایره.circlesquaretrianglediamondhexagonoctagonshieldstar
درخواست نمونه curl -X PUT \
-H "Authorization: Bearer tm_key_…" \
-H "Content-Type: application/json" \
-d '{"name":"harvest","emoji":"🌻","color":"amber"}' \
"https://api.tellmelo.com/v2/channels/0d9c8b7a-6f5e-4d3c-2b1a-0f9e8d7c6b5a"پاسخ با یک Made پاسخ میدهد.
مثال {
"id": "0d9c8b7a-6f5e-4d3c-2b1a-0f9e8d7c6b5a"
}وضعیتهای ممکن: 200400401403404429
DELETE /v2/channels/{id}حذف کانال گفتوگو با پیامهایش.
کانال فید حذفشدنی نیست، فقط خاموش میشود.
پارامترها نام نوع معنا idدر مسیر stringاجباری id یک کانال.
درخواست نمونه curl -X DELETE \
-H "Authorization: Bearer tm_key_…" \
"https://api.tellmelo.com/v2/channels/0d9c8b7a-6f5e-4d3c-2b1a-0f9e8d7c6b5a"پاسخ با یک Ok پاسخ میدهد.
مثال {
"ok": true
}وضعیتهای ممکن: 200400401403404429
PUT /v2/communities/{id}/channels/orderتعیین ترتیب دستهها و کانالهای گفتوگو.
پارامترها نام نوع معنا idدر مسیر stringاجباری id یک گروه.categoriesدر بدنه string[]اجباری id همهٔ دستههای گروه به ترتیب جدید.channelsدر بدنه string[]اجباری id همهٔ کانالهای گفتوگوی گروه به ترتیب جدید.
درخواست نمونه curl -X PUT \
-H "Authorization: Bearer tm_key_…" \
"https://api.tellmelo.com/v2/communities/c81d4e2a-0f3b-4a6c-9e57-1d2b3c4a5f60/channels/order"پاسخ با یک Ok پاسخ میدهد.
مثال {
"ok": true
}وضعیتهای ممکن: 200400401403404429
PUT /v2/communities/{id}/channels/shapeتعیین شکل همهٔ نمادهای کانال گروه.
فقط مدیریت گروه.
پارامترها نام نوع معنا idدر مسیر stringاجباری id یک گروه.shapeدر بدنه stringاختیاری شکل همهٔ نمادهای گروه؛ اگر حذف شود هر کانال شکل خودش را دارد.circlesquaretrianglediamondhexagonoctagonshieldstar
درخواست نمونه curl -X PUT \
-H "Authorization: Bearer tm_key_…" \
"https://api.tellmelo.com/v2/communities/c81d4e2a-0f3b-4a6c-9e57-1d2b3c4a5f60/channels/shape"پاسخ با یک Ok پاسخ میدهد.
مثال {
"ok": true
}وضعیتهای ممکن: 200400401403404429
GET /v2/channels/{id}/overridesآنچه نقشها در یک کانال متفاوت از گروه میتوانند.
اختیار groups با ETag از v2.15 پارامترها نام نوع معنا idدر مسیر stringاجباری id یک کانال.
درخواست نمونه curl \
-H "Authorization: Bearer tm_key_…" \
"https://api.tellmelo.com/v2/channels/0d9c8b7a-6f5e-4d3c-2b1a-0f9e8d7c6b5a/overrides"پاسخ با یک صفحه از ChannelOverride پاسخ میدهد، بهصورت `items` و `next`.
مثال {
"items": [
{
"role": "4e5f6a7b-8c9d-4e0f-a1b2-c3d4e5f6a7b8",
"allow": [
"send"
],
"deny": []
}
],
"next": null
}وضعیتهای ممکن: 200304400401403404429
PUT /v2/channels/{id}/overrides/{role}تعیین اینکه یک نقش در کانال چه چیزی را متفاوت میتواند.
نه برای نقشهای همتراز یا بالاتر از بالاترین نقش شما.
پارامترها نام نوع معنا idدر مسیر stringاجباری id یک کانال.roleدر مسیر stringاجباری id یک نقش.allowدر بدنه string[]اختیاری آنچه نقش اینجا افزون بر آن میتواند: در گفتوگو view، send، attach، mention_everyone، moderate، در کانال فید view و post_feed. denyدر بدنه string[]اختیاری آنچه نقش اینجا نمیتواند، از همان مجوزها. هر دو فهرست خالی تفاوت را برمیدارد.
درخواست نمونه curl -X PUT \
-H "Authorization: Bearer tm_key_…" \
-H "Content-Type: application/json" \
-d '{"allow":["view"],"deny":["send"]}' \
"https://api.tellmelo.com/v2/channels/0d9c8b7a-6f5e-4d3c-2b1a-0f9e8d7c6b5a/overrides/4e5f6a7b-8c9d-4e0f-a1b2-c3d4e5f6a7b8"پاسخ با یک Ok پاسخ میدهد.
مثال {
"ok": true
}وضعیتهای ممکن: 200400401403404429
POST /v2/communities/{id}/categoriesساختن دسته برای کانالها.
پارامترها نام نوع معنا idدر مسیر stringاجباری id یک گروه.nameدر بدنه stringاجباری نام دسته. emojiدر بدنه stringاختیاری یک ایموجی بهعنوان نماد. iconدر بدنه stringاختیاری نمادی از مجموعهٔ برنامه، با نامش.homehashmegaphonevolumemessagehelpinfobellcalendarbookbookmarkpinshieldstarheartsparklesflamezaptrophygiftrocketlightbulbcodewrenchbriefcasegraduationpalettecamerafilmmusicgamepaddumbbellleafflowerpawsunmooncloudglobemapcoffeepizzasmile imageدر بدنه stringاختیاری شناسهٔ تصویری که با /media/emoji بارگذاری کردهاید. colorدر بدنه stringاختیاری رنگ کاشی.brandindigovioletroseambergreentealred
درخواست نمونه curl -X POST \
-H "Authorization: Bearer tm_key_…" \
-H "Content-Type: application/json" \
-d '{"name":"Garden","emoji":"🌻","color":"amber"}' \
"https://api.tellmelo.com/v2/communities/c81d4e2a-0f3b-4a6c-9e57-1d2b3c4a5f60/categories"پاسخ با یک Made پاسخ میدهد.
مثال {
"id": "0d9c8b7a-6f5e-4d3c-2b1a-0f9e8d7c6b5a"
}وضعیتهای ممکن: 200400401403404429
PUT /v2/categories/{id}تغییر نام دسته.
پارامترها نام نوع معنا idدر مسیر stringاجباری id یک دسته.nameدر بدنه stringاجباری نام دسته. emojiدر بدنه stringاختیاری یک ایموجی بهعنوان نماد. iconدر بدنه stringاختیاری نمادی از مجموعهٔ برنامه، با نامش.homehashmegaphonevolumemessagehelpinfobellcalendarbookbookmarkpinshieldstarheartsparklesflamezaptrophygiftrocketlightbulbcodewrenchbriefcasegraduationpalettecamerafilmmusicgamepaddumbbellleafflowerpawsunmooncloudglobemapcoffeepizzasmile imageدر بدنه stringاختیاری شناسهٔ تصویری که با /media/emoji بارگذاری کردهاید. colorدر بدنه stringاختیاری رنگ کاشی.brandindigovioletroseambergreentealred
درخواست نمونه curl -X PUT \
-H "Authorization: Bearer tm_key_…" \
-H "Content-Type: application/json" \
-d '{"name":"Garden","emoji":"🌻","color":"amber"}' \
"https://api.tellmelo.com/v2/categories/9a8b7c6d-5e4f-4a3b-8c2d-1e0f9a8b7c6d"پاسخ با یک Made پاسخ میدهد.
مثال {
"id": "0d9c8b7a-6f5e-4d3c-2b1a-0f9e8d7c6b5a"
}وضعیتهای ممکن: 200400401403404429
DELETE /v2/categories/{id}حذف دسته.
کانالهایش بدون دسته میمانند.
پارامترها نام نوع معنا idدر مسیر stringاجباری id یک دسته.
درخواست نمونه curl -X DELETE \
-H "Authorization: Bearer tm_key_…" \
"https://api.tellmelo.com/v2/categories/9a8b7c6d-5e4f-4a3b-8c2d-1e0f9a8b7c6d"پاسخ با یک Ok پاسخ میدهد.
مثال {
"ok": true
}وضعیتهای ممکن: 200400401403404429
PUT /v2/communities/{id}/feedروشن یا خاموش کردن کانال فید گروه.
وقتی خاموش است، پستها ذخیره میمانند ولی فقط نویسندههایشان آنها را میبینند.
پارامترها نام نوع معنا idدر مسیر stringاجباری id یک گروه.onدر بدنه booleanاجباری true کانال فید را روشن و false خاموش میکند.
درخواست نمونه curl -X PUT \
-H "Authorization: Bearer tm_key_…" \
"https://api.tellmelo.com/v2/communities/c81d4e2a-0f3b-4a6c-9e57-1d2b3c4a5f60/feed"پاسخ با یک Ok پاسخ میدهد.
مثال {
"ok": true
}وضعیتهای ممکن: 200400401403404429
GET /v2/communities/{id}/invitesپیوندهای دعوت گروه که هنوز معتبرند.
اختیار groups با ETag از v2.15 رهبری همه را میبیند و بقیه فقط پیوندهای خودشان را.
پارامترها نام نوع معنا idدر مسیر stringاجباری id یک گروه.
درخواست نمونه curl \
-H "Authorization: Bearer tm_key_…" \
"https://api.tellmelo.com/v2/communities/c81d4e2a-0f3b-4a6c-9e57-1d2b3c4a5f60/invites"پاسخ با یک صفحه از InviteLink پاسخ میدهد، بهصورت `items` و `next`.
مثال {
"items": [
{
"code": "k7Qm2xPa",
"url": "https://tellmelo.com/groups?join=k7Qm2xPa",
"createdBy": {
"id": "d4c3b2a1-6e5f-4a7b-9c8d-1e2f3a4b5c6d",
"handle": "jon",
"name": "Jon",
"bot": false
},
"createdAt": 1758624000000,
"expiresAt": 1759228800000,
"uses": 3,
"maxUses": 10
}
],
"next": null
}وضعیتهای ممکن: 200304400401403404429
POST /v2/communities/{id}/invitesساختن پیوند دعوت.
پیوند فقط تا وقتی معتبر است که بتوانید دعوت کنید و با رفتنتان از میان میرود.
پارامترها نام نوع معنا idدر مسیر stringاجباری id یک گروه.daysدر بدنه integerاختیاری پیوند چند روز معتبر است؛ بدون آن تا وقتی پس گرفته شود.1730 usesدر بدنه integerاختیاری پیوند چند بار قابل استفاده است؛ بدون آن نامحدود.151025100
درخواست نمونه curl -X POST \
-H "Authorization: Bearer tm_key_…" \
-H "Content-Type: application/json" \
-d '{"days":7,"uses":10}' \
"https://api.tellmelo.com/v2/communities/c81d4e2a-0f3b-4a6c-9e57-1d2b3c4a5f60/invites"پاسخ با یک Made پاسخ میدهد.
مثال {
"id": "0d9c8b7a-6f5e-4d3c-2b1a-0f9e8d7c6b5a"
}وضعیتهای ممکن: 200400401403404429
DELETE /v2/invites/{code}پس گرفتن پیوند دعوت.
پارامترها نام نوع معنا codeدر مسیر stringاجباری کد پیوند دعوت، انتهای نشانی آن.
درخواست نمونه curl -X DELETE \
-H "Authorization: Bearer tm_key_…" \
"https://api.tellmelo.com/v2/invites/k7Qm2xPa"پاسخ با یک Ok پاسخ میدهد.
مثال {
"ok": true
}وضعیتهای ممکن: 200400401403404429
POST /v2/channel-messages/{id}/removeبرداشتن پیام عضوی دیگر از کانال.
مانند برنامه در گزارش گروه ثبت میشود و حداکثر ۶۰ بار در ساعت.
پارامترها نام نوع معنا idدر مسیر stringاجباری id پیامی در کانال گفتوگو.
درخواست نمونه curl -X POST \
-H "Authorization: Bearer tm_key_…" \
"https://api.tellmelo.com/v2/channel-messages/61a2b3c4-d5e6-4f70-8192-a3b4c5d6e7f8/remove"پاسخ با یک Ok پاسخ میدهد.
مثال {
"ok": true
}وضعیتهای ممکن: 200400401403404429
POST /v2/communities/{id}/posts/{post}/removeبرداشتن پست از گروه.
مانند برنامه در گزارش گروه ثبت میشود و حداکثر ۶۰ بار در ساعت.
پارامترها نام نوع معنا idدر مسیر stringاجباری id یک گروه.postدر مسیر stringاجباری id یک پست.reasonدر بدنه stringاجباری دلیلی که عضو میخواند.
درخواست نمونه curl -X POST \
-H "Authorization: Bearer tm_key_…" \
-H "Content-Type: application/json" \
-d '{"reason":"Advertising for another site, despite rule 2."}' \
"https://api.tellmelo.com/v2/communities/c81d4e2a-0f3b-4a6c-9e57-1d2b3c4a5f60/posts/post/remove"پاسخ با یک Ok پاسخ میدهد.
مثال {
"ok": true
}وضعیتهای ممکن: 200400401403404429
DELETE /v2/communities/{id}/members/{member}اخراج یک عضو از گروه.
از 2.16 این یک اخراج است: عضو میتواند برگردد. کسی که باید بیرون بماند، مسدود میشود.
فقط با اختیار مربوط و فقط برای اعضای پایینتر از بالاترین نقش شما؛ همرهبران فقط توسط بنیانگذار.
مانند برنامه در گزارش گروه ثبت میشود و حداکثر ۶۰ بار در ساعت.
پارامترها نام نوع معنا idدر مسیر stringاجباری id یک گروه.memberدر مسیر stringاجباری id حساب یک عضو.reasonدر بدنه stringاجباری دلیلی که عضو میخواند.
درخواست نمونه curl -X DELETE \
-H "Authorization: Bearer tm_key_…" \
-H "Content-Type: application/json" \
-d '{"reason":"Advertising for another site, despite rule 2."}' \
"https://api.tellmelo.com/v2/communities/c81d4e2a-0f3b-4a6c-9e57-1d2b3c4a5f60/members/d4c3b2a1-6e5f-4a7b-9c8d-1e2f3a4b5c6d"پاسخ با یک Ok پاسخ میدهد.
مثال {
"ok": true
}وضعیتهای ممکن: 200400401403404429
PUT /v2/communities/{id}/members/{member}/timeoutبیصدا کردن یک عضو.
بیصدایی تازه جای بیصدایی جاری را میگیرد. ترک و پیوستن دوباره به آن پایان نمیدهد.
فقط با اختیار مربوط و فقط برای اعضای پایینتر از بالاترین نقش شما؛ همرهبران فقط توسط بنیانگذار.
مانند برنامه در گزارش گروه ثبت میشود و حداکثر ۶۰ بار در ساعت.
پارامترها نام نوع معنا idدر مسیر stringاجباری id یک گروه.memberدر مسیر stringاجباری id حساب یک عضو.secondsدر بدنه integerاجباری مدت، به ثانیه.60300600360086400604800 reasonدر بدنه stringاختیاری دلیلی که عضو میخواند؛ اختیاری.
درخواست نمونه curl -X PUT \
-H "Authorization: Bearer tm_key_…" \
-H "Content-Type: application/json" \
-d '{"seconds":600}' \
"https://api.tellmelo.com/v2/communities/c81d4e2a-0f3b-4a6c-9e57-1d2b3c4a5f60/members/d4c3b2a1-6e5f-4a7b-9c8d-1e2f3a4b5c6d/timeout"پاسخ با یک Until پاسخ میدهد.
مثال {
"until": 1758624600000
}وضعیتهای ممکن: 200400401403404429
DELETE /v2/communities/{id}/members/{member}/timeoutبرداشتن بیصدایی.
پارامترها نام نوع معنا idدر مسیر stringاجباری id یک گروه.memberدر مسیر stringاجباری id حساب یک عضو.
درخواست نمونه curl -X DELETE \
-H "Authorization: Bearer tm_key_…" \
"https://api.tellmelo.com/v2/communities/c81d4e2a-0f3b-4a6c-9e57-1d2b3c4a5f60/members/d4c3b2a1-6e5f-4a7b-9c8d-1e2f3a4b5c6d/timeout"پاسخ با یک Until پاسخ میدهد.
مثال {
"until": 1758624600000
}وضعیتهای ممکن: 200400401403404429
GET /v2/communities/{id}/bansمسدودیتهای جاری یک گروه.
اختیار groups با ETag از v2.16 پارامترها نام نوع معنا idدر مسیر stringاجباری id یک گروه.
درخواست نمونه curl \
-H "Authorization: Bearer tm_key_…" \
"https://api.tellmelo.com/v2/communities/c81d4e2a-0f3b-4a6c-9e57-1d2b3c4a5f60/bans"پاسخ با یک صفحه از Ban پاسخ میدهد، بهصورت `items` و `next`.
مثال {
"items": [
{
"member": {
"id": "d4c3b2a1-6e5f-4a7b-9c8d-1e2f3a4b5c6d",
"handle": "jon",
"name": "Jon",
"bot": false
},
"until": 1759228800000,
"createdAt": 1758624000000,
"by": "Mara 🌻"
}
],
"next": null
}وضعیتهای ممکن: 200304400401403404429
PUT /v2/communities/{id}/bans/{member}مسدود کردن یک عضو.
بدون days مسدودیت تا برداشته شدن ادامه دارد.
فقط با اختیار مربوط و فقط برای اعضای پایینتر از بالاترین نقش شما؛ همرهبران فقط توسط بنیانگذار.
مانند برنامه در گزارش گروه ثبت میشود و حداکثر ۶۰ بار در ساعت.
پارامترها نام نوع معنا idدر مسیر stringاجباری id یک گروه.memberدر مسیر stringاجباری id حساب یک عضو.daysدر بدنه integerاختیاری مدت، به روز؛ برای مسدودیت بیپایان آن را خالی بگذارید.1730 reasonدر بدنه stringاجباری دلیلی که عضو میخواند.
درخواست نمونه curl -X PUT \
-H "Authorization: Bearer tm_key_…" \
-H "Content-Type: application/json" \
-d '{"days":7,"reason":"Advertising for another site, despite rule 2."}' \
"https://api.tellmelo.com/v2/communities/c81d4e2a-0f3b-4a6c-9e57-1d2b3c4a5f60/bans/d4c3b2a1-6e5f-4a7b-9c8d-1e2f3a4b5c6d"پاسخ با یک Until پاسخ میدهد.
مثال {
"until": 1758624600000
}وضعیتهای ممکن: 200400401403404429
DELETE /v2/communities/{id}/bans/{member}برداشتن مسدودیت.
پارامترها نام نوع معنا idدر مسیر stringاجباری id یک گروه.memberدر مسیر stringاجباری id حساب یک عضو.
درخواست نمونه curl -X DELETE \
-H "Authorization: Bearer tm_key_…" \
"https://api.tellmelo.com/v2/communities/c81d4e2a-0f3b-4a6c-9e57-1d2b3c4a5f60/bans/d4c3b2a1-6e5f-4a7b-9c8d-1e2f3a4b5c6d"پاسخ با یک Ok پاسخ میدهد.
مثال {
"ok": true
}وضعیتهای ممکن: 200400401403404429
GET /v2/communities/{id}/logگزارش رهبری: چه کسی چه چیزی را چرا برداشت.
اختیار groups با ETag از v2.15 پارامترها نام نوع معنا idدر مسیر stringاجباری id یک گروه.
درخواست نمونه curl \
-H "Authorization: Bearer tm_key_…" \
"https://api.tellmelo.com/v2/communities/c81d4e2a-0f3b-4a6c-9e57-1d2b3c4a5f60/log"پاسخ با یک صفحه از LogEntry پاسخ میدهد، بهصورت `items` و `next`.
مثال {
"items": [
{
"id": "8f7e6d5c-4b3a-4291-8f7e-6d5c4b3a2918",
"action": "message_removed",
"member": {
"id": "d4c3b2a1-6e5f-4a7b-9c8d-1e2f3a4b5c6d",
"handle": "jon",
"name": "Jon",
"bot": false
},
"reason": "",
"by": "Mara 🌻",
"createdAt": 1758710400000
}
],
"next": null
}وضعیتهای ممکن: 200304400401403404429
POST /v2/communitiesیک گروه بسازید. id آن را برمیگرداند؛ شما بنیانگذار آن هستید.
به اجازهٔ groups نیاز دارد. بدون تعیین، گروه internal است و پیوستن آزاد؛ گروه پنهان فقط با دعوت. اینکه اعضا بتوانند گروه بسازند را گرداننده تعیین میکند.
پارامترها نام نوع معنا nameدر بدنه stringاجباری نام، حداکثر ۶۰ نویسه. descriptionدر بدنه stringاختیاری توضیح، حداکثر ۲۴۰ نویسه. handleدر بدنه stringاختیاری نام کوتاه برای اشارههای @# و پیوند: ۳ تا ۳۰ حرف کوچک، رقم یا _. tagsدر بدنه string[]اختیاری حداکثر ۵ #برچسب دربارهٔ موضوع گروه. joinPolicyدر بدنه stringاختیاری نحوهٔ پیوستن: open آزاد، application با درخواست، invite فقط با دعوت.openapplicationinvite visibilityدر بدنه stringاختیاری چه کسی گروه را میبیند: open همه، internal محتوا فقط برای اعضا، hidden کلاً فقط اعضا.openinternalhidden
درخواست نمونه curl -X POST \
-H "Authorization: Bearer tm_key_…" \
-H "Content-Type: application/json" \
-d '{"name":"Seed swap","handle":"seedswap","tags":["garden","seeds"],"joinPolicy":"open","visibility":"open"}' \
"https://api.tellmelo.com/v2/communities"پاسخ با یک Made پاسخ میدهد.
مثال {
"id": "0d9c8b7a-6f5e-4d3c-2b1a-0f9e8d7c6b5a"
}وضعیتهای ممکن: 200400401403429
PUT /v2/communities/{id}گروهی را که رهبری میکنید تغییر دهید. هرچه را نگویید، همان میماند.
به اجازهٔ groups و رهبری گروه نیاز دارد. رهبری، انحلال و مزیتهای جرقه در برنامه میمانند.
پارامترها نام نوع معنا idدر مسیر stringاجباری id یک گروه.nameدر بدنه stringاختیاری نام، حداکثر ۶۰ نویسه. descriptionدر بدنه stringاختیاری توضیح، حداکثر ۲۴۰ نویسه. handleدر بدنه stringاختیاری نام کوتاه برای اشارههای @# و پیوند: ۳ تا ۳۰ حرف کوچک، رقم یا _. tagsدر بدنه string[]اختیاری حداکثر ۵ #برچسب دربارهٔ موضوع گروه. joinPolicyدر بدنه stringاختیاری نحوهٔ پیوستن: open آزاد، application با درخواست، invite فقط با دعوت.openapplicationinvite visibilityدر بدنه stringاختیاری چه کسی گروه را میبیند: open همه، internal محتوا فقط برای اعضا، hidden کلاً فقط اعضا.openinternalhidden imageدر بدنه stringاختیاری id تصویر بارگذاریشده (POST /me/pictures) برای تصویر گروه. خالی آن را برمیدارد.bannerدر بدنه stringاختیاری id تصویر بارگذاریشده برای سرصفحهٔ گروه. خالی آن را برمیدارد.
درخواست نمونه curl -X PUT \
-H "Authorization: Bearer tm_key_…" \
-H "Content-Type: application/json" \
-d '{"name":"Seed swap","handle":"seedswap","tags":["garden","seeds"],"joinPolicy":"open","visibility":"open"}' \
"https://api.tellmelo.com/v2/communities/c81d4e2a-0f3b-4a6c-9e57-1d2b3c4a5f60"پاسخ با یک Ok پاسخ میدهد.
مثال {
"ok": true
}وضعیتهای ممکن: 200400401403404429
رباتها آنچه در گروههای یک ربات رخ میدهد، در لحظه: بهصورت جریان، صفحه به صفحه یا تحویل به یک نشانی.
GET /v2/eventsرویدادهای گروههای ربات از یک رویداد به بعد، صفحه به صفحه.
فقط با توکن یک ربات. رویدادهای یک کانال فقط اگر ربات اجازه دیدنش را داشته باشد.
رویدادها یک روز نگه داشته میشوند. next شماره آخرین است، بهعنوان since برای صفحه بعد.
پارامترها نام نوع معنا sinceدر پرسوجو stringاختیاری شماره آخرین رویدادی که ربات از قبل دارد. بدون آن، جریان از اکنون و فهرست از قدیمیترین آغاز میشود.
درخواست نمونه curl \
-H "Authorization: Bearer tm_key_…" \
"https://api.tellmelo.com/v2/events?since=0"پاسخ با یک صفحه از BotEvent پاسخ میدهد، بهصورت `items` و `next`.
مثال {
"items": [
{
"id": "4711",
"type": "message.created",
"community": "c81d4e2a-0f3b-4a6c-9e57-1d2b3c4a5f60",
"channel": "0d9c8b7a-6f5e-4d3c-2b1a-0f9e8d7c6b5a",
"createdAt": 1758634800000,
"data": {
"message": {
"id": "61a2b3c4-d5e6-4f70-8192-a3b4c5d6e7f8",
"text": "/dice 6",
"author": {
"id": "a3e1f7c2-54b9-4d0e-8f16-7b2c9d4e1a05",
"handle": "mara",
"name": "Mara 🌻",
"bot": false
},
"media": 0,
"replyTo": null,
"threadOf": null,
"createdAt": 1758634800000
}
}
}
],
"next": null
}وضعیتهای ممکن: 200401429
GET /v2/events/streamرویدادهای گروههای ربات به محض وقوع (server-sent events).
اختیار read با ETag از v2.20 اتصال باز میماند و پس از ده دقیقه بسته میشود؛ کلاینت دوباره وصل میشود و Last-Event-ID را میفرستد.
فقط با توکن یک ربات. رویدادهای یک کانال فقط اگر ربات اجازه دیدنش را داشته باشد.
پارامترها نام نوع معنا sinceدر پرسوجو stringاختیاری شماره آخرین رویدادی که ربات از قبل دارد. بدون آن، جریان از اکنون و فهرست از قدیمیترین آغاز میشود.
درخواست نمونه curl \
-H "Authorization: Bearer tm_key_…" \
"https://api.tellmelo.com/v2/events/stream?since=0"پاسخ با یک BotEvent پاسخ میدهد.
مثال {
"id": "4711",
"type": "message.created",
"community": "c81d4e2a-0f3b-4a6c-9e57-1d2b3c4a5f60",
"channel": "0d9c8b7a-6f5e-4d3c-2b1a-0f9e8d7c6b5a",
"createdAt": 1758634800000,
"data": {
"message": {
"id": "61a2b3c4-d5e6-4f70-8192-a3b4c5d6e7f8",
"text": "/dice 6",
"author": {
"id": "a3e1f7c2-54b9-4d0e-8f16-7b2c9d4e1a05",
"handle": "mara",
"name": "Mara 🌻",
"bot": false
},
"media": 0,
"replyTo": null,
"threadOf": null,
"createdAt": 1758634800000
}
}
}وضعیتهای ممکن: 200304401429
GET /v2/me/commandsفرمانهای ربات.
اختیار read با ETag از v2.20 فقط با توکن یک ربات. رویدادهای یک کانال فقط اگر ربات اجازه دیدنش را داشته باشد.
درخواست نمونه curl \
-H "Authorization: Bearer tm_key_…" \
"https://api.tellmelo.com/v2/me/commands"پاسخ با یک صفحه از BotCommand پاسخ میدهد، بهصورت `items` و `next`.
مثال {
"items": [
{
"name": "dice",
"description": "Rolls a die"
}
],
"next": null
}وضعیتهای ممکن: 200304401429
PUT /v2/me/commandsتعیین همه فرمانهای ربات با هم.
جایگزین همه فرمانها میشود؛ فهرست خالی آنها را حذف میکند. در گفتگوهایی که ربات اجازه دیدنشان را دارد، فیلد ورودی آنها را پس از «/» پیشنهاد میدهد.
پارامترها نام نوع معنا commandsدر بدنه object[]اجباری حداکثر ۲۵ فرمان، هر کدام { name, description }.
درخواست نمونه curl -X PUT \
-H "Authorization: Bearer tm_key_…" \
-H "Content-Type: application/json" \
-d '{"commands":[{"name":"dice","description":"Rolls a die"}]}' \
"https://api.tellmelo.com/v2/me/commands"پاسخ با یک صفحه از BotCommand پاسخ میدهد، بهصورت `items` و `next`.
مثال {
"items": [
{
"name": "dice",
"description": "Rolls a die"
}
],
"next": null
}وضعیتهای ممکن: 200400401403429
POST /v2/interactions/{id}/replyپاسخ به یک فرمان یا دکمه.
تا ۱۵ دقیقه پس از رویداد command یا interaction؛ با private فقط کسی که فرمان یا دکمه را به کار برده پاسخ را میبیند.
پارامترها نام نوع معنا idدر مسیر stringاجباری شناسه از رویداد (data.interaction). textدر بدنه stringاختیاری متن پست، پاسخ یا پیام. privateدر بدنه booleanاختیاری true: فقط کسی که فرمان یا دکمه را به کار برده پاسخ را یک روز میبیند.cardدر بدنه objectاختیاری یک کارت { title, text, color, fields: [{ name, value }] }، حداکثر ۱۰ فیلد. buttonsدر بدنه object[]اختیاری حداکثر ۵ دکمه، هر کدام { id, label, style } با style برابر primary، secondary یا danger. فشردن بهصورت رویداد interaction میرسد.
درخواست نمونه curl -X POST \
-H "Authorization: Bearer tm_key_…" \
-H "Content-Type: application/json" \
-d '{"text":"You rolled a 4.","private":true}' \
"https://api.tellmelo.com/v2/interactions/9b8c7d6e-5f4a-4b3c-8d2e-1f0a9b8c7d6e/reply"پاسخ با یک Made پاسخ میدهد.
مثال {
"id": "0d9c8b7a-6f5e-4d3c-2b1a-0f9e8d7c6b5a"
}وضعیتهای ممکن: 200400401403404429
POST /v2/channels/{id}/voiceگرفتن جایی در کانال صوتی برای پخش موسیقی یا صدا.
فقط با توکن یک ربات، به اندازهای که نقش ربات در کانال اجازه میدهد. برنامه با یک SDK از LiveKit وصل میشود و صدایش را بهعنوان میکروفون میفرستد؛ هر کس بلندی صدای آن را خودش تنظیم میکند.
پارامترها نام نوع معنا idدر مسیر stringاجباری id یک کانال.
درخواست نمونه curl -X POST \
-H "Authorization: Bearer tm_key_…" \
"https://api.tellmelo.com/v2/channels/0d9c8b7a-6f5e-4d3c-2b1a-0f9e8d7c6b5a/voice"پاسخ با یک VoiceSeat پاسخ میدهد.
مثال {
"url": "wss://voice.example.org",
"token": "eyJhbGciOiJIUzI1NiJ9…",
"iceServers": [
{
"urls": [
"stun:turn.example.org:3478"
]
}
],
"speak": true,
"video": false
}وضعیتهای ممکن: 200400401403404429
کاوش روندها، جستوجو و ایموجیهای اختصاصی سرور.
GET /v2/tagsبرچسبهایی که اکنون در جریاناند.
اختیار read با ETag از v2.0 حداکثر ۱۰ برچسب روز بر اساس امتیاز: هر استفاده ۱ حساب میشود و هر ۳ روز نصف میشود، هر حساب در روز حداکثر ۳ حساب میشود. posts امتیاز گردشده است. limit فقط فهرست را کوتاه میکند. برچسبهایی که تیم برجسته میکند ممکن است بالاتر بایستند.
پارامترها نام نوع معنا limitدر پرسوجو integerاختیاری شمار ورودی در هر صفحه: پیشفرض ۲۰، حداکثر ۵۰.
درخواست نمونه curl \
-H "Authorization: Bearer tm_key_…" \
"https://api.tellmelo.com/v2/tags?limit=10"پاسخ با یک صفحه از Tag پاسخ میدهد، بهصورت `items` و `next`.
مثال {
"items": [
{
"tag": "garden",
"posts": 58
}
],
"next": null
}وضعیتهای ممکن: 200304401429
GET /v2/searchجستوجو در پستها، نامها، نامهای کوتاه و برچسبها.
اختیار read با ETag از v2.0 فقط محتوای عمومی را جستوجو میکند: پستهای بیرون از گروهها، پروفایلها و برچسبها. limit برای هر نوع اعمال میشود.
پارامترها نام نوع معنا qدر پرسوجو stringاجباری واژههایی که دنبالشان هستید. typeدر پرسوجو stringاختیاری کدام نوع نتیجه. بدون آن، همهٔ انواع.allpostsprofilestags limitدر پرسوجو integerاختیاری شمار ورودی در هر صفحه: پیشفرض ۲۰، حداکثر ۵۰.
درخواست نمونه curl \
-H "Authorization: Bearer tm_key_…" \
"https://api.tellmelo.com/v2/search?q=garden&type=posts"پاسخ با یک SearchResult پاسخ میدهد.
مثال {
"posts": [
{
"id": "5f0c2a9e-8d41-4b7a-9c3e-2e61d0f4a7b1",
"text": "The bees are back in the garden 🐝 #garden",
"kind": "poll",
"author": {
"id": "a3e1f7c2-54b9-4d0e-8f16-7b2c9d4e1a05",
"handle": "mara",
"name": "Mara 🌻",
"verified": true,
"accountKind": "person"
},
"community": {
"id": "c81d4e2a-0f3b-4a6c-9e57-1d2b3c4a5f60",
"name": "Urban Gardening"
},
"media": [
{
"url": "/api/media?id=b2d7e9f1-3c4a-4e8b-a1f0-6d5c4b3a2918",
"kind": "image",
"poster": null,
"ai": "without"
}
],
"poll": {
"options": [
{
"text": "Lavender",
"votes": 12
},
{
"text": "Sunflowers",
"votes": 7
},
{
"text": "Clover",
"votes": 3
}
],
"total": 22,
"multiple": false,
"endsAt": null,
"running": true,
"resultsVisible": true,
"myVotes": [
0
]
},
"quotes": null,
"continues": null,
"counts": {
"replies": 4,
"likes": 31,
"reposts": 2
},
"pinned": false,
"giftDrop": {
"item": "plan",
"quantity": 3,
"places": 10,
"left": 4,
"audience": "followers",
"newAccounts": false,
"status": "open",
"claimed": true
},
"createdAt": 1758624000000
}
],
"profiles": [
{
"id": "a3e1f7c2-54b9-4d0e-8f16-7b2c9d4e1a05",
"handle": "mara",
"name": "Mara 🌻",
"verified": true,
"accountKind": "person"
}
],
"tags": [
{
"tag": "garden",
"posts": 58
}
]
}وضعیتهای ممکن: 200304400401429
GET /v2/emojisایموجیهای اختصاصی سرور، با نشانی تصویرهایشان.
اختیار read با ETag از v2.1 در متنها ایموجی بهصورت :name: میآید. آن را با تصویر این فهرست جایگزین کنید؛ نامهای ناشناخته متن میمانند.
درخواست نمونه curl \
-H "Authorization: Bearer tm_key_…" \
"https://api.tellmelo.com/v2/emojis"پاسخ با یک صفحه از Emoji پاسخ میدهد، بهصورت `items` و `next`.
مثال {
"items": [
{
"name": "tellmelo",
"url": "/api/media?id=e1f2a3b4-c5d6-4e7f-8a9b-0c1d2e3f4a5b"
}
],
"next": null
}وضعیتهای ممکن: 200304401429
حساب شما نمایهٔ شما، فید شما، شکلکهای خودتان و وبهوکهای شما.
GET /v2/meپروفایل خودتان، با idای که مسیرهای دیگر انتظار دارند.
اختیار read با ETag از v2.0 درخواست نمونه curl \
-H "Authorization: Bearer tm_key_…" \
"https://api.tellmelo.com/v2/me"پاسخ با یک Profile پاسخ میدهد.
مثال {
"id": "a3e1f7c2-54b9-4d0e-8f16-7b2c9d4e1a05",
"handle": "mara",
"name": "Mara 🌻",
"verified": true,
"accountKind": "person",
"about": "Beekeeper, allotment, too many seeds. :tellmelo:",
"website": "https://mara-imkerei.example/",
"websiteVerified": true,
"followers": 148,
"createdAt": 1750848000000
}وضعیتهای ممکن: 200304401429
GET /v2/feedفید خودتان، همانطور که برنامه آن را میچیند.
اختیار read صفحهبندیپذیر از v2.0 بدون ETag، چون ترتیب مدام تغییر میکند. فهرستی که شروع کردهاید تا پایانش همان میماند.
پارامترها نام نوع معنا tabدر پرسوجو stringاختیاری کدام فید: for-you، following، latest یا bookmarks. پیشفرض latest.for-youfollowinglatestbookmarks tagدر پرسوجو stringاختیاری فقط پستهای این برچسب: نوشتهشده با آن یا تشخیصدادهشده در آنها توسط سرور. بدون آن، بدون پالایش. limitدر پرسوجو integerاختیاری شمار ورودی در هر صفحه: پیشفرض ۲۰، حداکثر ۵۰. cursorدر پرسوجو stringاختیاری مقدار next پاسخ قبلی. بدون آن، از آغاز.
درخواست نمونه curl \
-H "Authorization: Bearer tm_key_…" \
"https://api.tellmelo.com/v2/feed?tab=following&limit=20"پاسخ با یک صفحه از Post پاسخ میدهد، بهصورت `items` و `next`.
مثال {
"items": [
{
"id": "5f0c2a9e-8d41-4b7a-9c3e-2e61d0f4a7b1",
"text": "The bees are back in the garden 🐝 #garden",
"kind": "poll",
"author": {
"id": "a3e1f7c2-54b9-4d0e-8f16-7b2c9d4e1a05",
"handle": "mara",
"name": "Mara 🌻",
"verified": true,
"accountKind": "person"
},
"community": {
"id": "c81d4e2a-0f3b-4a6c-9e57-1d2b3c4a5f60",
"name": "Urban Gardening"
},
"media": [
{
"url": "/api/media?id=b2d7e9f1-3c4a-4e8b-a1f0-6d5c4b3a2918",
"kind": "image",
"poster": null,
"ai": "without"
}
],
"poll": {
"options": [
{
"text": "Lavender",
"votes": 12
},
{
"text": "Sunflowers",
"votes": 7
},
{
"text": "Clover",
"votes": 3
}
],
"total": 22,
"multiple": false,
"endsAt": null,
"running": true,
"resultsVisible": true,
"myVotes": [
0
]
},
"quotes": null,
"continues": null,
"counts": {
"replies": 4,
"likes": 31,
"reposts": 2
},
"pinned": false,
"giftDrop": {
"item": "plan",
"quantity": 3,
"places": 10,
"left": 4,
"audience": "followers",
"newAccounts": false,
"status": "open",
"claimed": true
},
"createdAt": 1758624000000
}
],
"next": "MTc1ODYyNDAwMDAwMDo1ZjBjMmE5ZS04ZDQx"
}وضعیتهای ممکن: 200400401429
POST /v2/me/picturesیک تصویر را بهصورت بایت بارگذاری کنید. id و url را برمیگرداند؛ سپس id را برای تصویر نمایه، سرصفحه یا در پست به کار میبرید.
PNG، JPEG، WebP یا GIF، از روی نخستین بایتها شناخته میشود؛ بدون فراداده دوباره ذخیره میشود. تصویری که هیچجا به کار نرود بعداً حذف میشود.
درخواست نمونه curl -X POST \
-H "Authorization: Bearer tm_key_…" \
-H "Content-Type: application/octet-stream" \
--data-binary @picture.png \
"https://api.tellmelo.com/v2/me/pictures"پاسخ با یک Picture پاسخ میدهد.
مثال {
"id": "8c7b6a59-4837-4261-9f5e-d4c3b2a1f0e9",
"url": "/api/media?id=8c7b6a59-4837-4261-9f5e-d4c3b2a1f0e9"
}وضعیتهای ممکن: 200401403429
PUT /v2/me/profileنمایهٔ خود را تغییر دهید: نام، دربارهٔ شما، تصویر نمایه، سرصفحه و رنگ نمایه. هرچه را نگویید، همان میماند.
به اجازهٔ profile نیاز دارد. @نام شما در برنامه میماند: نام ورود شما هم هست.
پارامترها نام نوع معنا nameدر بدنه stringاختیاری نام نمایشی، حداکثر ۶۰ نویسه. aboutدر بدنه stringاختیاری متن «دربارهٔ شما». avatarدر بدنه stringاختیاری id تصویر بارگذاریشده برای تصویر نمایه. خالی آن را برمیدارد.bannerدر بدنه stringاختیاری id تصویر بارگذاریشده برای سرصفحه. خالی آن را برمیدارد.colorدر بدنه stringاختیاری رنگ نمایه، با اشتراک. null آن را برمیدارد.indigovioletrosecoralamberlimegreentealskyslatesandnight
درخواست نمونه curl -X PUT \
-H "Authorization: Bearer tm_key_…" \
-H "Content-Type: application/json" \
-d '{"name":"Mara 🌻","about":"Gardening in the city.","avatar":"8c7b6a59-4837-4261-9f5e-d4c3b2a1f0e9"}' \
"https://api.tellmelo.com/v2/me/profile"پاسخ با یک Ok پاسخ میدهد.
مثال {
"ok": true
}وضعیتهای ممکن: 200400401403429
GET /v2/me/emojisشکلکهای خودتان.
اختیار read با ETag از v2.19 درخواست نمونه curl \
-H "Authorization: Bearer tm_key_…" \
"https://api.tellmelo.com/v2/me/emojis"پاسخ با یک صفحه از OwnEmoji پاسخ میدهد، بهصورت `items` و `next`.
مثال {
"items": [
{
"name": "sunflower",
"url": "/api/media?id=8c7b6a59-4837-4261-9f5e-d4c3b2a1f0e9",
"animated": false,
"resting": false
}
],
"next": null
}وضعیتهای ممکن: 200304401429
POST /v2/me/emojis/picturesتصویر یک شکلک خودتان را بهصورت بایت بارگذاری کنید.
شکلکهای متحرک به اشتراک نیاز دارند. اگر پس از تبدیل بیش از حد بزرگ باشد، تصویر رد میشود.
درخواست نمونه curl -X POST \
-H "Authorization: Bearer tm_key_…" \
-H "Content-Type: application/octet-stream" \
--data-binary @picture.png \
"https://api.tellmelo.com/v2/me/emojis/pictures"پاسخ با یک EmojiPicture پاسخ میدهد.
مثال {
"id": "8c7b6a59-4837-4261-9f5e-d4c3b2a1f0e9",
"url": "/api/media?id=8c7b6a59-4837-4261-9f5e-d4c3b2a1f0e9",
"animated": false
}وضعیتهای ممکن: 200401403429
POST /v2/me/emojisیک شکلک خودتان بسازید. همهٔ شکلکهایتان را برمیگرداند.
تعداد شکلکهایی که میتوانید بسازید به اشتراک بستگی دارد.
پارامترها نام نوع معنا nameدر بدنه stringاجباری نامی که شکلک را با آن مینویسید، به شکل :نام:. pictureدر بدنه stringاجباری id از POST /me/emojis/pictures.
درخواست نمونه curl -X POST \
-H "Authorization: Bearer tm_key_…" \
-H "Content-Type: application/json" \
-d '{"name":"sunflower","picture":"8c7b6a59-4837-4261-9f5e-d4c3b2a1f0e9"}' \
"https://api.tellmelo.com/v2/me/emojis"پاسخ با یک صفحه از OwnEmoji پاسخ میدهد، بهصورت `items` و `next`.
مثال {
"items": [
{
"name": "sunflower",
"url": "/api/media?id=8c7b6a59-4837-4261-9f5e-d4c3b2a1f0e9",
"animated": false,
"resting": false
}
],
"next": null
}وضعیتهای ممکن: 200400401403429
DELETE /v2/me/emojis/{name}یک شکلک خودتان را بردارید. بقیه را برمیگرداند.
پارامترها نام نوع معنا nameدر مسیر stringاجباری نام شکلک، بدون دونقطه.
درخواست نمونه curl -X DELETE \
-H "Authorization: Bearer tm_key_…" \
"https://api.tellmelo.com/v2/me/emojis/sunflower"پاسخ با یک صفحه از OwnEmoji پاسخ میدهد، بهصورت `items` و `next`.
مثال {
"items": [
{
"name": "sunflower",
"url": "/api/media?id=8c7b6a59-4837-4261-9f5e-d4c3b2a1f0e9",
"animated": false,
"resting": false
}
],
"next": null
}وضعیتهای ممکن: 200400401403404429
PUT /v2/me/emojis/sharingتعیین کنید آیا دنبالکنندگانتان میتوانند شکلکهایتان را در متنهای خود به کار ببرند.
پارامترها نام نوع معنا sharedدر بدنه booleanاجباری true شکلکهایتان را با دنبالکنندگان به اشتراک میگذارد، false نه.
درخواست نمونه curl -X PUT \
-H "Authorization: Bearer tm_key_…" \
-H "Content-Type: application/json" \
-d '{"shared":true}' \
"https://api.tellmelo.com/v2/me/emojis/sharing"پاسخ با یک Ok پاسخ میدهد.
مثال {
"ok": true
}وضعیتهای ممکن: 200400401403429
GET /v2/me/webhooksوبهوکهای شما و وضعیتشان.
اختیار webhooks با ETag از v2.19 به اجازهٔ webhooks نیاز دارد. وبهوکها با اشتراک سازمانی یا برای همکاران ارائه میشوند.
درخواست نمونه curl \
-H "Authorization: Bearer tm_key_…" \
"https://api.tellmelo.com/v2/me/webhooks"پاسخ با یک صفحه از Webhook پاسخ میدهد، بهصورت `items` و `next`.
مثال {
"items": [
{
"id": "1f2e3d4c-5b6a-4798-8a7b-6c5d4e3f2a1b",
"url": "https://example.org/tellmelo-hook",
"kinds": [
"reply",
"mention"
],
"active": true,
"lastStatus": 200,
"lastAt": 1758624000000,
"failures": 0
}
],
"next": null
}وضعیتهای ممکن: 200304401403429
POST /v2/me/webhooksیک وبهوک بسازید. id و راز امضاها را فقط همین یک بار برمیگرداند.
هر ارسال با راز امضا میشود (X-Tellmelo-Signature). آن را نگه دارید؛ دوباره نشان داده نمیشود.
پارامترها نام نوع معنا urlدر بدنه stringاجباری یک نشانی HTTPS بیرون از شبکههای محلی، بدون اطلاعات ورود. kindsدر بدنه string[]اجباری وبهوک از چه چیزهایی باخبر میشود. انواع در دسترس به اشتراک و همکاری شما بستگی دارد.replymentiongroup_mentionfollowlikerepostmessagequota_changedquota_giftdrop_claimeddrop_empty
درخواست نمونه curl -X POST \
-H "Authorization: Bearer tm_key_…" \
-H "Content-Type: application/json" \
-d '{"url":"https://example.org/tellmelo-hook","kinds":["reply","mention"]}' \
"https://api.tellmelo.com/v2/me/webhooks"پاسخ با یک WebhookCreated پاسخ میدهد.
مثال {
"id": "1f2e3d4c-5b6a-4798-8a7b-6c5d4e3f2a1b",
"secret": "whsec_3f9a…"
}وضعیتهای ممکن: 200400401403429
DELETE /v2/me/webhooks/{id}یک وبهوک را حذف کنید.
پارامترها نام نوع معنا idدر مسیر stringاجباری id وبهوک.
درخواست نمونه curl -X DELETE \
-H "Authorization: Bearer tm_key_…" \
"https://api.tellmelo.com/v2/me/webhooks/1f2e3d4c-5b6a-4798-8a7b-6c5d4e3f2a1b"پاسخ با یک Ok پاسخ میدهد.
مثال {
"ok": true
}وضعیتهای ممکن: 200400401403404429
POST /v2/me/webhooks/{id}/testیک آزمایش به وبهوک بفرستید.
پارامترها نام نوع معنا idدر مسیر stringاجباری id وبهوک.
درخواست نمونه curl -X POST \
-H "Authorization: Bearer tm_key_…" \
"https://api.tellmelo.com/v2/me/webhooks/1f2e3d4c-5b6a-4798-8a7b-6c5d4e3f2a1b/test"پاسخ با یک Ok پاسخ میدهد.
مثال {
"ok": true
}وضعیتهای ممکن: 200400401403404429
اعلانها آنچه پیرامون حساب شما اتفاق افتاد، صفحه به صفحه.
GET /v2/notificationsاعلانهای شما، تازهترین اول.
اختیار read صفحهبندیپذیر با ETag از v2.0 خواندن چیزی را خواندهشده علامت نمیزند؛ POST /notifications/read این کار را میکند. رویدادهای همنوع روی یک پست یک ردیف مشترک دارند؛ more میگوید چند تا.
پارامترها نام نوع معنا limitدر پرسوجو integerاختیاری شمار ورودی در هر صفحه: پیشفرض ۲۰، حداکثر ۵۰. cursorدر پرسوجو stringاختیاری مقدار next پاسخ قبلی. بدون آن، از آغاز.
درخواست نمونه curl \
-H "Authorization: Bearer tm_key_…" \
"https://api.tellmelo.com/v2/notifications?limit=20"پاسخ با یک صفحه از Notification پاسخ میدهد، بهصورت `items` و `next`.
مثال {
"items": [
{
"id": "3f2e1d0c-9b8a-4765-8432-10fedcba9876",
"kind": "like",
"text": null,
"actor": {
"handle": "jon",
"name": "Jon"
},
"postId": "5f0c2a9e-8d41-4b7a-9c3e-2e61d0f4a7b1",
"read": false,
"more": 2,
"createdAt": 1758624300000,
"updatedAt": 1758624900000
}
],
"next": "MTc1ODYyNDAwMDAwMDo1ZjBjMmE5ZS04ZDQx"
}وضعیتهای ممکن: 200304401429
POST /v2/notifications/readعلامتگذاری اعلانها بهعنوان خواندهشده.
درخواست نمونه curl -X POST \
-H "Authorization: Bearer tm_key_…" \
"https://api.tellmelo.com/v2/notifications/read"پاسخ با یک Ok پاسخ میدهد.
مثال {
"ok": true
}وضعیتهای ممکن: 200401403429
پیامها صندوق و گفتوگوهای شما. هر گفتوگو به نام حساب طرف مقابل است.
GET /v2/conversationsصندوق شما: یک ردیف برای هر گفتوگو، تازهترین اول.
اختیار read صفحهبندیپذیر با ETag از v2.0 پارامترها نام نوع معنا limitدر پرسوجو integerاختیاری شمار ورودی در هر صفحه: پیشفرض ۲۰، حداکثر ۵۰. cursorدر پرسوجو stringاختیاری مقدار next پاسخ قبلی. بدون آن، از آغاز.
درخواست نمونه curl \
-H "Authorization: Bearer tm_key_…" \
"https://api.tellmelo.com/v2/conversations?limit=20"پاسخ با یک صفحه از Conversation پاسخ میدهد، بهصورت `items` و `next`.
مثال {
"items": [
{
"with": "d4c3b2a1-6e5f-4a7b-9c8d-1e2f3a4b5c6d",
"handle": "jon",
"name": "Jon",
"excerpt": "See you on Saturday at the market!",
"truncated": false,
"fromMe": true,
"lastMessageId": "7c6b5a49-3827-4165-9f0e-d1c2b3a49586",
"unread": 0,
"updatedAt": 1758624060000
}
],
"next": "MTc1ODYyNDAwMDAwMDo1ZjBjMmE5ZS04ZDQx"
}وضعیتهای ممکن: 200304401429
GET /v2/conversations/{with}/messagesپیامهای یک گفتوگو، تازهترین اول.
اختیار read صفحهبندیپذیر با ETag از v2.0 خواندن چیزی را خواندهشده علامت نمیزند؛ POST /conversations/{with}/read این کار را میکند.
پارامترها نام نوع معنا withدر مسیر stringاجباری id حساب طرف مقابل. گفتوگو id جداگانه ندارد.limitدر پرسوجو integerاختیاری شمار ورودی در هر صفحه: پیشفرض ۲۰، حداکثر ۵۰. cursorدر پرسوجو stringاختیاری مقدار next پاسخ قبلی. بدون آن، از آغاز.
درخواست نمونه curl \
-H "Authorization: Bearer tm_key_…" \
"https://api.tellmelo.com/v2/conversations/a3e1f7c2-54b9-4d0e-8f16-7b2c9d4e1a05/messages?limit=20"پاسخ با یک صفحه از Message پاسخ میدهد، بهصورت `items` و `next`.
مثال {
"items": [
{
"id": "7c6b5a49-3827-4165-9f0e-d1c2b3a49586",
"text": "See you on Saturday at the market!",
"from": "a3e1f7c2-54b9-4d0e-8f16-7b2c9d4e1a05",
"to": "d4c3b2a1-6e5f-4a7b-9c8d-1e2f3a4b5c6d",
"read": true,
"media": [],
"replyTo": null,
"createdAt": 1758624060000
}
],
"next": "MTc1ODYyNDAwMDAwMDo1ZjBjMmE5ZS04ZDQx"
}وضعیتهای ممکن: 200304400401404429
POST /v2/conversations/{with}/messagesارسال پیام در یک گفتوگو.
قوانین برنامه برقرار است: به کسی که شما را مسدود کرده نمیتوان رسید، و تنظیمات طرف مقابل حساب میشود.
تصویر، GIF و ویدیو را نمیتوان از طریق API به پیامها پیوست کرد، فقط در برنامه.
پارامترها نام نوع معنا withدر مسیر stringاجباری id حساب طرف مقابل. گفتوگو id جداگانه ندارد.textدر بدنه stringاجباری متن پست، پاسخ یا پیام. replyToدر بدنه stringاختیاری id پیامی پیشین در همین گفتوگو که این پیام به آن پاسخ میدهد. از نسخهٔ ۲٫۲.
درخواست نمونه curl -X POST \
-H "Authorization: Bearer tm_key_…" \
-H "Content-Type: application/json" \
-d '{"text":"See you on Saturday at the market!"}' \
"https://api.tellmelo.com/v2/conversations/a3e1f7c2-54b9-4d0e-8f16-7b2c9d4e1a05/messages"پاسخ با یک Ok پاسخ میدهد.
مثال {
"ok": true
}وضعیتهای ممکن: 200400401403404429
POST /v2/conversations/{with}/readعلامت زدن همهٔ پیامهای یک گفتوگو بهعنوان خواندهشده.
پارامترها نام نوع معنا withدر مسیر stringاجباری id حساب طرف مقابل. گفتوگو id جداگانه ندارد.
درخواست نمونه curl -X POST \
-H "Authorization: Bearer tm_key_…" \
"https://api.tellmelo.com/v2/conversations/a3e1f7c2-54b9-4d0e-8f16-7b2c9d4e1a05/read"پاسخ با یک Ok پاسخ میدهد.
مثال {
"ok": true
}وضعیتهای ممکن: 200400401403404429
DELETE /v2/conversations/{with}/messages/{id}حذف یکی از پیامهایتان.
فقط پیامهای خودتان، و فقط تا ۲۴ ساعت پس از فرستادن.
پارامترها نام نوع معنا withدر مسیر stringاجباری id حساب طرف مقابل. گفتوگو id جداگانه ندارد.idدر مسیر stringاجباری شناسهٔ پیام.
درخواست نمونه curl -X DELETE \
-H "Authorization: Bearer tm_key_…" \
"https://api.tellmelo.com/v2/conversations/a3e1f7c2-54b9-4d0e-8f16-7b2c9d4e1a05/messages/7c6b5a49-3827-4165-9f0e-d1c2b3a49586"پاسخ با یک Ok پاسخ میدهد.
مثال {
"ok": true
}وضعیتهای ممکن: 200400401403404429
POST /v2/conversations/{with}/plannedیک پیام را برای بعد زمانبندی کنید. id پیام زمانبندیشده را برمیگرداند.
به اشتراکی با پیامهای زمانبندیشده نیاز دارد، وگرنه 403. با رمزگذاری سرتاسری در هر دو طرف فقط در برنامه کار میکند.
پارامترها نام نوع معنا withدر مسیر stringاجباری id حساب طرف مقابل. گفتوگو id جداگانه ندارد.textدر بدنه stringاجباری متن پست، پاسخ یا پیام. sendAtدر بدنه integerاجباری زمان ارسال پیام، به میلیثانیه از ۱۹۷۰.
درخواست نمونه curl -X POST \
-H "Authorization: Bearer tm_key_…" \
-H "Content-Type: application/json" \
-d '{"text":"Happy birthday! 🎂","sendAt":1758700000000}' \
"https://api.tellmelo.com/v2/conversations/a3e1f7c2-54b9-4d0e-8f16-7b2c9d4e1a05/planned"پاسخ با یک Made پاسخ میدهد.
مثال {
"id": "0d9c8b7a-6f5e-4d3c-2b1a-0f9e8d7c6b5a"
}وضعیتهای ممکن: 200400401403404429
GET /v2/me/planned-messagesپیامهای شما که هنوز فرستاده میشوند، به ترتیب زمان.
اختیار read با ETag از v2.19 پارامترها نام نوع معنا withدر پرسوجو stringاختیاری فقط پیامها به این حساب (id آن).
درخواست نمونه curl \
-H "Authorization: Bearer tm_key_…" \
"https://api.tellmelo.com/v2/me/planned-messages"پاسخ با یک صفحه از PlannedMessage پاسخ میدهد، بهصورت `items` و `next`.
مثال {
"items": [
{
"id": "3b2a1c0d-9e8f-4a7b-b6c5-d4e3f2a1b0c9",
"to": "a3e1f7c2-54b9-4d0e-8f16-7b2c9d4e1a05",
"text": "Happy birthday! 🎂",
"sendAt": 1758710400000,
"state": "waiting"
}
],
"next": null
}وضعیتهای ممکن: 200304401429
POST /v2/me/planned-messages/{id}/sendیک پیام زمانبندیشدهٔ نگهداشتهشده یا ناموفق را اکنون بفرستید.
پارامترها نام نوع معنا idدر مسیر stringاجباری id پیام زمانبندیشده.
درخواست نمونه curl -X POST \
-H "Authorization: Bearer tm_key_…" \
"https://api.tellmelo.com/v2/me/planned-messages/3b2a1c0d-9e8f-4a7b-b6c5-d4e3f2a1b0c9/send"پاسخ با یک Ok پاسخ میدهد.
مثال {
"ok": true
}وضعیتهای ممکن: 200400401403404429
DELETE /v2/me/planned-messages/{id}یک پیام زمانبندیشده را پیش از ارسال حذف کنید.
پارامترها نام نوع معنا idدر مسیر stringاجباری id پیام زمانبندیشده.
درخواست نمونه curl -X DELETE \
-H "Authorization: Bearer tm_key_…" \
"https://api.tellmelo.com/v2/me/planned-messages/3b2a1c0d-9e8f-4a7b-b6c5-d4e3f2a1b0c9"پاسخ با یک Ok پاسخ میدهد.
مثال {
"ok": true
}وضعیتهای ممکن: 200400401403404429
رابطهها پسندیدن، ذخیره، بازنشر، دنبال کردن، پیوستن، مسدود کردن: یک مسیر، برقرار و برداشته با active. از ۲.۱۹ فهرستها هم: دنبالکنندگان، دنبالشدگان و مسدودها و بیصداهای خودتان.
POST /v2/relationsپسندیدن، ذخیره، بازنشر، دنبال کردن، پیوستن، مسدود کردن، بیصدا کردن، بسته به kind.
target برای like، save و repost یک پست است، برای join یک گروه، برای follow، block و mute یک حساب. active: false رابطه را برمیدارد.
پارامترها نام نوع معنا kindدر بدنه stringاجباری کدام رابطه: like، save، repost، follow، join، block یا mute (از ۲٫۲).likesaverepostfollowjoinblockmute targetدر بدنه stringاجباری id پست، پروفایل یا گروه، بسته به kind.activeدر بدنه booleanاختیاری true رابطه را برقرار میکند، false آن را برمیدارد.
درخواست نمونه curl -X POST \
-H "Authorization: Bearer tm_key_…" \
-H "Content-Type: application/json" \
-d '{"kind":"like","target":"5f0c2a9e-8d41-4b7a-9c3e-2e61d0f4a7b1","active":true}' \
"https://api.tellmelo.com/v2/relations"پاسخ با یک Ok پاسخ میدهد.
مثال {
"ok": true
}وضعیتهای ممکن: 200400401403429
GET /v2/profiles/{handle}/followersچه کسانی یک نمایه را دنبال میکنند، جدیدترینها اول.
اختیار read صفحهبندیپذیر با ETag از v2.19 پارامترها نام نوع معنا handleدر مسیر stringاجباری نام کوتاه یک پروفایل؛ بزرگ یا کوچک بودن حروف فرقی نمیکند. limitدر پرسوجو integerاختیاری شمار ورودی در هر صفحه: پیشفرض ۲۰، حداکثر ۵۰. cursorدر پرسوجو stringاختیاری مقدار next پاسخ قبلی. بدون آن، از آغاز.
درخواست نمونه curl \
-H "Authorization: Bearer tm_key_…" \
"https://api.tellmelo.com/v2/profiles/mara/followers?limit=20"پاسخ با یک صفحه از ProfileBrief پاسخ میدهد، بهصورت `items` و `next`.
مثال {
"items": [
{
"id": "a3e1f7c2-54b9-4d0e-8f16-7b2c9d4e1a05",
"handle": "mara",
"name": "Mara 🌻",
"verified": true,
"accountKind": "person"
}
],
"next": "MTc1ODYyNDAwMDAwMDo1ZjBjMmE5ZS04ZDQx"
}وضعیتهای ممکن: 200304400401404429
GET /v2/profiles/{handle}/followingیک نمایه چه کسانی را دنبال میکند، جدیدترینها اول.
اختیار read صفحهبندیپذیر با ETag از v2.19 پارامترها نام نوع معنا handleدر مسیر stringاجباری نام کوتاه یک پروفایل؛ بزرگ یا کوچک بودن حروف فرقی نمیکند. limitدر پرسوجو integerاختیاری شمار ورودی در هر صفحه: پیشفرض ۲۰، حداکثر ۵۰. cursorدر پرسوجو stringاختیاری مقدار next پاسخ قبلی. بدون آن، از آغاز.
درخواست نمونه curl \
-H "Authorization: Bearer tm_key_…" \
"https://api.tellmelo.com/v2/profiles/mara/following?limit=20"پاسخ با یک صفحه از ProfileBrief پاسخ میدهد، بهصورت `items` و `next`.
مثال {
"items": [
{
"id": "a3e1f7c2-54b9-4d0e-8f16-7b2c9d4e1a05",
"handle": "mara",
"name": "Mara 🌻",
"verified": true,
"accountKind": "person"
}
],
"next": "MTc1ODYyNDAwMDAwMDo1ZjBjMmE5ZS04ZDQx"
}وضعیتهای ممکن: 200304400401404429
GET /v2/me/relationsچه کسانی را مسدود، بیصدا یا فقط برای پیام مسدود کردهاید، جدیدترینها اول.
اختیار read صفحهبندیپذیر با ETag از v2.19 فقط فهرستهای خودتان. برقرار کردن و برداشتن با POST /relations.
پارامترها نام نوع معنا kindدر پرسوجو stringاجباری block مسدودشدهها، mute بیصداشدهها، dm_block مسدود فقط برای پیام.blockmutedm_blocklimitدر پرسوجو integerاختیاری شمار ورودی در هر صفحه: پیشفرض ۲۰، حداکثر ۵۰. cursorدر پرسوجو stringاختیاری مقدار next پاسخ قبلی. بدون آن، از آغاز.
درخواست نمونه curl \
-H "Authorization: Bearer tm_key_…" \
"https://api.tellmelo.com/v2/me/relations?kind=mute&limit=20"پاسخ با یک صفحه از ProfileBrief پاسخ میدهد، بهصورت `items` و `next`.
مثال {
"items": [
{
"id": "a3e1f7c2-54b9-4d0e-8f16-7b2c9d4e1a05",
"handle": "mara",
"name": "Mara 🌻",
"verified": true,
"accountKind": "person"
}
],
"next": "MTc1ODYyNDAwMDAwMDo1ZjBjMmE5ZS04ZDQx"
}وضعیتهای ممکن: 200304400401429
مجموعهها پستهای ذخیرهشده را در مجموعههای خودتان مرتب کنید. یک پست میتواند در چند مجموعه باشد؛ اگر از مجموعه بیرون برود، ذخیرهشده میماند.
GET /v2/me/collectionsمجموعههای شما با شمار پستهایشان.
اختیار read با ETag از v2.19 درخواست نمونه curl \
-H "Authorization: Bearer tm_key_…" \
"https://api.tellmelo.com/v2/me/collections"پاسخ با یک صفحه از Collection پاسخ میدهد، بهصورت `items` و `next`.
مثال {
"items": [
{
"id": "6d5c4b3a-2918-4e7f-a1b2-c3d4e5f60718",
"name": "Recipes",
"count": 12
}
],
"next": null
}وضعیتهای ممکن: 200304401429
POST /v2/me/collectionsیک مجموعه بسازید. id آن را برمیگرداند.
تعداد مجموعههایی که میتوانید بسازید به اشتراک بستگی دارد.
پارامترها نام نوع معنا nameدر بدنه stringاجباری نام، حداکثر ۴۰ نویسه. در هر حساب یکتا، بدون توجه به بزرگی و کوچکی حروف.
درخواست نمونه curl -X POST \
-H "Authorization: Bearer tm_key_…" \
-H "Content-Type: application/json" \
-d '{"name":"Recipes"}' \
"https://api.tellmelo.com/v2/me/collections"پاسخ با یک Made پاسخ میدهد.
مثال {
"id": "0d9c8b7a-6f5e-4d3c-2b1a-0f9e8d7c6b5a"
}وضعیتهای ممکن: 200400401403429
PUT /v2/me/collections/{id}نام یک مجموعه را تغییر دهید.
پارامترها نام نوع معنا idدر مسیر stringاجباری id مجموعه.nameدر بدنه stringاجباری نام، حداکثر ۴۰ نویسه. در هر حساب یکتا، بدون توجه به بزرگی و کوچکی حروف.
درخواست نمونه curl -X PUT \
-H "Authorization: Bearer tm_key_…" \
-H "Content-Type: application/json" \
-d '{"name":"Baking"}' \
"https://api.tellmelo.com/v2/me/collections/6d5c4b3a-2918-4e7f-a1b2-c3d4e5f60718"پاسخ با یک Ok پاسخ میدهد.
مثال {
"ok": true
}وضعیتهای ممکن: 200400401403404429
DELETE /v2/me/collections/{id}یک مجموعه را حذف کنید.
پستهای داخل آن ذخیرهشده میمانند.
پارامترها نام نوع معنا idدر مسیر stringاجباری id مجموعه.
درخواست نمونه curl -X DELETE \
-H "Authorization: Bearer tm_key_…" \
"https://api.tellmelo.com/v2/me/collections/6d5c4b3a-2918-4e7f-a1b2-c3d4e5f60718"پاسخ با یک Ok پاسخ میدهد.
مثال {
"ok": true
}وضعیتهای ممکن: 200400401403404429
GET /v2/me/collections/{id}/postsپستهای یک مجموعه، مانند زبانهٔ ذخیرهها.
اختیار read صفحهبندیپذیر از v2.19 پارامترها نام نوع معنا idدر مسیر stringاجباری id مجموعه.limitدر پرسوجو integerاختیاری شمار ورودی در هر صفحه: پیشفرض ۲۰، حداکثر ۵۰. cursorدر پرسوجو stringاختیاری مقدار next پاسخ قبلی. بدون آن، از آغاز.
درخواست نمونه curl \
-H "Authorization: Bearer tm_key_…" \
"https://api.tellmelo.com/v2/me/collections/6d5c4b3a-2918-4e7f-a1b2-c3d4e5f60718/posts?limit=20"پاسخ با یک صفحه از Post پاسخ میدهد، بهصورت `items` و `next`.
مثال {
"items": [
{
"id": "5f0c2a9e-8d41-4b7a-9c3e-2e61d0f4a7b1",
"text": "The bees are back in the garden 🐝 #garden",
"kind": "poll",
"author": {
"id": "a3e1f7c2-54b9-4d0e-8f16-7b2c9d4e1a05",
"handle": "mara",
"name": "Mara 🌻",
"verified": true,
"accountKind": "person"
},
"community": {
"id": "c81d4e2a-0f3b-4a6c-9e57-1d2b3c4a5f60",
"name": "Urban Gardening"
},
"media": [
{
"url": "/api/media?id=b2d7e9f1-3c4a-4e8b-a1f0-6d5c4b3a2918",
"kind": "image",
"poster": null,
"ai": "without"
}
],
"poll": {
"options": [
{
"text": "Lavender",
"votes": 12
},
{
"text": "Sunflowers",
"votes": 7
},
{
"text": "Clover",
"votes": 3
}
],
"total": 22,
"multiple": false,
"endsAt": null,
"running": true,
"resultsVisible": true,
"myVotes": [
0
]
},
"quotes": null,
"continues": null,
"counts": {
"replies": 4,
"likes": 31,
"reposts": 2
},
"pinned": false,
"giftDrop": {
"item": "plan",
"quantity": 3,
"places": 10,
"left": 4,
"audience": "followers",
"newAccounts": false,
"status": "open",
"claimed": true
},
"createdAt": 1758624000000
}
],
"next": "MTc1ODYyNDAwMDAwMDo1ZjBjMmE5ZS04ZDQx"
}وضعیتهای ممکن: 200400401404429
POST /v2/me/collections/{id}/postsیک پست را در مجموعه بگذارید یا بیرون بیاورید.
گذاشتن پست آن را ذخیره هم میکند. فقط پستهای قابلدیدن.
پارامترها نام نوع معنا idدر مسیر stringاجباری id مجموعه.postدر بدنه stringاجباری id پست.insideدر بدنه booleanاختیاری true پست را میگذارد (پیشفرض)، false بیرون میآورد.
درخواست نمونه curl -X POST \
-H "Authorization: Bearer tm_key_…" \
-H "Content-Type: application/json" \
-d '{"post":"5f0c2a9e-8d41-4b7a-9c3e-2e61d0f4a7b1","inside":true}' \
"https://api.tellmelo.com/v2/me/collections/6d5c4b3a-2918-4e7f-a1b2-c3d4e5f60718/posts"پاسخ با یک Ok پاسخ میدهد.
مثال {
"ok": true
}وضعیتهای ممکن: 200400401403404429
هدیهها خواندن سهمیهٔ شریک و هدیه دادن از آن، گذاشتن هدیه زیر پستها و پیگیری آنها. برداشتن هدیه فقط کار آدمها در برنامه است.
GET /v2/partner/quotaآنچه هنوز در سهمیهٔ شما برای هدیه دادن مانده است.
اختیار read با ETag از v2.12 فقط برای شریکانی که سهمیه دارند؛ بقیه 403 میگیرند.
درخواست نمونه curl \
-H "Authorization: Bearer tm_key_…" \
"https://api.tellmelo.com/v2/partner/quota"پاسخ با یک Quota پاسخ میدهد.
مثال {
"months": 120,
"sparks": 500,
"looks": [
{
"id": "frame-gold",
"name": "Goldring",
"kind": "frame",
"quantity": 25
}
]
}وضعیتهای ممکن: 200304401429
GET /v2/partner/giftsآنچه از سهمیه هدیه دادهاید، به چه کسی و چه زمانی – تازهترین اول.
اختیار read صفحهبندیپذیر با ETag از v2.12 فقط برای شریکانی که سهمیه دارند؛ بقیه 403 میگیرند.
پارامترها نام نوع معنا limitدر پرسوجو integerاختیاری شمار ورودی در هر صفحه: پیشفرض ۲۰، حداکثر ۵۰. cursorدر پرسوجو stringاختیاری مقدار next پاسخ قبلی. بدون آن، از آغاز.
درخواست نمونه curl \
-H "Authorization: Bearer tm_key_…" \
"https://api.tellmelo.com/v2/partner/gifts?limit=20"پاسخ با یک صفحه از QuotaGift پاسخ میدهد، بهصورت `items` و `next`.
مثال {
"items": [
{
"item": "plan",
"quantity": 3,
"itemId": null,
"recipient": {
"handle": "jon",
"name": "Jon"
},
"createdAt": 1758627600000
}
],
"next": "MTc1ODYyNDAwMDAwMDo1ZjBjMmE5ZS04ZDQx"
}وضعیتهای ممکن: 200304401429
POST /v2/partner/giftsهدیه دادن ماههای اشتراک یا جرقه از سهمیهتان به یک عضو.
فقط برای شریکانی که سهمیه دارند؛ بقیه 403 میگیرند.
مانند برنامه، عضو میبیند هدیه از طرف کیست. حداکثر ۶۰ هدیه در ساعت.
پارامترها نام نوع معنا handleدر بدنه stringاجباری @نام عضوی که به او هدیه میدهید، با @ یا بدون آن. itemدر بدنه stringاجباری plan برای ماههای اشتراک، sparks برای جرقه، shop برای یک ظاهر از ذخیرهٔ شما (از ۲٫۱۳).plansparksshopquantityدر بدنه integerاختیاری چقدر: تا ۱۲ ماه یا ۳۵ جرقه برای هر هدیه. itemIdدر بدنه stringاختیاری برای shop: شناسهٔ ظاهر، همانطور که looks در سهمیه آن را مینامد. یک عدد برای هر هدیه؛ در این حالت quantity اعمال نمیشود.
درخواست نمونه curl -X POST \
-H "Authorization: Bearer tm_key_…" \
-H "Content-Type: application/json" \
-d '{"handle":"jon","item":"plan","quantity":3,"itemId":"frame-gold"}' \
"https://api.tellmelo.com/v2/partner/gifts"پاسخ با یک Quota پاسخ میدهد.
مثال {
"months": 120,
"sparks": 500,
"looks": [
{
"id": "frame-gold",
"name": "Goldring",
"kind": "frame",
"quantity": 25
}
]
}وضعیتهای ممکن: 200400401403429
GET /v2/gift-dropsهدیههای شما زیر پستها: چند جا هنوز خالی است و چگونه پرداخت شدهاند.
اختیار read صفحهبندیپذیر با ETag از v2.12 پارامترها نام نوع معنا limitدر پرسوجو integerاختیاری شمار ورودی در هر صفحه: پیشفرض ۲۰، حداکثر ۵۰. cursorدر پرسوجو stringاختیاری مقدار next پاسخ قبلی. بدون آن، از آغاز.
درخواست نمونه curl \
-H "Authorization: Bearer tm_key_…" \
"https://api.tellmelo.com/v2/gift-drops?limit=20"پاسخ با یک صفحه از OwnGiftDrop پاسخ میدهد، بهصورت `items` و `next`.
مثال {
"items": [
{
"item": "plan",
"quantity": 3,
"places": 10,
"left": 4,
"audience": "followers",
"newAccounts": false,
"status": "open",
"claimed": false,
"postId": "5f0c2a9e-8d41-4b7a-9c3e-2e61d0f4a7b1",
"funding": "quota",
"createdAt": 1758624000000
}
],
"next": "MTc1ODYyNDAwMDAwMDo1ZjBjMmE5ZS04ZDQx"
}وضعیتهای ممکن: 200304401429
POST /v2/gift-dropsانتشار پستی با هدیه برای برداشتن دیگران.
برای مالک و اعضای تیم با این اجازه رایگان است، وگرنه از سهمیهٔ شما. هر چیزی که پرداخت لازم داشته باشد با 422 رد میشود – پرداخت فقط در برنامه ممکن است.
برداشتن فقط در برنامه ممکن است تا هیچ برنامهای همهٔ جاها را جارو نکند. تعداد جاهای خالی در giftDrop پست آمده است.
پارامترها نام نوع معنا textدر بدنه stringاختیاری متن پست، پاسخ یا پیام. communityدر بدنه stringاختیاری id گروهی که پست به کانال فید آن میرود؛ باید روشن باشد و مجوزش را داشته باشی. بدون آن پست بیرون از هر گروهی است.itemدر بدنه stringاجباری plan برای ماههای اشتراک، sparks برای جرقه.plansparksquantityدر بدنه integerاجباری آنچه هر جا دارد: تا ۱۲ ماه یا ۳۵ جرقه. placesدر بدنه integerاجباری برای چند نفر، تا ۱۰٬۰۰۰. audienceدر بدنه stringاختیاری چه کسانی میتوانند بردارند: all همه، followers فقط دنبالکنندگان شما، group فقط اعضای گروه (فقط همراه با community).allfollowersgroup newAccountsدر بدنه booleanاختیاری true به حسابهای کمتر از ۷ روز هم اجازهٔ برداشتن میدهد. بدون آن کنار میمانند.
درخواست نمونه curl -X POST \
-H "Authorization: Bearer tm_key_…" \
-H "Content-Type: application/json" \
-d '{"text":"Ten times three months of Supporter – first come, first served! 🎁","item":"plan","quantity":3,"places":10,"audience":"all","newAccounts":false}' \
"https://api.tellmelo.com/v2/gift-drops"پاسخ با یک DropCreated پاسخ میدهد.
مثال {
"id": "5f0c2a9e-8d41-4b7a-9c3e-2e61d0f4a7b1",
"funding": "quota"
}وضعیتهای ممکن: 200400401403429
اشیا همهٔ اشیا، فیلد به فیلد. [] یعنی فهرست.
Serviceپاسخ ریشه: چه کسی پاسخ میدهد، و این کلید چه میتواند بکند.
فیلد نوع معنا namestringهمیشه tellmelo. versionstringنسخهٔ API، مثلاً 2.1. scopestringاین کلید چه میتواند بکند: read یا read write. rateLimitRateLimitسهمیهٔ این کلید. docsstringاین مستندات کجاست، بهصورت مسیری روی این سرور. specstringتوضیح ماشینخوان کجاست.
مثال {
"name": "tellmelo",
"version": "2.20",
"scope": "read write",
"rateLimit": {
"limit": 120,
"remaining": 117
},
"docs": "/developers/docs",
"spec": "/api/v2/openapi.json"
}RateLimitسهمیهٔ این کلید در دقیقهٔ جاری.
فیلد نوع معنا limitintegerدرخواست در دقیقه. remainingintegerچند تا در این دقیقه مانده است.
مثال {
"limit": 120,
"remaining": 117
}Postیک پست، همهجا با یک شکل.
فیلد نوع معنا idstringشناسهٔ پست. textstringیا null متن، همانطور که نوشته شده (null برای پستی که فقط نظرسنجی یا فقط تصویر است). kindstringپست چیست.post — پستی با متن، تصویر یا نقلقول.poll — پستی با نظرسنجی. authorProfileBriefچه کسی آن را نوشت. communityCommunityBriefیا null گروهی که در آن نوشته شد (null بیرون از همهٔ گروهها). mediaMedia[]تصویرهایش، به ترتیب؛ اگر نباشند خالی. pollPollیا null نظرسنجی (null اگر نباشد). quotesstringیا null شناسهٔ پستی که این پست نقل میکند. continuesstringیا null شناسهٔ پستی که این پست، بهعنوان افزوده، ادامهاش میدهد. countsCountsپاسخها، پسندها و بازنشرها. pinnedbooleanاینکه بالای پروفایل نویسندهاش سنجاق شده است یا نه. giftDropGiftDropیا null هدیههای قابل برداشتن زیر پست (null اگر نباشد). createdAtintegerکی نوشته شد.
مثال {
"id": "5f0c2a9e-8d41-4b7a-9c3e-2e61d0f4a7b1",
"text": "The bees are back in the garden 🐝 #garden",
"kind": "poll",
"author": {
"id": "a3e1f7c2-54b9-4d0e-8f16-7b2c9d4e1a05",
"handle": "mara",
"name": "Mara 🌻",
"verified": true,
"accountKind": "person"
},
"community": {
"id": "c81d4e2a-0f3b-4a6c-9e57-1d2b3c4a5f60",
"name": "Urban Gardening"
},
"media": [
{
"url": "/api/media?id=b2d7e9f1-3c4a-4e8b-a1f0-6d5c4b3a2918",
"kind": "image",
"poster": null,
"ai": "without"
}
],
"poll": {
"options": [
{
"text": "Lavender",
"votes": 12
},
{
"text": "Sunflowers",
"votes": 7
},
{
"text": "Clover",
"votes": 3
}
],
"total": 22,
"multiple": false,
"endsAt": null,
"running": true,
"resultsVisible": true,
"myVotes": [
0
]
},
"quotes": null,
"continues": null,
"counts": {
"replies": 4,
"likes": 31,
"reposts": 2
},
"pinned": false,
"giftDrop": {
"item": "plan",
"quantity": 3,
"places": 10,
"left": 4,
"audience": "followers",
"newAccounts": false,
"status": "open",
"claimed": true
},
"createdAt": 1758624000000
}Replyپاسخی زیر یک پست: پستی با دو فیلد بیشتر.
همهٔ فیلدهای Post ، و افزون بر آن:
فیلد نوع معنا postIdstringپستی که کل گفتوگو به آن آویزان است. parentIdstringیا null پاسخی که این پاسخ به آن است (null اگر مستقیم به پست پاسخ دهد).
مثال {
"id": "9e4b1c7d-2a3f-4d5e-8b6c-0f1e2d3c4b5a",
"text": "Same here, the lavender is full of them.",
"kind": "post",
"author": {
"id": "d4c3b2a1-6e5f-4a7b-9c8d-1e2f3a4b5c6d",
"handle": "jon",
"name": "Jon",
"verified": false,
"accountKind": "person"
},
"community": null,
"media": [],
"poll": null,
"quotes": null,
"continues": null,
"counts": {
"replies": 0,
"likes": 3,
"reposts": 0
},
"pinned": false,
"giftDrop": null,
"createdAt": 1758624600000,
"postId": "5f0c2a9e-8d41-4b7a-9c3e-2e61d0f4a7b1",
"parentId": null
}ReplyVoteرأی شما به یک پاسخ و امتیاز آن.
فیلد نوع معنا votestringرأی شما.up — مثبت.down — منفی.none — بدون رأی. scoreintegerرأیهای مثبت منهای منفی، ممکن است زیر صفر باشد.
مثال {
"vote": "up",
"score": 12
}PlannedReplyیکی از پاسخهای شما که برای بعد زمانبندی شده است.
فیلد نوع معنا idstringid پاسخ زمانبندیشده.parentIdstringیا null پاسخی که به آن جواب خواهد داد (اگر مستقیم به پست باشد null). textstringمتن. publishAtintegerزمان انتشار. statestringوضعیت.waiting — منتظر زمانش است.failed — ارسال نشد، مثلاً چون پست دیگر وجود ندارد.
مثال {
"id": "3b2a1c0d-9e8f-4a7b-b6c5-d4e3f2a1b0c9",
"parentId": null,
"text": "Count me in for Saturday!",
"publishAt": 1758710400000,
"state": "waiting"
}ReplySettingsتنظیمات پاسخ یکی از پستهای شما.
فیلد نوع معنا audiencestringچه کسانی میتوانند پاسخ دهند.all — همه.following — حسابهایی که دنبال میکنید.mentioned — نامبردهشدهها در پست.nobody — هیچکس جز شما. approvalbooleanآیا پاسخها منتظر تأیید شما هستند. slowstringحالت آهسته.auto — با رسیدن پاسخهای زیاد خودش روشن میشود.on — همیشه روشن.off — خاموش.
مثال {
"audience": "following",
"approval": false,
"slow": "auto"
}Countsیک پست چند پاسخ، پسند و بازنشر دارد.
فیلد نوع معنا repliesintegerپاسخها، همهٔ سطحها با هم. likesintegerپسندها. repostsintegerبازنشرها.
مثال {
"replies": 4,
"likes": 31,
"reposts": 2
}Pollنظرسنجی یک پست.
فیلد نوع معنا optionsPollOption[]گزینهها، به ترتیب. option در رأی از ۰ شمرده میشود. totalintegerهمهٔ رأیها با هم، همیشه هست. multiplebooleanاینکه بیش از یک گزینه را میتوان انتخاب کرد یا نه. endsAtintegerیا null نظرسنجی کی تمام میشود (null اگر بیپایان باشد). runningbooleanاینکه هنوز میتوان رأی داد یا نه. resultsVisiblebooleanاینکه رأیهای هر گزینه نشان داده میشوند یا نه (نگاه کنید به votes). myVotesinteger[]گزینههایی که انتخاب کردید، شمرده از ۰.
مثال {
"options": [
{
"text": "Lavender",
"votes": 12
},
{
"text": "Sunflowers",
"votes": 7
},
{
"text": "Clover",
"votes": 3
}
],
"total": 22,
"multiple": false,
"endsAt": null,
"running": true,
"resultsVisible": true,
"myVotes": [
0
]
}PollOptionیک گزینهٔ نظرسنجی.
فیلد نوع معنا textstringگزینه. votesintegerیا null رأیهایش (null تا وقتی نتیجهها پنهاناند).
مثال {
"text": "Lavender",
"votes": 12
}ProfileBriefپروفایل آنطور که درون اشیای دیگر میآید: بهعنوان نویسنده، در جستوجو.
فیلد نوع معنا idstringشناسهٔ حساب: آنچه /relations و /conversations/{with} انتظار دارند. handlestringنام کوتاه، بدون @، همانطور که عضو انتخاب کرده نوشته میشود. namestringنام نمایشی. ممکن است ایموجی داشته باشد، از جمله :name:. verifiedbooleanاینکه حساب تأییدشده است یا نه. accountKindstringچه نوع حسابی است.person — یک شخص.business — یک کسبوکار.association — یک باشگاه یا انجمن.automated — یک حساب خودکار، مثلاً بات.bot — بات گروهها که برنامهای با کلید خودش اجرایش میکند (از 2.18).
مثال {
"id": "a3e1f7c2-54b9-4d0e-8f16-7b2c9d4e1a05",
"handle": "mara",
"name": "Mara 🌻",
"verified": true,
"accountKind": "person"
}Profileیک پروفایل بهتنهایی، با توضیحات و دنبالکنندگانش.
همهٔ فیلدهای ProfileBrief ، و افزون بر آن:
فیلد نوع معنا aboutstringیا null توضیحات (null اگر نباشد). websitestringیا null وبسایت پروفایل (اگر نباشد null). از نسخهٔ ۲٫۳. websiteVerifiedbooleanاینکه آیا وبسایت با rel=me به این پروفایل پیوند برمیگرداند؛ هر هفته بررسی میشود. از نسخهٔ ۲٫۳. followersintegerچند حساب آن را دنبال میکنند. createdAtintegerیا null حساب کی ساخته شد (null، تا وقتی عضو تاریخ پیوستن را پنهان کند؛ از ۲٫۹).
مثال {
"id": "a3e1f7c2-54b9-4d0e-8f16-7b2c9d4e1a05",
"handle": "mara",
"name": "Mara 🌻",
"verified": true,
"accountKind": "person",
"about": "Beekeeper, allotment, too many seeds. :tellmelo:",
"website": "https://mara-imkerei.example/",
"websiteVerified": true,
"followers": 148,
"createdAt": 1750848000000
}Membershipحسابتان در گروه چه جایگاهی دارد و چه میتواند.
فیلد نوع معنا leaderstringیا null آیا گروه را ساختهای یا همرهبر آنی؛ وگرنه null.founder — بنیانگذار.manager — همرهبر. rolesstring[]id نقشهایت، بالاترین اول.permissionsstring[]آنچه در گروه میتوانید. mutedUntilintegerیا null تا کی بیصدایی شما را اینجا ساکت میکند؛ اگر نباشد null.
مثال {
"leader": null,
"roles": [
"4e5f6a7b-8c9d-4e0f-a1b2-c3d4e5f6a7b8"
],
"permissions": [
"attach",
"invite",
"send",
"view"
],
"mutedUntil": null
}Personیک عضو، کوتاه.
فیلد نوع معنا idstringid حساب.handlestringنام کاربری، بدون @. namestringنام نمایشی. botbooleanاینکه حساب بات است یا نه (از 2.18).
مثال {
"id": "d4c3b2a1-6e5f-4a7b-9c8d-1e2f3a4b5c6d",
"handle": "jon",
"name": "Jon",
"bot": false
}Channelکانالی از یک گروه.
فیلد نوع معنا idstringid.kindstringنوع کانال.feed — کانال فید، که پستهایش در فید عمومی هم هستند.chat — یک گفتوگو.voice — یک کانال صوتی؛ صحبت فقط در اپ.hub — مرکز گروه: صفحهای که گروه را معرفی میکند. همیشه هست، بدون پیام. namestringیا null نام بدون #؛ null برای نامی که برنامه در هر زبان میدهد. topicstringموضوع؛ اگر نباشد خالی. categoryChannelCategoryیا null دسته؛ بدون دسته null. unreadintegerچند پیام دیگران را هنوز نخواندهای، تا ۱۰۰. permissionsstring[]آنچه در این کانال میتوانید. symbolChannelSymbolنماد آن؛ اگر گروه شکلی تعیین کند، شکل همان است.
مثال {
"id": "0d9c8b7a-6f5e-4d3c-2b1a-0f9e8d7c6b5a",
"kind": "chat",
"name": "harvest",
"topic": "What came in this week",
"category": {
"id": "9a8b7c6d-5e4f-4a3b-8c2d-1e0f9a8b7c6d",
"name": "Garden",
"symbol": {
"emoji": null,
"icon": null,
"image": null,
"color": null,
"shape": null
}
},
"unread": 3,
"permissions": [
"view",
"send"
],
"symbol": {
"emoji": "🌻",
"icon": null,
"image": null,
"color": "amber",
"shape": "circle"
}
}ChannelCategoryدستهای که کانال زیر آن است.
مثال {
"id": "9a8b7c6d-5e4f-4a3b-8c2d-1e0f9a8b7c6d",
"name": "Garden",
"symbol": {
"emoji": null,
"icon": null,
"image": null,
"color": null,
"shape": null
}
}ChannelSymbolنماد یک کانال یا دسته: حداکثر یکی از ایموجی، نماد و تصویر، وگرنه نشانهٔ نوع آن.
فیلد نوع معنا emojistringیا null ایموجی؛ بدون آن null. iconstringیا null نام نماد از مجموعهٔ برنامه؛ بدون آن null. imagestringیا null نشانی تصویر خود؛ بدون آن null. colorstringیا null رنگ کاشی؛ null برای رنگ نوع آن. shapestringیا null شکل کاشی؛ null برای دایره.
مثال {
"emoji": "🌻",
"icon": null,
"image": null,
"color": "amber",
"shape": "circle"
}ChannelMessageپیامی در کانال گفتوگو.
فیلد نوع معنا idstringid.textstringیا null متن (برای پیامی فقط با تصویر یا صدا null). authorPersonچه کسی آن را نوشته. mediaMedia[]تصویرها و پیامهای صوتیاش؛ اگر نباشد خالی. replyTostringیا null id پیامی که به آن پاسخ میدهد؛ اگر نباشد null.roleColorstringیا null رنگ بالاترین نقشِ رنگدار نویسنده؛ اگر نباشد null. threadOfstringیا null پیامی که این پیام در رشتهاش پاسخ میدهد؛ در گفتگو null. threadCountintegerرشته این پیام چند پاسخ دارد. cardobjectیا null کارت ربات: title، text، color و fields؛ در غیر این صورت null. buttonsobject[]دکمههای ربات: هر کدام id، label و style. createdAtintegerکی نوشته شد.
مثال {
"id": "61a2b3c4-d5e6-4f70-8192-a3b4c5d6e7f8",
"text": "@jon the first tomatoes are ripe 🍅",
"author": {
"id": "a3e1f7c2-54b9-4d0e-8f16-7b2c9d4e1a05",
"handle": "mara",
"name": "Mara 🌻",
"bot": false
},
"media": [
{
"url": "/api/media?id=b2d7e9f1-3c4a-4e8b-a1f0-6d5c4b3a2918",
"kind": "image",
"poster": null,
"ai": "without"
}
],
"replyTo": "72b3c4d5-e6f7-4081-92a3-b4c5d6e7f809",
"roleColor": "green",
"threadOf": null,
"threadCount": 3,
"card": null,
"buttons": [],
"createdAt": 1758631200000
}Roleنقشی از یک گروه.
فیلد نوع معنا idstringid.namestringیا null نام؛ برای @everyone null. everyonebooleanآیا @everyone است، نقش همهٔ اعضا. colorstringیا null رنگ: indigo، violet، rose، amber، green یا teal؛ بدون رنگ null. permissionsstring[]مجوزهایش. membersintegerچند نفر آن را دارند؛ برای @everyone همهٔ اعضا. editablebooleanآیا حسابتان میتواند آن را تغییر دهد. selfablebooleanآیا اعضا نقش را خودشان میگیرند و کنار میگذارند.
مثال {
"id": "4e5f6a7b-8c9d-4e0f-a1b2-c3d4e5f6a7b8",
"name": "Gardeners",
"everyone": false,
"color": "green",
"permissions": [
"attach",
"invite",
"send",
"view"
],
"members": 24,
"editable": true,
"selfable": false
}GroupMemberعضو گروه با نقشهایش.
همهٔ فیلدهای Person ، و افزون بر آن:
فیلد نوع معنا leaderstringیا null آیا عضو گروه را ساخته یا همرهبر آن است؛ وگرنه null.founder — بنیانگذار.manager — همرهبر. rolesstring[]id نقشهایش، بالاترین اول.mutedUntilintegerیا null اگر حساب شما بتواند بیصدا کند، عضو تا کی بیصداست؛ در غیر این صورت null.
مثال {
"id": "d4c3b2a1-6e5f-4a7b-9c8d-1e2f3a4b5c6d",
"handle": "jon",
"name": "Jon",
"bot": false,
"leader": null,
"roles": [
"4e5f6a7b-8c9d-4e0f-a1b2-c3d4e5f6a7b8"
],
"mutedUntil": null
}ChannelOverrideآنچه یک نقش در کانال متفاوت از گروه میتواند.
فیلد نوع معنا rolestringid نقش.allowstring[]آنچه اینجا اضافه میتواند. denystring[]آنچه اینجا نمیتواند.
مثال {
"role": "4e5f6a7b-8c9d-4e0f-a1b2-c3d4e5f6a7b8",
"allow": [
"send"
],
"deny": []
}Bellزنگ یک گروه.
فیلد نوع معنا levelstringچه اعلانهایی میآیند.all — هر پست تازه در کانال فید، بهعلاوهٔ @everyone.important — پستهای رهبری در کانال فید، بهعلاوهٔ @everyone.off — هیچ، مگر اینکه با @نام از شما نام برده شود.
مثال {
"level": "important"
}InviteLinkپیوند دعوت یک گروه.
فیلد نوع معنا codestringکد. urlstringنشانی برای همرسانی. createdByPersonیا null چه کسی آن را ساخته؛ اگر حساب حذف شده null. createdAtintegerکی ساخته شد. expiresAtintegerیا null تا کی معتبر است؛ بدون پایان null. usesintegerچند بار استفاده شده. maxUsesintegerیا null چند بار قابل استفاده است؛ نامحدود null.
مثال {
"code": "k7Qm2xPa",
"url": "https://tellmelo.com/groups?join=k7Qm2xPa",
"createdBy": {
"id": "d4c3b2a1-6e5f-4a7b-9c8d-1e2f3a4b5c6d",
"handle": "jon",
"name": "Jon",
"bot": false
},
"createdAt": 1758624000000,
"expiresAt": 1759228800000,
"uses": 3,
"maxUses": 10
}InvitePreviewپیوند دعوت به کجا میرسد.
فیلد نوع معنا communityInviteGroupگروه. memberbooleanآیا حسابتان هماکنون عضو است.
مثال {
"community": {
"id": "c81d4e2a-0f3b-4a6c-9e57-1d2b3c4a5f60",
"name": "Urban Gardening",
"members": 312,
"rules": [
"Be kind.",
"No advertising."
]
},
"member": false
}InviteGroupگروه پشت پیوند دعوت.
فیلد نوع معنا idstringid.namestringنام. membersintegerچند عضو دارد. rulesstring[]قوانینش که هنگام پیوستن پذیرفته میشوند؛ اگر نباشد خالی.
مثال {
"id": "c81d4e2a-0f3b-4a6c-9e57-1d2b3c4a5f60",
"name": "Urban Gardening",
"members": 312,
"rules": [
"Be kind.",
"No advertising."
]
}Joinedپیوستن با پیوند دعوت.
فیلد نوع معنا communitystringid گروه.
مثال {
"community": "c81d4e2a-0f3b-4a6c-9e57-1d2b3c4a5f60"
}LogEntryیک ردیف در گزارش رهبری.
فیلد نوع معنا idstringid.actionstringچه اتفاقی افتاد.post_removed — یک پست.member_removed — عضوی که پیش از 2.16 برداشته شد (۹۰ روز بیرون).message_removed — پیامی در کانال گفتوگو.member_kicked — یک اخراج.member_banned — یک مسدودیت.member_unbanned — مسدودیتی برداشتهشده.member_timed_out — یک بیصدایی.timeout_lifted — بیصدایی برداشتهشده.voice_muted — در کانال صوتی بیصدا شد.voice_removed — از کانال صوتی قطع شد.bot_added — یک بات به گروه اضافه شد (از 2.18).bot_removed — یک بات از گروه برداشته شد (از 2.18). memberPersonبه چه کسی مربوط بود. reasonstringدلیل؛ برای پیامها و وقتی دلیلی داده نشده خالی است. bystringیا null نام کسی که این کار را کرد؛ اگر حساب حذف شده باشد null. createdAtintegerکی.
مثال {
"id": "8f7e6d5c-4b3a-4291-8f7e-6d5c4b3a2918",
"action": "message_removed",
"member": {
"id": "d4c3b2a1-6e5f-4a7b-9c8d-1e2f3a4b5c6d",
"handle": "jon",
"name": "Jon",
"bot": false
},
"reason": "",
"by": "Mara 🌻",
"createdAt": 1758710400000
}Banمسدودیت از یک گروه.
فیلد نوع معنا memberPersonچه کسی مسدود است. untilintegerیا null تا کی؛ تا برداشته شدن null. createdAtintegerیا null از کی؛ برای مسدودیتهای پیش از 2.16 null. bystringیا null نام کسی که مسدود کرد؛ اگر نامعلوم باشد null.
مثال {
"member": {
"id": "d4c3b2a1-6e5f-4a7b-9c8d-1e2f3a4b5c6d",
"handle": "jon",
"name": "Jon",
"bot": false
},
"until": 1759228800000,
"createdAt": 1758624000000,
"by": "Mara 🌻"
}Untilبیصدایی یا مسدودیت کی پایان مییابد.
فیلد نوع معنا untilintegerیا null زمان؛ برای مسدودیت بیپایان یا بیصدایی برداشتهشده null.
مثال {
"until": 1758624600000
}Tagیک برچسب و اینکه چند پست آن را دارند.
فیلد نوع معنا tagstringبرچسب، بدون #. postsintegerچند پست تازه آن را دارند.
مثال {
"tag": "garden",
"posts": 58
}SearchResultسه فهرست، احتمالاً خالی.
فیلد نوع معنا postsPost[]پستهای جور، تازهترین اول. profilesProfileBrief[]پروفایلهای جور، بر اساس نام کوتاه. tagsTag[]برچسبهای جور، پرکاربردترین اول.
مثال {
"posts": [
{
"id": "5f0c2a9e-8d41-4b7a-9c3e-2e61d0f4a7b1",
"text": "The bees are back in the garden 🐝 #garden",
"kind": "poll",
"author": {
"id": "a3e1f7c2-54b9-4d0e-8f16-7b2c9d4e1a05",
"handle": "mara",
"name": "Mara 🌻",
"verified": true,
"accountKind": "person"
},
"community": {
"id": "c81d4e2a-0f3b-4a6c-9e57-1d2b3c4a5f60",
"name": "Urban Gardening"
},
"media": [
{
"url": "/api/media?id=b2d7e9f1-3c4a-4e8b-a1f0-6d5c4b3a2918",
"kind": "image",
"poster": null,
"ai": "without"
}
],
"poll": {
"options": [
{
"text": "Lavender",
"votes": 12
},
{
"text": "Sunflowers",
"votes": 7
},
{
"text": "Clover",
"votes": 3
}
],
"total": 22,
"multiple": false,
"endsAt": null,
"running": true,
"resultsVisible": true,
"myVotes": [
0
]
},
"quotes": null,
"continues": null,
"counts": {
"replies": 4,
"likes": 31,
"reposts": 2
},
"pinned": false,
"giftDrop": {
"item": "plan",
"quantity": 3,
"places": 10,
"left": 4,
"audience": "followers",
"newAccounts": false,
"status": "open",
"claimed": true
},
"createdAt": 1758624000000
}
],
"profiles": [
{
"id": "a3e1f7c2-54b9-4d0e-8f16-7b2c9d4e1a05",
"handle": "mara",
"name": "Mara 🌻",
"verified": true,
"accountKind": "person"
}
],
"tags": [
{
"tag": "garden",
"posts": 58
}
]
}Emojiایموجیای از این سرور.
فیلد نوع معنا namestringنام، همانطور که میان دو نقطه میآید. urlstringنشانی تصویر، نسبت به این سرور.
مثال {
"name": "tellmelo",
"url": "/api/media?id=e1f2a3b4-c5d6-4e7f-8a9b-0c1d2e3f4a5b"
}Notificationیک اعلان. یک ردیف میتواند چند رویداد همنوع را گرد آورد.
فیلد نوع معنا idstringشناسهٔ اعلان. kindstringچه اتفاقی افتاد.reply — کسی به شما پاسخ داد.like — کسی پست شما را پسندید.reply_like — کسی به پاسخ شما رأی مثبت میدهد.duel — کسی شما را در دوئل فید به چالش میکشد، یا چالش شما بازی شده است.reply_pick — نویسندهٔ یک پست پاسخ شما را برجسته میکند.repost — کسی پست شما را بازنشر کرد.follow — کسی شما را دنبال میکند.mention — کسی از شما نام برد.group_mention — کسی از گروهی که ادارهاش میکنید نام برد؛ text نام آن است.channel_mention — کسی در یک کانال گفتوگوی یکی از گروههایتان از شما نام برده است، از جمله با @everyone؛ آن عضو actor است و جمله کانال و گروه را میگوید، هرگز پیام را.message — کسی برایتان پیامی نوشت.scheduled — یکی از پستهای زمانبندیشدهٔ شما منتشر شد.video — پستی از شما که منتظر ویدیوی خود بود منتشر شد یا دوباره پیشنویس شد.reminder — یادآوریای دربارهٔ یک پست ذخیرهشده سررسید شده است.report — نتیجهٔ گزارشی که فرستادهاید.moderation — تصمیمی دربارهٔ حساب شما: هشدار، محدودیت، اعتراض.team — کار تازه برای تیم (فقط مالکان، مدیران و ناظران).reward — پاداشی برای دعوت بهزودی از دست میرود یا از دست رفته است.gift — هدیهای از تیم: یک اشتراک، یا جرقه برای شما یا برای گروهی که رهبری میکنید.present — هدیهای از یک عضو: جرقه یا زمان اشتراک؛ عضو همان actor است.spark — جرقهها بهزودی منقضی میشوند، یا گروهی که اداره میکنید دیگر جرقهٔ کافی برای مزیتهایش ندارد.loyalty — دربارهٔ ریتم وفاداری: هفتهای فعال شمرده میشود یا یک روز کم دارد، پاداشی تازه است یا رو به محو شدن.impact — پستهای دوازده ساعت شما پس از یک روز چطور بودند، در یک اعلان.discovery — دعوتی به برنامهٔ کشف، یا اینکه جایگاهی آنجا آغاز یا پایان مییابد.group_post — پستی تازه در گروهی که زنگش برای آن به صدا درمیآید.group_moderation — رهبری یک گروه یکی از پستهای شما یا خودتان را از گروه برداشت.group — کاری که یک عضو در یک گروه در ارتباط با شما انجام داده است: دعوت، پذیرش یا رد، همکار مدیر کردن، واگذاری یا انحلال گروه، یا درخواست عضویت در گروه شما؛ عضو همان actor است و نام گروه در پایان جمله میآید.coauthor — کسی شما را بهعنوان همنویسندهٔ یک پست دعوت کرد.partner — یادآوری از برنامهٔ شرکا یا پایان نشان شریک.news — مقالهای تازه در منطقهای که دنبال میکنید.pick — یکی از پستهای شما نامزد پست هفته یا پست سال است، یا برنده شده است.advent — درِ تازهای از تقویم ایام ظهور باز است، دری باز شد یا درِ امروز هنوز منتظر است.team_message — پیامی که تیم tellmelo برای اعضای انتخابشده نوشته است.challenge — چالش جدید هفته شروع شد.nudge — فقط یک بار: پستی که هنوز کسی به آن پاسخ نداده، یا چالش جاری.signin — رایانهای میپرسد که آیا شما همین حالا در آن وارد میشوید. textstringیا null فقط برای گزارشها و نظارت: متن مربوط، وگرنه null. actorActorچه کسی آن را انجام داد. postIdstringیا null پستی که دربارهٔ آن است (null اگر دربارهٔ هیچ پستی نباشد). readbooleanاینکه بهعنوان خواندهشده علامت خورده یا نه. moreintegerاین ردیف، افزون بر رویداد نامبرده، نمایندهٔ چند رویداد دیگر است. createdAtintegerنخستین بار کی اتفاق افتاد. updatedAtintegerآخرین بار کی رویداد دیگری به آن افزوده شد. فهرست بر اساس این مرتب است.
مثال {
"id": "3f2e1d0c-9b8a-4765-8432-10fedcba9876",
"kind": "like",
"text": null,
"actor": {
"handle": "jon",
"name": "Jon"
},
"postId": "5f0c2a9e-8d41-4b7a-9c3e-2e61d0f4a7b1",
"read": false,
"more": 2,
"createdAt": 1758624300000,
"updatedAt": 1758624900000
}Actorچه کسی اعلان را ایجاد کرد.
فیلد نوع معنا handlestringنام کوتاه. namestringنام نمایشی.
مثال {
"handle": "jon",
"name": "Jon"
}Conversationیک ردیف از صندوق شما.
فیلد نوع معنا withstringشناسهٔ حساب طرف مقابل: آنچه /conversations/{with}/messages انتظار دارد. handlestringنام کوتاه او. namestringنام نمایشی او. excerptstringیا null آغاز آخرین پیام (null اگر متن نداشته باشد). truncatedbooleanاینکه گزیده کوتاه شده است یا نه. fromMebooleanاینکه آخرین پیام مال شماست یا نه. lastMessageIdstringشناسهٔ آخرین پیام. unreadintegerچند پیام او را هنوز نخواندهاید. updatedAtintegerآخرین پیام کی نوشته شد.
مثال {
"with": "d4c3b2a1-6e5f-4a7b-9c8d-1e2f3a4b5c6d",
"handle": "jon",
"name": "Jon",
"excerpt": "See you on Saturday at the market!",
"truncated": false,
"fromMe": true,
"lastMessageId": "7c6b5a49-3827-4165-9f0e-d1c2b3a49586",
"unread": 0,
"updatedAt": 1758624060000
}Messageپیامی در یک گفتوگو.
فیلد نوع معنا idstringشناسهٔ پیام. textstringیا null متن (null برای پیامی که فقط تصویر است). fromstringشناسهٔ حسابی که آن را نوشت. tostringشناسهٔ حسابی که برایش نوشته شد. readbooleanاینکه گیرنده آن را خوانده است یا نه. mediaMedia[]تصویرهایش؛ اگر نباشند خالی. replyTostringیا null id پیامی که این پیام به آن پاسخ میدهد (اگر به هیچ پیامی پاسخ ندهد null). از نسخهٔ ۲٫۲.createdAtintegerکی فرستاده شد.
مثال {
"id": "7c6b5a49-3827-4165-9f0e-d1c2b3a49586",
"text": "See you on Saturday at the market!",
"from": "a3e1f7c2-54b9-4d0e-8f16-7b2c9d4e1a05",
"to": "d4c3b2a1-6e5f-4a7b-9c8d-1e2f3a4b5c6d",
"read": true,
"media": [],
"replyTo": null,
"createdAt": 1758624060000
}PlannedMessageیکی از پیامهای شما که برای بعد زمانبندی شده است.
فیلد نوع معنا idstringid پیام زمانبندیشده.tostringid حساب گیرنده.textstringیا null متن؛ با رمزگذاری سرتاسری null. sendAtintegerزمان ارسال. statestringوضعیت.waiting — منتظر زمانش است.held — چون اشتراک تمام شد نگه داشته شده است. میتوانید خودتان آن را بفرستید یا حذف کنید.failed — ارسال نشد.
مثال {
"id": "3b2a1c0d-9e8f-4a7b-b6c5-d4e3f2a1b0c9",
"to": "a3e1f7c2-54b9-4d0e-8f16-7b2c9d4e1a05",
"text": "Happy birthday! 🎂",
"sendAt": 1758710400000,
"state": "waiting"
}ScheduledPostپستی از شما که هنوز منتشر نشده است.
فیلد نوع معنا idstringشناسهٔ پست. textstringیا null متن. communityIdstringیا null گروهی که در آن منتشر میشود (null بیرون از گروهها). publishAtintegerیا null زمان انتشار (null تا وقتی منتظر چیز دیگری است). deleteAtintegerیا null زمان حذف خودکار (null: هرگز). waitingForstringمنتظر چه است.time — زمانش.review — تأیید متنی که برای بررسی نوشته شده.check — بررسی مدیریت خودکار.payment — پرداخت هدیههایش. createdAtintegerزمان نوشته شدن.
مثال {
"id": "5f0c2a9e-8d41-4b7a-9c3e-2e61d0f4a7b1",
"text": "Market day tomorrow – see you at the bee stand! #garden",
"communityId": null,
"publishAt": 1758710400000,
"deleteAt": null,
"waitingFor": "time",
"createdAt": 1758624000000
}Collectionمجموعهای از پستهای ذخیرهشده.
فیلد نوع معنا idstringid مجموعه.namestringنام آن. countintegerشمار پستهای آن.
مثال {
"id": "6d5c4b3a-2918-4e7f-a1b2-c3d4e5f60718",
"name": "Recipes",
"count": 12
}Eventرویداد پیشروی یک نمایه.
فیلد نوع معنا idstringid رویداد.titlestringعنوان. startsAtintegerشروع. endsAtintegerیا null پایان؛ بدون پایان null. placestringیا null مکان. descriptionstringیا null توضیح. signupsEventSignupsیا null ثبتنامها؛ بدون ثبتنام null.
مثال {
"id": "2a3b4c5d-6e7f-4809-9a1b-2c3d4e5f6a7b",
"title": "Seed swap",
"startsAt": 1758883200000,
"endsAt": 1758890400000,
"place": "Community garden",
"description": "Bring seeds, take seeds.",
"signups": {
"count": 14,
"going": true
}
}EventSignupsچند نفر ثبتنام کردهاند.
فیلد نوع معنا countintegerشمار ثبتنامها. goingbooleanآیا شما ثبتنام کردهاید.
مثال {
"count": 14,
"going": true
}EventSignupکسی که برای یکی از رویدادهای شما ثبتنام کرده است.
فیلد نوع معنا idstringid حساب.handlestringنام کاربری. namestringنام نمایشی. atintegerزمان ثبتنام.
مثال {
"id": "a3e1f7c2-54b9-4d0e-8f16-7b2c9d4e1a05",
"handle": "mara",
"name": "Mara 🌻",
"at": 1758624000000
}Pictureیک تصویر بارگذاریشده.
فیلد نوع معنا idstringid تصویر.urlstringکجا میتوان آن را دید.
مثال {
"id": "8c7b6a59-4837-4261-9f5e-d4c3b2a1f0e9",
"url": "/api/media?id=8c7b6a59-4837-4261-9f5e-d4c3b2a1f0e9"
}EmojiPictureتصویر بارگذاریشدهٔ یک شکلک.
فیلد نوع معنا idstringid تصویر.urlstringکجا میتوان آن را دید. animatedbooleanآیا متحرک است.
مثال {
"id": "8c7b6a59-4837-4261-9f5e-d4c3b2a1f0e9",
"url": "/api/media?id=8c7b6a59-4837-4261-9f5e-d4c3b2a1f0e9",
"animated": false
}OwnEmojiیکی از شکلکهای خودتان.
فیلد نوع معنا namestringنام آن. urlstringتصویر آن. animatedbooleanآیا متحرک است. restingbooleanدر حالت استراحت، چون اشتراک اکنون شکلک کمتری اجازه میدهد: میماند ولی قابل استفاده نیست.
مثال {
"name": "sunflower",
"url": "/api/media?id=8c7b6a59-4837-4261-9f5e-d4c3b2a1f0e9",
"animated": false,
"resting": false
}GroupEmojiایموجی یک گروه.
فیلد نوع معنا namestringنام آن. urlstringتصویر آن. animatedbooleanآیا متحرک است.
مثال {
"name": "seedling",
"url": "/api/media?id=8c7b6a59-4837-4261-9f5e-d4c3b2a1f0e9",
"animated": false
}BotEventرویدادی در یکی از گروههای ربات.
فیلد نوع معنا idstringشمارهاش، صعودی؛ ادامه با آن است (since، Last-Event-ID). typestringآنچه رخ داد.message.created — پیامی نوشته شد.message.deleted — پیامی حذف شد.member.joined — کسی پیوست.member.left — کسی رفت یا حذف شد.voice.joined — کسی به یک کانال صوتی پیوست.command — کسی از یک فرمان ربات استفاده کرد.interaction — کسی دکمهای را در پیام ربات فشار داد. communitystringگروه. channelstringیا null کانال؛ برای کل گروه null. createdAtintegerزمان وقوع. dataobjectدادههای مربوط، بسته به نوع: message، member (با reason)، command یا interaction.
مثال {
"id": "4711",
"type": "message.created",
"community": "c81d4e2a-0f3b-4a6c-9e57-1d2b3c4a5f60",
"channel": "0d9c8b7a-6f5e-4d3c-2b1a-0f9e8d7c6b5a",
"createdAt": 1758634800000,
"data": {
"message": {
"id": "61a2b3c4-d5e6-4f70-8192-a3b4c5d6e7f8",
"text": "/dice 6",
"author": {
"id": "a3e1f7c2-54b9-4d0e-8f16-7b2c9d4e1a05",
"handle": "mara",
"name": "Mara 🌻",
"bot": false
},
"media": 0,
"replyTo": null,
"threadOf": null,
"createdAt": 1758634800000
}
}
}BotCommandفرمانی از یک ربات.
فیلد نوع معنا namestringنامش، بدون «/». descriptionstringکاری که میکند.
مثال {
"name": "dice",
"description": "Rolls a die"
}VoiceSeatجایی در کانال صوتی.
فیلد نوع معنا urlstringنشانی سرور رسانه (LiveKit). tokenstringتوکن این کانال، چند دقیقه معتبر. iceServersobject[]سرورهای STUN و TURN برای اتصال. speakbooleanآیا ربات اجازه ارسال صدا دارد. videobooleanآیا ربات اجازه ارسال تصویر دارد.
مثال {
"url": "wss://voice.example.org",
"token": "eyJhbGciOiJIUzI1NiJ9…",
"iceServers": [
{
"urls": [
"stun:turn.example.org:3478"
]
}
],
"speak": true,
"video": false
}Webhookیکی از وبهوکهای شما.
فیلد نوع معنا idstringid وبهوک.urlstringنشانی آن. kindsstring[]از چه چیزهایی باخبر میشود. activebooleanآیا ارسالها را دریافت میکند. پس از شکستهای پیاپی زیاد خاموش میشود. lastStatusintegerیا null وضعیت HTTP آخرین ارسال. lastAtintegerیا null زمان آخرین ارسال. failuresintegerشکستهای پیاپی.
مثال {
"id": "1f2e3d4c-5b6a-4798-8a7b-6c5d4e3f2a1b",
"url": "https://example.org/tellmelo-hook",
"kinds": [
"reply",
"mention"
],
"active": true,
"lastStatus": 200,
"lastAt": 1758624000000,
"failures": 0
}WebhookCreatedیک وبهوک تازه با راز آن.
فیلد نوع معنا idstringid وبهوک.secretstringراز امضاها، فقط همین یک بار.
مثال {
"id": "1f2e3d4c-5b6a-4798-8a7b-6c5d4e3f2a1b",
"secret": "whsec_3f9a…"
}GroupBotربات یک گروه.
فیلد نوع معنا idstringid حساب ربات.handlestringنام کوتاه آن. namestringنام آن. descriptionstringکاری که میکند، به گفتهٔ مالکش. permissionsstring[]آنچه نقشش در گروه اجازه میدهد.
مثال {
"id": "a3e1f7c2-54b9-4d0e-8f16-7b2c9d4e1a05",
"handle": "gardenbot",
"name": "Garden bot",
"description": "Reminds the group of watering days.",
"permissions": [
"send",
"view"
]
}VoiceRoomیک کانال صوتی با افراد درون آن.
فیلد نوع معنا channelstringid کانال.peopleVoicePerson[]چه کسانی هماکنون در آن هستند.
مثال {
"channel": "0d9c8b7a-6f5e-4d3c-2b1a-0f9e8d7c6b5a",
"people": [
{
"id": "a3e1f7c2-54b9-4d0e-8f16-7b2c9d4e1a05",
"handle": "mara",
"name": "Mara 🌻",
"muted": false,
"deaf": false,
"camera": false,
"screen": true
}
]
}VoicePersonکسی در یک کانال صوتی.
فیلد نوع معنا idstringid حساب.handlestringنام کوتاه. namestringنام نمایشی. mutedbooleanآیا میکروفون خاموش است. deafbooleanآیا هیچ نمیشنود (انتخاب خودش). camerabooleanآیا دوربین روشن است. screenbooleanآیا صفحه را همرسانی میکند.
مثال {
"id": "a3e1f7c2-54b9-4d0e-8f16-7b2c9d4e1a05",
"handle": "mara",
"name": "Mara 🌻",
"muted": true,
"deaf": false,
"camera": false,
"screen": false
}GiftDropهدیههای زیر یک پست – هرگز با نام کسانی که برداشتهاند.
فیلد نوع معنا itemstringآنچه یک جا دارد.plan — ماههای اشتراک (حامی).sparks — جرقه. quantityintegerهر جا چقدر دارد: ماه یا جرقه. placesintegerتعداد کل جاها. leftintegerچند جا هنوز خالی است. audiencestringچه کسانی میتوانند بردارند.all — همه.followers — فقط دنبالکنندگانِ هدیهدهنده.group — فقط اعضای گروهِ پست. newAccountsbooleanاینکه حسابهای کمتر از ۷ روز هم میتوانند بردارند یا نه. statusstringوضعیت.awaiting_payment — در انتظار پرداخت؛ پست هنوز منتشر نشده.open — هنوز جا برای برداشتن هست.closed — تمام شد: همه برداشته شد، پرداخت بازگردانده شد یا پست حذف شد. claimedbooleanاینکه خودتان جایی دارید یا نه (در مسیرهای عمومی همیشه false).
مثال {
"item": "plan",
"quantity": 3,
"places": 10,
"left": 4,
"audience": "followers",
"newAccounts": false,
"status": "open",
"claimed": true
}OwnGiftDropهدیههای شما زیر یک پست، همراه با پست و نحوهٔ پرداخت.
همهٔ فیلدهای GiftDrop ، و افزون بر آن:
فیلد نوع معنا postIdstringپستی که زیر آن هستند. fundingstringنحوهٔ پرداخت.free — رایگان.quota — از سهمیه.payment — پرداختشده. createdAtintegerزمان ساخته شدن.
مثال {
"item": "plan",
"quantity": 3,
"places": 10,
"left": 4,
"audience": "followers",
"newAccounts": false,
"status": "open",
"claimed": false,
"postId": "5f0c2a9e-8d41-4b7a-9c3e-2e61d0f4a7b1",
"funding": "quota",
"createdAt": 1758624000000
}Quotaآنچه در یک سهمیه هست.
فیلد نوع معنا monthsintegerماههای اشتراکی که هنوز میشود هدیه داد. sparksintegerجرقههایی که هنوز میشود هدیه داد. looksQuotaLook[]ظاهرهای ذخیره که هنوز میشود هدیه داد (از ۲٫۱۳).
مثال {
"months": 120,
"sparks": 500,
"looks": [
{
"id": "frame-gold",
"name": "Goldring",
"kind": "frame",
"quantity": 25
}
]
}QuotaLookیک ظاهر در ذخیرهٔ یک شریک، با تعداد باقیمانده (از ۲٫۱۳).
فیلد نوع معنا idstringشناسهٔ ظاهر؛ هنگام هدیه دادن، آن را بهعنوان itemId بفرستید. namestringنام ظاهر. kindstringنوع ظاهر.frame — قاب پروفایل.background — افکت جلد.card — کارت پروفایل. quantityintegerچند عدد باقی مانده است.
مثال {
"id": "frame-gold",
"name": "Goldring",
"kind": "frame",
"quantity": 25
}QuotaGiftهدیهای از سهمیه.
فیلد نوع معنا itemstringچه چیزی هدیه داده شد.plan — ماههای اشتراک (حامی).sparks — جرقه.shop — یک ظاهر از ذخیره (از ۲٫۱۳). quantityintegerچقدر. itemIdstringیا null ظاهری که هدیه داده شد، وقتی item برابر shop باشد؛ وگرنه null. recipientActorبه چه کسی. createdAtintegerچه زمانی.
مثال {
"item": "plan",
"quantity": 3,
"itemId": null,
"recipient": {
"handle": "jon",
"name": "Jon"
},
"createdAt": 1758627600000
}Embedنشانیها برای وبسایتهای دیگر. بدون کلید کار میکنند.
فیلد نوع معنا pagestringپخشکننده برای یک <iframe>. filestringفایل MP4 برای پخشکنندهٔ خودتان. posterstringتصویر پیشنمایش. codestringکد آمادهٔ جاسازی.
مثال {
"page": "https://tellmelo.com/media-embed/b2d7e9f1-3c4a-4e8b-a1f0-6d5c4b3a2918",
"file": "https://tellmelo.com/media-embed/b2d7e9f1-3c4a-4e8b-a1f0-6d5c4b3a2918/file",
"poster": "https://tellmelo.com/media-embed/b2d7e9f1-3c4a-4e8b-a1f0-6d5c4b3a2918/poster",
"code": "<iframe src=\"https://tellmelo.com/media-embed/b2d7e9f1-3c4a-4e8b-a1f0-6d5c4b3a2918\" width=\"480\" height=\"300\" title=\"Happy bees\" style=\"border:0;max-width:100%\" loading=\"lazy\" allowfullscreen></iframe>"
}UploadStartedیک بارگذاری شروعشده.
فیلد نوع معنا uploadstringشناسهٔ این بارگذاری. pieceintegerحداکثر اندازهٔ یک تکه، به بایت.
مثال {
"upload": "e7c1a2b3-4d5e-4f60-8a9b-0c1d2e3f4a5b",
"piece": 4194304
}UploadPieceیک تکهٔ رسیده.
فیلد نوع معنا receivedintegerچند بایت رسیده است. itemMediaItemیا null پس از آخرین تکه، GIF یا ویدیوی جدید؛ وگرنه null.
مثال {
"received": 4194304,
"item": null
}Createdپاسخ نوشتنی که چیزی ساخت.
فیلد نوع معنا idstringشناسهٔ آنچه ساخته شد. scheduledForintegerیا null کی منتشر میشود، اگر انتشار زمانبندی شده باشد (وگرنه null). deleteAtintegerیا null کی خودش را حذف میکند، اگر تنظیم شده باشد (وگرنه null).
مثال {
"id": "5f0c2a9e-8d41-4b7a-9c3e-2e61d0f4a7b1",
"scheduledFor": null,
"deleteAt": null
}DropCreatedپاسخ هنگام ساخته شدن پستی با هدیه.
فیلد نوع معنا idstringشناسهٔ پست تازه. fundingstringنحوهٔ پرداخت هدیهها.free — رایگان.quota — از سهمیه.
مثال {
"id": "5f0c2a9e-8d41-4b7a-9c3e-2e61d0f4a7b1",
"funding": "quota"
}Madeآنچه همین حالا ساخته یا تغییر داده شد.
فیلد نوع معنا idstringid؛ برای پیوند دعوت، کد آن.
مثال {
"id": "0d9c8b7a-6f5e-4d3c-2b1a-0f9e8d7c6b5a"
}Okپاسخ نوشتنی که چیزی برای پس دادن ندارد.
فیلد نوع معنا okbooleanهمیشه true.
مثال {
"ok": true
}توضیح ماشینخوان جدول پشت این صفحه بهصورت OpenAPI در https://api.tellmelo.com/v2/openapi.json در دسترس است.
https://api.tellmelo.com/v2/openapi.jsonGIF و ویدیو در وبسایتهای دیگر هر چه عضوی به اشتراک بگذارد و در وبسایتهای دیگر هم مجاز کند، هر وبسایتی میتواند نشان دهد: جستوجو با anywhere=true آن را پیدا میکند و embed آن نشانیها را دارد. اگر عضو آن را پس بگیرد، ظرف چند دقیقه از آنجا ناپدید میشود.
بارگذاری تکهتکه اول شروع کنید، بعد فایل را تکهتکه بفرستید. فایل بزرگتر را به تکههای piece بایتی تقسیم کنید، با offset در جای هر تکه. پس از آخرین تکه، GIF یا ویدیوی آماده میرسد.
curl -X POST -H "Authorization: Bearer tm_key_…" \
-H "Content-Type: application/json" \
-d '{"kind":"gif","size":2400000,"name":"Happy bees","shared":true,"anywhere":true}' \
"https://api.tellmelo.com/v2/media/uploads"
→ { "upload": "e7c1a2b3-4d5e-4f60-8a9b-0c1d2e3f4a5b", "piece": 4194304 }
curl -X PUT -H "Authorization: Bearer tm_key_…" \
-H "Content-Type: application/octet-stream" \
--data-binary @bees.gif \
"https://api.tellmelo.com/v2/media/uploads/e7c1a2b3-4d5e-4f60-8a9b-0c1d2e3f4a5b?offset=0"
→ { "received": 2400000, "item": { "id": "…", "embed": { … } } }جاسازی پخشکننده GIF را بهصورت تکرارشونده یا ویدیو را با کنترلها نشان میدهد و زیر آن نام و کسی که آن را به اشتراک گذاشته. کد embed.code را در صفحه بگذارید:
<iframe src="https://tellmelo.com/media-embed/b2d7e9f1-3c4a-4e8b-a1f0-6d5c4b3a2918" width="480" height="300" title="Happy bees" style="border:0;max-width:100%" loading="lazy" allowfullscreen></iframe>انجمنها و برنامههایی که oEmbed را میشناسند، اگر نشانی پخشکننده را به آنها بدهید، خودشان کد را میگیرند:
https://tellmelo.com/api/oembed?url=https%3A%2F%2Ftellmelo.com%2Fmedia-embed%2Fb2d7e9f1-3c4a-4e8b-a1f0-6d5c4b3a2918جای کلید روی سرور شماست، هرگز در کد یک صفحهٔ وب. جستوجو و بارگذاری را از طریق سرورتان انجام دهید؛ نشانیهای embed کلید لازم ندارند.
انتخابگر GIF برای وبسایت شما با یک کلید سایت (بخش توسعهدهندگان ← انتخابگر GIF برای وبسایت شما ) وبسایت شما یک جستوجوی آماده میگیرد: دو خط در صفحه، و یک کلیک روی دکمه آن را باز میکند. کلید عمومی است و فقط روی نشانیهایی کار میکند که برایش وارد میکنید. انتخابگر فقط چیزهایی را نشان میدهد که اعضا برای وبسایتهای دیگر اجازه دادهاند.
<script src="https://tellmelo.com/picker.js" data-key="tmsk_…" defer></script>
<button type="button" data-tellmelo-picker>GIF</button>هنگام انتخاب، دکمه رویداد tellmelo:pick را همراه با مورد انتخابشده میفرستد: code برای جاسازی، file، poster، name و author. با data-target="#field" مقدار code را مستقیم در یک فیلد متنی میگذارد و با data-kind="video" ویدیو جستوجو میکند. اگر فایل را خودتان جاسازی میکنید، نام کسی را که آن را همرسانی کرده نشان دهید.
document.addEventListener('tellmelo:pick', (event) => {
const { code, file, name, author } = event.detail;
});ورود با tellmelo سایتهای دیگر به اعضا اجازه میدهند با OpenID Connect و حساب tellmelo خود وارد شوند (کد مجوز همراه با PKCE). سایت فقط نام کاربری، نشانی ایمیل تأییدشده و برای هر عضو شناسهای مخصوص خود (sub) دریافت میکند.
درخواست برنامه را زیر «بخش توسعهدهندگان ← ورود با tellmelo» میدهید. تیم هر برنامه را بررسی میکند؛ سپس شناسهٔ کلاینت را آنجا میبینید و برای برنامههای دارای سرور، رمز کلاینت را میسازید که یک بار نشان داده میشود.
هر آنچه یک کتابخانه لازم دارد در سند کشف آمده است:
https://tellmelo.com/.well-known/openid-configurationعضو را به /oauth/authorize بفرستید، همراه با response_type=code، client_id، redirect_uri (دقیقاً همان که ثبت شده)، scope=openid profile email، state، nonce و code_challenge با code_challenge_method=S256. کد را ظرف یک دقیقه در /oauth/token عوض کنید: grant_type=authorization_code، code، redirect_uri و code_verifier؛ برنامههای دارای سرور رمز را هم با احراز هویت Basic یا در فرم میفرستند. توکن شناسه (RS256، کلیدها در /oauth/jwks) شامل sub است، با profile همچنین preferred_username و با email همچنین email و email_verified. توکن دسترسی ۱۰ دقیقه معتبر است و فقط /oauth/userinfo را میخواند. https://tellmelo.com/oauth/authorize?response_type=code&client_id=tm_…
&redirect_uri=https%3A%2F%2Fexample.com%2Fcallback&scope=openid%20profile%20email
&state=…&nonce=…&code_challenge=…&code_challenge_method=S256
curl -u "tm_…:tms_…" https://tellmelo.com/oauth/token \
-d grant_type=authorization_code -d code=… \
-d redirect_uri=https://example.com/callback -d code_verifier=…{
"iss": "https://example.social",
"sub": "Xq3vR0b8yJm1cW4tZ2kPn6sLd9fHa7gE5uTo0iBeVxY",
"aud": "tm_5f2c9e1a7b3d4c6e8f0a1b2c",
"iat": 1760432400,
"exp": 1760433000,
"nonce": "n-0S6_WzA2Mj",
"at_hash": "HK6E_P6Dh8Y93mRNtsDB1Q",
"preferred_username": "anna",
"email": "anna@example.com",
"email_verified": true
}توکن تازهسازی وجود ندارد: tellmelo فقط وارد میکند و دسترسی ماندگار نمیدهد. اگر عضوی سایت را حذف کند یا تیم برنامه را معلق کند، /oauth/userinfo فوراً با 401 پاسخ میدهد. prompt=none بدون صفحه بررسی میکند و prompt=consent دوباره میپرسد.
آنچه از شما انتظار داریم همان قوانینی برقرار است که همهجا: بدون آزار، بدون هرزنامه، بدون محتوایی که حقش را ندارید. مسئولیت آنچه کلید شما منتشر میکند با شماست.
GIF و ویدیوهای دیگران را فقط وقتی در وبسایتتان نشان دهید که embed دارند، از طریق همین نشانیها و با نام کسی که آن را به اشتراک گذاشته. اگر چیزی دیگر در دسترس نیست، دیگر نشانش ندهید. فایلها را در مجموعهٔ خودتان کپی نکنید.