tellmelo.PengembangKe tellmelo
Pusat BantuanDukunganHukumPengembang

API

Memulai

  • Saya ingin …
  • Ringkasan
  • Mulai cepat
  • Coba
  • Kuncimu
  • Apa yang boleh dilakukan kunci
  • Bot

Dasar

  • Permintaan dan jawaban
  • Halaman
  • Hanya yang baru
  • Batas
  • Header
  • Saat sesuatu tidak berhasil
  • Versi

Endpoint

  • Endpoint
  • Jalan masuk
    • GET /
  • Postingan
    • 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
  • Balasan
    • 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}
  • Jajak pendapat
    • POST /posts/{id}/vote
  • Profil
    • 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
  • Grup
    • 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
  • Kanal
    • GET /communities/{id}/channels
    • GET /channels/{id}/messages
    • POST /channels/{id}/messages
    • POST /channels/{id}/read
    • DELETE /channel-messages/{id}
    • GET /communities/{id}/voice
  • Mengelola grup
    • 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}
  • Bot
    • GET /events
    • GET /events/stream
    • GET /me/commands
    • PUT /me/commands
    • POST /interactions/{id}/reply
    • POST /channels/{id}/voice
  • Jelajahi
    • GET /tags
    • GET /search
    • GET /emojis
  • GIF dan video
    • GET /media
    • GET /media/mine
    • GET /media/{id}
    • POST /media/uploads
    • PUT /media/uploads/{upload}
    • POST /media/{id}
    • DELETE /media/{id}
  • Akunmu
    • 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
  • Notifikasi
    • GET /notifications
    • POST /notifications/read
  • Pesan
    • 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}
  • Relasi
    • POST /relations
    • GET /profiles/{handle}/followers
    • GET /profiles/{handle}/following
    • GET /me/relations
  • Koleksi
    • GET /me/collections
    • POST /me/collections
    • PUT /me/collections/{id}
    • DELETE /me/collections/{id}
    • GET /me/collections/{id}/posts
    • POST /me/collections/{id}/posts
  • Hadiah
    • GET /partner/quota
    • GET /partner/gifts
    • POST /partner/gifts
    • GET /gift-drops
    • POST /gift-drops

Objek

  • Objek
  • Service
  • RateLimit
  • Post
  • Reply
  • ReplyVote
  • PlannedReply
  • ReplySettings
  • Counts
  • Media
  • Poll
  • PollOption
  • ProfileBrief
  • Profile
  • CommunityBrief
  • Community
  • Membership
  • Person
  • Channel
  • ChannelCategory
  • ChannelSymbol
  • ChannelMessage
  • Role
  • GroupMember
  • ChannelOverride
  • Bell
  • InviteLink
  • InvitePreview
  • InviteGroup
  • Joined
  • LogEntry
  • Ban
  • Until
  • Tag
  • SearchResult
  • Emoji
  • Notification
  • Actor
  • Conversation
  • Message
  • PlannedMessage
  • ScheduledPost
  • Collection
  • Event
  • EventSignups
  • EventSignup
  • Picture
  • EmojiPicture
  • OwnEmoji
  • GroupEmoji
  • BotEvent
  • BotCommand
  • VoiceSeat
  • Webhook
  • WebhookCreated
  • GroupBot
  • VoiceRoom
  • VoicePerson
  • GiftDrop
  • OwnGiftDrop
  • Quota
  • QuotaLook
  • QuotaGift
  • MediaItem
  • Embed
  • UploadStarted
  • UploadPiece
  • Created
  • DropCreated
  • Made
  • Ok

Lainnya

  • Deskripsi yang bisa dibaca mesin
  • GIF dan video di situs web lain
  • Masuk dengan tellmelo
  • Yang kami harapkan
Isi

Memulai

  • Saya ingin …
  • Ringkasan
  • Mulai cepat
  • Coba
  • Kuncimu
  • Apa yang boleh dilakukan kunci
  • Bot

Dasar

  • Permintaan dan jawaban
  • Halaman
  • Hanya yang baru
  • Batas
  • Header
  • Saat sesuatu tidak berhasil
  • Versi

Endpoint

  • Endpoint
  • Jalan masuk
    • GET /
  • Postingan
    • 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
  • Balasan
    • 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}
  • Jajak pendapat
    • POST /posts/{id}/vote
  • Profil
    • 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
  • Grup
    • 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
  • Kanal
    • GET /communities/{id}/channels
    • GET /channels/{id}/messages
    • POST /channels/{id}/messages
    • POST /channels/{id}/read
    • DELETE /channel-messages/{id}
    • GET /communities/{id}/voice
  • Mengelola grup
    • 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}
  • Bot
    • GET /events
    • GET /events/stream
    • GET /me/commands
    • PUT /me/commands
    • POST /interactions/{id}/reply
    • POST /channels/{id}/voice
  • Jelajahi
    • GET /tags
    • GET /search
    • GET /emojis
  • GIF dan video
    • GET /media
    • GET /media/mine
    • GET /media/{id}
    • POST /media/uploads
    • PUT /media/uploads/{upload}
    • POST /media/{id}
    • DELETE /media/{id}
  • Akunmu
    • 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
  • Notifikasi
    • GET /notifications
    • POST /notifications/read
  • Pesan
    • 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}
  • Relasi
    • POST /relations
    • GET /profiles/{handle}/followers
    • GET /profiles/{handle}/following
    • GET /me/relations
  • Koleksi
    • GET /me/collections
    • POST /me/collections
    • PUT /me/collections/{id}
    • DELETE /me/collections/{id}
    • GET /me/collections/{id}/posts
    • POST /me/collections/{id}/posts
  • Hadiah
    • GET /partner/quota
    • GET /partner/gifts
    • POST /partner/gifts
    • GET /gift-drops
    • POST /gift-drops

Objek

  • Objek
  • Service
  • RateLimit
  • Post
  • Reply
  • ReplyVote
  • PlannedReply
  • ReplySettings
  • Counts
  • Media
  • Poll
  • PollOption
  • ProfileBrief
  • Profile
  • CommunityBrief
  • Community
  • Membership
  • Person
  • Channel
  • ChannelCategory
  • ChannelSymbol
  • ChannelMessage
  • Role
  • GroupMember
  • ChannelOverride
  • Bell
  • InviteLink
  • InvitePreview
  • InviteGroup
  • Joined
  • LogEntry
  • Ban
  • Until
  • Tag
  • SearchResult
  • Emoji
  • Notification
  • Actor
  • Conversation
  • Message
  • PlannedMessage
  • ScheduledPost
  • Collection
  • Event
  • EventSignups
  • EventSignup
  • Picture
  • EmojiPicture
  • OwnEmoji
  • GroupEmoji
  • BotEvent
  • BotCommand
  • VoiceSeat
  • Webhook
  • WebhookCreated
  • GroupBot
  • VoiceRoom
  • VoicePerson
  • GiftDrop
  • OwnGiftDrop
  • Quota
  • QuotaLook
  • QuotaGift
  • MediaItem
  • Embed
  • UploadStarted
  • UploadPiece
  • Created
  • DropCreated
  • Made
  • Ok

Lainnya

  • Deskripsi yang bisa dibaca mesin
  • GIF dan video di situs web lain
  • Masuk dengan tellmelo
  • Yang kami harapkan

Saya ingin …

Pilih rencanamu; di bawahnya hanya langkah-langkah untuk itu. Referensi lengkap ada di bawah.

  1. Buat bot di salah satu grupmu, di menu grup pada “Bot → Bot saya”, dengan gambar, nama, dan @nama. Tokennya hanya kamu lihat sekali.
  2. Bagikan tautan “Tambah bot” miliknya atau ajukan ke direktori bot, tempat bot muncul setelah diperiksa tim; siapa pun yang boleh mengelola peran di grup menerimanya dengan izin yang ia setujui.
  3. Terima apa yang terjadi di grupnya sebagai aliran (GET /v2/events/stream) atau di alamatmu, dan tulis dengan POST /v2/channels/{id}/messages. Selengkapnya di Bot.
  4. Daftarkan perintah (PUT /v2/me/commands) dan jawab dengan kartu dan tombol; bot memutar musik dengan tempat di kanal suara (POST /v2/channels/{id}/voice).

Ringkasan

v2 memungkinkan programmu sendiri berbicara dengan tellmelo: satu kunci per permintaan, JSON kembali, semua daftar berhalaman dengan cara yang sama. Aturannya sama seperti di aplikasi.

  • Setiap jalur diawali dengan https://api.tellmelo.com/v2.
  • Permintaan dan jawaban berupa JSON dalam UTF-8. Nama field, kode, dan nilai berbahasa Inggris dan tetap berbahasa Inggris.
  • Kunci bertindak sebagai akunmu: apa yang tidak bisa kamu lihat di aplikasi, tidak bisa dibacanya juga.
https://api.tellmelo.com/v2

Mulai cepat

  1. Buat kunci di “Area pengembang → API” dan salin. Kunci hanya ditampilkan sekali.
  2. Panggil root dengannya. Jawabannya menunjukkan versi, hak kunci, dan sisa permintaan menit ini.
  3. Setiap path bekerja dengan cara yang sama: kunci di header, JSON kembali, items dan next untuk daftar.
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"
}

Berikutnya: /me untuk profilmu, /posts untuk postingan publik, /feed untuk feed-mu.

Coba

Pilih tugas, isi kolomnya, lalu salin permintaan atau kirim dari sini. Penulisan meminta konfirmasi dulu. Kode membaca kunci dari TELLMELO_KEY.

read Versi API dan nama instans ini.

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

Kuncimu

Hingga 10 kunci per akun, masing-masing dengan nama, izin sendiri, dan jika mau tanggal kedaluwarsa. Kunci diawali tm_key_ dan hanya ditampilkan sekali. Hilang? Perbarui; nilai lama berhenti berfungsi.

Kamu membuatnya di “Area pengembang → API”. Kunci dikirim di header permintaan:

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

Atau, jika lebih praktis, di header tersendiri:

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

Jangan di URL: nanti tercatat di log dan riwayat peramban.

Kunci yang sama memuat gambar: setiap url mengarah ke /api/media; kirim kunci di header di sana juga.

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

Apa yang boleh dilakukan kunci

Sebuah kunci selalu bisa membaca dan, jika kamu izinkan, juga menulis, memberi hadiah, mengunggah media, dan mengelola grup. Setiap jalur di bawah menyebutkan apa yang dibutuhkannya:

  • read: membaca. Postingan publik, profil, grup, dan tag, serta feed, notifikasi, pesan, dan kanal grupmu.
  • write: bertindak. Memposting, membalas, memilih, mengirim pesan, menulis di obrolan grup, mengikuti, bergabung, memblokir, menandai notifikasi sudah dibaca.
  • gifts: memberi hadiah. Dari kuota seorang mitra ke anggota, dan hadiah di postingan baru. Izin tersendiri, supaya kunci untuk memposting tidak pernah bisa membagikan apa pun.
  • media: perpustakaan media milikmu. Mengunggah, mengubah, membagikan, dan menghapus GIF dan video. Izin tersendiri, karena unggahan memakai poin video akun. Mencari GIF dan video yang dibagikan cukup dengan read.
  • groups: mengelola grup. Peran, kanal, kategori, tautan undangan, kanal feed, penghapusan, pembisuan, pengeluaran, dan blokir, sejauh akunmu boleh di grup itu. Hak tersendiri, agar kunci untuk memposting tidak pernah mengubah siapa boleh apa di sebuah grup.

Yang tidak bisa dilakukan kunci mana pun

Tidak ada kunci yang menjangkau kata sandi, alamat email, jenis akun, tempat, peran, penghapusan, sesi, perangkat push, atau kunci lain, juga administrasi atau kepemimpinan grup. Apa yang dilindungi kata sandi, tidak bisa dilakukan kunci mana pun.

Bot

Bot adalah akun tersendiri berjenis bot untuk grup: tanpa kata sandi dan email, dijalankan programmu dengan kuncinya sendiri. Ia memakai API yang sama dengan akun lain dan di grup bisa melakukan apa pun yang diizinkan perannya di sana.

  1. Di salah satu grupmu, buka menu grup lalu di “Bot → Bot saya” buat bot dengan gambar, sampul, nama, nama pengguna, dan deskripsi. Token hanya ditampilkan sekali; token ini punya izin read, write, media, dan groups.
  2. Bagikan tautan bot atau ajukan ke direktori bot; bot muncul di sana begitu tim memeriksanya. Siapa pun yang boleh mengelola peran di grup memilih izinnya; bot bergabung dan mendapat peran sendiri.
  3. Programmu mengirim token sebagai Authorization: Bearer …, membaca peristiwa grupnya sebagai aliran, dan bekerja dengan rute di Bot, Kanal, dan Grup.

Bot kecil yang membaca peristiwa sebagai aliran dan menjawab perintah /ping dengan pong, hanya untuk yang bertanya:

// 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 });
    }
  }
}

Bot yang sama dalam Python, mengambil peristiwa halaman demi halaman:

# 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)
  • Apa yang boleh dilakukan bot di grup ditentukan oleh perannya di sana, bukan oleh token. Peran itu memakai namanya; grup mengubah izinnya di bagian peran pada pengaturan grup dan menghapus bot di menu grup pada “Bot → Di grup ini”.
  • Hingga 5 bot per akun; per grup sebanyak yang diizinkan keuntungannya. Bot menulis paling banyak 30 pesan per menit per grup, tidak bisa ditemukan lewat pencarian, dan hanya menulis kepada yang lebih dulu menulis kepadanya. Batas berlaku.
  • Peristiwa juga dikirim ke alamat HTTPS-mu sendiri (ditandatangani seperti webhook, dengan pengulangan). Selain itu: perintah (PUT /v2/me/commands) dengan jawaban untuk semua atau hanya yang bertanya, kartu dan tombol dalam pesan, serta musik di kanal suara (POST /v2/channels/{id}/voice): semuanya di Bot.

Permintaan dan jawaban

  • JSON di mana-mana. Setiap jawaban adalah application/json dalam UTF-8, termasuk galat. Hanya gambar yang datang sebagai gambar.
  • Yang kamu kirim. POST membawa field-nya sebagai JSON di isi. Jika field juga ada di URL, isi yang menang.
  • Waktu dalam milidetik sejak 1 Januari 1970, UTC.
  • ID berupa string. Bandingkan hanya secara utuh.
  • Setiap field selalu ada. Yang tidak ada bernilai null; daftar bisa kosong.
  • Teks berupa teks polos, persis seperti ditulis. #tag, @nama, dan tautan tetap seperti adanya, begitu pula emoji milik instans, sebagai :nama:; gambarnya tercantum di /emojis.
  • Gambar berupa alamat relatif, /api/media?id=…. Tanpa kunci di header kamu mendapat 401.

Halaman

Setiap daftar menerima limit dan cursor dan menjawab dengan items dan next. Kirim next kembali sebagai cursor untuk halaman berikutnya; jika next kosong, selesai. Kursor bersifat buram: jangan diurai, jangan dibuat sendiri.

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

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

Tanpa limit, 20 entri, maksimal 50. Beberapa daftar tidak berhalaman; next-nya selalu null.

Hanya yang baru

Setiap jawaban membawa ETag. Kirim kembali sebagai If-None-Match lain kali: jika tidak ada yang berubah, kamu mendapat 304 tanpa isi.

ETag: W/"3Qk1mJ7fQe2Yb0sVxT9aL4pNdRc"
If-None-Match: W/"3Qk1mJ7fQe2Yb0sVxT9aL4pNdRc"  →  304

Pengecualian: /feed tidak punya ETag karena urutannya terus berubah, dan penulisan tidak pernah menjawab 304.

Batas

Satu kunci boleh membuat 120 permintaan per menit, 600 dengan paket “Organisasi”, kecuali administrasi menetapkan lain. Di atas itu kamu mendapat 429 dan tidak ada yang dijalankan. Tunggu satu menit dan kirim lagi.

X-RateLimit-Limit: 120
X-RateLimit-Remaining: 117
X-RateLimit-Reset: 1758624060

Penulisan juga dihitung terhadap batas aplikasi, misalnya berapa postingan dalam beberapa menit. Itu juga menjawab 429 dengan rate_limited.

Header

Selain kunci, tidak ada header yang wajib.

Yang kamu kirim

HeaderArti
AuthorizationMembawa kunci: Bearer tm_key_…. Cara yang biasa.
X-Tellmelo-KeyKunci, sebagai alternatif Authorization.
Content-Typeapplication/json, untuk permintaan dengan isi.
If-None-MatchETag dari jawaban terakhir. Jika tidak ada yang berubah sejak itu, jawabannya 304 tanpa isi.

Yang kembali

HeaderArti
ETagSidik jari jawaban ini (W/). Kirim kembali sebagai If-None-Match.
X-RateLimit-LimitBerapa permintaan per menit yang boleh dibuat kunci ini.
X-RateLimit-RemainingBerapa yang tersisa di menit ini.
X-RateLimit-ResetKapan menit berikutnya dimulai, dalam detik sejak 1970, UTC.
X-Tellmelo-ScopeApa yang boleh dilakukan kunci ini: read atau read write.
Retry-AfterDengan 429: berapa detik menunggu sebelum bertanya lagi.
WWW-AuthenticatePada 401 tanpa kunci: Bearer.
Cache-Controlno-store: tidak ada proxy yang boleh menyimpan jawaban. Kamu tetap bisa memeriksanya dengan ETag.

Saat sesuatu tidak berhasil

Galat datang sebagai JSON: kode bahasa Inggris tetap di error untuk programmu dan kalimat di message untuk manusia, ditambah kode status yang sesuai. Bandingkan hanya kodenya; kalimatnya bisa berubah.

{ "error": "rate_limited",
  "message": "Too many requests. Try again in a minute.",
  "limit": 120 }

Beberapa galat membawa satu field lagi: docs pada 401 karena kunci tidak ada, limit pada 429.

StatusKodeArti
400bad_requestPermintaan tidak terbaca, field wajib tidak ada, atau nilainya tidak diizinkan.
401key_missingTidak ada kunci di header.
401key_invalidKuncinya tidak valid: salah ketik, sudah diganti, atau akunnya dilarang.
401unauthorizedDitolak sebagai belum masuk, karena alasan selain kunci.
403scope_missingKunci tidak punya hak yang diperlukan, biasanya write.
403account_data_lockedData akun seperti kata sandi, alamat email, atau penghapusan tidak bisa dijangkau kunci.
403forbiddenAkunmu tidak boleh melakukan ini, misalnya karena hak dicabut atau blokir.
403timed_outPembisuan sedang membisukan akunmu di grup ini.
404unknown_pathPath ini tidak ada, atau tidak dengan metode ini.
404not_foundTidak ditemukan, atau kamu tidak boleh melihatnya.
409conflictBertabrakan dengan yang sudah ada, misalnya nama yang sudah dipakai.
409feed_offKanal feed grup ini sedang mati.
413too_largeTerlalu besar untuk instans ini.
422unprocessableTerbaca, tetapi tidak mungkin dalam bentuk ini.
429rate_limitedTerlalu banyak permintaan. Tidak terjadi apa-apa; tunggu dan coba lagi.
500internal_errorAda yang salah di server.

Versi

Versinya ada di path. Selama tertulis v2, path dan field tetap sama; hanya ada tambahan baru.

Tambahan menaikkan angka kedua. Setiap path menyebutkan sejak kapan ada.

2.20
PUT /v2/roles/{id}/selfGET /v2/eventsGET /v2/events/streamGET /v2/me/commandsPUT /v2/me/commandsPOST /v2/interactions/{id}/replyGET /v2/communities/{id}/emojisPOST /v2/communities/{id}/emojisDELETE /v2/communities/{id}/emojis/{name}PUT /v2/communities/{id}/channels/shapePOST /v2/channels/{id}/voice
2.19
POST /v2/replies/{id}/votePOST /v2/replies/{id}/pickGET /v2/posts/{id}/replies/waitingPOST /v2/replies/{id}/decideGET /v2/posts/{id}/replies/plannedPUT /v2/me/planned-replies/{id}POST /v2/me/planned-replies/{id}/sendDELETE /v2/me/planned-replies/{id}GET /v2/posts/{id}/reply-settingsPUT /v2/posts/{id}/reply-settingsPOST /v2/posts/{id}/coauthorDELETE /v2/posts/{id}/coauthorPOST /v2/posts/{id}/pinPOST /v2/conversations/{with}/plannedGET /v2/me/planned-messagesPOST /v2/me/planned-messages/{id}/sendDELETE /v2/me/planned-messages/{id}GET /v2/profiles/{handle}/followersGET /v2/profiles/{handle}/followingGET /v2/me/relationsGET /v2/me/collectionsPOST /v2/me/collectionsPUT /v2/me/collections/{id}DELETE /v2/me/collections/{id}GET /v2/me/collections/{id}/postsPOST /v2/me/collections/{id}/postsGET /v2/profiles/{handle}/eventsPOST /v2/me/eventsPUT /v2/me/events/{id}DELETE /v2/me/events/{id}GET /v2/me/events/{id}/signupsPOST /v2/events/{id}/signupPOST /v2/me/picturesPUT /v2/me/profileGET /v2/me/emojisPOST /v2/me/emojis/picturesPOST /v2/me/emojisDELETE /v2/me/emojis/{name}PUT /v2/me/emojis/sharingGET /v2/me/webhooksPOST /v2/me/webhooksDELETE /v2/me/webhooks/{id}POST /v2/me/webhooks/{id}/testPOST /v2/communitiesPUT /v2/communities/{id}GET /v2/communities/{id}/botsGET /v2/communities/{id}/voice
2.16
PUT /v2/communities/{id}/members/{member}/timeoutDELETE /v2/communities/{id}/members/{member}/timeoutGET /v2/communities/{id}/bansPUT /v2/communities/{id}/bans/{member}DELETE /v2/communities/{id}/bans/{member}
2.15
GET /v2/communities/{id}/channelsGET /v2/channels/{id}/messagesGET /v2/communities/{id}/membersGET /v2/communities/{id}/rolesGET /v2/communities/{id}/bellGET /v2/invites/{code}POST /v2/channels/{id}/messagesPOST /v2/channels/{id}/readDELETE /v2/channel-messages/{id}PUT /v2/communities/{id}/bellPOST /v2/invites/{code}/joinPOST /v2/communities/{id}/rolesPUT /v2/roles/{id}DELETE /v2/roles/{id}PUT /v2/communities/{id}/roles/orderPUT /v2/roles/{id}/members/{member}POST /v2/communities/{id}/channelsPUT /v2/channels/{id}DELETE /v2/channels/{id}PUT /v2/communities/{id}/channels/orderGET /v2/channels/{id}/overridesPUT /v2/channels/{id}/overrides/{role}POST /v2/communities/{id}/categoriesPUT /v2/categories/{id}DELETE /v2/categories/{id}PUT /v2/communities/{id}/feedGET /v2/communities/{id}/invitesPOST /v2/communities/{id}/invitesDELETE /v2/invites/{code}POST /v2/channel-messages/{id}/removePOST /v2/communities/{id}/posts/{post}/removeDELETE /v2/communities/{id}/members/{member}GET /v2/communities/{id}/log
2.14
GET /v2/mediaGET /v2/media/mineGET /v2/media/{id}POST /v2/media/uploadsPUT /v2/media/uploads/{upload}POST /v2/media/{id}DELETE /v2/media/{id}
2.12
GET /v2/me/scheduledPOST /v2/posts/{id}/schedulePOST /v2/posts/{id}/editPOST /v2/replies/{id}/editDELETE /v2/replies/{id}POST /v2/replies/{id}/likeDELETE /v2/conversations/{with}/messages/{id}GET /v2/partner/quotaGET /v2/partner/giftsPOST /v2/partner/giftsGET /v2/gift-dropsPOST /v2/gift-drops
2.1
GET /v2/emojisPOST /v2/conversations/{with}/read
2.0
GET /v2GET /v2/postsGET /v2/posts/{id}GET /v2/posts/{id}/repliesGET /v2/profiles/{handle}GET /v2/profiles/{handle}/postsGET /v2/communitiesGET /v2/communities/{id}GET /v2/communities/{id}/postsGET /v2/tagsGET /v2/searchGET /v2/meGET /v2/feedGET /v2/notificationsGET /v2/conversationsGET /v2/conversations/{with}/messagesPOST /v2/postsDELETE /v2/posts/{id}POST /v2/posts/{id}/repliesPOST /v2/posts/{id}/votePOST /v2/relationsPOST /v2/conversations/{with}/messagesPOST /v2/notifications/read

