tellmelotellmelo.
Info penerbitPrivasiKetentuan penggunaanLaporkan hak ciptaKontakAPIAplikasi

API

Ini adalah terjemahan. Versi bahasa Jerman yang berlaku. Jika teks ini berbeda darinya, teks bahasa Jerman yang berlaku. Kamu bisa mengganti bahasa di bagian bawah halaman.

Memulai

  • Ringkasan
  • Mulai cepat
  • Coba
  • Kuncimu
  • Apa yang boleh dilakukan kunci

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}
  • Balasan
    • GET /posts/{id}/replies
    • POST /posts/{id}/replies
  • Jajak pendapat
    • POST /posts/{id}/vote
  • Profil
    • GET /profiles/{handle}
    • GET /profiles/{handle}/posts
  • Grup
    • GET /communities
    • GET /communities/{id}
    • GET /communities/{id}/posts
  • Jelajahi
    • GET /tags
    • GET /search
    • GET /emojis
  • Akunmu
    • GET /me
    • GET /feed
  • Notifikasi
    • GET /notifications
    • POST /notifications/read
  • Pesan
    • GET /conversations
    • GET /conversations/{with}/messages
    • POST /conversations/{with}/messages
    • POST /conversations/{with}/read
  • Relasi
    • POST /relations

Objek

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

Lainnya

  • Deskripsi yang bisa dibaca mesin
  • Yang kami harapkan
Isi

Memulai

  • Ringkasan
  • Mulai cepat
  • Coba
  • Kuncimu
  • Apa yang boleh dilakukan kunci

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}
  • Balasan
    • GET /posts/{id}/replies
    • POST /posts/{id}/replies
  • Jajak pendapat
    • POST /posts/{id}/vote
  • Profil
    • GET /profiles/{handle}
    • GET /profiles/{handle}/posts
  • Grup
    • GET /communities
    • GET /communities/{id}
    • GET /communities/{id}/posts
  • Jelajahi
    • GET /tags
    • GET /search
    • GET /emojis
  • Akunmu
    • GET /me
    • GET /feed
  • Notifikasi
    • GET /notifications
    • POST /notifications/read
  • Pesan
    • GET /conversations
    • GET /conversations/{with}/messages
    • POST /conversations/{with}/messages
    • POST /conversations/{with}/read
  • Relasi
    • POST /relations

Objek

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

Lainnya

  • Deskripsi yang bisa dibaca mesin
  • Yang kami harapkan

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 path diawali /api/v2 di alamat instans ini.
  • 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://tellmelo.com/api/v2

