tellmelotellmelo.
شناسنامهٔ ناشرحریم خصوصیشرایط استفادهگزارش نقض حق نشرتماسAPIبرنامه‌ها

API

این یک ترجمه است. نسخهٔ آلمانی معتبر است. هر جا این متن با آن فرق داشته باشد، متن آلمانی ملاک است. زبان را می‌توانید پایین صفحه عوض کنید.

شروع

  • نمای کلی
  • شروع سریع
  • امتحانش کنید
  • کلید شما
  • یک کلید چه کاری می‌تواند بکند

مبانی

  • درخواست‌ها و پاسخ‌ها
  • صفحه‌ها
  • فقط چیزهای تازه
  • سقف‌ها
  • سرآیندها
  • وقتی چیزی کار نمی‌کند
  • نسخه‌ها

نقطه‌های پایانی

  • نقطه‌های پایانی
  • راه ورود
    • GET /
  • پست‌ها
    • GET /posts
    • GET /posts/{id}
    • POST /posts
    • DELETE /posts/{id}
  • پاسخ‌ها
    • GET /posts/{id}/replies
    • POST /posts/{id}/replies
  • نظرسنجی‌ها
    • POST /posts/{id}/vote
  • پروفایل‌ها
    • GET /profiles/{handle}
    • GET /profiles/{handle}/posts
  • گروه‌ها
    • GET /communities
    • GET /communities/{id}
    • GET /communities/{id}/posts
  • کاوش
    • GET /tags
    • GET /search
    • GET /emojis
  • حساب شما
    • GET /me
    • GET /feed
  • اعلان‌ها
    • GET /notifications
    • POST /notifications/read
  • پیام‌ها
    • GET /conversations
    • GET /conversations/{with}/messages
    • POST /conversations/{with}/messages
    • POST /conversations/{with}/read
  • رابطه‌ها
    • POST /relations

اشیا

  • اشیا
  • Service
  • RateLimit
  • Post
  • Reply
  • Counts
  • Media
  • Poll
  • PollOption
  • ProfileBrief
  • Profile
  • CommunityBrief
  • Community
  • Tag
  • SearchResult
  • Emoji
  • Notification
  • Actor
  • Conversation
  • Message
  • Created
  • Ok

بیشتر

  • توضیح ماشین‌خوان
  • آنچه از شما انتظار داریم
فهرست مطالب

شروع

  • نمای کلی
  • شروع سریع
  • امتحانش کنید
  • کلید شما
  • یک کلید چه کاری می‌تواند بکند

مبانی

  • درخواست‌ها و پاسخ‌ها
  • صفحه‌ها
  • فقط چیزهای تازه
  • سقف‌ها
  • سرآیندها
  • وقتی چیزی کار نمی‌کند
  • نسخه‌ها

نقطه‌های پایانی

  • نقطه‌های پایانی
  • راه ورود
    • GET /
  • پست‌ها
    • GET /posts
    • GET /posts/{id}
    • POST /posts
    • DELETE /posts/{id}
  • پاسخ‌ها
    • GET /posts/{id}/replies
    • POST /posts/{id}/replies
  • نظرسنجی‌ها
    • POST /posts/{id}/vote
  • پروفایل‌ها
    • GET /profiles/{handle}
    • GET /profiles/{handle}/posts
  • گروه‌ها
    • GET /communities
    • GET /communities/{id}
    • GET /communities/{id}/posts
  • کاوش
    • GET /tags
    • GET /search
    • GET /emojis
  • حساب شما
    • GET /me
    • GET /feed
  • اعلان‌ها
    • GET /notifications
    • POST /notifications/read
  • پیام‌ها
    • GET /conversations
    • GET /conversations/{with}/messages
    • POST /conversations/{with}/messages
    • POST /conversations/{with}/read
  • رابطه‌ها
    • POST /relations

اشیا

  • اشیا
  • Service
  • RateLimit
  • Post
  • Reply
  • Counts
  • Media
  • Poll
  • PollOption
  • ProfileBrief
  • Profile
  • CommunityBrief
  • Community
  • Tag
  • SearchResult
  • Emoji
  • Notification
  • Actor
  • Conversation
  • Message
  • Created
  • Ok

بیشتر

  • توضیح ماشین‌خوان
  • آنچه از شما انتظار داریم

نمای کلی

نسخهٔ ۲ به برنامه‌های خودتان اجازه می‌دهد با tellmelo حرف بزنند: یک کلید در هر درخواست، پاسخ JSON، و همهٔ فهرست‌ها یکسان صفحه‌بندی می‌شوند. همان قوانین برنامه برقرار است.

  • همهٔ مسیرها با /api/v2 در نشانی این سرور شروع می‌شوند.
  • درخواست‌ها و پاسخ‌ها JSON با UTF-8 هستند. نام فیلدها، کدها و مقدارها انگلیسی‌اند و انگلیسی می‌مانند.
  • کلید به‌جای حساب شما عمل می‌کند: آنچه در برنامه نمی‌توانید ببینید، آن هم نمی‌تواند بخواند.
https://tellmelo.com/api/v2

شروع سریع

  1. در «تنظیمات ← برنامه و داده‌ها ← API» کلیدی بسازید و کپی‌اش کنید. فقط یک بار نشان داده می‌شود.
  2. با آن ریشه را فراخوانی کنید. پاسخ، نسخه، اختیارات کلید و درخواست‌های باقی‌ماندهٔ این دقیقه را نشان می‌دهد.
  3. همهٔ مسیرها یکسان کار می‌کنند: کلید در سرآیند، پاسخ JSON، و برای فهرست‌ها items و next.