https://api.tellmelo.com/v1/ sudah tidak ada: path lama menjawab 410 dan menyebut cara baru di isinya.

Endpoint

Semua path sekilas, lalu masing-masing dengan contoh.

PathHakUntuk apa
Jalan masuk
GET/v2readVersi API dan nama instans ini.
Postingan
GET/v2/postsreadPostingan publik, yang terbaru lebih dulu.
GET/v2/posts/{id}readSatu postingan, menurut id-nya.
POST/v2/postswriteTerbitkan postingan.
DELETE/v2/posts/{id}writeHapus salah satu postinganmu sendiri.
GET/v2/me/scheduledreadPostinganmu yang belum tayang, dan apa yang sedang ditunggunya.
POST/v2/posts/{id}/schedulewriteMengubah kapan postingan terjadwal tayang, atau kapan postingan terhapus sendiri.
POST/v2/posts/{id}/editwriteMengubah teks salah satu postinganmu.
GET/v2/posts/{id}/reply-settingsreadSiapa yang boleh membalas postinganmu, apakah balasan menunggu persetujuan, dan mode lambat.
PUT/v2/posts/{id}/reply-settingswriteMengubah pengaturan balasan postinganmu. Yang tidak kamu isi tetap sama.
POST/v2/posts/{id}/coauthorwriteMenerima atau menolak undangan sebagai rekan penulis.
DELETE/v2/posts/{id}/coauthorwriteMundur sebagai rekan penulis, atau sebagai penulis mengeluarkan rekan penulis dari postingan.
POST/v2/posts/{id}/pinwriteMenyematkan postinganmu di atas profil, atau melepasnya.
Balasan
GET/v2/posts/{id}/repliesreadBalasan untuk sebuah postingan, tanpa akun yang diblokir.
POST/v2/posts/{id}/replieswriteBalas sebuah postingan.
POST/v2/replies/{id}/editwriteMengubah teks salah satu balasanmu.
DELETE/v2/replies/{id}writeMenghapus salah satu balasanmu.
POST/v2/replies/{id}/likewriteBeri suara naik untuk balasan (suka adalah suara naik sejak balasan diberi suara) atau tarik kembali; suara turun tetap.
POST/v2/replies/{id}/votewriteMemberi suara naik atau turun pada sebuah balasan, atau menarik suaramu. Menjawab dengan suaramu dan skor sesudahnya.
POST/v2/replies/{id}/pickwriteMenyorot satu balasan di postinganmu sebagai yang terbaik, atau mencabut sorotan.
GET/v2/posts/{id}/replies/waitingreadBalasan yang menunggu persetujuan di sebuah postingan: semuanya di postinganmu, selain itu hanya milikmu.
POST/v2/replies/{id}/decidewriteMenyetujui atau menolak balasan yang menunggu di postinganmu. Yang ditolak akan dihapus.
GET/v2/posts/{id}/replies/plannedreadBalasanmu yang dijadwalkan untuk nanti di sebuah postingan.
PUT/v2/me/planned-replies/{id}writeMengubah teks atau waktu balasan terjadwal. Yang gagal akan menunggu lagi.
POST/v2/me/planned-replies/{id}/sendwriteMengirim balasan terjadwal sekarang juga.
DELETE/v2/me/planned-replies/{id}writeMenghapus balasan terjadwal.
Jajak pendapat
POST/v2/posts/{id}/votewriteIkut dalam jajak pendapat.
Profil
GET/v2/profiles/{handle}readSebuah profil, menurut nama pendeknya.
GET/v2/profiles/{handle}/postsreadPostingan publik dari satu profil, yang terbaru lebih dulu.
GET/v2/profiles/{handle}/eventsreadAcara mendatang dari sebuah profil, yang terdekat dulu.
POST/v2/me/eventswriteMembuat acara. Menjawab dengan id-nya.
PUT/v2/me/events/{id}writeMengubah salah satu acaramu. Semua kolom diatur ulang.
DELETE/v2/me/events/{id}writeMenghapus salah satu acaramu.
GET/v2/me/events/{id}/signupsreadSiapa yang mendaftar ke salah satu acaramu.
POST/v2/events/{id}/signupwriteMendaftar ke acara atau membatalkannya.
Grup
GET/v2/communitiesreadGrup terbuka di instance ini; dengan mine=true, grup milik akunmu.
GET/v2/communities/{id}readSatu grup, menurut id-nya.
GET/v2/communities/{id}/postsreadPostingan kanal feed sebuah grup, terbaru dulu.
GET/v2/communities/{id}/membersreadAnggota sebuah grup beserta perannya.
GET/v2/communities/{id}/rolesreadPeran sebuah grup, yang tertinggi dulu, @everyone terakhir.
GET/v2/communities/{id}/bellreadNotifikasi apa yang dikirim sebuah grup kepadamu.
GET/v2/invites/{code}readGrup di balik tautan undangan, sebelum bergabung.
PUT/v2/roles/{id}/selfwriteMengambil atau melepas peran pilihan sendiri.
GET/v2/communities/{id}/emojisreadEmoji milik sebuah grup.
PUT/v2/communities/{id}/bellwriteMengatur notifikasi apa yang dikirim sebuah grup kepadamu.
POST/v2/invites/{code}/joinwriteBergabung ke grup dengan tautan undangan.
GET/v2/communities/{id}/botsreadBot sebuah grup beserta apa yang diizinkan perannya.
Kanal
GET/v2/communities/{id}/channelsreadKanal sebuah grup yang kamu lihat, sesuai urutannya.
GET/v2/channels/{id}/messagesreadPesan di kanal obrolan, terbaru dulu.
POST/v2/channels/{id}/messageswriteMenulis pesan di kanal obrolan.
POST/v2/channels/{id}/readwriteMenandai kanal obrolan sudah dibaca hingga suatu waktu.
DELETE/v2/channel-messages/{id}writeMenghapus pesanmu sendiri di kanal obrolan.
GET/v2/communities/{id}/voicereadSiapa yang sedang ada di saluran suara sebuah grup, per saluran.
Mengelola grup
POST/v2/communities/{id}/emojisgroupsMenambahkan emoji ke grup.
DELETE/v2/communities/{id}/emojis/{name}groupsMenghapus emoji dari grup.
POST/v2/communities/{id}/rolesgroupsMembuat peran.
PUT/v2/roles/{id}groupsMengubah nama, warna, dan hak sebuah peran.
DELETE/v2/roles/{id}groupsMenghapus peran.
PUT/v2/communities/{id}/roles/ordergroupsMenetapkan urutan peran.
PUT/v2/roles/{id}/members/{member}groupsMemberi atau mencabut peran seorang anggota.
POST/v2/communities/{id}/channelsgroupsMembuat kanal obrolan.
PUT/v2/channels/{id}groupsMengubah nama, topik, dan kategori sebuah kanal.
DELETE/v2/channels/{id}groupsMenghapus kanal obrolan beserta pesannya.
PUT/v2/communities/{id}/channels/ordergroupsMenetapkan urutan kategori dan kanal obrolan.
PUT/v2/communities/{id}/channels/shapegroupsMenetapkan bentuk semua simbol kanal grup.
GET/v2/channels/{id}/overridesgroupsApa yang boleh dilakukan peran secara berbeda di sebuah kanal dibanding di grup.
PUT/v2/channels/{id}/overrides/{role}groupsMenetapkan apa yang boleh dilakukan peran secara berbeda di sebuah kanal.
POST/v2/communities/{id}/categoriesgroupsMembuat kategori untuk kanal.
PUT/v2/categories/{id}groupsMengganti nama kategori.
DELETE/v2/categories/{id}groupsMenghapus kategori.
PUT/v2/communities/{id}/feedgroupsMenyalakan atau mematikan kanal feed sebuah grup.
GET/v2/communities/{id}/invitesgroupsTautan undangan sebuah grup yang masih berlaku.
POST/v2/communities/{id}/invitesgroupsMembuat tautan undangan.
DELETE/v2/invites/{code}groupsMenarik tautan undangan.
POST/v2/channel-messages/{id}/removegroupsMenghapus pesan anggota lain dari sebuah kanal.
POST/v2/communities/{id}/posts/{post}/removegroupsMenghapus postingan dari sebuah grup.
DELETE/v2/communities/{id}/members/{member}groupsMengeluarkan anggota dari grup.
PUT/v2/communities/{id}/members/{member}/timeoutgroupsMembisukan anggota.
DELETE/v2/communities/{id}/members/{member}/timeoutgroupsMencabut pembisuan.
GET/v2/communities/{id}/bansgroupsBlokir yang sedang berlaku di sebuah grup.
PUT/v2/communities/{id}/bans/{member}groupsMemblokir anggota.
DELETE/v2/communities/{id}/bans/{member}groupsMencabut blokir.
GET/v2/communities/{id}/loggroupsLog pengurus: siapa menghapus apa dan mengapa.
POST/v2/communitiesgroupsMendirikan grup. Menjawab dengan id-nya; kamu pendirinya.
PUT/v2/communities/{id}groupsMengubah grup yang kamu pimpin. Yang tidak kamu isi tetap sama.
Bot
GET/v2/eventsreadPeristiwa dari grup bot sejak suatu peristiwa, halaman demi halaman.
GET/v2/events/streamreadPeristiwa dari grup bot begitu terjadi (server-sent events).
GET/v2/me/commandsreadPerintah bot.
PUT/v2/me/commandswriteMenetapkan perintah bot, semuanya sekaligus.
POST/v2/interactions/{id}/replywriteMenjawab perintah atau tombol.
POST/v2/channels/{id}/voicewriteMengambil tempat di kanal suara untuk memutar musik atau suara.
Jelajahi
GET/v2/tagsreadTag yang sedang ramai.
GET/v2/searchreadPencarian di postingan, nama, nama pendek, dan tag.
GET/v2/emojisreadEmoji milik instans, dengan alamat gambarnya.
GIF dan video
GET/v2/mediareadGIF atau video yang dibagikan, yang paling sering dipakai lebih dulu.
GET/v2/media/minemediaPerpustakaan media milikmu, yang terbaru lebih dulu.
GET/v2/media/{id}readSebuah GIF atau video, milikmu atau yang dibagikan.
POST/v2/media/uploadsmediaMulai unggahan.
PUT/v2/media/uploads/{upload}mediaKirim satu potongan file.
POST/v2/media/{id}mediaUbah salah satu GIF atau videomu.
DELETE/v2/media/{id}mediaHapus salah satu GIF atau videomu.
Akunmu
GET/v2/mereadProfilmu sendiri, dengan id yang diharapkan path lain.
GET/v2/feedreadFeed-mu sendiri, seperti yang disusun aplikasi.
POST/v2/me/pictureswriteMengunggah gambar sebagai byte. Menjawab dengan id dan url; lalu id dipakai sebagai foto profil, sampul, atau di postingan.
PUT/v2/me/profileprofileMengubah profilmu: nama, tentang kamu, foto profil, sampul, dan warna profil. Yang tidak kamu isi tetap sama.
GET/v2/me/emojisreadEmoji milikmu sendiri.
POST/v2/me/emojis/picturesprofileMengunggah gambar untuk emoji milikmu sebagai byte.
POST/v2/me/emojisprofileMembuat emoji milikmu. Menjawab dengan semua emojimu.
DELETE/v2/me/emojis/{name}profileMenghapus emoji milikmu. Menjawab dengan sisanya.
PUT/v2/me/emojis/sharingprofileMenentukan apakah pengikutmu boleh memakai emojimu di teks mereka.
GET/v2/me/webhookswebhooksWebhook-mu beserta statusnya.
POST/v2/me/webhookswebhooksMembuat webhook. Menjawab dengan id dan rahasia untuk tanda tangan, hanya kali ini.
DELETE/v2/me/webhooks/{id}webhooksMenghapus webhook.
POST/v2/me/webhooks/{id}/testwebhooksMengirim uji coba ke webhook.
Notifikasi
GET/v2/notificationsreadNotifikasimu, yang terbaru lebih dulu.
POST/v2/notifications/readwriteTandai notifikasimu sudah dibaca.
Pesan
GET/v2/conversationsreadKotak masukmu: satu baris per percakapan, yang terbaru lebih dulu.
GET/v2/conversations/{with}/messagesreadPesan dalam satu percakapan, yang terbaru lebih dulu.
POST/v2/conversations/{with}/messageswriteKirim pesan dalam percakapan.
POST/v2/conversations/{with}/readwriteTandai semua pesan dalam percakapan sudah dibaca.
DELETE/v2/conversations/{with}/messages/{id}writeMenghapus salah satu pesanmu.
POST/v2/conversations/{with}/plannedwriteMenjadwalkan pesan untuk nanti. Menjawab dengan id pesan terjadwal.
GET/v2/me/planned-messagesreadPesanmu yang masih akan dikirim, urut menurut waktu.
POST/v2/me/planned-messages/{id}/sendwriteMengirim sekarang pesan terjadwal yang ditahan atau gagal.
DELETE/v2/me/planned-messages/{id}writeMenghapus pesan terjadwal sebelum terkirim.
Relasi
POST/v2/relationswriteSuka, simpan, posting ulang, ikuti, gabung, blokir, bisukan, tergantung kind.
GET/v2/profiles/{handle}/followersreadSiapa yang mengikuti sebuah profil, terbaru dulu.
GET/v2/profiles/{handle}/followingreadSiapa yang diikuti sebuah profil, terbaru dulu.
GET/v2/me/relationsreadSiapa yang kamu blokir, bisukan, atau blokir hanya untuk pesan, terbaru dulu.
Koleksi
GET/v2/me/collectionsreadKoleksimu beserta jumlah postingannya.
POST/v2/me/collectionswriteMembuat koleksi. Menjawab dengan id-nya.
PUT/v2/me/collections/{id}writeMengganti nama koleksi.
DELETE/v2/me/collections/{id}writeMenghapus koleksi.
GET/v2/me/collections/{id}/postsreadPostingan dalam sebuah koleksi, seperti di tab tersimpan.
POST/v2/me/collections/{id}/postswriteMemasukkan postingan ke koleksi atau mengeluarkannya.
Hadiah
GET/v2/partner/quotareadSisa kuotamu untuk diberikan.
GET/v2/partner/giftsreadApa yang kamu berikan dari kuota, kepada siapa dan kapan – yang terbaru dulu.
POST/v2/partner/giftsgiftsMemberi bulan paket atau percikan dari kuotamu kepada anggota.
GET/v2/gift-dropsreadHadiahmu di postingan: berapa tempat yang masih kosong dan bagaimana dibayar.
POST/v2/gift-dropsgiftsMemposting postingan berisi hadiah untuk diambil orang lain.

Jalan masuk

Permintaan pertama setiap program: apakah kuncinya berfungsi, dan apa yang boleh dilakukannya?

GET/v2

Versi API dan nama instans ini.

  • Hak read
  • dengan ETag
  • sejak v2.0

Tanpa garis miring di akhir: https://api.tellmelo.com/v2/ dialihkan ke https://api.tellmelo.com/v2 dengan 308, dan tidak setiap program mengikutinya.

Contoh permintaan

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

Jawaban

Menjawab dengan satu Service.

Contoh
{
  "name": "tellmelo",
  "version": "2.20",
  "scope": "read write",
  "rateLimit": {
    "limit": 120,
    "remaining": 117
  },
  "docs": "/developers/docs",
  "spec": "/api/v2/openapi.json"
}

Status yang mungkin: 200304401429

Postingan

Membaca postingan publik, menerbitkan milikmu sendiri, dan menghapusnya lagi.

GET/v2/posts

Postingan publik, yang terbaru lebih dulu.

  • Hak read
  • berhalaman
  • dengan ETag
  • sejak v2.0

Di path publik, counts.likes dan counts.reposts selalu 0 dan pinned bernilai false.

Postingan di grup tidak ada di sini, melainkan di /communities/{id}/posts.

Parameter

NamaTipeArti
limitdi queryintegeropsionalEntri per halaman: 20 secara bawaan, maksimal 50.
cursordi querystringopsionalnext dari jawaban sebelumnya. Tanpa itu, dari awal.

Contoh permintaan

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

Jawaban

Menjawab dengan satu halaman Post, sebagai `items` dan `next`.

Contoh
{
  "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"
}

Status yang mungkin: 200304401429

GET/v2/posts/{id}

Satu postingan, menurut id-nya.

  • Hak read
  • dengan ETag
  • sejak v2.0

Di path publik, counts.likes dan counts.reposts selalu 0 dan pinned bernilai false.

Postingan di grup tidak ada di sini, melainkan di /communities/{id}/posts.

Parameter

NamaTipeArti
iddi pathstringwajibid sebuah postingan.

Contoh permintaan

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

Jawaban

Menjawab dengan satu Post.

Contoh
{
  "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
}

Status yang mungkin: 200304400401404429

POST/v2/posts

Terbitkan postingan.

  • Hak write
  • sejak v2.0

Postingan perlu teks atau jajak pendapat. Panjang, pilihan jajak pendapat, dan laju diatur instans; di luar itu kamu mendapat 400 atau 429.

Lampirkan gambar, GIF, atau video dengan media. GIF atau video berdiri sendiri. Kamu boleh memakai GIF dan video yang dibagikan orang lain di tellmelo.

Postingan untuk teman dekat atau dengan rekan penulis langsung terbit, tidak di grup dan tidak terjadwal. Keduanya tidak bisa sekaligus.

Parameter

NamaTipeArti
textdi isistringopsionalTeks postingan, balasan, atau pesan.
communitydi isistringopsionalid grup yang kanal feed-nya menerima postingan; kanal itu harus menyala dan kamu perlu haknya. Tanpa itu, postingan berada di luar grup mana pun.
quotesdi isistringopsionalid postingan yang dikutip postingan ini.
polldi isistring[]opsionalPilihan jawaban sebagai daftar teks.
mediadi isistring[]opsionalID gambar yang diunggah di aplikasi, atau GIF atau video dari perpustakaan media (sejak 2.14).
audiencedi isistringopsionalSiapa yang melihat postingan: everyone semua yang boleh, close hanya teman dekatmu.everyoneclose
coauthordi isistringopsionalid akun yang kamu undang sebagai rekan penulis. Kalian harus saling mengikuti.

Contoh permintaan

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"

Jawaban

Menjawab dengan satu Created.

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

Status yang mungkin: 200400401403429

DELETE/v2/posts/{id}

Hapus salah satu postinganmu sendiri.

  • Hak write
  • sejak v2.0

Parameter

NamaTipeArti
iddi pathstringwajibid sebuah postingan.

Contoh permintaan

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

Jawaban

Menjawab dengan satu Ok.

Contoh
{
  "ok": true
}

Status yang mungkin: 200400401403404429

GET/v2/me/scheduled

Postinganmu yang belum tayang, dan apa yang sedang ditunggunya.

  • Hak read
  • dengan ETag
  • sejak v2.12

Contoh permintaan

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

Jawaban

Menjawab dengan satu halaman ScheduledPost, sebagai `items` dan `next`.

Contoh
{
  "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
}

Status yang mungkin: 200304401429

POST/v2/posts/{id}/schedule

Mengubah kapan postingan terjadwal tayang, atau kapan postingan terhapus sendiri.

  • Hak write
  • sejak v2.12

Hanya postinganmu sendiri. Selama hadiah sebuah postingan belum dibayar, postingan itu tidak bisa dijadwalkan.

Parameter

NamaTipeArti
iddi pathstringwajibid sebuah postingan.
publishAtdi isiintegeropsionalKapan postingan terjadwal tayang, dalam milidetik sejak 1970.
deleteAtdi isiintegeropsionalKapan postingan terhapus sendiri, dalam milidetik sejak 1970.

Contoh permintaan

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

Jawaban

Menjawab dengan satu Ok.

Contoh
{
  "ok": true
}

Status yang mungkin: 200400401403404429

POST/v2/posts/{id}/edit

Mengubah teks salah satu postinganmu.

  • Hak write
  • sejak v2.12

Hanya dalam waktu edit yang diberikan paketmu. Postingan terjadwal tidak bisa diedit.

Parameter

NamaTipeArti
iddi pathstringwajibid sebuah postingan.
textdi isistringwajibTeks postingan, balasan, atau pesan.

Contoh permintaan

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"

Jawaban

Menjawab dengan satu Ok.

Contoh
{
  "ok": true
}

Status yang mungkin: 200400401403404429

GET/v2/posts/{id}/reply-settings

Siapa yang boleh membalas postinganmu, apakah balasan menunggu persetujuan, dan mode lambat.

  • Hak read
  • dengan ETag
  • sejak v2.19

Parameter

NamaTipeArti
iddi pathstringwajibid sebuah postingan.

Contoh permintaan

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

Jawaban

Menjawab dengan satu ReplySettings.

Contoh
{
  "audience": "following",
  "approval": false,
  "slow": "auto"
}

Status yang mungkin: 200304400401404429

PUT/v2/posts/{id}/reply-settings

Mengubah pengaturan balasan postinganmu. Yang tidak kamu isi tetap sama.

  • Hak write
  • sejak v2.19

Hanya postinganmu sendiri.

Parameter

NamaTipeArti
iddi pathstringwajibid sebuah postingan.
audiencedi isistringopsionalSiapa yang boleh membalas: semua, akun yang kamu ikuti, yang disebut, atau tidak ada.allfollowingmentionednobody
approvaldi isibooleanopsionalApakah balasan baru muncul setelah kamu setujui.
slowdi isistringopsionalMode lambat: auto menyala sendiri saat banyak balasan masuk, on selalu, off tidak pernah.autoonoff

Contoh permintaan

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"

Jawaban

Menjawab dengan satu ReplySettings.

Contoh
{
  "audience": "following",
  "approval": false,
  "slow": "auto"
}

Status yang mungkin: 200400401403404429

POST/v2/posts/{id}/coauthor

Menerima atau menolak undangan sebagai rekan penulis.

  • Hak write
  • sejak v2.19

Parameter

NamaTipeArti
iddi pathstringwajibid sebuah postingan.
acceptdi isibooleanwajibtrue menerima undangan, false menolaknya.

Contoh permintaan

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"

Jawaban

Menjawab dengan satu Ok.

Contoh
{
  "ok": true
}

Status yang mungkin: 200400401403404429

DELETE/v2/posts/{id}/coauthor

Mundur sebagai rekan penulis, atau sebagai penulis mengeluarkan rekan penulis dari postingan.

  • Hak write
  • sejak v2.19

Untuk rekan penulis dan penulis postingan.

Parameter

NamaTipeArti
iddi pathstringwajibid sebuah postingan.

Contoh permintaan

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

Jawaban

Menjawab dengan satu Ok.

Contoh
{
  "ok": true
}

Status yang mungkin: 200400401403404429

POST/v2/posts/{id}/pin

Menyematkan postinganmu di atas profil, atau melepasnya.

  • Hak write
  • sejak v2.19

Hanya postinganmu yang terlihat. Berapa banyak yang bisa disematkan tergantung paketmu.

Parameter

NamaTipeArti
iddi pathstringwajibid sebuah postingan.
activedi isibooleanwajibtrue menyematkan postingan, false melepasnya.

Contoh permintaan

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"

Jawaban

Menjawab dengan satu Ok.

Contoh
{
  "ok": true
}

Status yang mungkin: 200400401403404429

Balasan

Balasan di bawah postingan, sebagai daftar dengan parentId.

GET/v2/posts/{id}/replies

Balasan untuk sebuah postingan, tanpa akun yang diblokir.

  • Hak read
  • berhalaman
  • dengan ETag
  • sejak v2.0

Daftarnya datar dan sesuai urutan penulisan; parentId menjadikannya pohon. Satu halaman selalu memuat utas utuh. Balasan dari akun yang diblokir dikecualikan.

Parameter

NamaTipeArti
iddi pathstringwajibid sebuah postingan.
limitdi queryintegeropsionalEntri per halaman: 20 secara bawaan, maksimal 50.
cursordi querystringopsionalnext dari jawaban sebelumnya. Tanpa itu, dari awal.

Contoh permintaan

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

Jawaban

Menjawab dengan satu halaman Reply, sebagai `items` dan `next`.

Contoh
{
  "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"
}