Mulai cepat

  1. Buat kunci di “Pengaturan → Aplikasi & data → 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://tellmelo.com/api/v2
{
  "name": "tellmelo",
  "version": "2.10",
  "scope": "read write",
  "rateLimit": {
    "limit": 120,
    "remaining": 117
  },
  "docs": "/legal/api",
  "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://tellmelo.com/api/v2"

Kuncimu

Satu kunci per akun. Kunci diawali tm_key_ dan hanya ditampilkan sekali. Hilang? Buat yang baru; yang lama berhenti berfungsi.

Kamu membuatnya di “Pengaturan → Aplikasi & data → API”. Kunci dikirim di header permintaan:

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

Atau, jika lebih praktis, di header tersendiri:

curl -H "X-Tellmelo-Key: tm_key_…" https://tellmelo.com/api/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://tellmelo.com/api/media?id=…"

Apa yang boleh dilakukan kunci

Kunci punya salah satu dari dua hak, dan setiap path di bawah menyebutkan hak yang diperlukan:

  • read: membaca. Postingan publik, profil, grup, dan tag, ditambah feed, notifikasi, dan pesanmu.
  • write: bertindak. Memposting, membalas, memilih, mengirim pesan, mengikuti, bergabung, memblokir, menandai notifikasi sudah dibaca.

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.

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

/api/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/api/v2readVersi API dan nama instans ini.
Postingan
GET/api/v2/postsreadPostingan publik, yang terbaru lebih dulu.
GET/api/v2/posts/{id}readSatu postingan, menurut id-nya.
POST/api/v2/postswriteTerbitkan postingan.
DELETE/api/v2/posts/{id}writeHapus salah satu postinganmu sendiri.
Balasan
GET/api/v2/posts/{id}/repliesreadBalasan untuk sebuah postingan, tanpa akun yang diblokir.
POST/api/v2/posts/{id}/replieswriteBalas sebuah postingan.
Jajak pendapat
POST/api/v2/posts/{id}/votewriteIkut dalam jajak pendapat.
Profil
GET/api/v2/profiles/{handle}readSebuah profil, menurut nama pendeknya.
GET/api/v2/profiles/{handle}/postsreadPostingan publik dari satu profil, yang terbaru lebih dulu.
Grup
GET/api/v2/communitiesreadGrup terbuka di instans ini.
GET/api/v2/communities/{id}readSatu grup, menurut id-nya.
GET/api/v2/communities/{id}/postsreadPostingan publik dari satu grup, yang terbaru lebih dulu.
Jelajahi
GET/api/v2/tagsreadTag yang sedang ramai.
GET/api/v2/searchreadPencarian di postingan, nama, nama pendek, dan tag.
GET/api/v2/emojisreadEmoji milik instans, dengan alamat gambarnya.
Akunmu
GET/api/v2/mereadProfilmu sendiri, dengan id yang diharapkan path lain.
GET/api/v2/feedreadFeed-mu sendiri, seperti yang disusun aplikasi.
Notifikasi
GET/api/v2/notificationsreadNotifikasimu, yang terbaru lebih dulu.
POST/api/v2/notifications/readwriteTandai notifikasimu sudah dibaca.
Pesan
GET/api/v2/conversationsreadKotak masukmu: satu baris per percakapan, yang terbaru lebih dulu.
GET/api/v2/conversations/{with}/messagesreadPesan dalam satu percakapan, yang terbaru lebih dulu.
POST/api/v2/conversations/{with}/messageswriteKirim pesan dalam percakapan.
POST/api/v2/conversations/{with}/readwriteTandai semua pesan dalam percakapan sudah dibaca.
Relasi
POST/api/v2/relationswriteSuka, simpan, posting ulang, ikuti, gabung, blokir, bisukan, tergantung kind.

Jalan masuk

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

GET/api/v2

Versi API dan nama instans ini.

  • Hak read
  • dengan ETag
  • sejak v2.0

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

Contoh permintaan

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

Jawaban

Menjawab dengan satu Service.

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

Status yang mungkin: 200304401429

Postingan

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

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

Status yang mungkin: 200304401429

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

Status yang mungkin: 200304400401404429

POST/api/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.

Gambar belum bisa dilampirkan lewat API, hanya di aplikasi.

Parameter

NamaTipeArti
textdi isistringopsionalTeks postingan, balasan, atau pesan.
communitydi isistringopsionalid grup tempat postingan masuk. Tanpa itu, di luar semua grup.
quotesdi isistringopsionalid postingan yang dikutip postingan ini.
polldi isistring[]opsionalPilihan jawaban sebagai daftar teks.

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

Jawaban

Menjawab dengan satu Created.

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

Status yang mungkin: 200400401403429

DELETE/api/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://tellmelo.com/api/v2/posts/5f0c2a9e-8d41-4b7a-9c3e-2e61d0f4a7b1"

Jawaban

Menjawab dengan satu Ok.

Contoh
{
  "ok": true
}

Status yang mungkin: 200400401403404429

Balasan

Balasan di bawah postingan, sebagai daftar dengan parentId.

GET/api/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://tellmelo.com/api/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,
      "createdAt": 1758624600000,
      "postId": "5f0c2a9e-8d41-4b7a-9c3e-2e61d0f4a7b1",
      "parentId": null
    }
  ],
  "next": "MTc1ODYyNDAwMDAwMDo1ZjBjMmE5ZS04ZDQx"
}

Status yang mungkin: 200304400401404429

POST/api/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.

Parameter

NamaTipeArti
iddi pathstringwajibid sebuah postingan.
textdi isistringwajibTeks postingan, balasan, atau pesan.
parentIddi isistringopsionalid balasan yang dijawab balasan ini. Tanpa itu, langsung ke postingan.

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

Jajak pendapat

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

POST/api/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://tellmelo.com/api/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/api/v2/profiles/{handle}

Sebuah profil, menurut nama pendeknya.

  • Hak read
  • dengan ETag
  • sejak v2.0

Parameter

NamaTipeArti
handledi pathstringwajibNama pendek sebuah profil.

Contoh permintaan

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

Status yang mungkin: 200304400401404429

Grup

Grup terbuka dan postingannya.

GET/api/v2/communities

Grup terbuka di instans ini.

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

Contoh permintaan