curl -H "Authorization: Bearer tm_key_…" https://tellmelo.com/api/v2
{
  "name": "tellmelo",
  "version": "2.9",
  "scope": "read write",
  "rateLimit": {
    "limit": 120,
    "remaining": 117
  },
  "docs": "/legal/api",
  "spec": "/api/v2/openapi.json"
}

بعدی: /me برای پروفایلتان، /posts برای پست‌های عمومی، /feed برای فیدتان.

امتحانش کنید

کاری انتخاب کنید، فیلدها را پر کنید و درخواست را کپی کنید یا از همین‌جا بفرستید. نوشتن ابتدا می‌پرسد. کد کلید را از TELLMELO_KEY می‌خواند.

read نسخهٔ API و نام این سرور.

curl \
  -H "Authorization: Bearer $TELLMELO_KEY" \
  "https://tellmelo.com/api/v2"

کلید شما

یک کلید برای هر حساب. با tm_key_ شروع می‌شود و فقط یک بار نشان داده می‌شود. گمش کردید؟ کلید تازه‌ای بسازید؛ قبلی از کار می‌افتد.

آن را در «تنظیمات ← برنامه و داده‌ها ← API» می‌سازید. در سرآیند درخواست فرستاده می‌شود:

curl -H "Authorization: Bearer tm_key_…" \
  https://tellmelo.com/api/v2/posts

یا اگر راحت‌تر است، در یک سرآیند جداگانه:

curl -H "X-Tellmelo-Key: tm_key_…" https://tellmelo.com/api/v2

نه در نشانی: آنجا در گزارش‌ها و تاریخچهٔ مرورگر می‌ماند.

همان کلید تصویرها را هم بارگیری می‌کند: هر url به /api/media اشاره می‌کند؛ آنجا هم کلید را در سرآیند بفرستید.

curl -H "Authorization: Bearer tm_key_…" \
  -o picture.webp "https://tellmelo.com/api/media?id=…"

یک کلید چه کاری می‌تواند بکند

هر کلید یکی از دو اختیار را دارد، و هر مسیر در زیر می‌گوید به کدام نیاز دارد:

  • read: خواندن. پست‌ها، پروفایل‌ها، گروه‌ها و برچسب‌های عمومی، به‌علاوهٔ فید، اعلان‌ها و پیام‌های شما.
  • write: انجام دادن. انتشار، پاسخ، رأی، ارسال پیام، دنبال کردن، پیوستن، مسدود کردن، علامت زدن اعلان‌ها به‌عنوان خوانده‌شده.

آنچه هیچ کلیدی نمی‌تواند

هیچ کلیدی به رمز عبور، نشانی ایمیل، نوع حساب، مکان، نقش، حذف، نشست‌ها، دستگاه‌های اعلان یا کلیدهای دیگر نمی‌رسد، و نه به مدیریت یا ادارهٔ گروه. آنچه رمز عبور از آن محافظت می‌کند، هیچ کلیدی نمی‌تواند.

درخواست‌ها و پاسخ‌ها

  • همه‌جا JSON. هر پاسخ application/json با UTF-8 است، از جمله خطاها. فقط تصویرها به‌صورت تصویر می‌آیند.
  • آنچه می‌فرستید. یک POST فیلدهایش را به‌صورت JSON در بدنه می‌برد. اگر فیلدی در نشانی هم باشد، بدنه برنده است.
  • زمان‌ها میلی‌ثانیه از ۱ ژانویهٔ ۱۹۷۰ به وقت UTC هستند.
  • شناسه‌ها رشته‌اند. فقط به‌صورت کامل مقایسه‌شان کنید.
  • هر فیلد همیشه هست. آنچه کم است null است؛ فهرست‌ها ممکن است خالی باشند.
  • متن‌ها ساده‌اند، دقیقاً همان‌طور که نوشته شده‌اند. #tags، @names و پیوندها همان‌طور می‌مانند، و ایموجی‌های اختصاصی سرور هم به‌صورت :name:؛ تصویرهایشان در /emojis آمده‌اند.
  • تصویرها نشانی‌های نسبی‌اند، /api/media?id=…. بدون کلید در سرآیند 401 می‌گیرید.

صفحه‌ها

هر فهرست limit و cursor می‌گیرد و با items و next پاسخ می‌دهد. next را به‌عنوان cursor پس بفرستید تا صفحهٔ بعد را بگیرید؛ وقتی next خالی است، تمام است. نشانگر مبهم است: آن را تجزیه نکنید، خودتان نسازید.

{ "items": [ … ], "next": "MTc1ODYyNDAwMDAwMDo1ZjBjMmE5ZS04ZDQx" }

curl -H "Authorization: Bearer tm_key_…" \
  "https://tellmelo.com/api/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 پاسخ می‌دهد.

سرآیندها

جز کلید، هیچ سرآیندی لازم نیست.

آنچه می‌فرستید

سرآیندمعنا
Authorizationکلید را می‌برد: Bearer tm_key_…. راه معمول.
X-Tellmelo-Keyکلید، به‌جای Authorization.
Content-Typeapplication/json، برای درخواستی با بدنه.
If-None-MatchETag آخرین پاسخ. اگر از آن زمان چیزی تغییر نکرده باشد، پاسخ 304 بدون بدنه است.

آنچه برمی‌گردد

سرآیندمعنا
ETagاثر انگشت این پاسخ (W/). آن را به‌عنوان If-None-Match پس بفرستید.
X-RateLimit-Limitاین کلید در هر دقیقه چند درخواست می‌تواند بدهد.
X-RateLimit-Remainingچند تا از آن‌ها در دقیقهٔ جاری مانده است.
X-RateLimit-Resetدقیقهٔ بعد کی شروع می‌شود، بر حسب ثانیه از ۱۹۷۰ به وقت UTC.
X-Tellmelo-Scopeاین کلید چه می‌تواند بکند: read یا read write.
Retry-Afterهمراه 429: چند ثانیه پیش از پرسیدن دوباره صبر کنید.
WWW-Authenticateدر 401 بدون کلید: Bearer.
Cache-Controlno-store: هیچ پراکسی‌ای نباید پاسخ را ذخیره کند. همچنان می‌توانید با ETag بررسی‌اش کنید.