Status yang mungkin: 200304400401404429

POST/v2/posts/{id}/replies

Balas sebuah postingan.

  • Hak write
  • sejak v2.0

Dalam mode lambat, satu balasan per orang setiap 10 menit, selain itu 429. Penulis dan akun yang diikutinya dikecualikan.

Dengan media maksimal satu gambar, GIF, atau video.

Parameter

NamaTipeArti
iddi pathstringwajibid sebuah postingan.
textdi isistringwajibTeks postingan, balasan, atau pesan.
parentIddi isistringopsionalid balasan yang dijawab balasan ini. Tanpa itu, langsung ke postingan.
mediadi isistring[]opsionalID gambar yang diunggah di aplikasi, atau GIF atau video dari perpustakaan media (sejak 2.14).
publishAtdi isiintegeropsionalKapan balasan terbit, dalam milidetik sejak 1970. Tanpa ini, langsung terkirim.

Contoh permintaan

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"

Jawaban

Menjawab dengan satu Created.

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

Status yang mungkin: 200400401403404429

POST/v2/replies/{id}/edit

Mengubah teks salah satu balasanmu.

  • Hak write
  • sejak v2.12

Parameter

NamaTipeArti
iddi pathstringwajibid balasan.
textdi isistringwajibTeks postingan, balasan, atau pesan.

Contoh permintaan

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"

Jawaban

Menjawab dengan satu Ok.

Contoh
{
  "ok": true
}

Status yang mungkin: 200400401403404429

DELETE/v2/replies/{id}

Menghapus salah satu balasanmu.

  • Hak write
  • sejak v2.12

Parameter

NamaTipeArti
iddi pathstringwajibid balasan.

Contoh permintaan

curl -X DELETE \
  -H "Authorization: Bearer tm_key_…" \
  "https://api.tellmelo.com/v2/replies/9e4b1c7d-2a3f-4d5e-8b6c-0f1e2d3c4b5a"

Jawaban

Menjawab dengan satu Ok.

Contoh
{
  "ok": true
}

Status yang mungkin: 200400401403404429

POST/v2/replies/{id}/like

Beri suara naik untuk balasan (suka adalah suara naik sejak balasan diberi suara) atau tarik kembali; suara turun tetap.

  • Hak write
  • sejak v2.12
  • usang

Usang sejak 2.19: gunakan POST /replies/{id}/vote. Rute ini tetap ada untuk sementara.

Parameter

NamaTipeArti
iddi pathstringwajibid balasan.
activedi isibooleanwajibtrue memasang relasi, false menghapusnya.

Contoh permintaan

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"

Jawaban

Menjawab dengan satu Ok.

Contoh
{
  "ok": true
}

Status yang mungkin: 200400401403404429

POST/v2/replies/{id}/vote

Memberi suara naik atau turun pada sebuah balasan, atau menarik suaramu. Menjawab dengan suaramu dan skor sesudahnya.

  • Hak write
  • sejak v2.19

Parameter

NamaTipeArti
iddi pathstringwajibid balasan.
votedi isistringwajibup memberi suara naik, down turun, none menarik suaramu.updownnone

Contoh permintaan

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"

Jawaban

Menjawab dengan satu ReplyVote.

Contoh
{
  "vote": "up",
  "score": 12
}

Status yang mungkin: 200400401403404429

POST/v2/replies/{id}/pick

Menyorot satu balasan di postinganmu sebagai yang terbaik, atau mencabut sorotan.

  • Hak write
  • sejak v2.19

Hanya di postinganmu sendiri dan hanya balasan langsung ke postingan. Sorotan baru menggantikan yang lama.

Parameter

NamaTipeArti
iddi pathstringwajibid balasan.
activedi isibooleanwajibtrue menyorot balasan, false mencabut sorotan.

Contoh permintaan

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"

Jawaban

Menjawab dengan satu Ok.

Contoh
{
  "ok": true
}

Status yang mungkin: 200400401403404429

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

Balasan yang menunggu persetujuan di sebuah postingan: semuanya di postinganmu, selain itu hanya milikmu.

  • Hak read
  • dengan ETag
  • sejak v2.19

Apakah balasan menunggu, diatur penulis di pengaturan balasan.

Parameter

NamaTipeArti
iddi pathstringwajibid sebuah postingan.

Contoh permintaan

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

Jawaban

Menjawab dengan satu halaman Reply, sebagai `items` dan `next`.

Contoh
{
  "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
}

Status yang mungkin: 200304400401404429

POST/v2/replies/{id}/decide

Menyetujui atau menolak balasan yang menunggu di postinganmu. Yang ditolak akan dihapus.

  • Hak write
  • sejak v2.19

Parameter

NamaTipeArti
iddi pathstringwajibid balasan.
approvedi isibooleanwajibtrue menyetujui balasan, false menolaknya.

Contoh permintaan

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"

Jawaban

Menjawab dengan satu Ok.

Contoh
{
  "ok": true
}

Status yang mungkin: 200400401403404429

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

Balasanmu yang dijadwalkan untuk nanti di sebuah postingan.

  • Hak read
  • dengan ETag
  • sejak v2.19

Jadwalkan dengan publishAt saat membalas. Paling banyak 20 balasan terjadwal sekaligus.

Parameter

NamaTipeArti
iddi pathstringwajibid sebuah postingan.

Contoh permintaan

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

Jawaban

Menjawab dengan satu halaman PlannedReply, sebagai `items` dan `next`.

Contoh
{
  "items": [
    {
      "id": "3b2a1c0d-9e8f-4a7b-b6c5-d4e3f2a1b0c9",
      "parentId": null,
      "text": "Count me in for Saturday!",
      "publishAt": 1758710400000,
      "state": "waiting"
    }
  ],
  "next": null
}

Status yang mungkin: 200304400401404429

PUT/v2/me/planned-replies/{id}

Mengubah teks atau waktu balasan terjadwal. Yang gagal akan menunggu lagi.

  • Hak write
  • sejak v2.19

Parameter

NamaTipeArti
iddi pathstringwajibid balasan terjadwal.
textdi isistringopsionalTeks postingan, balasan, atau pesan.
publishAtdi isiintegeropsionalKapan balasan terbit, dalam milidetik sejak 1970. Tanpa ini, langsung terkirim.

Contoh permintaan

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"

Jawaban

Menjawab dengan satu Ok.

Contoh
{
  "ok": true
}

Status yang mungkin: 200400401403404429

POST/v2/me/planned-replies/{id}/send

Mengirim balasan terjadwal sekarang juga.

  • Hak write
  • sejak v2.19

Parameter

NamaTipeArti
iddi pathstringwajibid balasan terjadwal.

Contoh permintaan

curl -X POST \
  -H "Authorization: Bearer tm_key_…" \
  "https://api.tellmelo.com/v2/me/planned-replies/3b2a1c0d-9e8f-4a7b-b6c5-d4e3f2a1b0c9/send"

Jawaban

Menjawab dengan satu Ok.

Contoh
{
  "ok": true
}

Status yang mungkin: 200400401403404429

DELETE/v2/me/planned-replies/{id}

Menghapus balasan terjadwal.

  • Hak write
  • sejak v2.19

Parameter

NamaTipeArti
iddi pathstringwajibid balasan terjadwal.

Contoh permintaan

curl -X DELETE \
  -H "Authorization: Bearer tm_key_…" \
  "https://api.tellmelo.com/v2/me/planned-replies/3b2a1c0d-9e8f-4a7b-b6c5-d4e3f2a1b0c9"

Jawaban

Menjawab dengan satu Ok.

Contoh
{
  "ok": true
}

Status yang mungkin: 200400401403404429

Jajak pendapat

Jajak pendapat adalah postingan yang poll-nya diisi. Memilih punya path sendiri.

POST/v2/posts/{id}/vote

Ikut dalam jajak pendapat.

  • Hak write
  • sejak v2.0

Suara per pilihan bernilai null sampai kamu memilih atau jajak pendapat berakhir. total selalu ada.

Parameter

NamaTipeArti
iddi pathstringwajibid sebuah postingan.
optiondi isiintegerwajibPilihan mana, dihitung dari 0. Untuk pilihan ganda, panggil sekali per pilihan.
retractdi isibooleanopsionaltrue menarik suara.

Contoh permintaan

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"

Jawaban

Menjawab dengan satu Ok.

Contoh
{
  "ok": true
}

Status yang mungkin: 200400401403404429

Profil

Profil publik menurut nama pendeknya, dan apa yang mereka posting.

GET/v2/profiles/{handle}

Sebuah profil, menurut nama pendeknya.

  • Hak read
  • dengan ETag
  • sejak v2.0

Parameter

NamaTipeArti
handledi pathstringwajibNama pendek sebuah profil, huruf besar atau kecil sama saja.

Contoh permintaan

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

Jawaban

Menjawab dengan satu Profile.

Contoh
{
  "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
}

Status yang mungkin: 200304400401404429

GET/v2/profiles/{handle}/posts

Postingan publik dari satu profil, yang terbaru lebih dulu.

  • Hak read
  • berhalaman
  • dengan ETag
  • sejak v2.0

Di path publik, counts.likes dan counts.reposts selalu 0 dan pinned bernilai false.

Postingan di grup tidak ada di sini, melainkan di /communities/{id}/posts.

Parameter

NamaTipeArti
handledi pathstringwajibNama pendek sebuah profil, huruf besar atau kecil sama saja.
limitdi queryintegeropsionalEntri per halaman: 20 secara bawaan, maksimal 50.
cursordi querystringopsionalnext dari jawaban sebelumnya. Tanpa itu, dari awal.

Contoh permintaan

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

Jawaban

Menjawab dengan satu halaman Post, sebagai `items` dan `next`.

Contoh
{
  "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"
}

Status yang mungkin: 200304400401404429

GET/v2/profiles/{handle}/events

Acara mendatang dari sebuah profil, yang terdekat dulu.

  • Hak read
  • dengan ETag
  • sejak v2.19

Hanya selama paket profil mencakup acara. Tidak ada apa pun antara akun yang saling memblokir.

Parameter

NamaTipeArti
handledi pathstringwajibNama pendek sebuah profil, huruf besar atau kecil sama saja.

Contoh permintaan

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

Jawaban

Menjawab dengan satu halaman Event, sebagai `items` dan `next`.

Contoh
{
  "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
}

Status yang mungkin: 200304400401404429

POST/v2/me/events

Membuat acara. Menjawab dengan id-nya.

  • Hak write
  • sejak v2.19

Butuh paket dengan acara, kalau tidak 403. Berapa yang bisa dijadwalkan tergantung paket.

Parameter

NamaTipeArti
titledi isistringwajibJudulnya.
startsAtdi isiintegerwajibMulai, dalam milidetik sejak 1970.
endsAtdi isiintegeropsionalSelesai, dalam milidetik sejak 1970. Opsional.
placedi isistringopsionalDi mana acara berlangsung.
descriptiondi isistringopsionalDeskripsi.
signupsdi isibooleanopsionalApakah orang bisa mendaftar. Butuh paket dengan pendaftaran.
capacitydi isiintegeropsionalBerapa orang paling banyak bisa mendaftar. Tanpa ini, tanpa batas.

Contoh permintaan

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"

Jawaban

Menjawab dengan satu Made.

Contoh
{
  "id": "0d9c8b7a-6f5e-4d3c-2b1a-0f9e8d7c6b5a"
}

Status yang mungkin: 200400401403429

PUT/v2/me/events/{id}

Mengubah salah satu acaramu. Semua kolom diatur ulang.

  • Hak write
  • sejak v2.19

Acara yang sudah mulai tetap memakai waktu mulainya.

Parameter

NamaTipeArti
iddi pathstringwajibid acara.
titledi isistringwajibJudulnya.
startsAtdi isiintegerwajibMulai, dalam milidetik sejak 1970.
endsAtdi isiintegeropsionalSelesai, dalam milidetik sejak 1970. Opsional.
placedi isistringopsionalDi mana acara berlangsung.
descriptiondi isistringopsionalDeskripsi.
signupsdi isibooleanopsionalApakah orang bisa mendaftar. Butuh paket dengan pendaftaran.
capacitydi isiintegeropsionalBerapa orang paling banyak bisa mendaftar. Tanpa ini, tanpa batas.

Contoh permintaan

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"

Jawaban

Menjawab dengan satu Made.

Contoh
{
  "id": "0d9c8b7a-6f5e-4d3c-2b1a-0f9e8d7c6b5a"
}

Status yang mungkin: 200400401403404429

DELETE/v2/me/events/{id}

Menghapus salah satu acaramu.

  • Hak write
  • sejak v2.19

Parameter

NamaTipeArti
iddi pathstringwajibid acara.

Contoh permintaan

curl -X DELETE \
  -H "Authorization: Bearer tm_key_…" \
  "https://api.tellmelo.com/v2/me/events/2a3b4c5d-6e7f-4809-9a1b-2c3d4e5f6a7b"

Jawaban

Menjawab dengan satu Ok.

Contoh
{
  "ok": true
}

Status yang mungkin: 200400401403404429

GET/v2/me/events/{id}/signups

Siapa yang mendaftar ke salah satu acaramu.

  • Hak read
  • dengan ETag
  • sejak v2.19

Parameter

NamaTipeArti
iddi pathstringwajibid acara.

Contoh permintaan

curl \
  -H "Authorization: Bearer tm_key_…" \
  "https://api.tellmelo.com/v2/me/events/2a3b4c5d-6e7f-4809-9a1b-2c3d4e5f6a7b/signups"

Jawaban

Menjawab dengan satu halaman EventSignup, sebagai `items` dan `next`.

Contoh
{
  "items": [
    {
      "id": "a3e1f7c2-54b9-4d0e-8f16-7b2c9d4e1a05",
      "handle": "mara",
      "name": "Mara 🌻",
      "at": 1758624000000
    }
  ],
  "next": null
}

Status yang mungkin: 200304400401404429

POST/v2/events/{id}/signup

Mendaftar ke acara atau membatalkannya.

  • Hak write
  • sejak v2.19

Hanya untuk acara dengan pendaftaran, bukan acaramu sendiri. Jika penuh, 409.

Parameter

NamaTipeArti
iddi pathstringwajibid acara.
goingdi isibooleanwajibtrue mendaftarkanmu, false membatalkan.

Contoh permintaan

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"

Jawaban

Menjawab dengan satu Ok.

Contoh
{
  "ok": true
}

Status yang mungkin: 200400401403404429

Grup

Grup terbuka dan grupmu sendiri, beserta postingan, anggota, peran, dan tautan undangannya.

GET/v2/communities

Grup terbuka di instance ini; dengan mine=true, grup milik akunmu.

  • Hak read
  • dengan ETag
  • sejak v2.0

Diurutkan menurut jumlah anggota dan tidak berhalaman; next selalu null.

Parameter

NamaTipeArti
limitdi queryintegeropsionalEntri per halaman: 20 secara bawaan, maksimal 50.
minedi querybooleanopsionaltrue untuk grup milik akunmu, termasuk yang internal dan tersembunyi, menurut nama.

Contoh permintaan

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

Jawaban

Menjawab dengan satu halaman Community, sebagai `items` dan `next`.

Contoh
{
  "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
}

Status yang mungkin: 200304401429

GET/v2/communities/{id}

Satu grup, menurut id-nya.

  • Hak read
  • dengan ETag
  • sejak v2.0

Grup internal dan tersembunyi hanya jika akunmu anggotanya.

Parameter

NamaTipeArti
iddi pathstringwajibid sebuah grup.

Contoh permintaan

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

Jawaban

Menjawab dengan satu Community.

Contoh
{
  "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
  }
}

Status yang mungkin: 200304400401404429

GET/v2/communities/{id}/posts

Postingan kanal feed sebuah grup, terbaru dulu.

  • Hak read
  • berhalaman
  • dengan ETag
  • sejak v2.0

Di path publik, counts.likes dan counts.reposts selalu 0 dan pinned bernilai false.

Jika kanal feed mati, jalur menjawab 409 dengan feed_off.

Parameter

NamaTipeArti
iddi pathstringwajibid sebuah grup.
limitdi queryintegeropsionalEntri per halaman: 20 secara bawaan, maksimal 50.
cursordi querystringopsionalnext dari jawaban sebelumnya. Tanpa itu, dari awal.

Contoh permintaan

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

Jawaban

Menjawab dengan satu halaman Post, sebagai `items` dan `next`.

Contoh
{
  "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"
}

Status yang mungkin: 200304400401404429

GET/v2/communities/{id}/members

Anggota sebuah grup beserta perannya.

  • Hak read
  • dengan ETag
  • sejak v2.15

Pengurus dulu, lalu menurut peran tertinggi; paling banyak 300.

Parameter

NamaTipeArti
iddi pathstringwajibid sebuah grup.

Contoh permintaan

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

Jawaban

Menjawab dengan satu halaman GroupMember, sebagai `items` dan `next`.

Contoh
{
  "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
}

Status yang mungkin: 200304400401404429

GET/v2/communities/{id}/roles

Peran sebuah grup, yang tertinggi dulu, @everyone terakhir.

  • Hak read
  • dengan ETag
  • sejak v2.15

Parameter

NamaTipeArti
iddi pathstringwajibid sebuah grup.

Contoh permintaan

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

Jawaban

Menjawab dengan satu halaman Role, sebagai `items` dan `next`.

Contoh
{
  "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
}

Status yang mungkin: 200304400401404429

GET/v2/communities/{id}/bell

Notifikasi apa yang dikirim sebuah grup kepadamu.

  • Hak read
  • dengan ETag
  • sejak v2.15

Parameter

NamaTipeArti
iddi pathstringwajibid sebuah grup.

Contoh permintaan

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

Jawaban

Menjawab dengan satu Bell.

Contoh
{
  "level": "important"
}

Status yang mungkin: 200304400401404429

GET/v2/invites/{code}

Grup di balik tautan undangan, sebelum bergabung.

  • Hak read
  • dengan ETag
  • sejak v2.15

Parameter

NamaTipeArti
codedi pathstringwajibKode tautan undangan, bagian akhir alamatnya.

Contoh permintaan

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

Jawaban

Menjawab dengan satu InvitePreview.

Contoh
{
  "community": {
    "id": "c81d4e2a-0f3b-4a6c-9e57-1d2b3c4a5f60",
    "name": "Urban Gardening",
    "members": 312,
    "rules": [
      "Be kind.",
      "No advertising."
    ]
  },
  "member": false
}

Status yang mungkin: 200304400401404429

PUT/v2/roles/{id}/self

Mengambil atau melepas peran pilihan sendiri.

  • Hak write
  • sejak v2.20

Hanya peran yang ditawarkan pengelola sebagai pilihan sendiri (selfable), dan hanya untuk akunmu sendiri.

Parameter

NamaTipeArti
iddi pathstringwajibid sebuah peran.
activedi isibooleanopsionalfalse mencabut peran; selain itu peran diberikan.

Contoh permintaan

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"

Jawaban

Menjawab dengan satu Ok.

Contoh
{
  "ok": true
}

Status yang mungkin: 200400401403404429

GET/v2/communities/{id}/emojis

Emoji milik sebuah grup.

  • Hak read
  • dengan ETag
  • sejak v2.20

Parameter

NamaTipeArti
iddi pathstringwajibid sebuah grup.

Contoh permintaan

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

Jawaban

Menjawab dengan satu halaman GroupEmoji, sebagai `items` dan `next`.

Contoh
{
  "items": [
    {
      "name": "seedling",
      "url": "/api/media?id=8c7b6a59-4837-4261-9f5e-d4c3b2a1f0e9",
      "animated": false
    }
  ],
  "next": null
}

Status yang mungkin: 200304400401404429

PUT/v2/communities/{id}/bell

Mengatur notifikasi apa yang dikirim sebuah grup kepadamu.

  • Hak write
  • sejak v2.15

Parameter

NamaTipeArti
iddi pathstringwajibid sebuah grup.
leveldi isistringwajibNotifikasi apa yang datang.allimportantoff

Contoh permintaan

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"

Jawaban

Menjawab dengan satu Bell.

Contoh
{
  "level": "important"
}

Status yang mungkin: 200400401403404429

POST/v2/invites/{code}/join

Bergabung ke grup dengan tautan undangan.

  • Hak write
  • sejak v2.15

Parameter

NamaTipeArti
codedi pathstringwajibKode tautan undangan, bagian akhir alamatnya.
rulesdi isibooleanopsionaltrue jika kamu menerima aturan grup; diperlukan jika grup punya aturan.

Contoh permintaan

curl -X POST \
  -H "Authorization: Bearer tm_key_…" \
  "https://api.tellmelo.com/v2/invites/k7Qm2xPa/join"

Jawaban

Menjawab dengan satu Joined.

Contoh
{
  "community": "c81d4e2a-0f3b-4a6c-9e57-1d2b3c4a5f60"
}

Status yang mungkin: 200400401403404429

GET/v2/communities/{id}/bots

Bot sebuah grup beserta apa yang diizinkan perannya.

  • Hak read
  • dengan ETag
  • sejak v2.19

Parameter

NamaTipeArti
iddi pathstringwajibid sebuah grup.

Contoh permintaan

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

Jawaban

Menjawab dengan satu halaman GroupBot, sebagai `items` dan `next`.

Contoh
{
  "items": [
    {
      "id": "a3e1f7c2-54b9-4d0e-8f16-7b2c9d4e1a05",
      "handle": "gardenbot",
      "name": "Garden bot",
      "description": "Reminds the group of watering days.",
      "permissions": [
        "send",
        "view"
      ]
    }
  ],
  "next": null
}

Status yang mungkin: 200304400401404429

Kanal

Kanal grupmu dan obrolannya: membaca, menulis, menandai sudah dibaca.

GET/v2/communities/{id}/channels

Kanal sebuah grup yang kamu lihat, sesuai urutannya.

  • Hak read
  • dengan ETag
  • sejak v2.15

Kanal feed (kind: feed) hanya ada di sini selama menyala; postingannya datang lewat /communities/{id}/posts.

Parameter

NamaTipeArti
iddi pathstringwajibid sebuah grup.

Contoh permintaan

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

Jawaban

Menjawab dengan satu halaman Channel, sebagai `items` dan `next`.

Contoh
{
  "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
}

Status yang mungkin: 200304400401404429

GET/v2/channels/{id}/messages

Pesan di kanal obrolan, terbaru dulu.

  • Hak read
  • berhalaman
  • dengan ETag
  • sejak v2.15

Hingga 50 pesan per halaman. Pesan dari akun yang kamu blokir atau yang memblokirmu tidak ada.

Parameter

NamaTipeArti
iddi pathstringwajibid sebuah kanal.
cursordi querystringopsionalnext dari jawaban sebelumnya. Tanpa itu, dari awal.
threaddi querystringopsionalPesan yang utasnya dibaca: pesan itu dan balasannya, bukan obrolan.

Contoh permintaan

curl \
  -H "Authorization: Bearer tm_key_…" \
  "https://api.tellmelo.com/v2/channels/0d9c8b7a-6f5e-4d3c-2b1a-0f9e8d7c6b5a/messages"

Jawaban

Menjawab dengan satu halaman ChannelMessage, sebagai `items` dan `next`.

Contoh
{
  "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"
}

Status yang mungkin: 200304400401404429

POST/v2/channels/{id}/messages

Menulis pesan di kanal obrolan.

  • Hak write
  • sejak v2.15

@nama memberi tahu seorang anggota, @everyone dengan haknya memberi tahu semua, paling banyak enam kali per jam.

Parameter

NamaTipeArti
iddi pathstringwajibid sebuah kanal.
textdi isistringopsionalTeks postingan, balasan, atau pesan.
replyTodi isistringopsionalid pesan di kanal yang sama yang kamu balas.
mediadi isistring[]opsionalID gambar yang diunggah di aplikasi, atau GIF atau video dari perpustakaan media (sejak 2.14).
threaddi isistringopsionalPesan obrolan yang utasnya dibalas; tanpa itu pesan masuk ke obrolan.
carddi isiobjectopsionalKartu { title, text, color, fields: [{ name, value }] }, paling banyak 10 bidang.
buttonsdi isiobject[]opsionalHingga 5 tombol, masing-masing { id, label, style } dengan style primary, secondary, atau danger. Tekanan datang sebagai peristiwa interaction.

Contoh permintaan

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"

Jawaban

Menjawab dengan satu Made.