curl \
  -H "Authorization: Bearer tm_key_…" \
  "https://tellmelo.com/api/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",
      "description": "Balconies, allotments, rooftops: whatever grows.",
      "tags": [
        "garden",
        "bees"
      ],
      "members": 312,
      "joinPolicy": "open",
      "visibility": "open"
    }
  ],
  "next": null
}

Status yang mungkin: 200304401429

GET/api/v2/communities/{id}

Satu grup, menurut id-nya.

  • Hak read
  • dengan ETag
  • sejak v2.0

Parameter

NamaTipeArti
iddi pathstringwajibid sebuah grup.

Contoh permintaan

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

Jawaban

Menjawab dengan satu Community.

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

Status yang mungkin: 200304400401404429

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

Postingan publik dari satu grup, 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.

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

Status yang mungkin: 200304400401404429

Jelajahi

Tren, pencarian, dan emoji milik instans.

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

Status yang mungkin: 200304400401429

GET/api/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://tellmelo.com/api/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

Akunmu

Profil dan feed-mu.

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

Status yang mungkin: 200400401429

Notifikasi

Apa yang terjadi di sekitar akunmu, halaman demi halaman.

GET/api/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://tellmelo.com/api/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/api/v2/notifications/read

Tandai notifikasimu sudah dibaca.

  • Hak write
  • sejak v2.0

Contoh permintaan

curl -X POST \
  -H "Authorization: Bearer tm_key_…" \
  "https://tellmelo.com/api/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/api/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://tellmelo.com/api/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/api/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://tellmelo.com/api/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/api/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 belum bisa dilampirkan 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://tellmelo.com/api/v2/conversations/a3e1f7c2-54b9-4d0e-8f16-7b2c9d4e1a05/messages"

Jawaban

Menjawab dengan satu Ok.

Contoh
{
  "ok": true
}

Status yang mungkin: 200400401403404429

POST/api/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://tellmelo.com/api/v2/conversations/a3e1f7c2-54b9-4d0e-8f16-7b2c9d4e1a05/read"

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.

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

Jawaban

Menjawab dengan satu Ok.

Contoh
{
  "ok": true
}

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.10",
  "scope": "read write",
  "rateLimit": {
    "limit": 120,
    "remaining": 117
  },
  "docs": "/legal/api",
  "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.
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
    }
  ],
  "poll": {
    "options": [
      {
        "text": "Lavender",
        "votes": 12
      },
      {
        "text": "Sunflowers",
        "votes": 7
      },
      {
        "text": "Clover",
        "votes": 3
      }
    ],
    "total": 22,
    "multiple": false,
    "endsAt": 1758710400000,
    "running": true,
    "resultsVisible": true,
    "myVotes": [
      0
    ]
  },
  "quotes": null,
  "continues": null,
  "counts": {
    "replies": 4,
    "likes": 31,
    "reposts": 2
  },
  "pinned": false,
  "createdAt": 1758624000000
}

Reply

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,
  "createdAt": 1758624600000,
  "postId": "5f0c2a9e-8d41-4b7a-9c3e-2e61d0f4a7b1",
  "parentId": null
}

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).
Contoh
{
  "url": "/api/media?id=b2d7e9f1-3c4a-4e8b-a1f0-6d5c4b3a2918",
  "kind": "image",
  "poster": null
}

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": 1758710400000,
  "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 @.
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.
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.
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.
visibilitystringSelalu open lewat kunci.
  • open — Terlihat oleh semua orang.
Contoh
{
  "id": "c81d4e2a-0f3b-4a6c-9e57-1d2b3c4a5f60",
  "name": "Urban Gardening",
  "description": "Balconies, allotments, rooftops: whatever grows.",
  "tags": [
    "garden",
    "bees"
  ],
  "members": 312,
  "joinPolicy": "open",
  "visibility": "open"
}

Tag

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

Emoji

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 menyukai balasanmu.
  • repost — Seseorang memposting ulang postinganmu.
  • follow — Seseorang mengikutimu.
  • mention — Seseorang menyebutmu.
  • group_mention — Seseorang menyebut grup yang kamu pimpin; text adalah namanya.
  • message — Seseorang mengirimimu pesan.
  • scheduled — Postingan terjadwalmu sudah diterbitkan.
  • 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 mencapai level atau hanya bertahan di level itu sementara.
  • 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.
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
}

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
}

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 /api/v2/openapi.json.

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

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.

Kembali ke tellmelo