وقتی چیزی کار نمی‌کند

خطاها به‌صورت 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حساب شما اجازهٔ این کار را ندارد، مثلاً به‌خاطر اختیار پس‌گرفته‌شده یا مسدودی.
404unknown_pathچنین مسیری نیست، یا با این روش نیست.
404not_foundپیدا نشد، یا اجازهٔ دیدنش را ندارید.
409conflictبا چیزی که از قبل هست برخورد دارد، مثلاً نامی که گرفته شده.
413too_largeبرای این سرور خیلی بزرگ است.
422unprocessableخواندنی است، اما به این شکل ممکن نیست.
429rate_limitedدرخواست‌ها زیادند. اتفاقی نیفتاد؛ صبر کنید و دوباره تلاش کنید.
500internal_errorدر سرور مشکلی پیش آمد.

نسخه‌ها

نسخه در مسیر آمده است. تا وقتی v2 نوشته شده، مسیرها و فیلدها همان می‌مانند؛ فقط چیزهای تازه اضافه می‌شوند.

افزوده‌ها عدد دوم را بالا می‌برند. هر مسیر می‌گوید از کی وجود دارد.

/api/v1/ دیگر نیست: مسیرهای قدیمی 410 پاسخ می‌دهند و راه تازه را در بدنه نام می‌برند.

نقطه‌های پایانی

همهٔ مسیرها در یک نگاه، سپس هر کدام با مثال.

مسیراختیاربرای چه
راه ورود
GET/api/v2readنسخهٔ API و نام این سرور.
پست‌ها
GET/api/v2/postsreadپست‌های عمومی، تازه‌ترین اول.
GET/api/v2/posts/{id}readیک پست، با id آن.
POST/api/v2/postswriteانتشار یک پست.
DELETE/api/v2/posts/{id}writeحذف یکی از پست‌های خودتان.
پاسخ‌ها
GET/api/v2/posts/{id}/repliesreadپاسخ‌های یک پست، بدون حساب‌های مسدود.
POST/api/v2/posts/{id}/replieswriteپاسخ به یک پست.
نظرسنجی‌ها
POST/api/v2/posts/{id}/votewriteشرکت در نظرسنجی.
پروفایل‌ها
GET/api/v2/profiles/{handle}readیک پروفایل، با نام کوتاهش.
GET/api/v2/profiles/{handle}/postsreadپست‌های عمومی یک پروفایل، تازه‌ترین اول.
گروه‌ها
GET/api/v2/communitiesreadگروه‌های باز این سرور.
GET/api/v2/communities/{id}readیک گروه، با id آن.
GET/api/v2/communities/{id}/postsreadپست‌های عمومی یک گروه، تازه‌ترین اول.
کاوش
GET/api/v2/tagsreadبرچسب‌هایی که اکنون در جریان‌اند.
GET/api/v2/searchreadجست‌وجو در پست‌ها، نام‌ها، نام‌های کوتاه و برچسب‌ها.
GET/api/v2/emojisreadایموجی‌های اختصاصی سرور، با نشانی تصویرهایشان.
حساب شما
GET/api/v2/mereadپروفایل خودتان، با idای که مسیرهای دیگر انتظار دارند.
GET/api/v2/feedreadفید خودتان، همان‌طور که برنامه آن را می‌چیند.
اعلان‌ها
GET/api/v2/notificationsreadاعلان‌های شما، تازه‌ترین اول.
POST/api/v2/notifications/readwriteعلامت‌گذاری اعلان‌ها به‌عنوان خوانده‌شده.
پیام‌ها
GET/api/v2/conversationsreadصندوق شما: یک ردیف برای هر گفت‌وگو، تازه‌ترین اول.
GET/api/v2/conversations/{with}/messagesreadپیام‌های یک گفت‌وگو، تازه‌ترین اول.
POST/api/v2/conversations/{with}/messageswriteارسال پیام در یک گفت‌وگو.
POST/api/v2/conversations/{with}/readwriteعلامت زدن همهٔ پیام‌های یک گفت‌وگو به‌عنوان خوانده‌شده.
رابطه‌ها
POST/api/v2/relationswriteپسندیدن، ذخیره، بازنشر، دنبال کردن، پیوستن، مسدود کردن، بی‌صدا کردن، بسته به kind.

راه ورود

اولین درخواست هر برنامه: کلید کار می‌کند، و چه می‌تواند بکند؟

GET/api/v2

نسخهٔ API و نام این سرور.

  • اختیار read
  • با ETag
  • از v2.0

بدون اسلش در پایان: /api/v2/ با 308 به /api/v2 می‌رود، و همهٔ برنامه‌ها دنبالش نمی‌روند.

درخواست نمونه

curl \
  -H "Authorization: Bearer tm_key_…" \
  "https://tellmelo.com/api/v2"

پاسخ

با یک Service پاسخ می‌دهد.

مثال
{
  "name": "tellmelo",
  "version": "2.9",
  "scope": "read write",
  "rateLimit": {
    "limit": 120,
    "remaining": 117
  },
  "docs": "/legal/api",
  "spec": "/api/v2/openapi.json"
}

وضعیت‌های ممکن: 200304401429

پست‌ها

خواندن پست‌های عمومی، انتشار پست‌های خودتان و حذف دوباره‌شان.

