Conteúdo Visão geral A v2 permite que seus próprios programas conversem com o tellmelo: uma chave por solicitação, JSON de volta, todas as listas paginam do mesmo jeito. Valem as mesmas regras do app.
Todo caminho começa com /api/v2 no endereço desta instância. Solicitações e respostas são JSON em UTF-8. Nomes de campos, códigos e valores são em inglês e continuam em inglês. Uma chave age como a sua conta: o que você não vê no app, ela também não pode ler. https://tellmelo.com/api/v2Início rápido Crie uma chave em “Configurações → App e dados → API” e copie-a. Ela só aparece uma vez. Chame a raiz com ela. A resposta mostra a versão, os direitos da chave e as solicitações que restam neste minuto. Todo caminho funciona igual: chave no cabeçalho, JSON de volta, items e next para listas. 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"
}Depois: /me para o seu perfil, /posts para posts públicos, /feed para o seu feed.
Experimente Escolha uma tarefa, preencha os campos e copie a requisição ou envie daqui. Escrita pede confirmação antes. O código lê a chave de TELLMELO_KEY.
Tarefa GET / GET /posts GET /posts/{id} POST /posts DELETE /posts/{id} GET /posts/{id}/replies POST /posts/{id}/replies POST /posts/{id}/vote GET /profiles/{handle} GET /profiles/{handle}/posts GET /communities GET /communities/{id} GET /communities/{id}/posts GET /tags GET /search GET /emojis GET /me GET /feed GET /notifications POST /notifications/read GET /conversations GET /conversations/{with}/messages POST /conversations/{with}/messages POST /conversations/{with}/read POST /relations read Versão da API e nome desta instância.
curl JavaScript Python
Copiarcurl \
-H "Authorization: Bearer $TELLMELO_KEY" \
"https://tellmelo.com/api/v2"Sua chave Uma chave por conta. Ela começa com tm_key_ e só aparece uma vez. Perdeu? Crie uma nova; a antiga para de funcionar.
Você a cria em “Configurações → App e dados → API”. Ela vai no cabeçalho da solicitação:
curl -H "Authorization: Bearer tm_key_…" \
https://tellmelo.com/api/v2/postsOu, se for mais prático, num cabeçalho próprio:
curl -H "X-Tellmelo-Key: tm_key_…" https://tellmelo.com/api/v2Não na URL: ela acabaria em logs e no histórico do navegador.
A mesma chave carrega imagens: todo url aponta para /api/media; envie a chave no cabeçalho lá também.
curl -H "Authorization: Bearer tm_key_…" \
-o picture.webp "https://tellmelo.com/api/media?id=…"O que uma chave pode fazer Uma chave tem um de dois direitos, e cada caminho abaixo diz qual precisa:
read : ler. Posts públicos, perfis, grupos e tags, além do seu feed, notificações e mensagens.write : agir. Publicar, responder, votar, enviar mensagens, seguir, entrar, bloquear, marcar notificações como lidas.O que nenhuma chave pode fazer Nenhuma chave alcança senha, e-mail, tipo de conta, lugar, função, exclusão, sessões, dispositivos de push ou outras chaves, nem a administração ou a liderança de grupos. O que a senha protege, nenhuma chave pode fazer.
Páginas Toda lista aceita limit e cursor e responde com items e next. Envie next de volta como cursor para obter a próxima página; quando next estiver vazio, acabou. O cursor é opaco: não o analise, não monte um.
{ "items": [ … ], "next": "MTc1ODYyNDAwMDAwMDo1ZjBjMmE5ZS04ZDQx" }
curl -H "Authorization: Bearer tm_key_…" \
"https://tellmelo.com/api/v2/posts?limit=20&cursor=MTc1ODYyNDAwMDAwMDo1ZjBjMmE5ZS04ZDQx"Sem limit, 20 itens, no máximo 50. Algumas listas não paginam; o next delas é sempre null.
Só o que é novo Toda resposta traz um ETag. Envie-o de volta como If-None-Match da próxima vez: se nada mudou, você recebe 304 sem corpo.
ETag: W/"3Qk1mJ7fQe2Yb0sVxT9aL4pNdRc"
If-None-Match: W/"3Qk1mJ7fQe2Yb0sVxT9aL4pNdRc" → 304Exceções: /feed não tem ETag porque a ordem muda o tempo todo, e escritas nunca respondem 304.
Limites Uma chave pode fazer 120 solicitações por minuto, 600 com o plano “Organização”, salvo se a administração definir outra coisa. Acima disso você recebe 429 e nada foi executado. Espere um minuto e envie de novo.
X-RateLimit-Limit: 120
X-RateLimit-Remaining: 117
X-RateLimit-Reset: 1758624060Escritas também contam para os limites do app, como quantos posts em poucos minutos. Isso também responde 429 com rate_limited.
Quando algo não funciona Erros vêm como JSON: um código fixo em inglês em error para o seu programa e uma frase em message para pessoas, além do código de status correspondente. Compare só o código; a frase pode mudar.
{ "error": "rate_limited",
"message": "Too many requests. Try again in a minute.",
"limit": 120 }Alguns erros trazem um campo a mais: docs com um 401 por falta de chave, limit com um 429.
Status Código Significado 400bad_requestA solicitação não pode ser lida, falta um campo obrigatório ou um valor não é permitido. 401key_missingNenhuma chave no cabeçalho. 401key_invalidA chave não é válida: digitada errado, substituída ou a conta está banida. 401unauthorizedRecusada como não conectada, por um motivo que não é a chave. 403scope_missingFalta à chave o direito necessário, geralmente write. 403account_data_lockedDados da conta como senha, e-mail ou exclusão estão fora do alcance das chaves. 403forbiddenSua conta não pode fazer isso, por exemplo por um direito revogado ou um bloqueio. 404unknown_pathEsse caminho não existe, ou não com este método. 404not_foundNão encontrado, ou você não pode ver. 409conflictEntra em conflito com o que já existe, por exemplo um nome já em uso. 413too_largeGrande demais para esta instância. 422unprocessableLegível, mas não é possível nesta forma. 429rate_limitedSolicitações demais. Nada aconteceu; espere e tente de novo. 500internal_errorAlgo deu errado no servidor.
Versões A versão está no caminho. Enquanto estiver v2, caminhos e campos continuam iguais; só são acrescentadas coisas novas.
Acréscimos aumentam o segundo número. Cada caminho diz desde quando existe.
/api/v1/ acabou: os caminhos antigos respondem 410 e indicam o novo caminho no corpo.
Endpoints Todos os caminhos num relance, depois cada um com um exemplo.
Caminho Direito Para quê A entrada GET /api/v2readVersão da API e nome desta instância. Posts GET /api/v2/postsreadOs posts públicos, os mais recentes primeiro. GET /api/v2/posts/{id}readUm único post, pelo seu id. POST /api/v2/postswritePublicar um post. DELETE /api/v2/posts/{id}writeRemover um dos seus próprios posts. Respostas GET /api/v2/posts/{id}/repliesreadAs respostas a um post, sem contas bloqueadas. POST /api/v2/posts/{id}/replieswriteResponder a um post. Enquetes POST /api/v2/posts/{id}/votewriteParticipar de uma enquete. Perfis GET /api/v2/profiles/{handle}readUm perfil, pelo seu nome curto. GET /api/v2/profiles/{handle}/postsreadOs posts públicos de um perfil, os mais recentes primeiro. Grupos GET /api/v2/communitiesreadOs grupos abertos desta instância. GET /api/v2/communities/{id}readUm único grupo, pelo seu id. GET /api/v2/communities/{id}/postsreadOs posts públicos de um grupo, os mais recentes primeiro. Descobrir GET /api/v2/tagsreadAs tags em alta no momento. GET /api/v2/searchreadUma busca em posts, nomes, nomes curtos e tags. GET /api/v2/emojisreadOs emojis próprios da instância, com o endereço das imagens. Sua conta GET /api/v2/mereadO seu próprio perfil, com o id que os outros caminhos esperam. GET /api/v2/feedreadO seu próprio feed, do jeito que o aplicativo o monta. Notificações GET /api/v2/notificationsreadSuas notificações, as mais recentes primeiro. POST /api/v2/notifications/readwriteMarcar suas notificações como lidas. Mensagens GET /api/v2/conversationsreadSua caixa de entrada: uma linha por conversa, a mais recente primeiro. GET /api/v2/conversations/{with}/messagesreadAs mensagens de uma conversa, as mais recentes primeiro. POST /api/v2/conversations/{with}/messageswriteEnviar uma mensagem numa conversa. POST /api/v2/conversations/{with}/readwriteMarcar todas as mensagens de uma conversa como lidas. Relações POST /api/v2/relationswriteCurtir, salvar, repostar, seguir, entrar, bloquear, silenciar, conforme kind.
A entrada A primeira solicitação de todo programa: a chave funciona, e o que ela pode fazer?
GET /api/v2Versão da API e nome desta instância.
Direito read com ETag desde v2.0 Sem barra no final: /api/v2/ redireciona para /api/v2 com 308, e nem todo programa segue.
Exemplo de solicitação curl \
-H "Authorization: Bearer tm_key_…" \
"https://tellmelo.com/api/v2"Resposta Responde com um Service .
Exemplo {
"name": "tellmelo",
"version": "2.10",
"scope": "read write",
"rateLimit": {
"limit": 120,
"remaining": 117
},
"docs": "/legal/api",
"spec": "/api/v2/openapi.json"
}Status possíveis: 200304401429
Posts Ler posts públicos, publicar os seus e removê-los de novo.
GET /api/v2/postsOs posts públicos, os mais recentes primeiro.
Direito read paginável com ETag desde v2.0 Em caminhos públicos, counts.likes e counts.reposts são sempre 0 e pinned é false.
Posts em grupos não estão aqui, mas em /communities/{id}/posts.
Parâmetros Nome Tipo Significado limitna query integeropcional Itens por página: 20 por padrão, no máximo 50. cursorna query stringopcional O next da resposta anterior. Sem ele, desde o início.
Exemplo de solicitação curl \
-H "Authorization: Bearer tm_key_…" \
"https://tellmelo.com/api/v2/posts?limit=20"Resposta Responde com uma página de Post , como `items` e `next`.
Exemplo {
"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 possíveis: 200304401429
GET /api/v2/posts/{id}Um único post, pelo seu id.
Direito read com ETag desde v2.0 Em caminhos públicos, counts.likes e counts.reposts são sempre 0 e pinned é false.
Posts em grupos não estão aqui, mas em /communities/{id}/posts.
Parâmetros Nome Tipo Significado idno caminho stringobrigatório O id de um post.
Exemplo de solicitação curl \
-H "Authorization: Bearer tm_key_…" \
"https://tellmelo.com/api/v2/posts/5f0c2a9e-8d41-4b7a-9c3e-2e61d0f4a7b1"Resposta Responde com um Post .
Exemplo {
"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 possíveis: 200304400401404429
POST /api/v2/postsPublicar um post.
Um post precisa de texto ou de uma enquete. Tamanho, opções da enquete e ritmo são definidos pela instância; além disso você recebe 400 ou 429.
Ainda não é possível anexar imagens pela API, só no aplicativo.
Parâmetros Nome Tipo Significado textno corpo stringopcional O texto do post, da resposta ou da mensagem. communityno corpo stringopcional O id do grupo onde o post entra. Sem ele, fora de qualquer grupo. quotesno corpo stringopcional O id do post que este cita. pollno corpo string[]opcional As opções de resposta como lista de textos.
Exemplo de solicitação 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"Resposta Responde com um Created .
Exemplo {
"id": "5f0c2a9e-8d41-4b7a-9c3e-2e61d0f4a7b1",
"scheduledFor": null,
"deleteAt": null
}Status possíveis: 200400401403429
DELETE /api/v2/posts/{id}Remover um dos seus próprios posts.
Parâmetros Nome Tipo Significado idno caminho stringobrigatório O id de um post.
Exemplo de solicitação curl -X DELETE \
-H "Authorization: Bearer tm_key_…" \
"https://tellmelo.com/api/v2/posts/5f0c2a9e-8d41-4b7a-9c3e-2e61d0f4a7b1"Resposta Responde com um Ok .
Exemplo {
"ok": true
}Status possíveis: 200400401403404429
Respostas Respostas sob um post, como lista com parentId.
GET /api/v2/posts/{id}/repliesAs respostas a um post, sem contas bloqueadas.
Direito read paginável com ETag desde v2.0 A lista é plana e na ordem em que foi escrita; parentId a transforma em árvore. Uma página sempre traz conversas inteiras. Respostas de contas bloqueadas ficam de fora.
Parâmetros Nome Tipo Significado idno caminho stringobrigatório O id de um post. limitna query integeropcional Itens por página: 20 por padrão, no máximo 50. cursorna query stringopcional O next da resposta anterior. Sem ele, desde o início.
Exemplo de solicitação curl \
-H "Authorization: Bearer tm_key_…" \
"https://tellmelo.com/api/v2/posts/5f0c2a9e-8d41-4b7a-9c3e-2e61d0f4a7b1/replies?limit=20"Resposta Responde com uma página de Reply , como `items` e `next`.
Exemplo {
"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 possíveis: 200304400401404429
POST /api/v2/posts/{id}/repliesResponder a um post.
No modo lento, uma resposta por pessoa a cada 10 minutos, senão 429. O autor e as contas que ele segue estão isentos.
Parâmetros Nome Tipo Significado idno caminho stringobrigatório O id de um post. textno corpo stringobrigatório O texto do post, da resposta ou da mensagem. parentIdno corpo stringopcional O id da resposta a que esta responde. Sem ele, direto ao post.
Exemplo de solicitação 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"Resposta Responde com um Created .
Exemplo {
"id": "5f0c2a9e-8d41-4b7a-9c3e-2e61d0f4a7b1",
"scheduledFor": null,
"deleteAt": null
}Status possíveis: 200400401403404429
Enquetes Uma enquete é um post cujo poll está definido. Votar tem um caminho próprio.
POST /api/v2/posts/{id}/voteParticipar de uma enquete.
Os votos por opção são null até você votar ou a enquete acabar. total está sempre lá.
Parâmetros Nome Tipo Significado idno caminho stringobrigatório O id de um post. optionno corpo integerobrigatório Qual opção, contando a partir de 0. Em múltipla escolha, chame uma vez por opção. retractno corpo booleanopcional true retira o voto.
Exemplo de solicitação 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"Resposta Responde com um Ok .
Exemplo {
"ok": true
}Status possíveis: 200400401403404429
Perfis Perfis públicos pelo nome curto, e o que publicaram.
GET /api/v2/profiles/{handle}Um perfil, pelo seu nome curto.
Direito read com ETag desde v2.0 Parâmetros Nome Tipo Significado handleno caminho stringobrigatório O nome curto de um perfil.
Exemplo de solicitação curl \
-H "Authorization: Bearer tm_key_…" \
"https://tellmelo.com/api/v2/profiles/mara"Resposta Responde com um Profile .
Exemplo {
"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 possíveis: 200304400401404429
GET /api/v2/profiles/{handle}/postsOs posts públicos de um perfil, os mais recentes primeiro.
Direito read paginável com ETag desde v2.0 Em caminhos públicos, counts.likes e counts.reposts são sempre 0 e pinned é false.
Posts em grupos não estão aqui, mas em /communities/{id}/posts.
Parâmetros Nome Tipo Significado handleno caminho stringobrigatório O nome curto de um perfil. limitna query integeropcional Itens por página: 20 por padrão, no máximo 50. cursorna query stringopcional O next da resposta anterior. Sem ele, desde o início.
Exemplo de solicitação curl \
-H "Authorization: Bearer tm_key_…" \
"https://tellmelo.com/api/v2/profiles/mara/posts?limit=20"Resposta Responde com uma página de Post , como `items` e `next`.
Exemplo {
"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 possíveis: 200304400401404429
Grupos Os grupos abertos e seus posts.
GET /api/v2/communitiesOs grupos abertos desta instância.
Direito read com ETag desde v2.0 Ordenados pelo número de membros e sem paginação; next é sempre null.
Parâmetros Nome Tipo Significado limitna query integeropcional Itens por página: 20 por padrão, no máximo 50.
Exemplo de solicitação curl \
-H "Authorization: Bearer tm_key_…" \
"https://tellmelo.com/api/v2/communities?limit=20"Resposta Responde com uma página de Community , como `items` e `next`.
Exemplo {
"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 possíveis: 200304401429
GET /api/v2/communities/{id}Um único grupo, pelo seu id.
Direito read com ETag desde v2.0 Parâmetros Nome Tipo Significado idno caminho stringobrigatório O id de um grupo.
Exemplo de solicitação curl \
-H "Authorization: Bearer tm_key_…" \
"https://tellmelo.com/api/v2/communities/c81d4e2a-0f3b-4a6c-9e57-1d2b3c4a5f60"Resposta Responde com um Community .
Exemplo {
"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 possíveis: 200304400401404429
GET /api/v2/communities/{id}/postsOs posts públicos de um grupo, os mais recentes primeiro.
Direito read paginável com ETag desde v2.0 Em caminhos públicos, counts.likes e counts.reposts são sempre 0 e pinned é false.
Parâmetros Nome Tipo Significado idno caminho stringobrigatório O id de um grupo. limitna query integeropcional Itens por página: 20 por padrão, no máximo 50. cursorna query stringopcional O next da resposta anterior. Sem ele, desde o início.
Exemplo de solicitação curl \
-H "Authorization: Bearer tm_key_…" \
"https://tellmelo.com/api/v2/communities/c81d4e2a-0f3b-4a6c-9e57-1d2b3c4a5f60/posts?limit=20"Resposta Responde com uma página de Post , como `items` e `next`.
Exemplo {
"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 possíveis: 200304400401404429
Descobrir Tendências, busca e os emojis próprios da instância.
GET /api/v2/tagsAs tags em alta no momento.
Direito read com ETag desde v2.0 No máximo 10 tags em alta por pontuação: cada uso conta 1 e cai pela metade a cada 3 dias; uma conta conta no máximo 3 por dia. posts é a pontuação arredondada. limit só encurta a lista. Tags destacadas pela equipe podem ficar mais acima.
Parâmetros Nome Tipo Significado limitna query integeropcional Itens por página: 20 por padrão, no máximo 50.
Exemplo de solicitação curl \
-H "Authorization: Bearer tm_key_…" \
"https://tellmelo.com/api/v2/tags?limit=10"Resposta Responde com uma página de Tag , como `items` e `next`.
Exemplo {
"items": [
{
"tag": "garden",
"posts": 58
}
],
"next": null
}Status possíveis: 200304401429
GET /api/v2/searchUma busca em posts, nomes, nomes curtos e tags.
Direito read com ETag desde v2.0 Busca só conteúdo público: posts fora de grupos, perfis e tags. limit vale para cada tipo.
Parâmetros Nome Tipo Significado qna query stringobrigatório As palavras procuradas. typena query stringopcional Qual tipo de resultado. Sem ele, todos os tipos.allpostsprofilestags limitna query integeropcional Itens por página: 20 por padrão, no máximo 50.
Exemplo de solicitação curl \
-H "Authorization: Bearer tm_key_…" \
"https://tellmelo.com/api/v2/search?q=garden&type=posts"Resposta Responde com um SearchResult .
Exemplo {
"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 possíveis: 200304400401429
GET /api/v2/emojisOs emojis próprios da instância, com o endereço das imagens.
Direito read com ETag desde v2.1 Nos textos, um emoji aparece como :name:. Substitua-o pela imagem desta lista; nomes desconhecidos ficam como texto.
Exemplo de solicitação curl \
-H "Authorization: Bearer tm_key_…" \
"https://tellmelo.com/api/v2/emojis"Resposta Responde com uma página de Emoji , como `items` e `next`.
Exemplo {
"items": [
{
"name": "tellmelo",
"url": "/api/media?id=e1f2a3b4-c5d6-4e7f-8a9b-0c1d2e3f4a5b"
}
],
"next": null
}Status possíveis: 200304401429
Sua conta Seu perfil e seu feed.
GET /api/v2/meO seu próprio perfil, com o id que os outros caminhos esperam.
Direito read com ETag desde v2.0 Exemplo de solicitação curl \
-H "Authorization: Bearer tm_key_…" \
"https://tellmelo.com/api/v2/me"Resposta Responde com um Profile .
Exemplo {
"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 possíveis: 200304401429
GET /api/v2/feedO seu próprio feed, do jeito que o aplicativo o monta.
Direito read paginável desde v2.0 Sem ETag, porque a ordem muda o tempo todo. Uma lista que você começou fica igual até o fim.
Parâmetros Nome Tipo Significado tabna query stringopcional Qual feed: for-you, following, latest ou bookmarks. latest por padrão.for-youfollowinglatestbookmarks tagna query stringopcional Só posts sobre esta tag: escritos com ela ou reconhecidos nela pelo servidor. Sem ele, sem filtro. limitna query integeropcional Itens por página: 20 por padrão, no máximo 50. cursorna query stringopcional O next da resposta anterior. Sem ele, desde o início.
Exemplo de solicitação curl \
-H "Authorization: Bearer tm_key_…" \
"https://tellmelo.com/api/v2/feed?tab=following&limit=20"Resposta Responde com uma página de Post , como `items` e `next`.
Exemplo {
"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 possíveis: 200400401429
Notificações O que aconteceu em torno da sua conta, página por página.
GET /api/v2/notificationsSuas notificações, as mais recentes primeiro.
Direito read paginável com ETag desde v2.0 Ler não marca nada como lido; POST /notifications/read marca. Eventos do mesmo tipo no mesmo post dividem uma linha; more diz quantos.
Parâmetros Nome Tipo Significado limitna query integeropcional Itens por página: 20 por padrão, no máximo 50. cursorna query stringopcional O next da resposta anterior. Sem ele, desde o início.
Exemplo de solicitação curl \
-H "Authorization: Bearer tm_key_…" \
"https://tellmelo.com/api/v2/notifications?limit=20"Resposta Responde com uma página de Notification , como `items` e `next`.
Exemplo {
"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 possíveis: 200304401429
POST /api/v2/notifications/readMarcar suas notificações como lidas.
Exemplo de solicitação curl -X POST \
-H "Authorization: Bearer tm_key_…" \
"https://tellmelo.com/api/v2/notifications/read"Resposta Responde com um Ok .
Exemplo {
"ok": true
}Status possíveis: 200401403429
Mensagens Sua caixa de entrada e conversas. Uma conversa recebe o nome da outra conta.
GET /api/v2/conversationsSua caixa de entrada: uma linha por conversa, a mais recente primeiro.
Direito read paginável com ETag desde v2.0 Parâmetros Nome Tipo Significado limitna query integeropcional Itens por página: 20 por padrão, no máximo 50. cursorna query stringopcional O next da resposta anterior. Sem ele, desde o início.
Exemplo de solicitação curl \
-H "Authorization: Bearer tm_key_…" \
"https://tellmelo.com/api/v2/conversations?limit=20"Resposta Responde com uma página de Conversation , como `items` e `next`.
Exemplo {
"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 possíveis: 200304401429
GET /api/v2/conversations/{with}/messagesAs mensagens de uma conversa, as mais recentes primeiro.
Direito read paginável com ETag desde v2.0 Ler não marca nada como lido; POST /conversations/{with}/read marca.
Parâmetros Nome Tipo Significado withno caminho stringobrigatório O id da outra conta. Uma conversa não tem id próprio. limitna query integeropcional Itens por página: 20 por padrão, no máximo 50. cursorna query stringopcional O next da resposta anterior. Sem ele, desde o início.
Exemplo de solicitação curl \
-H "Authorization: Bearer tm_key_…" \
"https://tellmelo.com/api/v2/conversations/a3e1f7c2-54b9-4d0e-8f16-7b2c9d4e1a05/messages?limit=20"Resposta Responde com uma página de Message , como `items` e `next`.
Exemplo {
"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 possíveis: 200304400401404429
POST /api/v2/conversations/{with}/messagesEnviar uma mensagem numa conversa.
Valem as regras do app: quem te bloqueou não pode ser alcançado, e as configurações da outra pessoa contam.
Ainda não é possível anexar imagens pela API, só no aplicativo.
Parâmetros Nome Tipo Significado withno caminho stringobrigatório O id da outra conta. Uma conversa não tem id próprio. textno corpo stringobrigatório O texto do post, da resposta ou da mensagem. replyTono corpo stringopcional O id de uma mensagem anterior desta conversa à qual esta responde. Desde 2.2.
Exemplo de solicitação 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"Resposta Responde com um Ok .
Exemplo {
"ok": true
}Status possíveis: 200400401403404429
POST /api/v2/conversations/{with}/readMarcar todas as mensagens de uma conversa como lidas.
Parâmetros Nome Tipo Significado withno caminho stringobrigatório O id da outra conta. Uma conversa não tem id próprio.
Exemplo de solicitação curl -X POST \
-H "Authorization: Bearer tm_key_…" \
"https://tellmelo.com/api/v2/conversations/a3e1f7c2-54b9-4d0e-8f16-7b2c9d4e1a05/read"Resposta Responde com um Ok .
Exemplo {
"ok": true
}Status possíveis: 200400401403404429
Relações Curtir, salvar, repostar, seguir, entrar, bloquear: um só caminho, definido e removido com active.
POST /api/v2/relationsCurtir, salvar, repostar, seguir, entrar, bloquear, silenciar, conforme kind.
target é um post para like, save e repost, um grupo para join e uma conta para follow, block e mute. active: false remove a relação.
Parâmetros Nome Tipo Significado kindno corpo stringobrigatório Qual relação: like, save, repost, follow, join, block ou mute (desde 2.2).likesaverepostfollowjoinblockmute targetno corpo stringobrigatório O id do post, perfil ou grupo, conforme kind. activeno corpo booleanopcional true define a relação, false a remove.
Exemplo de solicitação 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"Resposta Responde com um Ok .
Exemplo {
"ok": true
}Status possíveis: 200400401403429
Objetos Todos os objetos, campo por campo. [] significa lista.
ServiceA resposta da raiz: quem está respondendo e o que esta chave pode fazer.
Campo Tipo Significado namestringSempre tellmelo. versionstringA versão da API, por exemplo 2.1. scopestringO que esta chave pode fazer: read ou read write. rateLimitRateLimitA cota desta chave. docsstringOnde está esta documentação, como caminho nesta instância. specstringOnde está a descrição legível por máquina.
Exemplo {
"name": "tellmelo",
"version": "2.10",
"scope": "read write",
"rateLimit": {
"limit": 120,
"remaining": 117
},
"docs": "/legal/api",
"spec": "/api/v2/openapi.json"
}RateLimitA cota desta chave no minuto atual.
Campo Tipo Significado limitintegerSolicitações por minuto. remainingintegerQuantas restam neste minuto.
Exemplo {
"limit": 120,
"remaining": 117
}PostUm post, com a mesma forma em todo lugar.
Campo Tipo Significado idstringO id do post. textstringou null O texto como foi escrito (null para um post que é só enquete ou só imagens). kindstringO que o post é.post — Um post com texto, imagens ou uma citação.poll — Um post com enquete. authorProfileBriefQuem o escreveu. communityCommunityBriefou null O grupo em que foi escrito (null fora de qualquer grupo). mediaMedia[]Suas imagens, em ordem; vazio se não houver. pollPollou null A enquete (null se não houver). quotesstringou null O id do post que este cita. continuesstringou null O id do post que este continua, como acréscimo. countsCountsRespostas, curtidas e reposts. pinnedbooleanSe está fixado no topo do perfil do autor. createdAtintegerQuando foi escrito.
Exemplo {
"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
}ReplyUma resposta sob um post: um post com mais dois campos.
Todos os campos de Post , e além disso:
Campo Tipo Significado postIdstringO post do qual a conversa inteira depende. parentIdstringou null A resposta a que esta responde (null se responde direto ao post).
Exemplo {
"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
}CountsQuantas respostas, curtidas e reposts um post tem.
Campo Tipo Significado repliesintegerRespostas, todos os níveis juntos. likesintegerCurtidas. repostsintegerReposts.
Exemplo {
"replies": 4,
"likes": 31,
"reposts": 2
}PollA enquete de um post.
Campo Tipo Significado optionsPollOption[]As respostas, em ordem. option num voto conta a partir de 0. totalintegerTodos os votos juntos, sempre presente. multiplebooleanSe dá para escolher mais de uma resposta. endsAtintegerou null Quando a enquete termina (null se roda sem fim). runningbooleanSe ainda dá para votar. resultsVisiblebooleanSe os votos por resposta são mostrados (veja votes). myVotesinteger[]As respostas que você escolheu, contando a partir de 0.
Exemplo {
"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
]
}PollOptionUma resposta de uma enquete.
Campo Tipo Significado textstringA resposta. votesintegerou null Seus votos (null enquanto os resultados estão retidos).
Exemplo {
"text": "Lavender",
"votes": 12
}ProfileBriefUm perfil como aparece dentro de outros objetos: como autor, numa busca.
Campo Tipo Significado idstringO id da conta: o que /relations e /conversations/{with} esperam. handlestringO nome curto, sem @. namestringO nome de exibição. Pode conter emojis, inclusive :name:. verifiedbooleanSe a conta é verificada. accountKindstringQue tipo de conta é.person — Uma pessoa.business — Uma empresa.association — Um clube ou associação.automated — Uma conta automatizada, como um bot.
Exemplo {
"id": "a3e1f7c2-54b9-4d0e-8f16-7b2c9d4e1a05",
"handle": "mara",
"name": "Mara 🌻",
"verified": true,
"accountKind": "person"
}ProfileUm perfil sozinho, com descrição e seguidores.
Todos os campos de ProfileBrief , e além disso:
Campo Tipo Significado aboutstringou null A descrição (null se não houver). websitestringou null O site do perfil (null se não houver). Desde 2.3. websiteVerifiedbooleanSe o site tem link de volta para este perfil com rel=me, verificado semanalmente. Desde 2.3. followersintegerQuantas contas a seguem. createdAtintegerou null Quando a conta foi criada (null enquanto o membro oculta a data de entrada; desde 2.9).
Exemplo {
"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
}TagUma tag e quantos posts a usam.
Campo Tipo Significado tagstringA tag, sem #. postsintegerQuantos posts recentes a usam.
Exemplo {
"tag": "garden",
"posts": 58
}SearchResultTrês listas, possivelmente vazias.
Campo Tipo Significado postsPost[]Posts que correspondem, os mais recentes primeiro. profilesProfileBrief[]Perfis que correspondem, pelo nome curto. tagsTag[]Tags que correspondem, as mais usadas primeiro.
Exemplo {
"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
}
]
}EmojiUm emoji desta instância.
Campo Tipo Significado namestringO nome, como aparece entre os dois-pontos. urlstringO endereço da imagem, relativo a esta instância.
Exemplo {
"name": "tellmelo",
"url": "/api/media?id=e1f2a3b4-c5d6-4e7f-8a9b-0c1d2e3f4a5b"
}NotificationUma notificação. Uma linha pode reunir vários eventos do mesmo tipo.
Campo Tipo Significado idstringO id da notificação. kindstringO que aconteceu.reply — Alguém te respondeu.like — Alguém curtiu seu post.reply_like — Alguém curtiu sua resposta.repost — Alguém repostou seu post.follow — Alguém segue você.mention — Alguém te mencionou.group_mention — Alguém mencionou um grupo que você lidera; text é o nome dele.message — Alguém te escreveu uma mensagem.scheduled — Um post seu agendado foi publicado.reminder — Um lembrete sobre um post salvo está na hora.report — O que aconteceu com uma denúncia que você enviou.moderation — Uma decisão sobre a sua conta: advertência, restrição, recurso.team — Novo trabalho para a equipe (só proprietários, admins e moderação).reward — Uma recompensa por convite está para acabar ou acabou.gift — Um presente da equipe: um plano, ou faíscas para você ou para um grupo que você lidera.present — Um presente de um membro: faíscas ou tempo de plano; o membro é o actor.spark — Faíscas acabam em breve, ou um grupo que você lidera atingiu um nível ou só o mantém por um tempo.loyalty — Sobre o ritmo de fidelidade: uma semana ativa conta ou falta um dia, uma recompensa é nova ou está para sumir.impact — Como foram seus posts de doze horas depois de um dia, em uma notificação.discovery — Um convite para o programa Descoberto, ou que um lugar nele começa ou termina.group_post — Um novo post em um grupo cujo sino toca para isso.group_moderation — A liderança de um grupo removeu um dos seus posts, ou você, do grupo. textstringou null Só para denúncias e moderação: o texto relacionado; caso contrário, null. actorActorQuem fez. postIdstringou null O post de que se trata (null se não se trata de nenhum). readbooleanSe foi marcada como lida. moreintegerQuantos outros eventos esta linha representa, além do citado. createdAtintegerQuando aconteceu pela primeira vez. updatedAtintegerQuando reuniu outro evento pela última vez. A lista é ordenada por isto.
Exemplo {
"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
}ActorQuem disparou uma notificação.
Campo Tipo Significado handlestringO nome curto. namestringO nome de exibição.
Exemplo {
"handle": "jon",
"name": "Jon"
}ConversationUma linha da sua caixa de entrada.
Campo Tipo Significado withstringO id da outra conta: o que /conversations/{with}/messages espera. handlestringO nome curto da pessoa. namestringO nome de exibição da pessoa. excerptstringou null O início da última mensagem (null se não tiver texto). truncatedbooleanSe o trecho foi cortado. fromMebooleanSe a última mensagem é sua. lastMessageIdstringO id da última mensagem. unreadintegerQuantas mensagens da pessoa você ainda não leu. updatedAtintegerQuando a última mensagem foi escrita.
Exemplo {
"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
}MessageUma mensagem numa conversa.
Campo Tipo Significado idstringO id da mensagem. textstringou null O texto (null para uma mensagem que é só imagens). fromstringO id da conta que a escreveu. tostringO id da conta para quem foi escrita. readbooleanSe o destinatário a leu. mediaMedia[]Suas imagens; vazio se não houver. replyTostringou null O id da mensagem a que esta responde (null se não responde a nenhuma). Desde 2.2. createdAtintegerQuando foi enviada.
Exemplo {
"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
}CreatedA resposta de uma escrita que criou algo.
Campo Tipo Significado idstringO id do que foi criado. scheduledForintegerou null Quando aparece, se a publicação foi agendada (senão null). deleteAtintegerou null Quando se exclui sozinho, se isso foi definido (senão null).
Exemplo {
"id": "5f0c2a9e-8d41-4b7a-9c3e-2e61d0f4a7b1",
"scheduledFor": null,
"deleteAt": null
}OkA resposta de uma escrita que não tem nada a devolver.
Campo Tipo Significado okbooleanSempre true.
Exemplo {
"ok": true
}A descrição legível por máquina A tabela por trás desta página está disponível como OpenAPI em /api/v2/openapi.json.
https://tellmelo.com/api/v2/openapi.jsonO que esperamos Valem as mesmas regras de sempre: nada de assédio, nada de spam, nada de conteúdo sobre o qual você não tem direitos. Você é responsável pelo que a sua chave publica.