Contoh
{
  "id": "0d9c8b7a-6f5e-4d3c-2b1a-0f9e8d7c6b5a"
}

Status yang mungkin: 200400401403404429

POST/v2/channels/{id}/read

Menandai kanal obrolan sudah dibaca hingga suatu waktu.

  • Hak write
  • sejak v2.15

Parameter

NamaTipeArti
iddi pathstringwajibid sebuah kanal.
atdi isiintegerwajibSampai kapan sudah dibaca, dalam milidetik, biasanya createdAt pesan terbaru.

Contoh permintaan

curl -X POST \
  -H "Authorization: Bearer tm_key_…" \
  "https://api.tellmelo.com/v2/channels/0d9c8b7a-6f5e-4d3c-2b1a-0f9e8d7c6b5a/read"

Jawaban

Menjawab dengan satu Ok.

Contoh
{
  "ok": true
}

Status yang mungkin: 200400401403404429

DELETE/v2/channel-messages/{id}

Menghapus pesanmu sendiri di kanal obrolan.

  • Hak write
  • sejak v2.15

Hanya pesanmu sendiri; pesan orang lain dihapus pengurus dengan izin groups.

Parameter

NamaTipeArti
iddi pathstringwajibid sebuah pesan di kanal obrolan.

Contoh permintaan

curl -X DELETE \
  -H "Authorization: Bearer tm_key_…" \
  "https://api.tellmelo.com/v2/channel-messages/61a2b3c4-d5e6-4f70-8192-a3b4c5d6e7f8"

Jawaban

Menjawab dengan satu Ok.

Contoh
{
  "ok": true
}

Status yang mungkin: 200400401403404429

GET/v2/communities/{id}/voice

Siapa yang sedang ada di saluran suara sebuah grup, per saluran.

  • Hak read
  • dengan ETag
  • sejak v2.19

Hanya saluran yang boleh kamu lihat. Tanpa server media, daftarnya kosong.

Parameter

NamaTipeArti
iddi pathstringwajibid sebuah grup.

Contoh permintaan

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

Jawaban

Menjawab dengan satu halaman VoiceRoom, sebagai `items` dan `next`.

Contoh
{
  "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
}

Status yang mungkin: 200304400401404429

Mengelola grup

Apa yang bisa dilakukan pengaturan grup di aplikasi, dengan izin groups. Apa yang boleh dilakukan akunmu ditentukan grup seperti di aplikasi: pengurus, peran, dan urutannya.

POST/v2/communities/{id}/emojis

Menambahkan emoji ke grup.

  • Hak groups
  • sejak v2.20

Hanya yang boleh mengelola kanal grup. Gambar diunggah seperti emoji milikmu (POST /me/emojis/pictures); sebuah nama hanya dipakai sekali di antara semua emoji.

Parameter

NamaTipeArti
iddi pathstringwajibid sebuah grup.
namedi isistringwajibNama yang kamu pakai untuk menulis emoji, seperti :nama:.
picturedi isistringwajibid dari POST /me/emojis/pictures.

Contoh permintaan

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"

Jawaban

Menjawab dengan satu halaman GroupEmoji, sebagai `items` dan `next`.

Contoh
{
  "items": [
    {
      "name": "seedling",
      "url": "/api/media?id=8c7b6a59-4837-4261-9f5e-d4c3b2a1f0e9",
      "animated": false
    }
  ],
  "next": null
}

Status yang mungkin: 200400401403404429

DELETE/v2/communities/{id}/emojis/{name}

Menghapus emoji dari grup.

  • Hak groups
  • sejak v2.20

Parameter

NamaTipeArti
iddi pathstringwajibid sebuah grup.
namedi pathstringwajibNama emoji, tanpa titik dua.

Contoh permintaan

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

Jawaban

Menjawab dengan satu halaman GroupEmoji, sebagai `items` dan `next`.

Contoh
{
  "items": [
    {
      "name": "seedling",
      "url": "/api/media?id=8c7b6a59-4837-4261-9f5e-d4c3b2a1f0e9",
      "animated": false
    }
  ],
  "next": null
}

Status yang mungkin: 200400401403404429

POST/v2/communities/{id}/roles

Membuat peran.

  • Hak groups
  • sejak v2.15

Hanya peran di bawah peran tertinggimu dan hanya hak yang kamu punya sendiri; pengurus berada di atas semuanya.

Parameter

NamaTipeArti
iddi pathstringwajibid sebuah grup.
namedi isistringopsionalNama peran; @everyone tetap memakai namanya.
colordi isistringopsionalWarna; kosong untuk tanpa warna.indigovioletroseambergreenteal
permissionsdi isistring[]opsionalHak: view, send, attach, post_feed, invite, mention_everyone, moderate, timeout_members, kick_members, ban_members, manage_channels, manage_roles.
selfabledi isibooleanopsionaltrue: anggota mengambil peran sendiri. Hanya untuk peran yang tidak mengizinkan lebih dari ikut serta (view, send, attach, voice_connect, voice_speak, voice_video).

Contoh permintaan

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"

Jawaban

Menjawab dengan satu Made.

Contoh
{
  "id": "0d9c8b7a-6f5e-4d3c-2b1a-0f9e8d7c6b5a"
}

Status yang mungkin: 200400401403404429

PUT/v2/roles/{id}

Mengubah nama, warna, dan hak sebuah peran.

  • Hak groups
  • sejak v2.15

Mengganti nama, warna, dan hak; yang kamu lewatkan menjadi kosong.

Hanya peran di bawah peran tertinggimu dan hanya hak yang kamu punya sendiri; pengurus berada di atas semuanya.

Parameter

NamaTipeArti
iddi pathstringwajibid sebuah peran.
namedi isistringopsionalNama peran; @everyone tetap memakai namanya.
colordi isistringopsionalWarna; kosong untuk tanpa warna.indigovioletroseambergreenteal
permissionsdi isistring[]opsionalHak: view, send, attach, post_feed, invite, mention_everyone, moderate, timeout_members, kick_members, ban_members, manage_channels, manage_roles.
selfabledi isibooleanopsionaltrue: anggota mengambil peran sendiri. Hanya untuk peran yang tidak mengizinkan lebih dari ikut serta (view, send, attach, voice_connect, voice_speak, voice_video).

Contoh permintaan

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"

Jawaban

Menjawab dengan satu Made.

Contoh
{
  "id": "0d9c8b7a-6f5e-4d3c-2b1a-0f9e8d7c6b5a"
}

Status yang mungkin: 200400401403404429

DELETE/v2/roles/{id}

Menghapus peran.

  • Hak groups
  • sejak v2.15

Parameter

NamaTipeArti
iddi pathstringwajibid sebuah peran.

Contoh permintaan

curl -X DELETE \
  -H "Authorization: Bearer tm_key_…" \
  "https://api.tellmelo.com/v2/roles/4e5f6a7b-8c9d-4e0f-a1b2-c3d4e5f6a7b8"

Jawaban

Menjawab dengan satu Ok.

Contoh
{
  "ok": true
}

Status yang mungkin: 200400401403404429

PUT/v2/communities/{id}/roles/order

Menetapkan urutan peran.

  • Hak groups
  • sejak v2.15

Parameter

NamaTipeArti
iddi pathstringwajibid sebuah grup.
rolesdi isistring[]wajibid semua peran di bawah peran tertinggimu, yang tertinggi lebih dulu; bagi pimpinan semua kecuali @everyone.

Contoh permintaan

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

Jawaban

Menjawab dengan satu Ok.

Contoh
{
  "ok": true
}

Status yang mungkin: 200400401403404429

PUT/v2/roles/{id}/members/{member}

Memberi atau mencabut peran seorang anggota.

  • Hak groups
  • sejak v2.15

Parameter

NamaTipeArti
iddi pathstringwajibid sebuah peran.
memberdi pathstringwajibid akun seorang anggota.
activedi isibooleanopsionalfalse mencabut peran; selain itu peran diberikan.

Contoh permintaan

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"

Jawaban

Menjawab dengan satu Ok.

Contoh
{
  "ok": true
}

Status yang mungkin: 200400401403404429

POST/v2/communities/{id}/channels

Membuat kanal obrolan.

  • Hak groups
  • sejak v2.15

Parameter

NamaTipeArti
iddi pathstringwajibid sebuah grup.
namedi isistringopsionalNama, tanpa #; kosong untuk nama yang diberikan aplikasi dalam tiap bahasa.
topicdi isistringopsionalTopik yang tampil di atas kanal.
categorydi isistringopsionalid kategori tempat kanal masuk; kosong untuk tanpa kategori.
emojidi isistringopsionalEmoji sebagai simbol.
icondi isistringopsionalSimbol dari set aplikasi, dengan namanya.homehashmegaphonevolumemessagehelpinfobellcalendarbookbookmarkpinshieldstarheartsparklesflamezaptrophygiftrocketlightbulbcodewrenchbriefcasegraduationpalettecamerafilmmusicgamepaddumbbellleafflowerpawsunmooncloudglobemapcoffeepizzasmile
imagedi isistringopsionalId gambar yang kamu unggah dengan /media/emoji.
colordi isistringopsionalWarna petak.brandindigovioletroseambergreentealred
shapedi isistringopsionalBentuk petak; tanpa itu lingkaran.circlesquaretrianglediamondhexagonoctagonshieldstar

Contoh permintaan

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"

Jawaban

Menjawab dengan satu Made.

Contoh
{
  "id": "0d9c8b7a-6f5e-4d3c-2b1a-0f9e8d7c6b5a"
}

Status yang mungkin: 200400401403404429

PUT/v2/channels/{id}

Mengubah nama, topik, dan kategori sebuah kanal.

  • Hak groups
  • sejak v2.15

Mengganti nama, topik, dan kategori; yang kamu lewatkan menjadi kosong.

Parameter

NamaTipeArti
iddi pathstringwajibid sebuah kanal.
namedi isistringopsionalNama, tanpa #; kosong untuk nama yang diberikan aplikasi dalam tiap bahasa.
topicdi isistringopsionalTopik yang tampil di atas kanal.
categorydi isistringopsionalid kategori tempat kanal masuk; kosong untuk tanpa kategori.
emojidi isistringopsionalEmoji sebagai simbol.
icondi isistringopsionalSimbol dari set aplikasi, dengan namanya.homehashmegaphonevolumemessagehelpinfobellcalendarbookbookmarkpinshieldstarheartsparklesflamezaptrophygiftrocketlightbulbcodewrenchbriefcasegraduationpalettecamerafilmmusicgamepaddumbbellleafflowerpawsunmooncloudglobemapcoffeepizzasmile
imagedi isistringopsionalId gambar yang kamu unggah dengan /media/emoji.
colordi isistringopsionalWarna petak.brandindigovioletroseambergreentealred
shapedi isistringopsionalBentuk petak; tanpa itu lingkaran.circlesquaretrianglediamondhexagonoctagonshieldstar

Contoh permintaan

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"

Jawaban

Menjawab dengan satu Made.

Contoh
{
  "id": "0d9c8b7a-6f5e-4d3c-2b1a-0f9e8d7c6b5a"
}

Status yang mungkin: 200400401403404429

DELETE/v2/channels/{id}

Menghapus kanal obrolan beserta pesannya.

  • Hak groups
  • sejak v2.15

Kanal feed tidak bisa dihapus, hanya dimatikan.

Parameter

NamaTipeArti
iddi pathstringwajibid sebuah kanal.

Contoh permintaan

curl -X DELETE \
  -H "Authorization: Bearer tm_key_…" \
  "https://api.tellmelo.com/v2/channels/0d9c8b7a-6f5e-4d3c-2b1a-0f9e8d7c6b5a"

Jawaban

Menjawab dengan satu Ok.

Contoh
{
  "ok": true
}

Status yang mungkin: 200400401403404429

PUT/v2/communities/{id}/channels/order

Menetapkan urutan kategori dan kanal obrolan.

  • Hak groups
  • sejak v2.15

Parameter

NamaTipeArti
iddi pathstringwajibid sebuah grup.
categoriesdi isistring[]wajibid semua kategori grup dalam urutan baru.
channelsdi isistring[]wajibid semua kanal obrolan grup dalam urutan baru.

Contoh permintaan

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

Jawaban

Menjawab dengan satu Ok.

Contoh
{
  "ok": true
}

Status yang mungkin: 200400401403404429

PUT/v2/communities/{id}/channels/shape

Menetapkan bentuk semua simbol kanal grup.

  • Hak groups
  • sejak v2.20

Hanya pimpinan grup.

Parameter

NamaTipeArti
iddi pathstringwajibid sebuah grup.
shapedi isistringopsionalBentuk semua simbol grup; jika dihilangkan, tiap kanal punya sendiri.circlesquaretrianglediamondhexagonoctagonshieldstar

Contoh permintaan

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

Jawaban

Menjawab dengan satu Ok.

Contoh
{
  "ok": true
}

Status yang mungkin: 200400401403404429

GET/v2/channels/{id}/overrides

Apa yang boleh dilakukan peran secara berbeda di sebuah kanal dibanding di grup.

  • Hak groups
  • dengan ETag
  • sejak v2.15

Parameter

NamaTipeArti
iddi pathstringwajibid sebuah kanal.

Contoh permintaan

curl \
  -H "Authorization: Bearer tm_key_…" \
  "https://api.tellmelo.com/v2/channels/0d9c8b7a-6f5e-4d3c-2b1a-0f9e8d7c6b5a/overrides"

Jawaban

Menjawab dengan satu halaman ChannelOverride, sebagai `items` dan `next`.

Contoh
{
  "items": [
    {
      "role": "4e5f6a7b-8c9d-4e0f-a1b2-c3d4e5f6a7b8",
      "allow": [
        "send"
      ],
      "deny": []
    }
  ],
  "next": null
}

Status yang mungkin: 200304400401403404429

PUT/v2/channels/{id}/overrides/{role}

Menetapkan apa yang boleh dilakukan peran secara berbeda di sebuah kanal.

  • Hak groups
  • sejak v2.15

Tidak untuk peran yang setara atau di atas peran tertinggimu.

Parameter

NamaTipeArti
iddi pathstringwajibid sebuah kanal.
roledi pathstringwajibid sebuah peran.
allowdi isistring[]opsionalApa yang juga boleh dilakukan peran di sini: di chat view, send, attach, mention_everyone, moderate, di kanal feed view dan post_feed.
denydi isistring[]opsionalApa yang tidak boleh dilakukan peran ini di sini, dari hak yang sama. Kedua daftar kosong menghapus perbedaannya.

Contoh permintaan

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"

Jawaban

Menjawab dengan satu Ok.

Contoh
{
  "ok": true
}

Status yang mungkin: 200400401403404429

POST/v2/communities/{id}/categories

Membuat kategori untuk kanal.

  • Hak groups
  • sejak v2.15

Parameter

NamaTipeArti
iddi pathstringwajibid sebuah grup.
namedi isistringwajibNama kategori.
emojidi isistringopsionalEmoji sebagai simbol.
icondi isistringopsionalSimbol dari set aplikasi, dengan namanya.homehashmegaphonevolumemessagehelpinfobellcalendarbookbookmarkpinshieldstarheartsparklesflamezaptrophygiftrocketlightbulbcodewrenchbriefcasegraduationpalettecamerafilmmusicgamepaddumbbellleafflowerpawsunmooncloudglobemapcoffeepizzasmile
imagedi isistringopsionalId gambar yang kamu unggah dengan /media/emoji.
colordi isistringopsionalWarna petak.brandindigovioletroseambergreentealred

Contoh permintaan

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"

Jawaban

Menjawab dengan satu Made.

Contoh
{
  "id": "0d9c8b7a-6f5e-4d3c-2b1a-0f9e8d7c6b5a"
}

Status yang mungkin: 200400401403404429

PUT/v2/categories/{id}

Mengganti nama kategori.

  • Hak groups
  • sejak v2.15

Parameter

NamaTipeArti
iddi pathstringwajibid sebuah kategori.
namedi isistringwajibNama kategori.
emojidi isistringopsionalEmoji sebagai simbol.
icondi isistringopsionalSimbol dari set aplikasi, dengan namanya.homehashmegaphonevolumemessagehelpinfobellcalendarbookbookmarkpinshieldstarheartsparklesflamezaptrophygiftrocketlightbulbcodewrenchbriefcasegraduationpalettecamerafilmmusicgamepaddumbbellleafflowerpawsunmooncloudglobemapcoffeepizzasmile
imagedi isistringopsionalId gambar yang kamu unggah dengan /media/emoji.
colordi isistringopsionalWarna petak.brandindigovioletroseambergreentealred

Contoh permintaan

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"

Jawaban

Menjawab dengan satu Made.

Contoh
{
  "id": "0d9c8b7a-6f5e-4d3c-2b1a-0f9e8d7c6b5a"
}

Status yang mungkin: 200400401403404429

DELETE/v2/categories/{id}

Menghapus kategori.

  • Hak groups
  • sejak v2.15

Kanalnya tetap ada, tanpa kategori.

Parameter

NamaTipeArti
iddi pathstringwajibid sebuah kategori.

Contoh permintaan

curl -X DELETE \
  -H "Authorization: Bearer tm_key_…" \
  "https://api.tellmelo.com/v2/categories/9a8b7c6d-5e4f-4a3b-8c2d-1e0f9a8b7c6d"

Jawaban

Menjawab dengan satu Ok.

Contoh
{
  "ok": true
}

Status yang mungkin: 200400401403404429

PUT/v2/communities/{id}/feed

Menyalakan atau mematikan kanal feed sebuah grup.

  • Hak groups
  • sejak v2.15

Saat mati, postingan tetap tersimpan tetapi hanya penulisnya yang bisa melihat.

Parameter

NamaTipeArti
iddi pathstringwajibid sebuah grup.
ondi isibooleanwajibtrue menyalakan kanal feed, false mematikannya.

Contoh permintaan

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

Jawaban

Menjawab dengan satu Ok.

Contoh
{
  "ok": true
}

Status yang mungkin: 200400401403404429

GET/v2/communities/{id}/invites

Tautan undangan sebuah grup yang masih berlaku.

  • Hak groups
  • dengan ETag
  • sejak v2.15

Pengurus melihat semuanya, yang lain hanya miliknya sendiri.

Parameter

NamaTipeArti
iddi pathstringwajibid sebuah grup.

Contoh permintaan

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

Jawaban

Menjawab dengan satu halaman InviteLink, sebagai `items` dan `next`.

Contoh
{
  "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
}

Status yang mungkin: 200304400401403404429

POST/v2/communities/{id}/invites

Membuat tautan undangan.

  • Hak groups
  • sejak v2.15

Tautan hanya berlaku selama kamu boleh mengundang, dan hilang saat kamu keluar.

Parameter

NamaTipeArti
iddi pathstringwajibid sebuah grup.
daysdi isiintegeropsionalBerapa hari tautan berlaku; tanpa ini, sampai ditarik.1730
usesdi isiintegeropsionalBerapa kali tautan bisa dipakai; tanpa ini, tanpa batas.151025100

Contoh permintaan

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"

Jawaban

Menjawab dengan satu Made.

Contoh
{
  "id": "0d9c8b7a-6f5e-4d3c-2b1a-0f9e8d7c6b5a"
}

Status yang mungkin: 200400401403404429

DELETE/v2/invites/{code}

Menarik tautan undangan.

  • Hak groups
  • sejak v2.15

Parameter

NamaTipeArti
codedi pathstringwajibKode tautan undangan, bagian akhir alamatnya.

Contoh permintaan

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

Jawaban

Menjawab dengan satu Ok.

Contoh
{
  "ok": true
}

Status yang mungkin: 200400401403404429

POST/v2/channel-messages/{id}/remove

Menghapus pesan anggota lain dari sebuah kanal.

  • Hak groups
  • sejak v2.15

Tercatat di log grup dan paling banyak 60 per jam, seperti di aplikasi.

Parameter

NamaTipeArti
iddi pathstringwajibid sebuah pesan di kanal obrolan.

Contoh permintaan

curl -X POST \
  -H "Authorization: Bearer tm_key_…" \
  "https://api.tellmelo.com/v2/channel-messages/61a2b3c4-d5e6-4f70-8192-a3b4c5d6e7f8/remove"

Jawaban

Menjawab dengan satu Ok.

Contoh
{
  "ok": true
}

Status yang mungkin: 200400401403404429

POST/v2/communities/{id}/posts/{post}/remove

Menghapus postingan dari sebuah grup.

  • Hak groups
  • sejak v2.15

Tercatat di log grup dan paling banyak 60 per jam, seperti di aplikasi.

Parameter

NamaTipeArti
iddi pathstringwajibid sebuah grup.
postdi pathstringwajibid sebuah postingan.
reasondi isistringwajibAlasan yang dibaca anggota.

Contoh permintaan

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"

Jawaban

Menjawab dengan satu Ok.

Contoh
{
  "ok": true
}

Status yang mungkin: 200400401403404429

DELETE/v2/communities/{id}/members/{member}

Mengeluarkan anggota dari grup.

  • Hak groups
  • sejak v2.15

Sejak 2.16 ini mengeluarkan: anggota bisa kembali. Yang harus tetap di luar, diblokir.

Hanya dengan hak untuk itu dan hanya untuk anggota di bawah peran tertinggimu; wakil pimpinan hanya sebagai pendiri.

Tercatat di log grup dan paling banyak 60 per jam, seperti di aplikasi.

Parameter

NamaTipeArti
iddi pathstringwajibid sebuah grup.
memberdi pathstringwajibid akun seorang anggota.
reasondi isistringwajibAlasan yang dibaca anggota.

Contoh permintaan

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"

Jawaban

Menjawab dengan satu Ok.

Contoh
{
  "ok": true
}

Status yang mungkin: 200400401403404429

PUT/v2/communities/{id}/members/{member}/timeout

Membisukan anggota.

  • Hak groups
  • sejak v2.16

Pembisuan baru menggantikan yang sedang berjalan. Keluar lalu bergabung lagi tidak mengakhirinya.

Hanya dengan hak untuk itu dan hanya untuk anggota di bawah peran tertinggimu; wakil pimpinan hanya sebagai pendiri.

Tercatat di log grup dan paling banyak 60 per jam, seperti di aplikasi.

Parameter

NamaTipeArti
iddi pathstringwajibid sebuah grup.
memberdi pathstringwajibid akun seorang anggota.
secondsdi isiintegerwajibBerapa lama, dalam detik.60300600360086400604800
reasondi isistringopsionalAlasan yang dibaca anggota; opsional.

Contoh permintaan

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"

Jawaban

Menjawab dengan satu Until.

Contoh
{
  "until": 1758624600000
}

Status yang mungkin: 200400401403404429

DELETE/v2/communities/{id}/members/{member}/timeout

Mencabut pembisuan.

  • Hak groups
  • sejak v2.16

Parameter

NamaTipeArti
iddi pathstringwajibid sebuah grup.
memberdi pathstringwajibid akun seorang anggota.

Contoh permintaan

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"

Jawaban

Menjawab dengan satu Until.

Contoh
{
  "until": 1758624600000
}

Status yang mungkin: 200400401403404429

GET/v2/communities/{id}/bans

Blokir yang sedang berlaku di sebuah grup.

  • Hak groups
  • dengan ETag
  • sejak v2.16

Parameter

NamaTipeArti
iddi pathstringwajibid sebuah grup.

Contoh permintaan

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

Jawaban

Menjawab dengan satu halaman Ban, sebagai `items` dan `next`.

Contoh
{
  "items": [
    {
      "member": {
        "id": "d4c3b2a1-6e5f-4a7b-9c8d-1e2f3a4b5c6d",
        "handle": "jon",
        "name": "Jon",
        "bot": false
      },
      "until": 1759228800000,
      "createdAt": 1758624000000,
      "by": "Mara 🌻"
    }
  ],
  "next": null
}

Status yang mungkin: 200304400401403404429

PUT/v2/communities/{id}/bans/{member}

Memblokir anggota.

  • Hak groups
  • sejak v2.16

Tanpa days, blokir berlaku sampai dicabut.

Hanya dengan hak untuk itu dan hanya untuk anggota di bawah peran tertinggimu; wakil pimpinan hanya sebagai pendiri.

Tercatat di log grup dan paling banyak 60 per jam, seperti di aplikasi.

Parameter