GET/api/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://tellmelo.com/api/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"
        }
      ],
      "poll": {
        "options": [
          {
            "text": "Lavender",
            "votes": 12
          },
          {
            "text": "Sunflowers",
            "votes": 7
          },
          {
            "text": "Clover",
            "votes": 3
          }
        ],
        "total": 22,
        "multiple": false,
        "endsAt": 1758710400000,
        "running": true,
        "resultsVisible": true,
        "myVotes": [
          0
        ]
      },
      "quotes": null,
      "continues": null,
      "counts": {
        "replies": 4,
        "likes": 31,
        "reposts": 2
      },
      "pinned": false,
      "createdAt": 1758624000000
    }
  ],
  "next": "MTc1ODYyNDAwMDAwMDo1ZjBjMmE5ZS04ZDQx"
}

وضعیت‌های ممکن: 200304401429

GET/api/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://tellmelo.com/api/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"
    }
  ],
  "poll": {
    "options": [
      {
        "text": "Lavender",
        "votes": 12
      },
      {
        "text": "Sunflowers",
        "votes": 7
      },
      {
        "text": "Clover",
        "votes": 3
      }
    ],
    "total": 22,
    "multiple": false,
    "endsAt": 1758710400000,
    "running": true,
    "resultsVisible": true,
    "myVotes": [
      0
    ]
  },
  "quotes": null,
  "continues": null,
  "counts": {
    "replies": 4,
    "likes": 31,
    "reposts": 2
  },
  "pinned": false,
  "createdAt": 1758624000000
}

وضعیت‌های ممکن: 200304400401404429

POST/api/v2/posts

انتشار یک پست.

  • اختیار write
  • از v2.0

پست به متن یا نظرسنجی نیاز دارد. طول، گزینه‌های نظرسنجی و آهنگ را سرور تعیین می‌کند؛ فراتر از آن 400 یا 429 می‌گیرید.

هنوز نمی‌توان از طریق API تصویر پیوست کرد، فقط در برنامه.

پارامترها

نامنوعمعنا
textدر بدنهstringاختیاریمتن پست، پاسخ یا پیام.
communityدر بدنهstringاختیاریid گروهی که پست به آن می‌رود. بدون آن، بیرون از همهٔ گروه‌ها.
quotesدر بدنهstringاختیاریid پستی که این پست نقل می‌کند.
pollدر بدنه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://tellmelo.com/api/v2/posts"

پاسخ

با یک Created پاسخ می‌دهد.

مثال
{
  "id": "5f0c2a9e-8d41-4b7a-9c3e-2e61d0f4a7b1",
  "scheduledFor": null,
  "deleteAt": null
}

وضعیت‌های ممکن: 200400401403429

DELETE/api/v2/posts/{id}

حذف یکی از پست‌های خودتان.

  • اختیار write
  • از v2.0

پارامترها

نامنوعمعنا
idدر مسیرstringاجباریid یک پست.

درخواست نمونه

curl -X DELETE \
  -H "Authorization: Bearer tm_key_…" \
  "https://tellmelo.com/api/v2/posts/5f0c2a9e-8d41-4b7a-9c3e-2e61d0f4a7b1"

پاسخ

با یک Ok پاسخ می‌دهد.

مثال
{
  "ok": true
}

وضعیت‌های ممکن: 200400401403404429

پاسخ‌ها

پاسخ‌های زیر یک پست، به‌صورت فهرست با parentId.

GET/api/v2/posts/{id}/replies

پاسخ‌های یک پست، بدون حساب‌های مسدود.

  • اختیار read
  • صفحه‌بندی‌پذیر
  • با ETag
  • از v2.0

فهرست تخت و به ترتیب نوشتن است؛ parentId آن را به درخت تبدیل می‌کند. هر صفحه همیشه رشته‌های کامل دارد. پاسخ‌های حساب‌های مسدود حذف می‌شوند.

پارامترها

نامنوعمعنا
idدر مسیرstringاجباریid یک پست.
limitدر پرس‌وجوintegerاختیاریشمار ورودی در هر صفحه: پیش‌فرض ۲۰، حداکثر ۵۰.
cursorدر پرس‌وجوstringاختیاریمقدار next پاسخ قبلی. بدون آن، از آغاز.

درخواست نمونه

curl \
  -H "Authorization: Bearer tm_key_…" \
  "https://tellmelo.com/api/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,
      "createdAt": 1758624600000,
      "postId": "5f0c2a9e-8d41-4b7a-9c3e-2e61d0f4a7b1",
      "parentId": null
    }
  ],
  "next": "MTc1ODYyNDAwMDAwMDo1ZjBjMmE5ZS04ZDQx"
}

وضعیت‌های ممکن: 200304400401404429

POST/api/v2/posts/{id}/replies

پاسخ به یک پست.

  • اختیار write
  • از v2.0

در حالت آهسته، هر نفر هر ۱۰ دقیقه یک پاسخ، وگرنه 429. نویسنده و حساب‌هایی که دنبال می‌کند مستثنا هستند.

پارامترها

نامنوعمعنا
idدر مسیرstringاجباریid یک پست.
textدر بدنهstringاجباریمتن پست، پاسخ یا پیام.
parentIdدر بدنهstringاختیاریid پاسخی که این پاسخ به آن است. بدون آن، مستقیم به پست.

درخواست نمونه

curl -X POST \
  -H "Authorization: Bearer tm_key_…" \
  -H "Content-Type: application/json" \
  -d '{"text":"Same here, the lavender is full of them."}' \
  "https://tellmelo.com/api/v2/posts/5f0c2a9e-8d41-4b7a-9c3e-2e61d0f4a7b1/replies"

پاسخ

با یک Created پاسخ می‌دهد.

مثال
{
  "id": "5f0c2a9e-8d41-4b7a-9c3e-2e61d0f4a7b1",
  "scheduledFor": null,
  "deleteAt": null
}

وضعیت‌های ممکن: 200400401403404429

نظرسنجی‌ها

نظرسنجی پستی است که poll آن تنظیم شده است. رأی دادن مسیر خودش را دارد.

POST/api/v2/posts/{id}/vote

شرکت در نظرسنجی.

  • اختیار write
  • از v2.0

رأی‌های هر گزینه تا وقتی رأی ندهید یا نظرسنجی تمام نشود 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://tellmelo.com/api/v2/posts/5f0c2a9e-8d41-4b7a-9c3e-2e61d0f4a7b1/vote"

پاسخ

با یک Ok پاسخ می‌دهد.

مثال
{
  "ok": true
}

وضعیت‌های ممکن: 200400401403404429

پروفایل‌ها

پروفایل‌های عمومی با نام کوتاهشان، و آنچه منتشر کرده‌اند.

GET/api/v2/profiles/{handle}

یک پروفایل، با نام کوتاهش.

  • اختیار read
  • با ETag
  • از v2.0

پارامترها

نامنوعمعنا
handleدر مسیرstringاجبارینام کوتاه یک پروفایل.

درخواست نمونه

curl \
  -H "Authorization: Bearer tm_key_…" \
  "https://tellmelo.com/api/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/api/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://tellmelo.com/api/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"
        }
      ],
      "poll": {
        "options": [
          {
            "text": "Lavender",
            "votes": 12
          },
          {
            "text": "Sunflowers",
            "votes": 7
          },
          {
            "text": "Clover",
            "votes": 3
          }
        ],
        "total": 22,
        "multiple": false,
        "endsAt": 1758710400000,
        "running": true,
        "resultsVisible": true,
        "myVotes": [
          0
        ]
      },
      "quotes": null,
      "continues": null,
      "counts": {
        "replies": 4,
        "likes": 31,
        "reposts": 2
      },
      "pinned": false,
      "createdAt": 1758624000000
    }
  ],
  "next": "MTc1ODYyNDAwMDAwMDo1ZjBjMmE5ZS04ZDQx"
}

وضعیت‌های ممکن: 200304400401404429

گروه‌ها

گروه‌های باز و پست‌هایشان.

GET/api/v2/communities

گروه‌های باز این سرور.

  • اختیار read
  • با ETag
  • از v2.0

بر اساس شمار اعضا مرتب شده و صفحه‌بندی نمی‌شود؛ next همیشه null است.

پارامترها

نامنوعمعنا
limitدر پرس‌وجوintegerاختیاریشمار ورودی در هر صفحه: پیش‌فرض ۲۰، حداکثر ۵۰.

درخواست نمونه

curl \
  -H "Authorization: Bearer tm_key_…" \
  "https://tellmelo.com/api/v2/communities?limit=20"

پاسخ

با یک صفحه از Community پاسخ می‌دهد، به‌صورت `items` و `next`.

مثال
{
  "items": [
    {
      "id": "c81d4e2a-0f3b-4a6c-9e57-1d2b3c4a5f60",
      "name": "Urban Gardening",
      "description": "Balconies, allotments, rooftops: whatever grows.",
      "tags": [
        "garden",
        "bees"
      ],
      "members": 312,
      "joinPolicy": "open",
      "visibility": "open"
    }
  ],
  "next": null
}

وضعیت‌های ممکن: 200304401429

GET/api/v2/communities/{id}

یک گروه، با id آن.

  • اختیار read
  • با ETag
  • از v2.0

پارامترها

نامنوعمعنا
idدر مسیرstringاجباریid یک گروه.

درخواست نمونه

curl \
  -H "Authorization: Bearer tm_key_…" \
  "https://tellmelo.com/api/v2/communities/c81d4e2a-0f3b-4a6c-9e57-1d2b3c4a5f60"

پاسخ

با یک Community پاسخ می‌دهد.

مثال
{
  "id": "c81d4e2a-0f3b-4a6c-9e57-1d2b3c4a5f60",
  "name": "Urban Gardening",
  "description": "Balconies, allotments, rooftops: whatever grows.",
  "tags": [
    "garden",
    "bees"
  ],
  "members": 312,
  "joinPolicy": "open",
  "visibility": "open"
}

وضعیت‌های ممکن: 200304400401404429

GET/api/v2/communities/{id}/posts

پست‌های عمومی یک گروه، تازه‌ترین اول.

  • اختیار read
  • صفحه‌بندی‌پذیر
  • با ETag
  • از v2.0

در مسیرهای عمومی، counts.likes و counts.reposts همیشه 0 و pinned همیشه false است.

پارامترها

نامنوعمعنا
idدر مسیرstringاجباریid یک گروه.
limitدر پرس‌وجوintegerاختیاریشمار ورودی در هر صفحه: پیش‌فرض ۲۰، حداکثر ۵۰.
cursorدر پرس‌وجوstringاختیاریمقدار next پاسخ قبلی. بدون آن، از آغاز.

درخواست نمونه

curl \
  -H "Authorization: Bearer tm_key_…" \
  "https://tellmelo.com/api/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"
        }
      ],
      "poll": {
        "options": [
          {
            "text": "Lavender",
            "votes": 12
          },
          {
            "text": "Sunflowers",
            "votes": 7
          },
          {
            "text": "Clover",
            "votes": 3
          }
        ],
        "total": 22,
        "multiple": false,
        "endsAt": 1758710400000,
        "running": true,
        "resultsVisible": true,
        "myVotes": [
          0
        ]
      },
      "quotes": null,
      "continues": null,
      "counts": {
        "replies": 4,
        "likes": 31,
        "reposts": 2
      },
      "pinned": false,
      "createdAt": 1758624000000
    }
  ],
  "next": "MTc1ODYyNDAwMDAwMDo1ZjBjMmE5ZS04ZDQx"
}

وضعیت‌های ممکن: 200304400401404429

کاوش