NamaTipeArti
iddi pathstringwajibid sebuah grup.
memberdi pathstringwajibid akun seorang anggota.
daysdi isiintegeropsionalBerapa lama, dalam hari; kosongkan untuk blokir tanpa akhir.1730
reasondi isistringwajibAlasan yang dibaca anggota.

Contoh permintaan

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"

Jawaban

Menjawab dengan satu Until.

Contoh
{
  "until": 1758624600000
}

Status yang mungkin: 200400401403404429

DELETE/v2/communities/{id}/bans/{member}

Mencabut blokir.

  • Hak groups
  • sejak v2.16

Parameter

NamaTipeArti
iddi pathstringwajibid sebuah grup.
memberdi pathstringwajibid akun seorang anggota.

Contoh permintaan

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"

Jawaban

Menjawab dengan satu Ok.

Contoh
{
  "ok": true
}

Status yang mungkin: 200400401403404429

GET/v2/communities/{id}/log

Log pengurus: siapa menghapus apa dan mengapa.

  • Hak groups
  • dengan ETag
  • sejak v2.15

Parameter

NamaTipeArti
iddi pathstringwajibid sebuah grup.

Contoh permintaan

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

Jawaban

Menjawab dengan satu halaman LogEntry, sebagai `items` dan `next`.

Contoh
{
  "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
}

Status yang mungkin: 200304400401403404429

POST/v2/communities

Mendirikan grup. Menjawab dengan id-nya; kamu pendirinya.

  • Hak groups
  • sejak v2.19

Butuh izin groups. Tanpa keterangan, grup bersifat internal dan bebas bergabung; grup tersembunyi hanya dengan undangan. Boleh tidaknya anggota mendirikan grup ditentukan operator.

Parameter

NamaTipeArti
namedi isistringwajibNamanya, paling banyak 60 karakter.
descriptiondi isistringopsionalDeskripsinya, paling banyak 240 karakter.
handledi isistringopsionalNama singkat untuk sebutan @# dan tautan: 3 sampai 30 huruf kecil, angka, atau _.
tagsdi isistring[]opsionalHingga 5 #tag tentang topik grup.
joinPolicydi isistringopsionalCara bergabung: open bebas, application dengan lamaran, invite hanya dengan undangan.openapplicationinvite
visibilitydi isistringopsionalSiapa yang melihat grup: open semua orang, internal isinya hanya anggota, hidden sama sekali hanya anggota.openinternalhidden

Contoh permintaan

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"

Jawaban

Menjawab dengan satu Made.

Contoh
{
  "id": "0d9c8b7a-6f5e-4d3c-2b1a-0f9e8d7c6b5a"
}

Status yang mungkin: 200400401403429

PUT/v2/communities/{id}

Mengubah grup yang kamu pimpin. Yang tidak kamu isi tetap sama.

  • Hak groups
  • sejak v2.19

Butuh izin groups dan memimpin grup. Kepemimpinan, pembubaran, dan keuntungan percikan tetap di aplikasi.

Parameter

NamaTipeArti
iddi pathstringwajibid sebuah grup.
namedi isistringopsionalNamanya, paling banyak 60 karakter.
descriptiondi isistringopsionalDeskripsinya, paling banyak 240 karakter.
handledi isistringopsionalNama singkat untuk sebutan @# dan tautan: 3 sampai 30 huruf kecil, angka, atau _.
tagsdi isistring[]opsionalHingga 5 #tag tentang topik grup.
joinPolicydi isistringopsionalCara bergabung: open bebas, application dengan lamaran, invite hanya dengan undangan.openapplicationinvite
visibilitydi isistringopsionalSiapa yang melihat grup: open semua orang, internal isinya hanya anggota, hidden sama sekali hanya anggota.openinternalhidden
imagedi isistringopsionalid gambar yang diunggah (POST /me/pictures) sebagai gambar grup. Kosong menghapusnya.
bannerdi isistringopsionalid gambar yang diunggah sebagai sampul grup. Kosong menghapusnya.

Contoh permintaan

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"

Jawaban

Menjawab dengan satu Ok.

Contoh
{
  "ok": true
}

Status yang mungkin: 200400401403404429

Bot

Apa yang terjadi di grup sebuah bot, secara langsung: sebagai aliran, halaman demi halaman, atau dikirim ke alamat.

GET/v2/events

Peristiwa dari grup bot sejak suatu peristiwa, halaman demi halaman.

  • Hak read
  • sejak v2.20

Hanya dengan token bot. Peristiwa kanal hanya jika bot boleh melihatnya.

Peristiwa disimpan sehari. next adalah nomor yang terakhir, sebagai since untuk halaman berikutnya.

Parameter

NamaTipeArti
sincedi querystringopsionalNomor peristiwa terakhir yang sudah dimiliki bot. Tanpa itu, aliran mulai sekarang dan daftar dari yang tertua.

Contoh permintaan

curl \
  -H "Authorization: Bearer tm_key_…" \
  "https://api.tellmelo.com/v2/events?since=0"

Jawaban

Menjawab dengan satu halaman BotEvent, sebagai `items` dan `next`.

Contoh
{
  "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
}

Status yang mungkin: 200401429

GET/v2/events/stream

Peristiwa dari grup bot begitu terjadi (server-sent events).

  • Hak read
  • dengan ETag
  • sejak v2.20

Koneksi tetap terbuka dan ditutup setelah sepuluh menit; klien menyambung lagi dan mengirim Last-Event-ID.

Hanya dengan token bot. Peristiwa kanal hanya jika bot boleh melihatnya.

Parameter

NamaTipeArti
sincedi querystringopsionalNomor peristiwa terakhir yang sudah dimiliki bot. Tanpa itu, aliran mulai sekarang dan daftar dari yang tertua.

Contoh permintaan

curl \
  -H "Authorization: Bearer tm_key_…" \
  "https://api.tellmelo.com/v2/events/stream?since=0"

Jawaban

Menjawab dengan satu BotEvent.

Contoh
{
  "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
    }
  }
}

Status yang mungkin: 200304401429

GET/v2/me/commands

Perintah bot.

  • Hak read
  • dengan ETag
  • sejak v2.20

Hanya dengan token bot. Peristiwa kanal hanya jika bot boleh melihatnya.

Contoh permintaan

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

Jawaban

Menjawab dengan satu halaman BotCommand, sebagai `items` dan `next`.

Contoh
{
  "items": [
    {
      "name": "dice",
      "description": "Rolls a die"
    }
  ],
  "next": null
}

Status yang mungkin: 200304401429

PUT/v2/me/commands

Menetapkan perintah bot, semuanya sekaligus.

  • Hak write
  • sejak v2.20

Mengganti semua perintah; daftar kosong menghapusnya. Di obrolan yang boleh dilihat bot, kolom input menawarkannya setelah “/”.

Parameter

NamaTipeArti
commandsdi isiobject[]wajibHingga 25 perintah, masing-masing { name, description }.

Contoh permintaan

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"

Jawaban

Menjawab dengan satu halaman BotCommand, sebagai `items` dan `next`.

Contoh
{
  "items": [
    {
      "name": "dice",
      "description": "Rolls a die"
    }
  ],
  "next": null
}

Status yang mungkin: 200400401403429

POST/v2/interactions/{id}/reply

Menjawab perintah atau tombol.

  • Hak write
  • sejak v2.20

Dalam 15 menit setelah peristiwa command atau interaction; dengan private, hanya yang memakai perintah atau tombol yang melihat jawabannya.

Parameter

NamaTipeArti
iddi pathstringwajibId dari peristiwa (data.interaction).
textdi isistringopsionalTeks postingan, balasan, atau pesan.
privatedi isibooleanopsionaltrue: hanya yang memakai perintah atau tombol yang melihat jawabannya, selama sehari.
carddi isiobjectopsionalKartu { title, text, color, fields: [{ name, value }] }, paling banyak 10 bidang.
buttonsdi isiobject[]opsionalHingga 5 tombol, masing-masing { id, label, style } dengan style primary, secondary, atau danger. Tekanan datang sebagai peristiwa interaction.

Contoh permintaan

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"

Jawaban

Menjawab dengan satu Made.

Contoh
{
  "id": "0d9c8b7a-6f5e-4d3c-2b1a-0f9e8d7c6b5a"
}

Status yang mungkin: 200400401403404429

POST/v2/channels/{id}/voice

Mengambil tempat di kanal suara untuk memutar musik atau suara.

  • Hak write
  • sejak v2.20

Hanya dengan token bot, sejauh diizinkan perannya di kanal. Program tersambung dengan SDK LiveKit dan mengirim suaranya sebagai mikrofon; setiap orang mengatur volumenya sendiri.

Parameter

NamaTipeArti
iddi pathstringwajibid sebuah kanal.

Contoh permintaan

curl -X POST \
  -H "Authorization: Bearer tm_key_…" \
  "https://api.tellmelo.com/v2/channels/0d9c8b7a-6f5e-4d3c-2b1a-0f9e8d7c6b5a/voice"

Jawaban

Menjawab dengan satu VoiceSeat.

Contoh
{
  "url": "wss://voice.example.org",
  "token": "eyJhbGciOiJIUzI1NiJ9…",
  "iceServers": [
    {
      "urls": [
        "stun:turn.example.org:3478"
      ]
    }
  ],
  "speak": true,
  "video": false
}

Status yang mungkin: 200400401403404429

Jelajahi

Tren, pencarian, dan emoji milik instans.

GET/v2/tags

Tag yang sedang ramai.

  • Hak read
  • dengan ETag
  • sejak v2.0

Maksimal 10 tag tren menurut skor: setiap pemakaian bernilai 1 dan berkurang separuh setiap 3 hari, satu akun bernilai maksimal 3 per hari. posts adalah skor yang dibulatkan. limit hanya memperpendek daftar. Tag yang disorot tim bisa berada lebih atas.

Parameter

NamaTipeArti
limitdi queryintegeropsionalEntri per halaman: 20 secara bawaan, maksimal 50.

Contoh permintaan

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

Jawaban

Menjawab dengan satu halaman Tag, sebagai `items` dan `next`.

Contoh
{
  "items": [
    {
      "tag": "garden",
      "posts": 58
    }
  ],
  "next": null
}

Status yang mungkin: 200304401429

GET/v2/search

Pencarian di postingan, nama, nama pendek, dan tag.

  • Hak read
  • dengan ETag
  • sejak v2.0

Hanya mencari konten publik: postingan di luar grup, profil, dan tag. limit berlaku per jenis.

Parameter

NamaTipeArti
qdi querystringwajibKata yang dicari.
typedi querystringopsionalJenis hasil mana. Tanpa itu, semua jenis.allpostsprofilestags
limitdi queryintegeropsionalEntri per halaman: 20 secara bawaan, maksimal 50.

Contoh permintaan

curl \
  -H "Authorization: Bearer tm_key_…" \
  "https://api.tellmelo.com/v2/search?q=garden&type=posts"

Jawaban

Menjawab dengan satu SearchResult.

Contoh
{
  "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
    }
  ]
}

Status yang mungkin: 200304400401429

GET/v2/emojis

Emoji milik instans, dengan alamat gambarnya.

  • Hak read
  • dengan ETag
  • sejak v2.1

Di teks, emoji muncul sebagai :name:. Ganti dengan gambar dari daftar ini; nama yang tidak dikenal tetap teks.

Contoh permintaan

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

Jawaban

Menjawab dengan satu halaman Emoji, sebagai `items` dan `next`.

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

Status yang mungkin: 200304401429

GIF dan video

Perpustakaan media: cari GIF dan video yang dibagikan, unggah dan kelola milikmu, dan sematkan di situs web lain.

GET/v2/media

GIF atau video yang dibagikan, yang paling sering dipakai lebih dulu.

  • Hak read
  • berhalaman
  • dengan ETag
  • sejak v2.14

Tanpa akun yang kamu blokir atau yang memblokirmu. Muat url dan poster dengan kunci di header, untuk postingan di tellmelo.

Untuk situs web lain hanya yang punya embed: alamatnya berfungsi tanpa kunci, di browser apa pun.

Parameter

NamaTipeArti
kinddi querystringopsionalgif atau video; jika tidak diisi, gif.gifvideo
qdi querystringopsionalKata yang ada di nama atau kata kunci.
anywheredi querybooleanopsionaltrue: hanya yang juga boleh muncul di situs web lain.
limitdi queryintegeropsionalEntri per halaman: 20 secara bawaan, maksimal 50.
cursordi querystringopsionalnext dari jawaban sebelumnya. Tanpa itu, dari awal.

Contoh permintaan

curl \
  -H "Authorization: Bearer tm_key_…" \
  "https://api.tellmelo.com/v2/media?kind=gif&q=bees&anywhere=true&limit=20"

Jawaban

Menjawab dengan satu halaman MediaItem, sebagai `items` dan `next`.

Contoh
{
  "items": [
    {
      "id": "b2d7e9f1-3c4a-4e8b-a1f0-6d5c4b3a2918",
      "kind": "gif",
      "name": "Happy bees",
      "keywords": "bees garden happy",
      "width": 480,
      "height": 270,
      "seconds": 0,
      "url": "/api/media?id=b2d7e9f1-3c4a-4e8b-a1f0-6d5c4b3a2918",
      "poster": "/api/media?id=b2d7e9f1-3c4a-4e8b-a1f0-6d5c4b3a2918&poster=1",
      "uploader": {
        "handle": "mara",
        "name": "Mara 🌻"
      },
      "mine": false,
      "shared": true,
      "anywhere": true,
      "embed": {
        "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>"
      }
    }
  ],
  "next": "MTc1ODYyNDAwMDAwMDo1ZjBjMmE5ZS04ZDQx"
}

Status yang mungkin: 200304400401429

GET/v2/media/mine

Perpustakaan media milikmu, yang terbaru lebih dulu.

  • Hak media
  • berhalaman
  • dengan ETag
  • sejak v2.14

Parameter

NamaTipeArti
kinddi querystringopsionalgif atau video; jika tidak diisi, gif.gifvideo
qdi querystringopsionalKata yang ada di nama atau kata kunci.
limitdi queryintegeropsionalEntri per halaman: 20 secara bawaan, maksimal 50.
cursordi querystringopsionalnext dari jawaban sebelumnya. Tanpa itu, dari awal.

Contoh permintaan

curl \
  -H "Authorization: Bearer tm_key_…" \
  "https://api.tellmelo.com/v2/media/mine?kind=gif&q=bees&limit=20"

Jawaban

Menjawab dengan satu halaman MediaItem, sebagai `items` dan `next`.

Contoh
{
  "items": [
    {
      "id": "b2d7e9f1-3c4a-4e8b-a1f0-6d5c4b3a2918",
      "kind": "gif",
      "name": "Happy bees",
      "keywords": "bees garden happy",
      "width": 480,
      "height": 270,
      "seconds": 0,
      "url": "/api/media?id=b2d7e9f1-3c4a-4e8b-a1f0-6d5c4b3a2918",
      "poster": "/api/media?id=b2d7e9f1-3c4a-4e8b-a1f0-6d5c4b3a2918&poster=1",
      "uploader": {
        "handle": "mara",
        "name": "Mara 🌻"
      },
      "mine": false,
      "shared": true,
      "anywhere": true,
      "embed": {
        "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>"
      }
    }
  ],
  "next": "MTc1ODYyNDAwMDAwMDo1ZjBjMmE5ZS04ZDQx"
}

Status yang mungkin: 200304400401403429

GET/v2/media/{id}

Sebuah GIF atau video, milikmu atau yang dibagikan.

  • Hak read
  • dengan ETag
  • sejak v2.14

Parameter

NamaTipeArti
iddi pathstringwajibID GIF atau video.

Contoh permintaan

curl \
  -H "Authorization: Bearer tm_key_…" \
  "https://api.tellmelo.com/v2/media/b2d7e9f1-3c4a-4e8b-a1f0-6d5c4b3a2918"

Jawaban

Menjawab dengan satu MediaItem.

Contoh
{
  "id": "b2d7e9f1-3c4a-4e8b-a1f0-6d5c4b3a2918",
  "kind": "gif",
  "name": "Happy bees",
  "keywords": "bees garden happy",
  "width": 480,
  "height": 270,
  "seconds": 0,
  "url": "/api/media?id=b2d7e9f1-3c4a-4e8b-a1f0-6d5c4b3a2918",
  "poster": "/api/media?id=b2d7e9f1-3c4a-4e8b-a1f0-6d5c4b3a2918&poster=1",
  "uploader": {
    "handle": "mara",
    "name": "Mara 🌻"
  },
  "mine": false,
  "shared": true,
  "anywhere": true,
  "embed": {
    "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>"
  }
}

Status yang mungkin: 200304400401404429

POST/v2/media/uploads

Mulai unggahan.

  • Hak media
  • sejak v2.14

Lalu kirim file dalam potongan maksimal piece byte ke /media/uploads/{upload}. Tanpa potongan baru, unggahan berakhir setelah 15 menit.

Batas aplikasi berlaku: GIF hingga 15 MB, video sesuai paket dalam ukuran dan durasi, GIF per hari, GIF pribadi, poin video per minggu. Jika tidak, kamu mendapat 409, 413, atau 429.

Parameter

NamaTipeArti
kinddi isistringwajibgif atau video; jika tidak diisi, gif.gifvideo
sizedi isiintegerwajibUkuran seluruh file dalam byte.
namedi isistringwajibNama untuk menemukannya: 2 sampai 40 karakter.
keywordsdi isistringopsionalKata kunci untuk pencarian, dipisahkan dengan spasi.
shareddi isibooleanopsionaltrue: dibagikan ke semua orang di tellmelo.
anywheredi isibooleanopsionaltrue: dibagikan dan juga diizinkan di situs web lain. Hanya bersama shared.

Contoh permintaan

curl -X POST \
  -H "Authorization: Bearer tm_key_…" \
  -H "Content-Type: application/json" \
  -d '{"kind":"gif","size":2400000,"name":"Happy bees","keywords":"bees garden","shared":true,"anywhere":false}' \
  "https://api.tellmelo.com/v2/media/uploads"

Jawaban

Menjawab dengan satu UploadStarted.

Contoh
{
  "upload": "e7c1a2b3-4d5e-4f60-8a9b-0c1d2e3f4a5b",
  "piece": 4194304
}

Status yang mungkin: 200400401403429

PUT/v2/media/uploads/{upload}

Kirim satu potongan file.

  • Hak media
  • sejak v2.14

Body-nya adalah potongan itu sendiri (application/octet-stream), bukan JSON. Jika tidak menyambung, kamu mendapat 409 dengan received: lanjutkan dari sana. Setelah potongan terakhir, file dikonversi; responsnya lalu berisi item.

Parameter

NamaTipeArti
uploaddi pathstringwajibupload dari awal unggahan.
offsetdi queryintegerwajibPosisi awal potongan dalam file, dalam byte; 0 untuk yang pertama.

Contoh permintaan

curl -X PUT \
  -H "Authorization: Bearer tm_key_…" \
  -H "Content-Type: application/octet-stream" \
  --data-binary @piece \
  "https://api.tellmelo.com/v2/media/uploads/e7c1a2b3-4d5e-4f60-8a9b-0c1d2e3f4a5b?offset=0"

Jawaban

Menjawab dengan satu UploadPiece.

Contoh
{
  "received": 4194304,
  "item": null
}

Status yang mungkin: 200400401403404429

POST/v2/media/{id}

Ubah salah satu GIF atau videomu.

  • Hak media
  • sejak v2.14

Parameter

NamaTipeArti
iddi pathstringwajibID GIF atau video.
namedi isistringopsionalNama untuk menemukannya: 2 sampai 40 karakter.
keywordsdi isistringopsionalKata kunci untuk pencarian, dipisahkan dengan spasi.
shareddi isibooleanopsionaltrue: dibagikan ke semua orang di tellmelo.
anywheredi isibooleanopsionaltrue: dibagikan dan juga diizinkan di situs web lain. Hanya bersama shared.

Contoh permintaan

curl -X POST \
  -H "Authorization: Bearer tm_key_…" \
  -H "Content-Type: application/json" \
  -d '{"name":"Happy bees","anywhere":true}' \
  "https://api.tellmelo.com/v2/media/b2d7e9f1-3c4a-4e8b-a1f0-6d5c4b3a2918"

Jawaban

Menjawab dengan satu Ok.

Contoh
{
  "ok": true
}

Status yang mungkin: 200400401403404429

DELETE/v2/media/{id}

Hapus salah satu GIF atau videomu.

  • Hak media
  • sejak v2.14

Postingan yang sudah menampilkannya tetap menyimpannya. Di situs web lain, itu hilang dalam beberapa menit.

Parameter

NamaTipeArti
iddi pathstringwajibID GIF atau video.

Contoh permintaan

curl -X DELETE \
  -H "Authorization: Bearer tm_key_…" \
  "https://api.tellmelo.com/v2/media/b2d7e9f1-3c4a-4e8b-a1f0-6d5c4b3a2918"

Jawaban

Menjawab dengan satu Ok.

Contoh
{
  "ok": true
}

Status yang mungkin: 200400401403404429

Akunmu

Profilmu, feed-mu, emoji milikmu, dan webhook-mu.

GET/v2/me

Profilmu sendiri, dengan id yang diharapkan path lain.

  • Hak read
  • dengan ETag
  • sejak v2.0

Contoh permintaan

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

Jawaban

Menjawab dengan satu Profile.

Contoh
{
  "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
}

Status yang mungkin: 200304401429

GET/v2/feed

Feed-mu sendiri, seperti yang disusun aplikasi.

  • Hak read
  • berhalaman
  • sejak v2.0

Tanpa ETag, karena urutannya terus berubah. Daftar yang sudah kamu mulai tetap sama sampai akhir.

Parameter

NamaTipeArti
tabdi querystringopsionalFeed mana: for-you, following, latest, atau bookmarks. latest secara bawaan.for-youfollowinglatestbookmarks
tagdi querystringopsionalHanya postingan tentang tag ini: ditulis dengannya atau dikenali server di dalamnya. Tanpa itu, tanpa filter.
limitdi queryintegeropsionalEntri per halaman: 20 secara bawaan, maksimal 50.
cursordi querystringopsionalnext dari jawaban sebelumnya. Tanpa itu, dari awal.

Contoh permintaan

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

Jawaban

Menjawab dengan satu halaman Post, sebagai `items` dan `next`.

Contoh
{
  "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"
}

Status yang mungkin: 200400401429

POST/v2/me/pictures

Mengunggah gambar sebagai byte. Menjawab dengan id dan url; lalu id dipakai sebagai foto profil, sampul, atau di postingan.

  • Hak write
  • sejak v2.19

PNG, JPEG, WebP, atau GIF, dikenali dari byte pertamanya; disimpan ulang tanpa metadata. Gambar yang tidak dipakai di mana pun akan dihapus nanti.

Contoh permintaan

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"

Jawaban

Menjawab dengan satu Picture.

Contoh
{
  "id": "8c7b6a59-4837-4261-9f5e-d4c3b2a1f0e9",
  "url": "/api/media?id=8c7b6a59-4837-4261-9f5e-d4c3b2a1f0e9"
}

Status yang mungkin: 200401403429

PUT/v2/me/profile

Mengubah profilmu: nama, tentang kamu, foto profil, sampul, dan warna profil. Yang tidak kamu isi tetap sama.

  • Hak profile
  • sejak v2.19

Butuh izin profile. @nama-mu tetap di aplikasi: itu juga nama masukmu.

Parameter

NamaTipeArti
namedi isistringopsionalNama tampilan, paling banyak 60 karakter.
aboutdi isistringopsionalTeks “Tentang kamu”.
avatardi isistringopsionalid gambar yang diunggah sebagai foto profil. Kosong menghapusnya.
bannerdi isistringopsionalid gambar yang diunggah sebagai sampul. Kosong menghapusnya.
colordi isistringopsionalWarna profil, dengan paket. null menghapusnya.indigovioletrosecoralamberlimegreentealskyslatesandnight

Contoh permintaan

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"

Jawaban

Menjawab dengan satu Ok.

Contoh
{
  "ok": true
}

Status yang mungkin: 200400401403429

GET/v2/me/emojis

Emoji milikmu sendiri.

  • Hak read
  • dengan ETag
  • sejak v2.19

Contoh permintaan

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

Jawaban

Menjawab dengan satu halaman OwnEmoji, sebagai `items` dan `next`.