روندها، جست‌وجو و ایموجی‌های اختصاصی سرور.

GET/api/v2/tags

برچسب‌هایی که اکنون در جریان‌اند.

  • اختیار read
  • با ETag
  • از v2.0

حداکثر ۱۰ برچسب روز بر اساس امتیاز: هر استفاده ۱ حساب می‌شود و هر ۳ روز نصف می‌شود، هر حساب در روز حداکثر ۳ حساب می‌شود. posts امتیاز گردشده است. limit فقط فهرست را کوتاه می‌کند. برچسب‌هایی که تیم برجسته می‌کند ممکن است بالاتر بایستند.

پارامترها

نامنوعمعنا
limitدر پرس‌وجوintegerاختیاریشمار ورودی در هر صفحه: پیش‌فرض ۲۰، حداکثر ۵۰.

درخواست نمونه

curl \
  -H "Authorization: Bearer tm_key_…" \
  "https://tellmelo.com/api/v2/tags?limit=10"

پاسخ

با یک صفحه از Tag پاسخ می‌دهد، به‌صورت `items` و `next`.

مثال
{
  "items": [
    {
      "tag": "garden",
      "posts": 58
    }
  ],
  "next": null
}

وضعیت‌های ممکن: 200304401429

GET/api/v2/search

جست‌وجو در پست‌ها، نام‌ها، نام‌های کوتاه و برچسب‌ها.

  • اختیار read
  • با ETag
  • از v2.0

فقط محتوای عمومی را جست‌وجو می‌کند: پست‌های بیرون از گروه‌ها، پروفایل‌ها و برچسب‌ها. limit برای هر نوع اعمال می‌شود.

پارامترها

نامنوعمعنا
qدر پرس‌وجوstringاجباریواژه‌هایی که دنبالشان هستید.
typeدر پرس‌وجوstringاختیاریکدام نوع نتیجه. بدون آن، همهٔ انواع.allpostsprofilestags
limitدر پرس‌وجوintegerاختیاریشمار ورودی در هر صفحه: پیش‌فرض ۲۰، حداکثر ۵۰.

درخواست نمونه

curl \
  -H "Authorization: Bearer tm_key_…" \
  "https://tellmelo.com/api/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"
        }
      ],
      "poll": {
        "options": [
          {
            "text": "Lavender",
            "votes": 12
          },
          {
            "text": "Sunflowers",
            "votes": 7
          },
          {
            "text": "Clover",
            "votes": 3
          }
        ],
        "total": 22,
        "multiple": false,
        "endsAt": 1758710400000,
        "running": true,
        "resultsVisible": true,
        "myVotes": [
          0
        ]
      },
      "quotes": null,
      "continues": null,
      "counts": {
        "replies": 4,
        "likes": 31,
        "reposts": 2
      },
      "pinned": false,
      "createdAt": 1758624000000
    }
  ],
  "profiles": [
    {
      "id": "a3e1f7c2-54b9-4d0e-8f16-7b2c9d4e1a05",
      "handle": "mara",
      "name": "Mara 🌻",
      "verified": true,
      "accountKind": "person"
    }
  ],
  "tags": [
    {
      "tag": "garden",
      "posts": 58
    }
  ]
}

وضعیت‌های ممکن: 200304400401429

GET/api/v2/emojis

ایموجی‌های اختصاصی سرور، با نشانی تصویرهایشان.

  • اختیار read
  • با ETag
  • از v2.1

در متن‌ها ایموجی به‌صورت :name: می‌آید. آن را با تصویر این فهرست جایگزین کنید؛ نام‌های ناشناخته متن می‌مانند.

درخواست نمونه

curl \
  -H "Authorization: Bearer tm_key_…" \
  "https://tellmelo.com/api/v2/emojis"

پاسخ

با یک صفحه از Emoji پاسخ می‌دهد، به‌صورت `items` و `next`.

مثال
{
  "items": [
    {
      "name": "tellmelo",
      "url": "/api/media?id=e1f2a3b4-c5d6-4e7f-8a9b-0c1d2e3f4a5b"
    }
  ],
  "next": null
}

وضعیت‌های ممکن: 200304401429

حساب شما

پروفایل و فید شما.

GET/api/v2/me

پروفایل خودتان، با idای که مسیرهای دیگر انتظار دارند.

  • اختیار read
  • با ETag
  • از v2.0

درخواست نمونه

curl \
  -H "Authorization: Bearer tm_key_…" \
  "https://tellmelo.com/api/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/api/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://tellmelo.com/api/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"
        }
      ],
      "poll": {
        "options": [
          {
            "text": "Lavender",
            "votes": 12
          },
          {
            "text": "Sunflowers",
            "votes": 7
          },
          {
            "text": "Clover",
            "votes": 3
          }
        ],
        "total": 22,
        "multiple": false,
        "endsAt": 1758710400000,
        "running": true,
        "resultsVisible": true,
        "myVotes": [
          0
        ]
      },
      "quotes": null,
      "continues": null,
      "counts": {
        "replies": 4,
        "likes": 31,
        "reposts": 2
      },
      "pinned": false,
      "createdAt": 1758624000000
    }
  ],
  "next": "MTc1ODYyNDAwMDAwMDo1ZjBjMmE5ZS04ZDQx"
}

وضعیت‌های ممکن: 200400401429

اعلان‌ها

آنچه پیرامون حساب شما اتفاق افتاد، صفحه به صفحه.

GET/api/v2/notifications

اعلان‌های شما، تازه‌ترین اول.

  • اختیار read
  • صفحه‌بندی‌پذیر
  • با ETag
  • از v2.0

خواندن چیزی را خوانده‌شده علامت نمی‌زند؛ POST /notifications/read این کار را می‌کند. رویدادهای هم‌نوع روی یک پست یک ردیف مشترک دارند؛ more می‌گوید چند تا.

پارامترها

نامنوعمعنا
limitدر پرس‌وجوintegerاختیاریشمار ورودی در هر صفحه: پیش‌فرض ۲۰، حداکثر ۵۰.
cursorدر پرس‌وجوstringاختیاریمقدار next پاسخ قبلی. بدون آن، از آغاز.

درخواست نمونه

curl \
  -H "Authorization: Bearer tm_key_…" \
  "https://tellmelo.com/api/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/api/v2/notifications/read

علامت‌گذاری اعلان‌ها به‌عنوان خوانده‌شده.

  • اختیار write
  • از v2.0

درخواست نمونه

curl -X POST \
  -H "Authorization: Bearer tm_key_…" \
  "https://tellmelo.com/api/v2/notifications/read"

پاسخ

با یک Ok پاسخ می‌دهد.

مثال
{
  "ok": true
}

وضعیت‌های ممکن: 200401403429

پیام‌ها

صندوق و گفت‌وگوهای شما. هر گفت‌وگو به نام حساب طرف مقابل است.

GET/api/v2/conversations

صندوق شما: یک ردیف برای هر گفت‌وگو، تازه‌ترین اول.

  • اختیار read
  • صفحه‌بندی‌پذیر
  • با ETag
  • از v2.0

پارامترها

نامنوعمعنا
limitدر پرس‌وجوintegerاختیاریشمار ورودی در هر صفحه: پیش‌فرض ۲۰، حداکثر ۵۰.
cursorدر پرس‌وجوstringاختیاریمقدار next پاسخ قبلی. بدون آن، از آغاز.

درخواست نمونه

curl \
  -H "Authorization: Bearer tm_key_…" \
  "https://tellmelo.com/api/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/api/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://tellmelo.com/api/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/api/v2/conversations/{with}/messages

ارسال پیام در یک گفت‌وگو.

  • اختیار write
  • از v2.0

قوانین برنامه برقرار است: به کسی که شما را مسدود کرده نمی‌توان رسید، و تنظیمات طرف مقابل حساب می‌شود.

هنوز نمی‌توان از طریق 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://tellmelo.com/api/v2/conversations/a3e1f7c2-54b9-4d0e-8f16-7b2c9d4e1a05/messages"

پاسخ

با یک Ok پاسخ می‌دهد.

مثال
{
  "ok": true
}

وضعیت‌های ممکن: 200400401403404429

POST/api/v2/conversations/{with}/read

علامت زدن همهٔ پیام‌های یک گفت‌وگو به‌عنوان خوانده‌شده.

  • اختیار write
  • از v2.1

پارامترها

نامنوعمعنا
withدر مسیرstringاجباریid حساب طرف مقابل. گفت‌وگو id جداگانه ندارد.

درخواست نمونه

curl -X POST \
  -H "Authorization: Bearer tm_key_…" \
  "https://tellmelo.com/api/v2/conversations/a3e1f7c2-54b9-4d0e-8f16-7b2c9d4e1a05/read"

پاسخ

با یک Ok پاسخ می‌دهد.

مثال
{
  "ok": true
}

وضعیت‌های ممکن: 200400401403404429

رابطه‌ها

پسندیدن، ذخیره، بازنشر، دنبال کردن، پیوستن، مسدود کردن: یک مسیر، برقرار و برداشته با active.

POST/api/v2/relations

پسندیدن، ذخیره، بازنشر، دنبال کردن، پیوستن، مسدود کردن، بی‌صدا کردن، بسته به kind.

  • اختیار write
  • از v2.0

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://tellmelo.com/api/v2/relations"

پاسخ

با یک Ok پاسخ می‌دهد.

مثال
{
  "ok": true
}

وضعیت‌های ممکن: 200400401403429

اشیا

همهٔ اشیا، فیلد به فیلد. [] یعنی فهرست.

Service

پاسخ ریشه: چه کسی پاسخ می‌دهد، و این کلید چه می‌تواند بکند.

فیلدنوعمعنا
namestringهمیشه tellmelo.
versionstringنسخهٔ API، مثلاً 2.1.
scopestringاین کلید چه می‌تواند بکند: read یا read write.
rateLimitRateLimitسهمیهٔ این کلید.
docsstringاین مستندات کجاست، به‌صورت مسیری روی این سرور.
specstringتوضیح ماشین‌خوان کجاست.
مثال
{
  "name": "tellmelo",
  "version": "2.9",
  "scope": "read write",
  "rateLimit": {
    "limit": 120,
    "remaining": 117
  },
  "docs": "/legal/api",
  "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اینکه بالای پروفایل نویسنده‌اش سنجاق شده است یا نه.
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"
    }
  ],
  "poll": {
    "options": [
      {
        "text": "Lavender",
        "votes": 12
      },
      {
        "text": "Sunflowers",
        "votes": 7
      },
      {
        "text": "Clover",
        "votes": 3
      }
    ],
    "total": 22,
    "multiple": false,
    "endsAt": 1758710400000,
    "running": true,
    "resultsVisible": true,
    "myVotes": [
      0
    ]
  },
  "quotes": null,
  "continues": null,
  "counts": {
    "replies": 4,
    "likes": 31,
    "reposts": 2
  },
  "pinned": false,
  "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,
  "createdAt": 1758624600000,
  "postId": "5f0c2a9e-8d41-4b7a-9c3e-2e61d0f4a7b1",
  "parentId": null
}

Counts

یک پست چند پاسخ، پسند و بازنشر دارد.

فیلدنوعمعنا
repliesintegerپاسخ‌ها، همهٔ سطح‌ها با هم.
likesintegerپسندها.
repostsintegerبازنشرها.
مثال
{
  "replies": 4,
  "likes": 31,
  "reposts": 2
}

Media