Contoh
{
  "items": [
    {
      "name": "sunflower",
      "url": "/api/media?id=8c7b6a59-4837-4261-9f5e-d4c3b2a1f0e9",
      "animated": false,
      "resting": false
    }
  ],
  "next": null
}

Status yang mungkin: 200304401429

POST/v2/me/emojis/pictures

Mengunggah gambar untuk emoji milikmu sebagai byte.

  • Hak profile
  • sejak v2.19

Emoji bergerak butuh paket. Jika terlalu besar setelah dikonversi, gambar ditolak.

Contoh permintaan

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"

Jawaban

Menjawab dengan satu EmojiPicture.

Contoh
{
  "id": "8c7b6a59-4837-4261-9f5e-d4c3b2a1f0e9",
  "url": "/api/media?id=8c7b6a59-4837-4261-9f5e-d4c3b2a1f0e9",
  "animated": false
}

Status yang mungkin: 200401403429

POST/v2/me/emojis

Membuat emoji milikmu. Menjawab dengan semua emojimu.

  • Hak profile
  • sejak v2.19

Berapa banyak emoji yang bisa kamu buat tergantung paket.

Parameter

NamaTipeArti
namedi isistringwajibNama yang kamu pakai untuk menulis emoji, seperti :nama:.
picturedi isistringwajibid dari POST /me/emojis/pictures.

Contoh permintaan

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"

Jawaban

Menjawab dengan satu halaman OwnEmoji, sebagai `items` dan `next`.

Contoh
{
  "items": [
    {
      "name": "sunflower",
      "url": "/api/media?id=8c7b6a59-4837-4261-9f5e-d4c3b2a1f0e9",
      "animated": false,
      "resting": false
    }
  ],
  "next": null
}

Status yang mungkin: 200400401403429

DELETE/v2/me/emojis/{name}

Menghapus emoji milikmu. Menjawab dengan sisanya.

  • Hak profile
  • sejak v2.19

Parameter

NamaTipeArti
namedi pathstringwajibNama emoji, tanpa titik dua.

Contoh permintaan

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

Jawaban

Menjawab dengan satu halaman OwnEmoji, sebagai `items` dan `next`.

Contoh
{
  "items": [
    {
      "name": "sunflower",
      "url": "/api/media?id=8c7b6a59-4837-4261-9f5e-d4c3b2a1f0e9",
      "animated": false,
      "resting": false
    }
  ],
  "next": null
}

Status yang mungkin: 200400401403404429

PUT/v2/me/emojis/sharing

Menentukan apakah pengikutmu boleh memakai emojimu di teks mereka.

  • Hak profile
  • sejak v2.19

Parameter

NamaTipeArti
shareddi isibooleanwajibtrue membagikan emojimu ke pengikut, false tidak.

Contoh permintaan

curl -X PUT \
  -H "Authorization: Bearer tm_key_…" \
  -H "Content-Type: application/json" \
  -d '{"shared":true}' \
  "https://api.tellmelo.com/v2/me/emojis/sharing"

Jawaban

Menjawab dengan satu Ok.

Contoh
{
  "ok": true
}

Status yang mungkin: 200400401403429

GET/v2/me/webhooks

Webhook-mu beserta statusnya.

  • Hak webhooks
  • dengan ETag
  • sejak v2.19

Butuh izin webhooks. Webhook tersedia dengan paket organisasi atau sebagai mitra.

Contoh permintaan

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

Jawaban

Menjawab dengan satu halaman Webhook, sebagai `items` dan `next`.

Contoh
{
  "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
}

Status yang mungkin: 200304401403429

POST/v2/me/webhooks

Membuat webhook. Menjawab dengan id dan rahasia untuk tanda tangan, hanya kali ini.

  • Hak webhooks
  • sejak v2.19

Setiap pengiriman ditandatangani dengan rahasia (X-Tellmelo-Signature). Simpan; tidak akan ditampilkan lagi.

Parameter

NamaTipeArti
urldi isistringwajibAlamat HTTPS di luar jaringan lokal, tanpa kredensial.
kindsdi isistring[]wajibHal yang diberitahukan ke webhook. Jenis yang tersedia tergantung paket dan kemitraanmu.replymentiongroup_mentionfollowlikerepostmessagequota_changedquota_giftdrop_claimeddrop_empty

Contoh permintaan

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"

Jawaban

Menjawab dengan satu WebhookCreated.

Contoh
{
  "id": "1f2e3d4c-5b6a-4798-8a7b-6c5d4e3f2a1b",
  "secret": "whsec_3f9a…"
}

Status yang mungkin: 200400401403429

DELETE/v2/me/webhooks/{id}

Menghapus webhook.

  • Hak webhooks
  • sejak v2.19

Parameter

NamaTipeArti
iddi pathstringwajibid webhook.

Contoh permintaan

curl -X DELETE \
  -H "Authorization: Bearer tm_key_…" \
  "https://api.tellmelo.com/v2/me/webhooks/1f2e3d4c-5b6a-4798-8a7b-6c5d4e3f2a1b"

Jawaban

Menjawab dengan satu Ok.

Contoh
{
  "ok": true
}

Status yang mungkin: 200400401403404429

POST/v2/me/webhooks/{id}/test

Mengirim uji coba ke webhook.

  • Hak webhooks
  • sejak v2.19

Parameter

NamaTipeArti
iddi pathstringwajibid webhook.

Contoh permintaan

curl -X POST \
  -H "Authorization: Bearer tm_key_…" \
  "https://api.tellmelo.com/v2/me/webhooks/1f2e3d4c-5b6a-4798-8a7b-6c5d4e3f2a1b/test"

Jawaban

Menjawab dengan satu Ok.

Contoh
{
  "ok": true
}

Status yang mungkin: 200400401403404429

Notifikasi

Apa yang terjadi di sekitar akunmu, halaman demi halaman.

GET/v2/notifications

Notifikasimu, yang terbaru lebih dulu.

  • Hak read
  • berhalaman
  • dengan ETag
  • sejak v2.0

Membaca tidak menandai apa pun sudah dibaca; POST /notifications/read yang melakukannya. Peristiwa sejenis pada postingan yang sama berbagi satu baris; more menyebut berapa banyak.

Parameter

NamaTipeArti
limitdi queryintegeropsionalEntri per halaman: 20 secara bawaan, maksimal 50.
cursordi querystringopsionalnext dari jawaban sebelumnya. Tanpa itu, dari awal.

Contoh permintaan

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

Jawaban

Menjawab dengan satu halaman Notification, sebagai `items` dan `next`.

Contoh
{
  "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"
}

Status yang mungkin: 200304401429

POST/v2/notifications/read

Tandai notifikasimu sudah dibaca.

  • Hak write
  • sejak v2.0

Contoh permintaan

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

Jawaban

Menjawab dengan satu Ok.

Contoh
{
  "ok": true
}

Status yang mungkin: 200401403429

Pesan

Kotak masuk dan percakapanmu. Percakapan dinamai menurut akun lainnya.

GET/v2/conversations

Kotak masukmu: satu baris per percakapan, yang terbaru lebih dulu.

  • Hak read
  • berhalaman
  • dengan ETag
  • sejak v2.0

Parameter

NamaTipeArti
limitdi queryintegeropsionalEntri per halaman: 20 secara bawaan, maksimal 50.
cursordi querystringopsionalnext dari jawaban sebelumnya. Tanpa itu, dari awal.

Contoh permintaan

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

Jawaban

Menjawab dengan satu halaman Conversation, sebagai `items` dan `next`.

Contoh
{
  "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"
}

Status yang mungkin: 200304401429

GET/v2/conversations/{with}/messages

Pesan dalam satu percakapan, yang terbaru lebih dulu.

  • Hak read
  • berhalaman
  • dengan ETag
  • sejak v2.0

Membaca tidak menandai apa pun sudah dibaca; POST /conversations/{with}/read yang melakukannya.

Parameter

NamaTipeArti
withdi pathstringwajibid akun lainnya. Percakapan tidak punya id sendiri.
limitdi queryintegeropsionalEntri per halaman: 20 secara bawaan, maksimal 50.
cursordi querystringopsionalnext dari jawaban sebelumnya. Tanpa itu, dari awal.

Contoh permintaan

curl \
  -H "Authorization: Bearer tm_key_…" \
  "https://api.tellmelo.com/v2/conversations/a3e1f7c2-54b9-4d0e-8f16-7b2c9d4e1a05/messages?limit=20"

Jawaban

Menjawab dengan satu halaman Message, sebagai `items` dan `next`.

Contoh
{
  "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"
}

Status yang mungkin: 200304400401404429

POST/v2/conversations/{with}/messages

Kirim pesan dalam percakapan.

  • Hak write
  • sejak v2.0

Aturan aplikasi berlaku: yang memblokirmu tidak bisa dijangkau, dan pengaturan orang lain diperhitungkan.

Gambar, GIF, dan video tidak bisa dilampirkan ke pesan lewat API, hanya di aplikasi.

Parameter

NamaTipeArti
withdi pathstringwajibid akun lainnya. Percakapan tidak punya id sendiri.
textdi isistringwajibTeks postingan, balasan, atau pesan.
replyTodi isistringopsionalid pesan sebelumnya dalam percakapan ini yang dijawab pesan ini. Sejak 2.2.

Contoh permintaan

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"

Jawaban

Menjawab dengan satu Ok.

Contoh
{
  "ok": true
}

Status yang mungkin: 200400401403404429

POST/v2/conversations/{with}/read

Tandai semua pesan dalam percakapan sudah dibaca.

  • Hak write
  • sejak v2.1

Parameter

NamaTipeArti
withdi pathstringwajibid akun lainnya. Percakapan tidak punya id sendiri.

Contoh permintaan

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

Jawaban

Menjawab dengan satu Ok.

Contoh
{
  "ok": true
}

Status yang mungkin: 200400401403404429

DELETE/v2/conversations/{with}/messages/{id}

Menghapus salah satu pesanmu.

  • Hak write
  • sejak v2.12

Hanya pesanmu sendiri, dan hanya dalam 24 jam setelah dikirim.

Parameter

NamaTipeArti
withdi pathstringwajibid akun lainnya. Percakapan tidak punya id sendiri.
iddi pathstringwajibid pesan.

Contoh permintaan

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"

Jawaban

Menjawab dengan satu Ok.

Contoh
{
  "ok": true
}

Status yang mungkin: 200400401403404429

POST/v2/conversations/{with}/planned

Menjadwalkan pesan untuk nanti. Menjawab dengan id pesan terjadwal.

  • Hak write
  • sejak v2.19

Butuh paket dengan pesan terjadwal, kalau tidak 403. Dengan enkripsi ujung ke ujung di kedua sisi, hanya bisa di aplikasi.

Parameter

NamaTipeArti
withdi pathstringwajibid akun lainnya. Percakapan tidak punya id sendiri.
textdi isistringwajibTeks postingan, balasan, atau pesan.
sendAtdi isiintegerwajibKapan pesan dikirim, dalam milidetik sejak 1970.

Contoh permintaan

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"

Jawaban

Menjawab dengan satu Made.

Contoh
{
  "id": "0d9c8b7a-6f5e-4d3c-2b1a-0f9e8d7c6b5a"
}

Status yang mungkin: 200400401403404429

GET/v2/me/planned-messages

Pesanmu yang masih akan dikirim, urut menurut waktu.

  • Hak read
  • dengan ETag
  • sejak v2.19

Parameter

NamaTipeArti
withdi querystringopsionalHanya pesan untuk akun ini (id-nya).

Contoh permintaan

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

Jawaban

Menjawab dengan satu halaman PlannedMessage, sebagai `items` dan `next`.

Contoh
{
  "items": [
    {
      "id": "3b2a1c0d-9e8f-4a7b-b6c5-d4e3f2a1b0c9",
      "to": "a3e1f7c2-54b9-4d0e-8f16-7b2c9d4e1a05",
      "text": "Happy birthday! 🎂",
      "sendAt": 1758710400000,
      "state": "waiting"
    }
  ],
  "next": null
}

Status yang mungkin: 200304401429

POST/v2/me/planned-messages/{id}/send

Mengirim sekarang pesan terjadwal yang ditahan atau gagal.

  • Hak write
  • sejak v2.19

Parameter

NamaTipeArti
iddi pathstringwajibid pesan terjadwal.

Contoh permintaan

curl -X POST \
  -H "Authorization: Bearer tm_key_…" \
  "https://api.tellmelo.com/v2/me/planned-messages/3b2a1c0d-9e8f-4a7b-b6c5-d4e3f2a1b0c9/send"

Jawaban

Menjawab dengan satu Ok.

Contoh
{
  "ok": true
}

Status yang mungkin: 200400401403404429

DELETE/v2/me/planned-messages/{id}

Menghapus pesan terjadwal sebelum terkirim.

  • Hak write
  • sejak v2.19

Parameter

NamaTipeArti
iddi pathstringwajibid pesan terjadwal.

Contoh permintaan

curl -X DELETE \
  -H "Authorization: Bearer tm_key_…" \
  "https://api.tellmelo.com/v2/me/planned-messages/3b2a1c0d-9e8f-4a7b-b6c5-d4e3f2a1b0c9"

Jawaban

Menjawab dengan satu Ok.

Contoh
{
  "ok": true
}

Status yang mungkin: 200400401403404429

Relasi

Suka, simpan, posting ulang, ikuti, gabung, blokir: satu path, dipasang dan dihapus dengan active. Sejak 2.19 juga daftarnya: pengikut, yang diikuti, serta blokir dan bisukan milikmu sendiri.

POST/v2/relations

Suka, simpan, posting ulang, ikuti, gabung, blokir, bisukan, tergantung kind.

  • Hak write
  • sejak v2.0

target adalah postingan untuk like, save, dan repost, grup untuk join, akun untuk follow, block, dan mute. active: false menghapus relasi.

Parameter

NamaTipeArti
kinddi isistringwajibRelasi mana: like, save, repost, follow, join, block, atau mute (sejak 2.2).likesaverepostfollowjoinblockmute
targetdi isistringwajibid postingan, profil, atau grup, tergantung kind.
activedi isibooleanopsionaltrue memasang relasi, false menghapusnya.

Contoh permintaan

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"

Jawaban

Menjawab dengan satu Ok.

Contoh
{
  "ok": true
}

Status yang mungkin: 200400401403429

GET/v2/profiles/{handle}/followers

Siapa yang mengikuti sebuah profil, terbaru dulu.

  • Hak read
  • berhalaman
  • dengan ETag
  • sejak v2.19

Parameter

NamaTipeArti
handledi pathstringwajibNama pendek sebuah profil, huruf besar atau kecil sama saja.
limitdi queryintegeropsionalEntri per halaman: 20 secara bawaan, maksimal 50.
cursordi querystringopsionalnext dari jawaban sebelumnya. Tanpa itu, dari awal.

Contoh permintaan

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

Jawaban

Menjawab dengan satu halaman ProfileBrief, sebagai `items` dan `next`.

Contoh
{
  "items": [
    {
      "id": "a3e1f7c2-54b9-4d0e-8f16-7b2c9d4e1a05",
      "handle": "mara",
      "name": "Mara 🌻",
      "verified": true,
      "accountKind": "person"
    }
  ],
  "next": "MTc1ODYyNDAwMDAwMDo1ZjBjMmE5ZS04ZDQx"
}

Status yang mungkin: 200304400401404429

GET/v2/profiles/{handle}/following

Siapa yang diikuti sebuah profil, terbaru dulu.

  • Hak read
  • berhalaman
  • dengan ETag
  • sejak v2.19

Parameter

NamaTipeArti
handledi pathstringwajibNama pendek sebuah profil, huruf besar atau kecil sama saja.
limitdi queryintegeropsionalEntri per halaman: 20 secara bawaan, maksimal 50.
cursordi querystringopsionalnext dari jawaban sebelumnya. Tanpa itu, dari awal.

Contoh permintaan

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

Jawaban

Menjawab dengan satu halaman ProfileBrief, sebagai `items` dan `next`.

Contoh
{
  "items": [
    {
      "id": "a3e1f7c2-54b9-4d0e-8f16-7b2c9d4e1a05",
      "handle": "mara",
      "name": "Mara 🌻",
      "verified": true,
      "accountKind": "person"
    }
  ],
  "next": "MTc1ODYyNDAwMDAwMDo1ZjBjMmE5ZS04ZDQx"
}

Status yang mungkin: 200304400401404429

GET/v2/me/relations

Siapa yang kamu blokir, bisukan, atau blokir hanya untuk pesan, terbaru dulu.

  • Hak read
  • berhalaman
  • dengan ETag
  • sejak v2.19

Hanya daftarmu sendiri. Memasang dan menghapus lewat POST /relations.

Parameter

NamaTipeArti
kinddi querystringwajibblock diblokir, mute dibisukan, dm_block diblokir hanya untuk pesan.blockmutedm_block
limitdi queryintegeropsionalEntri per halaman: 20 secara bawaan, maksimal 50.
cursordi querystringopsionalnext dari jawaban sebelumnya. Tanpa itu, dari awal.

Contoh permintaan

curl \
  -H "Authorization: Bearer tm_key_…" \
  "https://api.tellmelo.com/v2/me/relations?kind=mute&limit=20"

Jawaban

Menjawab dengan satu halaman ProfileBrief, sebagai `items` dan `next`.

Contoh
{
  "items": [
    {
      "id": "a3e1f7c2-54b9-4d0e-8f16-7b2c9d4e1a05",
      "handle": "mara",
      "name": "Mara 🌻",
      "verified": true,
      "accountKind": "person"
    }
  ],
  "next": "MTc1ODYyNDAwMDAwMDo1ZjBjMmE5ZS04ZDQx"
}

Status yang mungkin: 200304400401429

Koleksi

Atur postingan tersimpan ke dalam koleksimu sendiri. Satu postingan bisa ada di beberapa koleksi; jika dikeluarkan dari koleksi, tetap tersimpan.

GET/v2/me/collections

Koleksimu beserta jumlah postingannya.

  • Hak read
  • dengan ETag
  • sejak v2.19

Contoh permintaan

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

Jawaban

Menjawab dengan satu halaman Collection, sebagai `items` dan `next`.

Contoh
{
  "items": [
    {
      "id": "6d5c4b3a-2918-4e7f-a1b2-c3d4e5f60718",
      "name": "Recipes",
      "count": 12
    }
  ],
  "next": null
}

Status yang mungkin: 200304401429

POST/v2/me/collections

Membuat koleksi. Menjawab dengan id-nya.

  • Hak write
  • sejak v2.19

Berapa banyak koleksi yang bisa kamu buat tergantung paketmu.

Parameter

NamaTipeArti
namedi isistringwajibNamanya, paling banyak 40 karakter. Unik per akun, tanpa membedakan huruf besar-kecil.

Contoh permintaan

curl -X POST \
  -H "Authorization: Bearer tm_key_…" \
  -H "Content-Type: application/json" \
  -d '{"name":"Recipes"}' \
  "https://api.tellmelo.com/v2/me/collections"

Jawaban

Menjawab dengan satu Made.

Contoh
{
  "id": "0d9c8b7a-6f5e-4d3c-2b1a-0f9e8d7c6b5a"
}

Status yang mungkin: 200400401403429

PUT/v2/me/collections/{id}

Mengganti nama koleksi.

  • Hak write
  • sejak v2.19

Parameter

NamaTipeArti
iddi pathstringwajibid koleksi.
namedi isistringwajibNamanya, paling banyak 40 karakter. Unik per akun, tanpa membedakan huruf besar-kecil.

Contoh permintaan

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"

Jawaban

Menjawab dengan satu Ok.

Contoh
{
  "ok": true
}

Status yang mungkin: 200400401403404429

DELETE/v2/me/collections/{id}

Menghapus koleksi.

  • Hak write
  • sejak v2.19

Postingan di dalamnya tetap tersimpan.

Parameter

NamaTipeArti
iddi pathstringwajibid koleksi.

Contoh permintaan

curl -X DELETE \
  -H "Authorization: Bearer tm_key_…" \
  "https://api.tellmelo.com/v2/me/collections/6d5c4b3a-2918-4e7f-a1b2-c3d4e5f60718"

Jawaban

Menjawab dengan satu Ok.

Contoh
{
  "ok": true
}

Status yang mungkin: 200400401403404429

GET/v2/me/collections/{id}/posts

Postingan dalam sebuah koleksi, seperti di tab tersimpan.

  • Hak read
  • berhalaman
  • sejak v2.19

Parameter

NamaTipeArti
iddi pathstringwajibid koleksi.
limitdi queryintegeropsionalEntri per halaman: 20 secara bawaan, maksimal 50.
cursordi querystringopsionalnext dari jawaban sebelumnya. Tanpa itu, dari awal.

Contoh permintaan

curl \
  -H "Authorization: Bearer tm_key_…" \
  "https://api.tellmelo.com/v2/me/collections/6d5c4b3a-2918-4e7f-a1b2-c3d4e5f60718/posts?limit=20"

Jawaban

Menjawab dengan satu halaman Post, sebagai `items` dan `next`.

Contoh
{
  "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"
}

Status yang mungkin: 200400401404429

POST/v2/me/collections/{id}/posts

Memasukkan postingan ke koleksi atau mengeluarkannya.

  • Hak write
  • sejak v2.19

Memasukkan postingan sekaligus menyimpannya. Hanya postingan yang terlihat.

Parameter

NamaTipeArti
iddi pathstringwajibid koleksi.
postdi isistringwajibid postingan.
insidedi isibooleanopsionaltrue memasukkan postingan (bawaan), false mengeluarkannya.

Contoh permintaan

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"

Jawaban

Menjawab dengan satu Ok.

Contoh
{
  "ok": true
}

Status yang mungkin: 200400401403404429

Hadiah

Melihat kuota mitra dan memberi hadiah darinya, menaruh hadiah di postingan dan memantaunya. Mengambil hadiah tetap hanya untuk orang, di aplikasi.

GET/v2/partner/quota

Sisa kuotamu untuk diberikan.

  • Hak read
  • dengan ETag
  • sejak v2.12

Hanya untuk mitra yang punya kuota; yang lain mendapat 403.

Contoh permintaan

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

Jawaban

Menjawab dengan satu Quota.

Contoh
{
  "months": 120,
  "sparks": 500,
  "looks": [
    {
      "id": "frame-gold",
      "name": "Goldring",
      "kind": "frame",
      "quantity": 25
    }
  ]
}

Status yang mungkin: 200304401429

GET/v2/partner/gifts

Apa yang kamu berikan dari kuota, kepada siapa dan kapan – yang terbaru dulu.

  • Hak read
  • berhalaman
  • dengan ETag
  • sejak v2.12

Hanya untuk mitra yang punya kuota; yang lain mendapat 403.

Parameter

NamaTipeArti
limitdi queryintegeropsionalEntri per halaman: 20 secara bawaan, maksimal 50.
cursordi querystringopsionalnext dari jawaban sebelumnya. Tanpa itu, dari awal.

Contoh permintaan

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

Jawaban

Menjawab dengan satu halaman QuotaGift, sebagai `items` dan `next`.

Contoh
{
  "items": [
    {
      "item": "plan",
      "quantity": 3,
      "itemId": null,
      "recipient": {
        "handle": "jon",
        "name": "Jon"
      },
      "createdAt": 1758627600000
    }
  ],
  "next": "MTc1ODYyNDAwMDAwMDo1ZjBjMmE5ZS04ZDQx"
}

Status yang mungkin: 200304401429

POST/v2/partner/gifts

Memberi bulan paket atau percikan dari kuotamu kepada anggota.

  • Hak gifts
  • sejak v2.12

Hanya untuk mitra yang punya kuota; yang lain mendapat 403.

Seperti di aplikasi, anggota melihat dari siapa hadiahnya. Paling banyak 60 hadiah per jam.

Parameter

NamaTipeArti
handledi isistringwajib@nama anggota yang kamu beri hadiah, dengan atau tanpa @.
itemdi isistringwajibplan untuk bulan paket, sparks untuk percikan, shop untuk tampilan dari stokmu (sejak 2.13).plansparksshop
quantitydi isiintegeropsionalBerapa banyak: hingga 12 bulan atau 35 percikan per hadiah.
itemIddi isistringopsionalUntuk shop: ID tampilan seperti yang disebut looks di kuota. Satu unit per hadiah; quantity tidak berlaku.

Contoh permintaan

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"

Jawaban