تصویری از یک پست یا پیام.

فیلدنوعمعنا
urlstringنشانی تصویر، نسبت به این سرور. آن را با کلید در سرآیند بارگیری کنید.
مثال
{
  "url": "/api/media?id=b2d7e9f1-3c4a-4e8b-a1f0-6d5c4b3a2918"
}

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": 1758710400000,
  "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 — یک حساب خودکار، مثلاً بات.
مثال
{
  "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
}

CommunityBrief

گروهی که پست در آن نوشته شده است.

فیلدنوعمعنا
idstringشناسهٔ گروه.
namestringیا nullنامش.
مثال
{
  "id": "c81d4e2a-0f3b-4a6c-9e57-1d2b3c4a5f60",
  "name": "Urban Gardening"
}

Community

گروهی از این سرور.

فیلدنوعمعنا
idstringشناسهٔ گروه.
namestringنامش.
descriptionstringیا nullتوضیحات (null اگر نباشد).
tagsstring[]موضوع‌هایی که دربارهٔ آن‌هاست.
membersintegerچند عضو دارد.
joinPolicystringچطور می‌توان وارد شد.
  • open — هر کسی می‌تواند بپیوندد.
  • application — پیوستن به درخواستی نیاز دارد که گروه بپذیرد.
  • invite — فقط با دعوت.
visibilitystringاز طریق کلید همیشه open.
  • open — برای همه قابل مشاهده.
مثال
{
  "id": "c81d4e2a-0f3b-4a6c-9e57-1d2b3c4a5f60",
  "name": "Urban Gardening",
  "description": "Balconies, allotments, rooftops: whatever grows.",
  "tags": [
    "garden",
    "bees"
  ],
  "members": 312,
  "joinPolicy": "open",
  "visibility": "open"
}

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"
        }
      ],
      "poll": {
        "options": [
          {
            "text": "Lavender",
            "votes": 12
          },
          {
            "text": "Sunflowers",
            "votes": 7
          },
          {
            "text": "Clover",
            "votes": 3
          }
        ],
        "total": 22,
        "multiple": false,
        "endsAt": 1758710400000,
        "running": true,
        "resultsVisible": true,
        "myVotes": [
          0
        ]
      },
      "quotes": null,
      "continues": null,
      "counts": {
        "replies": 4,
        "likes": 31,
        "reposts": 2
      },
      "pinned": false,
      "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 — کسی پاسخ شما را پسندید.
  • repost — کسی پست شما را بازنشر کرد.
  • follow — کسی شما را دنبال می‌کند.
  • mention — کسی از شما نام برد.
  • group_mention — کسی از گروهی که اداره‌اش می‌کنید نام برد؛ text نام آن است.
  • message — کسی برایتان پیامی نوشت.
  • scheduled — یکی از پست‌های زمان‌بندی‌شدهٔ شما منتشر شد.
  • reminder — یادآوری‌ای دربارهٔ یک پست ذخیره‌شده سررسید شده است.
  • report — نتیجهٔ گزارشی که فرستاده‌اید.
  • moderation — تصمیمی دربارهٔ حساب شما: هشدار، محدودیت، اعتراض.
  • team — کار تازه برای تیم (فقط مالکان، مدیران و ناظران).
  • reward — پاداشی برای دعوت به‌زودی از دست می‌رود یا از دست رفته است.
  • gift — هدیه‌ای از تیم: یک اشتراک، یا جرقه برای شما یا برای گروهی که رهبری می‌کنید.
  • present — هدیه‌ای از یک عضو: جرقه یا زمان اشتراک؛ عضو همان actor است.
  • spark — جرقه‌ها به‌زودی تمام می‌شوند، یا گروهی که رهبری می‌کنید به سطحی رسیده یا آن را فقط برای مدتی نگه می‌دارد.
  • loyalty — دربارهٔ ریتم وفاداری: هفته‌ای فعال شمرده می‌شود یا یک روز کم دارد، پاداشی تازه است یا رو به محو شدن.
  • impact — پست‌های دوازده ساعت شما پس از یک روز چطور بودند، در یک اعلان.
  • discovery — دعوتی به برنامهٔ کشف، یا اینکه جایگاهی آنجا آغاز یا پایان می‌یابد.
  • group_post — پستی تازه در گروهی که زنگش برای آن به صدا درمی‌آید.
  • group_moderation — رهبری یک گروه یکی از پست‌های شما یا خودتان را از گروه برداشت.
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یا nullid پیامی که این پیام به آن پاسخ می‌دهد (اگر به هیچ پیامی پاسخ ندهد 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
}

Created

پاسخ نوشتنی که چیزی ساخت.

فیلدنوعمعنا
idstringشناسهٔ آنچه ساخته شد.
scheduledForintegerیا nullکی منتشر می‌شود، اگر انتشار زمان‌بندی شده باشد (وگرنه null).
deleteAtintegerیا nullکی خودش را حذف می‌کند، اگر تنظیم شده باشد (وگرنه null).
مثال
{
  "id": "5f0c2a9e-8d41-4b7a-9c3e-2e61d0f4a7b1",
  "scheduledFor": null,
  "deleteAt": null
}

Ok

پاسخ نوشتنی که چیزی برای پس دادن ندارد.

فیلدنوعمعنا
okbooleanهمیشه true.
مثال
{
  "ok": true
}

توضیح ماشین‌خوان

جدول پشت این صفحه به‌صورت OpenAPI در /api/v2/openapi.json در دسترس است.

https://tellmelo.com/api/v2/openapi.json

آنچه از شما انتظار داریم

همان قوانینی برقرار است که همه‌جا: بدون آزار، بدون هرزنامه، بدون محتوایی که حقش را ندارید. مسئولیت آنچه کلید شما منتشر می‌کند با شماست.

بازگشت به tellmelo