Menjawab dengan satu Quota.

Contoh
{
  "months": 120,
  "sparks": 500,
  "looks": [
    {
      "id": "frame-gold",
      "name": "Goldring",
      "kind": "frame",
      "quantity": 25
    }
  ]
}

Status yang mungkin: 200400401403429

GET/v2/gift-drops

Hadiahmu di postingan: berapa tempat yang masih kosong dan bagaimana dibayar.

  • Hak read
  • berhalaman
  • dengan ETag
  • sejak v2.12

Parameter

NamaTipeArti
limitdi queryintegeropsionalEntri per halaman: 20 secara bawaan, maksimal 50.
cursordi querystringopsionalnext dari jawaban sebelumnya. Tanpa itu, dari awal.

Contoh permintaan

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

Jawaban

Menjawab dengan satu halaman OwnGiftDrop, sebagai `items` dan `next`.

Contoh
{
  "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"
}

Status yang mungkin: 200304401429

POST/v2/gift-drops

Memposting postingan berisi hadiah untuk diambil orang lain.

  • Hak gifts
  • sejak v2.12

Gratis untuk pemilik dan anggota tim yang punya izin itu, selain itu dari kuotamu. Yang perlu dibayar ditolak dengan 422 – membayar hanya bisa di aplikasi.

Mengambil hadiah hanya bisa di aplikasi, supaya tidak ada program yang menyapu semua tempat. Sisa tempat ada di giftDrop postingan.

Parameter

NamaTipeArti
textdi isistringopsionalTeks postingan, balasan, atau pesan.
communitydi isistringopsionalid grup yang kanal feed-nya menerima postingan; kanal itu harus menyala dan kamu perlu haknya. Tanpa itu, postingan berada di luar grup mana pun.
itemdi isistringwajibplan untuk bulan paket, sparks untuk percikan.plansparks
quantitydi isiintegerwajibIsi setiap tempat: hingga 12 bulan atau 35 percikan.
placesdi isiintegerwajibUntuk berapa orang, hingga 10.000.
audiencedi isistringopsionalSiapa yang boleh mengambil: all semua, followers hanya pengikutmu, group hanya anggota grup (hanya bersama community).allfollowersgroup
newAccountsdi isibooleanopsionaltrue membolehkan akun yang berumur kurang dari 7 hari ikut mengambil. Tanpa ini, mereka tidak ikut.

Contoh permintaan

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"

Jawaban

Menjawab dengan satu DropCreated.

Contoh
{
  "id": "5f0c2a9e-8d41-4b7a-9c3e-2e61d0f4a7b1",
  "funding": "quota"
}

Status yang mungkin: 200400401403429

Objek

Semua objek, field demi field. [] berarti daftar.

Service

Jawaban root: siapa yang menjawab, dan apa yang boleh dilakukan kunci ini.

FieldTipeArti
namestringSelalu tellmelo.
versionstringVersi API, misalnya 2.1.
scopestringApa yang boleh dilakukan kunci ini: read atau read write.
rateLimitRateLimitJatah kunci ini.
docsstringDi mana dokumentasi ini, sebagai path di instans ini.
specstringDi mana deskripsi yang bisa dibaca mesin.
Contoh
{
  "name": "tellmelo",
  "version": "2.20",
  "scope": "read write",
  "rateLimit": {
    "limit": 120,
    "remaining": 117
  },
  "docs": "/developers/docs",
  "spec": "/api/v2/openapi.json"
}

RateLimit

Jatah kunci ini di menit ini.

FieldTipeArti
limitintegerPermintaan per menit.
remainingintegerBerapa yang tersisa di menit ini.
Contoh
{
  "limit": 120,
  "remaining": 117
}

Post

Sebuah postingan, dengan bentuk yang sama di mana-mana.

FieldTipeArti
idstringid postingan.
textstringatau nullTeks seperti ditulis (null untuk postingan yang hanya jajak pendapat atau hanya gambar).
kindstringApa postingan ini.
  • post — Postingan dengan teks, gambar, atau kutipan.
  • poll — Postingan dengan jajak pendapat.
authorProfileBriefSiapa yang menulisnya.
communityCommunityBriefatau nullGrup tempat ditulis (null di luar semua grup).
mediaMedia[]Gambarnya, berurutan; kosong jika tidak ada.
pollPollatau nullJajak pendapat (null jika tidak ada).
quotesstringatau nullid postingan yang dikutip postingan ini.
continuesstringatau nullid postingan yang dilanjutkan postingan ini, sebagai tambahan.
countsCountsBalasan, suka, dan posting ulang.
pinnedbooleanApakah disematkan di atas profil penulisnya.
giftDropGiftDropatau nullHadiah yang bisa diambil di postingan (null jika tidak ada).
createdAtintegerKapan ditulis.
Contoh
{
  "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

Balasan di bawah postingan: postingan dengan dua field tambahan.

Semua field dari Post, dan sebagai tambahan:

FieldTipeArti
postIdstringPostingan tempat seluruh percakapan bergantung.
parentIdstringatau nullBalasan yang dijawab balasan ini (null jika langsung menjawab postingan).
Contoh
{
  "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

Suaramu pada sebuah balasan dan skornya.

FieldTipeArti
votestringSuaramu.
  • up — Naik.
  • down — Turun.
  • none — Tanpa suara.
scoreintegerSuara naik dikurangi suara turun, bisa di bawah nol.
Contoh
{
  "vote": "up",
  "score": 12
}

PlannedReply

Balasanmu yang dijadwalkan untuk nanti.

FieldTipeArti
idstringid balasan terjadwal.
parentIdstringatau nullBalasan yang akan dijawabnya (null jika langsung ke postingan).
textstringTeksnya.
publishAtintegerKapan terbit.
statestringStatusnya.
  • waiting — Menunggu waktunya.
  • failed — Tidak bisa dikirim, misalnya karena postingannya sudah tidak ada.
Contoh
{
  "id": "3b2a1c0d-9e8f-4a7b-b6c5-d4e3f2a1b0c9",
  "parentId": null,
  "text": "Count me in for Saturday!",
  "publishAt": 1758710400000,
  "state": "waiting"
}

ReplySettings

Pengaturan balasan salah satu postinganmu.

FieldTipeArti
audiencestringSiapa yang boleh membalas.
  • all — Semua.
  • following — Akun yang kamu ikuti.
  • mentioned — Yang disebut di postingan.
  • nobody — Tidak ada selain kamu.
approvalbooleanApakah balasan menunggu persetujuanmu.
slowstringMode lambat.
  • auto — Menyala sendiri saat banyak balasan masuk.
  • on — Selalu aktif.
  • off — Mati.
Contoh
{
  "audience": "following",
  "approval": false,
  "slow": "auto"
}

Counts

Berapa balasan, suka, dan posting ulang yang dimiliki postingan.

FieldTipeArti
repliesintegerBalasan, semua tingkat bersama.
likesintegerSuka.
repostsintegerPosting ulang.
Contoh
{
  "replies": 4,
  "likes": 31,
  "reposts": 2
}

Media

Gambar dari postingan atau pesan.

FieldTipeArti
urlstringAlamat gambar atau video, relatif terhadap instans ini. Muat dengan kunci di header.
kindstringimage, video, atau gif (sejak 2.10). Video dan GIF adalah file MP4.
  • image — Gambar (WebP atau JPEG).
  • video — Video sebagai MP4, dengan suara.
  • gif — GIF, sebagai MP4 tanpa suara yang berulang.
posterstringatau nullUntuk video dan GIF, alamat gambar pratinjau; selain itu null (sejak 2.10).
aistringatau nullApakah gambar dibuat dengan AI, seperti yang dinyatakan pengunggah atau ditandai tim setelah laporan; null tanpa keterangan (sejak 2.11).
  • with — Dibuat dengan AI.
  • without — Dibuat tanpa AI.
Contoh
{
  "url": "/api/media?id=b2d7e9f1-3c4a-4e8b-a1f0-6d5c4b3a2918",
  "kind": "image",
  "poster": null,
  "ai": "without"
}

Poll

Jajak pendapat dari postingan.

FieldTipeArti
optionsPollOption[]Jawaban-jawabannya, berurutan. option dalam pemungutan suara dihitung dari 0.
totalintegerSemua suara bersama, selalu ada.
multiplebooleanApakah boleh memilih lebih dari satu jawaban.
endsAtintegeratau nullKapan jajak pendapat berakhir (null jika berjalan tanpa akhir).
runningbooleanApakah masih bisa memilih.
resultsVisiblebooleanApakah suara per jawaban ditampilkan (lihat votes).
myVotesinteger[]Jawaban yang kamu pilih, dihitung dari 0.
Contoh
{
  "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

Satu jawaban dari jajak pendapat.

FieldTipeArti
textstringJawabannya.
votesintegeratau nullSuaranya (null selama hasil ditahan).
Contoh
{
  "text": "Lavender",
  "votes": 12
}

ProfileBrief

Profil seperti yang muncul di dalam objek lain: sebagai penulis, dalam pencarian.

FieldTipeArti
idstringid akun: yang diharapkan /relations dan /conversations/{with}.
handlestringNama pendek, tanpa @, ditulis seperti yang dipilih anggota.
namestringNama tampilan. Bisa memuat emoji, termasuk :name:.
verifiedbooleanApakah akun terverifikasi.
accountKindstringJenis akun apa.
  • person — Seseorang.
  • business — Sebuah usaha.
  • association — Klub atau perkumpulan.
  • automated — Akun otomatis, seperti bot.
  • bot — Bot grup yang dijalankan program dengan kuncinya sendiri (sejak 2.18).
Contoh
{
  "id": "a3e1f7c2-54b9-4d0e-8f16-7b2c9d4e1a05",
  "handle": "mara",
  "name": "Mara 🌻",
  "verified": true,
  "accountKind": "person"
}

Profile

Profil tersendiri, dengan deskripsi dan pengikutnya.

Semua field dari ProfileBrief, dan sebagai tambahan:

FieldTipeArti
aboutstringatau nullDeskripsi (null jika tidak ada).
websitestringatau nullSitus web profil (null jika tidak ada). Sejak 2.3.
websiteVerifiedbooleanApakah situs web menautkan balik ke profil ini dengan rel=me, diperiksa setiap minggu. Sejak 2.3.
followersintegerBerapa akun yang mengikutinya.
createdAtintegeratau nullKapan akun dibuat (null selama anggota menyembunyikan tanggal bergabung; sejak 2.9).
Contoh
{
  "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

Grup tempat postingan ditulis.

FieldTipeArti
idstringid grup.
namestringatau nullNamanya.
Contoh
{
  "id": "c81d4e2a-0f3b-4a6c-9e57-1d2b3c4a5f60",
  "name": "Urban Gardening"
}

Community

Grup di instans ini.

FieldTipeArti
idstringid grup.
namestringNamanya.
handlestringatau nullNama pendek untuk menyebut grup dengan @#. Sejak 2.15.
descriptionstringatau nullDeskripsi (null jika tidak ada).
tagsstring[]Topik yang dibahasnya.
membersintegerBerapa anggotanya.
joinPolicystringBagaimana cara masuk.
  • open — Siapa pun bisa bergabung.
  • application — Bergabung memerlukan pendaftaran yang diterima grup.
  • invite — Hanya dengan undangan.
visibilitystringSiapa yang melihatnya. internal dan hidden hanya anggotanya (sejak 2.15).
  • open — Terlihat oleh semua orang.
  • internal — Tidak ada di direktori, tetapi bisa dibuka lewat alamatnya.
  • hidden — Hanya untuk anggotanya.
feedChannelbooleanApakah kanal feed-nya menyala. Sejak 2.15.
sparksintegerBerapa percikan yang dimiliki grup sekarang (sejak 2.19).
perksstring[]Keuntungan yang dibayar dengan percikannya (sejak 2.19).
membershipMembershipatau nullApa posisi akunmu di grup dan apa yang boleh dilakukannya; null jika bukan anggota. Sejak 2.15.
Contoh
{
  "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
  }
}

Membership

Apa posisi akunmu di grup dan apa yang boleh dilakukannya.

FieldTipeArti
leaderstringatau nullApakah kamu pendiri grup atau ikut memimpinnya; null jika tidak.
  • founder — Pendiri.
  • manager — Wakil pengurus.
rolesstring[]id peranmu, yang tertinggi dulu.
permissionsstring[]Apa yang boleh kamu lakukan di grup.
mutedUntilintegeratau nullSampai kapan pembisuan membisukanmu di sini; null jika tidak ada.
Contoh
{
  "leader": null,
  "roles": [
    "4e5f6a7b-8c9d-4e0f-a1b2-c3d4e5f6a7b8"
  ],
  "permissions": [
    "attach",
    "invite",
    "send",
    "view"
  ],
  "mutedUntil": null
}

Person

Seorang anggota, singkat.

FieldTipeArti
idstringid akun.
handlestringNama pengguna, tanpa @.
namestringNama tampilan.
botbooleanApakah akun ini bot (sejak 2.18).
Contoh
{
  "id": "d4c3b2a1-6e5f-4a7b-9c8d-1e2f3a4b5c6d",
  "handle": "jon",
  "name": "Jon",
  "bot": false
}

Channel

Sebuah kanal grup.

FieldTipeArti
idstringid.
kindstringJenis kanal.
  • feed — Kanal feed, yang postingannya juga ada di feed publik.
  • chat — Sebuah obrolan.
  • voice — Kanal suara; berbicara hanya di aplikasi.
  • hub — Hub grup: halaman yang memperkenalkan grup. Selalu ada, tanpa pesan.
namestringatau nullNama tanpa #; null untuk nama yang diberikan aplikasi dalam tiap bahasa.
topicstringTopik; kosong jika tidak ada.
categoryChannelCategoryatau nullKategori; null jika tanpa kategori.
unreadintegerBerapa pesan orang lain yang belum kamu baca, hingga 100.
permissionsstring[]Apa yang boleh kamu lakukan di kanal ini.
symbolChannelSymbolSimbolnya; bentuknya sudah milik grup jika grup menetapkannya.
Contoh
{
  "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

Kategori tempat sebuah kanal berada.

FieldTipeArti
idstringid.
namestringNama.
symbolChannelSymbolSimbolnya.
Contoh
{
  "id": "9a8b7c6d-5e4f-4a3b-8c2d-1e0f9a8b7c6d",
  "name": "Garden",
  "symbol": {
    "emoji": null,
    "icon": null,
    "image": null,
    "color": null,
    "shape": null
  }
}

ChannelSymbol

Simbol kanal atau kategori: paling banyak satu dari emoji, simbol dan gambar, jika tidak tanda jenisnya.

FieldTipeArti
emojistringatau nullEmoji; null jika tidak ada.
iconstringatau nullNama simbol dari set aplikasi; null jika tidak ada.
imagestringatau nullAlamat gambar sendiri; null jika tidak ada.
colorstringatau nullWarna petak; null untuk warna jenisnya.
shapestringatau nullBentuk petak; null untuk lingkaran.
Contoh
{
  "emoji": "🌻",
  "icon": null,
  "image": null,
  "color": "amber",
  "shape": "circle"
}

ChannelMessage

Sebuah pesan di kanal obrolan.

FieldTipeArti
idstringid.
textstringatau nullTeks (null untuk pesan yang hanya berisi gambar atau suara).
authorPersonSiapa yang menulisnya.
mediaMedia[]Gambar dan pesan suaranya; kosong jika tidak ada.
replyTostringatau nullid pesan yang dibalasnya; null jika tidak ada.
roleColorstringatau nullWarna peran tertinggi penulis yang punya warna; null jika tidak ada.
threadOfstringatau nullPesan yang utasnya dibalas oleh pesan ini; null di obrolan.
threadCountintegerBerapa balasan di utas pesan ini.
cardobjectatau nullKartu bot: title, text, color, dan fields; selain itu null.
buttonsobject[]Tombol bot: masing-masing id, label, dan style.
createdAtintegerKapan ditulis.
Contoh
{
  "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

Sebuah peran grup.

FieldTipeArti
idstringid.
namestringatau nullNama; null untuk @everyone.
everyonebooleanApakah ini @everyone, peran semua anggota.
colorstringatau nullWarna: indigo, violet, rose, amber, green, atau teal; null tanpa warna.
permissionsstring[]Haknya.
membersintegerBerapa orang yang memilikinya; untuk @everyone semua anggota.
editablebooleanApakah akunmu boleh mengubahnya.
selfablebooleanApakah anggota mengambil dan melepas peran itu sendiri.
Contoh
{
  "id": "4e5f6a7b-8c9d-4e0f-a1b2-c3d4e5f6a7b8",
  "name": "Gardeners",
  "everyone": false,
  "color": "green",
  "permissions": [
    "attach",
    "invite",
    "send",
    "view"
  ],
  "members": 24,
  "editable": true,
  "selfable": false
}

GroupMember

Anggota grup beserta perannya.

Semua field dari Person, dan sebagai tambahan:

FieldTipeArti
leaderstringatau nullApakah anggota ini pendiri grup atau ikut memimpinnya; null jika tidak.
  • founder — Pendiri.
  • manager — Wakil pengurus.
rolesstring[]id perannya, yang tertinggi dulu.
mutedUntilintegeratau nullSampai kapan anggota dibisukan, jika akunmu boleh membisukan; selain itu null.
Contoh
{
  "id": "d4c3b2a1-6e5f-4a7b-9c8d-1e2f3a4b5c6d",
  "handle": "jon",
  "name": "Jon",
  "bot": false,
  "leader": null,
  "roles": [
    "4e5f6a7b-8c9d-4e0f-a1b2-c3d4e5f6a7b8"
  ],
  "mutedUntil": null
}

ChannelOverride

Apa yang boleh dilakukan peran secara berbeda di sebuah kanal dibanding di grup.

FieldTipeArti
rolestringid peran.
allowstring[]Apa yang boleh dilakukannya di sini sebagai tambahan.
denystring[]Apa yang tidak boleh dilakukannya di sini.
Contoh
{
  "role": "4e5f6a7b-8c9d-4e0f-a1b2-c3d4e5f6a7b8",
  "allow": [
    "send"
  ],
  "deny": []
}

Bell

Lonceng sebuah grup.

FieldTipeArti
levelstringNotifikasi apa yang datang.
  • all — Setiap postingan baru di kanal feed, ditambah @everyone.
  • important — Postingan pengurus di kanal feed, ditambah @everyone.
  • off — Tidak ada, kecuali kamu disebut dengan @nama.
Contoh
{
  "level": "important"
}

InviteLink

Tautan undangan sebuah grup.

FieldTipeArti
codestringKode.
urlstringAlamat untuk dibagikan.
createdByPersonatau nullSiapa yang membuatnya; null jika akunnya dihapus.
createdAtintegerKapan dibuat.
expiresAtintegeratau nullSampai kapan berlaku; null tanpa akhir.
usesintegerBerapa kali sudah dipakai.
maxUsesintegeratau nullBerapa kali bisa dipakai; null tanpa batas.
Contoh
{
  "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

Ke mana tautan undangan mengarah.

FieldTipeArti
communityInviteGroupGrupnya.
memberbooleanApakah akunmu sudah menjadi anggota.
Contoh
{
  "community": {
    "id": "c81d4e2a-0f3b-4a6c-9e57-1d2b3c4a5f60",
    "name": "Urban Gardening",
    "members": 312,
    "rules": [
      "Be kind.",
      "No advertising."
    ]
  },
  "member": false
}

InviteGroup

Grup di balik tautan undangan.

FieldTipeArti
idstringid.
namestringNama.
membersintegerBerapa anggotanya.
rulesstring[]Aturannya, yang diterima saat bergabung; kosong jika tidak ada.
Contoh
{
  "id": "c81d4e2a-0f3b-4a6c-9e57-1d2b3c4a5f60",
  "name": "Urban Gardening",
  "members": 312,
  "rules": [
    "Be kind.",
    "No advertising."
  ]
}

Joined

Bergabung dengan tautan undangan.

FieldTipeArti
communitystringid grup.
Contoh
{
  "community": "c81d4e2a-0f3b-4a6c-9e57-1d2b3c4a5f60"
}

LogEntry

Satu entri di log pengurus.

FieldTipeArti
idstringid.
actionstringApa yang terjadi.
  • post_removed — Sebuah postingan.
  • member_removed — Anggota dikeluarkan, sebelum 2.16 (di luar selama 90 hari).
  • message_removed — Sebuah pesan di kanal obrolan.
  • member_kicked — Pengeluaran.
  • member_banned — Blokir.
  • member_unbanned — Blokir yang dicabut.
  • member_timed_out — Pembisuan.
  • timeout_lifted — Pembisuan yang dicabut.
  • voice_muted — Dibisukan di kanal suara.
  • voice_removed — Diputus dari kanal suara.
  • bot_added — Sebuah bot masuk ke grup (sejak 2.18).
  • bot_removed — Sebuah bot dikeluarkan dari grup (sejak 2.18).
memberPersonSiapa yang terkena.
reasonstringAlasannya; kosong untuk pesan dan jika tidak diberikan.
bystringatau nullNama yang melakukannya; null jika akunnya dihapus.
createdAtintegerKapan.
Contoh
{
  "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

Blokir dari sebuah grup.

FieldTipeArti
memberPersonSiapa yang diblokir.
untilintegeratau nullSampai kapan; null sampai dicabut.
createdAtintegeratau nullSejak kapan; null untuk blokir sebelum 2.16.
bystringatau nullNama yang memblokir; null jika tidak diketahui.
Contoh
{
  "member": {
    "id": "d4c3b2a1-6e5f-4a7b-9c8d-1e2f3a4b5c6d",
    "handle": "jon",
    "name": "Jon",
    "bot": false
  },
  "until": 1759228800000,
  "createdAt": 1758624000000,
  "by": "Mara 🌻"
}

Until

Kapan pembisuan atau blokir berakhir.

FieldTipeArti
untilintegeratau nullWaktunya; null untuk blokir tanpa akhir atau pembisuan yang dicabut.
Contoh
{
  "until": 1758624600000
}

Tag

Tag dan berapa postingan yang memakainya.

FieldTipeArti
tagstringTag, tanpa #.
postsintegerBerapa postingan terbaru yang memakainya.
Contoh
{
  "tag": "garden",
  "posts": 58
}

SearchResult

Tiga daftar, mungkin kosong.

FieldTipeArti
postsPost[]Postingan yang cocok, terbaru lebih dulu.
profilesProfileBrief[]Profil yang cocok, menurut nama pendek.
tagsTag[]Tag yang cocok, yang paling sering dipakai lebih dulu.
Contoh
{
  "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

Emoji di instans ini.

FieldTipeArti
namestringNamanya, seperti tertulis di antara titik dua.
urlstringAlamat gambar, relatif terhadap instans ini.
Contoh
{
  "name": "tellmelo",
  "url": "/api/media?id=e1f2a3b4-c5d6-4e7f-8a9b-0c1d2e3f4a5b"
}

Notification

Notifikasi. Satu baris bisa menghimpun beberapa peristiwa sejenis.

FieldTipeArti
idstringid notifikasi.
kindstringApa yang terjadi.
  • reply — Seseorang membalasmu.
  • like — Seseorang menyukai postinganmu.
  • reply_like — Seseorang memberi suara naik untuk balasanmu.
  • duel — Seseorang menantangmu di Duel Feed, atau tantanganmu sudah dimainkan.
  • reply_pick — Penulis kiriman menyorot balasanmu.
  • repost — Seseorang memposting ulang postinganmu.
  • follow — Seseorang mengikutimu.
  • mention — Seseorang menyebutmu.
  • group_mention — Seseorang menyebut grup yang kamu pimpin; text adalah namanya.
  • channel_mention — Seseorang menyebutmu di kanal obrolan salah satu grupmu, termasuk dengan @everyone; anggota itu adalah actor, kalimatnya menyebut kanal dan grup, tidak pernah pesannya.
  • message — Seseorang mengirimimu pesan.
  • scheduled — Postingan terjadwalmu sudah diterbitkan.
  • video — Postinganmu yang menunggu videonya sudah terbit atau kembali menjadi draf.
  • reminder — Pengingat tentang postingan tersimpan sudah waktunya.
  • report — Apa yang terjadi dengan laporan yang kamu kirim.
  • moderation — Keputusan tentang akunmu: peringatan, pembatasan, banding.
  • team — Pekerjaan baru untuk tim (hanya pemilik, admin, dan moderator).
  • reward — Hadiah untuk mengundang akan berakhir atau sudah berakhir.
  • gift — Hadiah dari tim: sebuah paket, atau percikan untukmu atau untuk grup yang kamu pimpin.
  • present — Hadiah dari seorang anggota: percikan atau waktu paket; anggota itu adalah actor.
  • spark — Percikan segera habis, atau grup yang kamu pimpin tidak lagi punya cukup percikan untuk keuntungannya.
  • loyalty — Tentang ritme kesetiaan: minggu aktif terhitung atau kurang satu hari, hadiah baru atau akan memudar.
  • impact — Bagaimana postinganmu selama dua belas jam diterima setelah sehari, dalam satu notifikasi.
  • discovery — Undangan ke program Ditemukan, atau bahwa sebuah tempat di sana dimulai atau berakhir.
  • group_post — Postingan baru di grup yang loncengnya berbunyi untuk itu.
  • group_moderation — Pimpinan grup menghapus salah satu postinganmu, atau mengeluarkanmu dari grup.
  • group — Sesuatu yang dilakukan seorang anggota terhadapmu di sebuah grup: mengundang, menerima atau menolak, menjadikanmu wakil administrator, menyerahkan atau membubarkan grup, atau mendaftar ke grupmu; anggota itu adalah actor, nama grup ada di akhir kalimat.
  • coauthor — Seseorang mengundangmu sebagai rekan penulis postingan.
  • partner — Pengingat dari program mitra, atau berakhirnya lencana mitra.
  • news — Artikel baru di daerah yang kamu ikuti.
  • pick — Postinganmu masuk nominasi postingan minggu ini atau tahun ini, atau sudah menang.
  • advent — Pintu baru Kalender Adven terbuka, satu pintu dibuka, atau pintu hari ini masih menunggu.
  • team_message — Pesan yang ditulis tim tellmelo untuk anggota terpilih.
  • challenge — Tantangan minggu ini yang baru sudah dimulai.
  • nudge — Sekali saja: postingan yang belum dibalas siapa pun, atau tantangan yang sedang berjalan.
  • signin — Sebuah komputer bertanya apakah kamu sedang masuk di sana.
textstringatau nullHanya untuk laporan dan moderasi: teks terkait, selain itu null.
actorActorSiapa yang melakukannya.
postIdstringatau nullPostingan yang dimaksud (null jika tidak ada).
readbooleanApakah sudah ditandai dibaca.
moreintegerBerapa peristiwa lain yang diwakili baris ini, selain yang disebut.
createdAtintegerKapan pertama kali terjadi.
updatedAtintegerKapan terakhir kali menghimpun peristiwa lain. Daftar diurutkan menurut ini.
Contoh
{
  "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

Siapa yang memicu notifikasi.

FieldTipeArti
handlestringNama pendek.
namestringNama tampilan.
Contoh
{
  "handle": "jon",
  "name": "Jon"
}

Conversation

Satu baris kotak masukmu.

FieldTipeArti
withstringid akun lainnya: yang diharapkan /conversations/{with}/messages.
handlestringNama pendeknya.
namestringNama tampilannya.
excerptstringatau nullAwal pesan terakhir (null jika tidak ada teks).
truncatedbooleanApakah kutipannya dipotong.
fromMebooleanApakah pesan terakhir milikmu.
lastMessageIdstringid pesan terakhir.
unreadintegerBerapa pesannya yang belum kamu baca.
updatedAtintegerKapan pesan terakhir ditulis.
Contoh
{
  "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

Pesan dalam percakapan.

FieldTipeArti
idstringid pesan.
textstringatau nullTeksnya (null untuk pesan yang hanya gambar).
fromstringid akun yang menulisnya.
tostringid akun yang dituju.
readbooleanApakah penerima sudah membacanya.
mediaMedia[]Gambarnya; kosong jika tidak ada.
replyTostringatau nullid pesan yang dijawab pesan ini (null jika tidak menjawab apa pun). Sejak 2.2.
createdAtintegerKapan dikirim.
Contoh
{
  "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

Pesanmu yang dijadwalkan untuk nanti.

FieldTipeArti
idstringid pesan terjadwal.
tostringid akun penerimanya.
textstringatau nullTeksnya, null dengan enkripsi ujung ke ujung.
sendAtintegerKapan dikirim.
statestringStatusnya.
  • waiting — Menunggu waktunya.
  • held — Ditahan karena paket berakhir. Kamu bisa mengirim atau menghapusnya sendiri.
  • failed — Tidak bisa dikirim.
Contoh
{
  "id": "3b2a1c0d-9e8f-4a7b-b6c5-d4e3f2a1b0c9",
  "to": "a3e1f7c2-54b9-4d0e-8f16-7b2c9d4e1a05",
  "text": "Happy birthday! 🎂",
  "sendAt": 1758710400000,
  "state": "waiting"
}

ScheduledPost

Salah satu postinganmu yang belum tayang.

FieldTipeArti
idstringid postingan.
textstringatau nullTeks.
communityIdstringatau nullGrup tempat postingan tayang (null di luar grup).
publishAtintegeratau nullKapan tayang (null selama menunggu hal lain).
deleteAtintegeratau nullKapan terhapus sendiri (null: tidak pernah).
waitingForstringApa yang ditunggunya.
  • time — Waktunya.
  • review — Persetujuan teks yang ditulis untuk ditinjau.
  • check — Pemeriksaan moderasi otomatis.
  • payment — Pembayaran hadiahnya.
createdAtintegerKapan ditulis.
Contoh
{
  "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

Koleksi postingan tersimpan.

FieldTipeArti
idstringid koleksi.
namestringNamanya.
countintegerBerapa postingan di dalamnya.
Contoh
{
  "id": "6d5c4b3a-2918-4e7f-a1b2-c3d4e5f60718",
  "name": "Recipes",
  "count": 12
}

Event

Acara mendatang dari sebuah profil.

FieldTipeArti
idstringid acara.
titlestringJudulnya.
startsAtintegerMulai.
endsAtintegeratau nullSelesai, null tanpa waktu selesai.
placestringatau nullTempatnya.
descriptionstringatau nullDeskripsinya.
signupsEventSignupsatau nullPendaftaran, null tanpa pendaftaran.
Contoh
{
  "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

Berapa orang yang mendaftar.

FieldTipeArti
countintegerJumlah pendaftar.
goingbooleanApakah kamu terdaftar.
Contoh
{
  "count": 14,
  "going": true
}

EventSignup

Seseorang yang mendaftar ke salah satu acaramu.

FieldTipeArti
idstringid akun.
handlestringNama pengguna.
namestringNama tampilan.
atintegerKapan mendaftar.
Contoh
{
  "id": "a3e1f7c2-54b9-4d0e-8f16-7b2c9d4e1a05",
  "handle": "mara",
  "name": "Mara 🌻",
  "at": 1758624000000
}

Picture

Gambar yang diunggah.

FieldTipeArti
idstringid gambar.
urlstringDi mana gambar bisa dilihat.
Contoh
{
  "id": "8c7b6a59-4837-4261-9f5e-d4c3b2a1f0e9",
  "url": "/api/media?id=8c7b6a59-4837-4261-9f5e-d4c3b2a1f0e9"
}

EmojiPicture

Gambar emoji yang diunggah.

FieldTipeArti
idstringid gambar.
urlstringDi mana gambar bisa dilihat.
animatedbooleanApakah bergerak.
Contoh
{
  "id": "8c7b6a59-4837-4261-9f5e-d4c3b2a1f0e9",
  "url": "/api/media?id=8c7b6a59-4837-4261-9f5e-d4c3b2a1f0e9",
  "animated": false
}

OwnEmoji

Salah satu emoji milikmu.

FieldTipeArti
namestringNamanya.
urlstringGambarnya.
animatedbooleanApakah bergerak.
restingbooleanSedang istirahat karena paket saat ini mengizinkan lebih sedikit emoji: tetap ada, tetapi tidak bisa dipakai.
Contoh
{
  "name": "sunflower",
  "url": "/api/media?id=8c7b6a59-4837-4261-9f5e-d4c3b2a1f0e9",
  "animated": false,
  "resting": false
}

GroupEmoji

Emoji sebuah grup.

FieldTipeArti
namestringNamanya.
urlstringGambarnya.
animatedbooleanApakah bergerak.
Contoh
{
  "name": "seedling",
  "url": "/api/media?id=8c7b6a59-4837-4261-9f5e-d4c3b2a1f0e9",
  "animated": false
}

BotEvent

Peristiwa di salah satu grup bot.

FieldTipeArti
idstringNomornya, menaik; dengan itu dilanjutkan (since, Last-Event-ID).
typestringApa yang terjadi.
  • message.created — Sebuah pesan ditulis.
  • message.deleted — Sebuah pesan dihapus.
  • member.joined — Seseorang bergabung.
  • member.left — Seseorang keluar atau dikeluarkan.
  • voice.joined — Seseorang masuk ke kanal suara.
  • command — Seseorang memakai perintah bot.
  • interaction — Seseorang menekan tombol di pesan bot.
communitystringGrupnya.
channelstringatau nullKanalnya; null untuk seluruh grup.
createdAtintegerKapan terjadi.
dataobjectYang terkait, menurut jenis: message, member (dengan reason), command, atau interaction.
Contoh
{
  "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

Perintah sebuah bot.

FieldTipeArti
namestringNamanya, tanpa “/”.
descriptionstringApa yang dilakukannya.
Contoh
{
  "name": "dice",
  "description": "Rolls a die"
}

VoiceSeat

Tempat di kanal suara.

FieldTipeArti
urlstringAlamat server media (LiveKit).
tokenstringToken untuk kanal ini, berlaku beberapa menit.
iceServersobject[]Server STUN dan TURN untuk koneksi.
speakbooleanApakah bot boleh mengirim suara di sana.
videobooleanApakah bot boleh mengirim video di sana.
Contoh
{
  "url": "wss://voice.example.org",
  "token": "eyJhbGciOiJIUzI1NiJ9…",
  "iceServers": [
    {
      "urls": [
        "stun:turn.example.org:3478"
      ]
    }
  ],
  "speak": true,
  "video": false
}

Webhook

Salah satu webhook-mu.

FieldTipeArti
idstringid webhook.
urlstringAlamatnya.
kindsstring[]Hal yang diberitahukan kepadanya.
activebooleanApakah menerima pengiriman. Setelah banyak kegagalan berturut-turut, dimatikan.
lastStatusintegeratau nullStatus HTTP pengiriman terakhir.
lastAtintegeratau nullKapan pengiriman terakhir.
failuresintegerKegagalan berturut-turut.
Contoh
{
  "id": "1f2e3d4c-5b6a-4798-8a7b-6c5d4e3f2a1b",
  "url": "https://example.org/tellmelo-hook",
  "kinds": [
    "reply",
    "mention"
  ],
  "active": true,
  "lastStatus": 200,
  "lastAt": 1758624000000,
  "failures": 0
}

WebhookCreated

Webhook baru beserta rahasianya.

FieldTipeArti
idstringid webhook.
secretstringRahasia untuk tanda tangan, hanya kali ini.
Contoh
{
  "id": "1f2e3d4c-5b6a-4798-8a7b-6c5d4e3f2a1b",
  "secret": "whsec_3f9a…"
}

GroupBot

Bot sebuah grup.

FieldTipeArti
idstringid akun bot.
handlestringNama singkatnya.
namestringNamanya.
descriptionstringApa yang dilakukannya, menurut pemiliknya.
permissionsstring[]Apa yang diizinkan perannya di grup.
Contoh
{
  "id": "a3e1f7c2-54b9-4d0e-8f16-7b2c9d4e1a05",
  "handle": "gardenbot",
  "name": "Garden bot",
  "description": "Reminds the group of watering days.",
  "permissions": [
    "send",
    "view"
  ]
}

VoiceRoom

Saluran suara beserta orang di dalamnya.

FieldTipeArti
channelstringid saluran.
peopleVoicePerson[]Siapa yang sedang ada di dalamnya.
Contoh
{
  "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

Seseorang di saluran suara.

FieldTipeArti
idstringid akun.
handlestringNama singkat.
namestringNama tampilan.
mutedbooleanApakah mikrofonnya mati.
deafbooleanApakah ia tidak mendengar apa pun (pilihannya sendiri).
camerabooleanApakah kameranya menyala.
screenbooleanApakah ia berbagi layar.
Contoh
{
  "id": "a3e1f7c2-54b9-4d0e-8f16-7b2c9d4e1a05",
  "handle": "mara",
  "name": "Mara 🌻",
  "muted": true,
  "deaf": false,
  "camera": false,
  "screen": false
}

GiftDrop

Hadiah di sebuah postingan – tanpa pernah menyebut nama yang mengambilnya.

FieldTipeArti
itemstringIsi satu tempat.
  • plan — Bulan paket (Pendukung).
  • sparks — Percikan.
quantityintegerBerapa isi setiap tempat: bulan atau percikan.
placesintegerJumlah seluruh tempat.
leftintegerBerapa yang masih kosong.
audiencestringSiapa yang boleh mengambil.
  • all — Semua.
  • followers — Hanya pengikut pemberi hadiah.
  • group — Hanya anggota grup postingan.
newAccountsbooleanApakah akun yang berumur kurang dari 7 hari juga boleh mengambil.
statusstringStatusnya.
  • awaiting_payment — Menunggu pembayaran; postingan belum tayang.
  • open — Masih ada tempat yang bisa diambil.
  • closed — Selesai: semua diambil, pembayaran dikembalikan, atau postingan dihapus.
claimedbooleanApakah kamu sendiri sudah punya tempat (selalu false di jalur publik).
Contoh
{
  "item": "plan",
  "quantity": 3,
  "places": 10,
  "left": 4,
  "audience": "followers",
  "newAccounts": false,
  "status": "open",
  "claimed": true
}

OwnGiftDrop

Hadiahmu di sebuah postingan, beserta postingan dan pembayarannya.

Semua field dari GiftDrop, dan sebagai tambahan:

FieldTipeArti
postIdstringPostingan tempat hadiah itu berada.
fundingstringBagaimana dibayar.
  • free — Gratis.
  • quota — Dari kuota.
  • payment — Dibayar.
createdAtintegerKapan dibuat.
Contoh
{
  "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

Isi sebuah kuota.

FieldTipeArti
monthsintegerBulan paket yang masih bisa diberikan.
sparksintegerPercikan yang masih bisa diberikan.
looksQuotaLook[]Tampilan di stok yang masih bisa diberikan (sejak 2.13).
Contoh
{
  "months": 120,
  "sparks": 500,
  "looks": [
    {
      "id": "frame-gold",
      "name": "Goldring",
      "kind": "frame",
      "quantity": 25
    }
  ]
}

QuotaLook

Tampilan dalam stok mitra, dengan sisa unitnya (sejak 2.13).

FieldTipeArti
idstringID tampilan; kirim sebagai itemId saat memberikannya.
namestringNama tampilan.
kindstringJenis tampilan.
  • frame — Bingkai profil.
  • background — Efek sampul.
  • card — Kartu profil.
quantityintegerBerapa unit yang tersisa.
Contoh
{
  "id": "frame-gold",
  "name": "Goldring",
  "kind": "frame",
  "quantity": 25
}

QuotaGift

Hadiah dari kuota.

FieldTipeArti
itemstringApa yang diberikan.
  • plan — Bulan paket (Pendukung).
  • sparks — Percikan.
  • shop — Tampilan dari stok (sejak 2.13).
quantityintegerBerapa banyak.
itemIdstringatau nullTampilan yang diberikan jika item adalah shop; jika tidak, null.
recipientActorKepada siapa.
createdAtintegerKapan.
Contoh
{
  "item": "plan",
  "quantity": 3,
  "itemId": null,
  "recipient": {
    "handle": "jon",
    "name": "Jon"
  },
  "createdAt": 1758627600000
}

MediaItem

Sebuah GIF atau video dari perpustakaan media (sejak 2.14).

FieldTipeArti
idstringID-nya; untuk media saat memposting.
kindstringGIF atau video.
  • gif — Sebuah GIF, sebagai MP4 tanpa suara yang diputar berulang.
  • video — Sebuah video sebagai MP4, dengan suara.
namestringNamanya.
keywordsstringKata kunci, dalam huruf kecil.
widthintegerLebar dalam piksel.
heightintegerTinggi dalam piksel.
secondsintegerDurasi dalam detik; 0 untuk GIF.
urlstringFile MP4, relatif terhadap instance ini. Muat dengan kunci di header.
posterstringGambar pratinjau, juga dengan kunci.
uploaderActorSiapa yang mengunggahnya.
minebooleanApakah itu milikmu.
sharedbooleanApakah dibagikan ke semua orang di tellmelo.
anywherebooleanApakah juga boleh muncul di situs web lain.
embedEmbedatau nullAlamat untuk situs web lain; null selama belum diizinkan di sana.
Contoh
{
  "id": "b2d7e9f1-3c4a-4e8b-a1f0-6d5c4b3a2918",
  "kind": "gif",
  "name": "Happy bees",
  "keywords": "bees garden happy",
  "width": 480,
  "height": 270,
  "seconds": 0,
  "url": "/api/media?id=b2d7e9f1-3c4a-4e8b-a1f0-6d5c4b3a2918",
  "poster": "/api/media?id=b2d7e9f1-3c4a-4e8b-a1f0-6d5c4b3a2918&poster=1",
  "uploader": {
    "handle": "mara",
    "name": "Mara 🌻"
  },
  "mine": false,
  "shared": true,
  "anywhere": true,
  "embed": {
    "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>"
  }
}

Embed

Alamat untuk situs web lain. Berfungsi tanpa kunci.

FieldTipeArti
pagestringPemutar untuk <iframe>.
filestringFile MP4 untuk pemutarmu sendiri.
posterstringGambar pratinjau.
codestringKode sematan yang siap pakai.
Contoh
{
  "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

Unggahan yang sudah dimulai.

FieldTipeArti
uploadstringID unggahan ini.
pieceintegerUkuran maksimal satu potongan, dalam byte.
Contoh
{
  "upload": "e7c1a2b3-4d5e-4f60-8a9b-0c1d2e3f4a5b",
  "piece": 4194304
}

UploadPiece

Potongan yang sudah diterima.

FieldTipeArti
receivedintegerBerapa byte yang sudah diterima.
itemMediaItematau nullSetelah potongan terakhir, GIF atau video baru; jika tidak, null.
Contoh
{
  "received": 4194304,
  "item": null
}

Created

Jawaban dari penulisan yang membuat sesuatu.

FieldTipeArti
idstringid dari yang dibuat.
scheduledForintegeratau nullKapan muncul, jika penerbitan dijadwalkan (selain itu null).
deleteAtintegeratau nullKapan menghapus diri, jika diatur (selain itu null).
Contoh
{
  "id": "5f0c2a9e-8d41-4b7a-9c3e-2e61d0f4a7b1",
  "scheduledFor": null,
  "deleteAt": null
}

DropCreated

Jawaban saat postingan berisi hadiah dibuat.

FieldTipeArti
idstringid postingan baru.
fundingstringBagaimana hadiahnya dibayar.
  • free — Gratis.
  • quota — Dari kuota.
Contoh
{
  "id": "5f0c2a9e-8d41-4b7a-9c3e-2e61d0f4a7b1",
  "funding": "quota"
}

Made

Apa yang baru saja dibuat atau diubah.

FieldTipeArti
idstringid; untuk tautan undangan, kodenya.
Contoh
{
  "id": "0d9c8b7a-6f5e-4d3c-2b1a-0f9e8d7c6b5a"
}

Ok

Jawaban dari penulisan yang tidak punya apa pun untuk dikembalikan.

FieldTipeArti
okbooleanSelalu true.
Contoh
{
  "ok": true
}

Deskripsi yang bisa dibaca mesin

Tabel di balik halaman ini tersedia sebagai OpenAPI di https://api.tellmelo.com/v2/openapi.json.

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

GIF dan video di situs web lain

Apa yang dibagikan anggota dan juga diizinkan di situs web lain bisa ditampilkan situs web mana pun: pencarian dengan anywhere=true menemukannya, dan embed-nya berisi alamatnya. Jika anggota menariknya kembali, itu hilang dari sana dalam beberapa menit.

Mengunggah per potongan

Mulai dulu, lalu kirim file dalam potongan. Bagi file yang lebih besar menjadi potongan piece byte, dengan offset di posisi masing-masing. Setelah potongan terakhir, kamu mendapat GIF atau video yang sudah jadi.

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": { … } } }

Menyematkan

Pemutar menampilkan GIF berulang atau video dengan kontrol, di bawahnya nama dan siapa yang membagikannya. Taruh kode dari embed.code di halaman:

<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>

Forum dan program yang mengenal oEmbed mengambil kodenya sendiri jika diberi alamat pemutar:

https://tellmelo.com/api/oembed?url=https%3A%2F%2Ftellmelo.com%2Fmedia-embed%2Fb2d7e9f1-3c4a-4e8b-a1f0-6d5c4b3a2918

Tempat kunci ada di servermu, jangan pernah di kode halaman web. Cari dan unggah lewat servermu; alamat di embed tidak butuh kunci.

Pemilih GIF untuk situs webmu

Dengan kunci situs (Area pengembang → Pemilih GIF untuk situs webmu), situs webmu mendapat pencarian siap pakai: dua baris di halaman, dan satu klik pada tombol membukanya. Kuncinya bersifat publik dan hanya berfungsi di alamat yang kamu masukkan untuknya. Pemilih hanya menampilkan apa yang diizinkan anggota untuk situs web lain.

<script src="https://tellmelo.com/picker.js" data-key="tmsk_…" defer></script>
<button type="button" data-tellmelo-picker>GIF</button>

Saat sesuatu dipilih, tombol memicu tellmelo:pick dengan item tersebut: code untuk menyematkannya, file, poster, name, dan author. Dengan data-target="#field", tombol langsung memasukkan code ke kolom teks; dengan data-kind="video", tombol mencari video. Kalau kamu menyematkan file sendiri, tampilkan nama orang yang membagikannya.

document.addEventListener('tellmelo:pick', (event) => {
  const { code, file, name, author } = event.detail;
});

Masuk dengan tellmelo

Situs lain membiarkan anggota masuk dengan akun tellmelo mereka lewat OpenID Connect (kode otorisasi dengan PKCE). Situs hanya menerima nama pengguna, alamat email yang dikonfirmasi, dan ID miliknya sendiri per anggota (sub).

Kamu mengajukan aplikasi di “Area pengembang → Masuk dengan tellmelo”. Tim memeriksa setiap aplikasi; setelah itu kamu melihat ID klien di sana dan, untuk aplikasi dengan server, membuat rahasia klien yang ditampilkan sekali.

Semua yang dibutuhkan pustaka ada di dokumen discovery:

https://tellmelo.com/.well-known/openid-configuration
  1. Kirim anggota ke /oauth/authorize dengan response_type=code, client_id, redirect_uri (persis seperti yang didaftarkan), scope=openid profile email, state, nonce, dan code_challenge dengan code_challenge_method=S256.
  2. Tukarkan kode dalam satu menit di /oauth/token: grant_type=authorization_code, code, redirect_uri, dan code_verifier; aplikasi dengan server juga mengirim rahasianya, dengan autentikasi Basic atau di formulir.
  3. Token ID (RS256, kunci di /oauth/jwks) berisi sub, dengan profile juga preferred_username, dengan email juga email dan email_verified. Token akses berlaku 10 menit dan hanya membaca /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
}

Tidak ada token penyegaran: tellmelo hanya memasukkan dan tidak memberi akses permanen. Jika anggota menghapus situs atau tim menangguhkan aplikasi, /oauth/userinfo langsung menjawab 401. prompt=none memeriksa tanpa halaman, prompt=consent bertanya lagi.

Yang kami harapkan

Aturannya sama seperti di mana pun: tanpa pelecehan, tanpa spam, tanpa konten yang bukan hakmu. Kamu bertanggung jawab atas apa yang diposting kuncimu.

Tampilkan GIF dan video orang lain di situs webmu hanya jika punya embed, lewat alamat tersebut dan dengan nama orang yang membagikannya. Jika sesuatu tidak tersedia lagi, berhenti menampilkannya. Jangan salin file ke koleksimu sendiri.

Info penerbitPrivasiKetentuan penggunaanStatusAplikasi