{"openapi":"3.1.0","info":{"title":"tellmelo","version":"2.20","description":"v2 lets your own programs talk to tellmelo: one key per request, JSON back, every list pages the same way. The same rules apply as in the app."},"servers":[{"url":"https://api.tellmelo.com"}],"tags":[{"name":"service","description":"The first request of every program: does the key work, and what may it do?"},{"name":"posts","description":"Reading public posts, publishing your own and removing them again."},{"name":"replies","description":"Replies under a post, as a list with `parentId`."},{"name":"polls","description":"A poll is a post whose `poll` is set. Voting has a path of its own."},{"name":"profiles","description":"Public profiles by their short name, and what they have posted."},{"name":"communities","description":"The open groups and your own, their posts, members, roles and invitation links."},{"name":"channels","description":"The channels of your groups and their chat: reading, writing, marking as read."},{"name":"groupAdmin","description":"What a group’s settings can do in the app, with the **groups** permission. What your account may do is decided by the group as in the app: leadership, roles and their rank."},{"name":"bots","description":"What happens in a bot's groups, in real time: as a stream, page by page, or delivered to an address."},{"name":"discover","description":"Trends, search and the instance’s custom emojis."},{"name":"media","description":"The media library: find shared GIFs and videos, upload and manage your own, and embed them on other websites."},{"name":"account","description":"Your profile, your feed, your own emojis and your webhooks."},{"name":"notifications","description":"What happened around your account, page by page."},{"name":"messages","description":"Your inbox and conversations. A conversation is named after the other account."},{"name":"relations","description":"Like, save, repost, follow, join, block: one path, set and removed with `active`. Since 2.19 also the lists: followers, following, and your own blocks and mutes."},{"name":"collections","description":"Sort saved posts into your own collections. A post can be in several; taken out of a collection it stays saved."},{"name":"gifts","description":"Read a partner’s quota and give from it, put gifts under posts and keep an eye on them. Claiming stays with people in the app."}],"paths":{"/v2":{"get":{"operationId":"root","summary":"API version and name of this instance.","tags":["service"],"security":[{"apiKey":["read"]}],"parameters":[],"responses":{"200":{"description":"Service","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Service"}}}},"304":{"description":"Not modified"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v2/posts":{"get":{"operationId":"posts_list","summary":"The public posts, newest first.","tags":["posts"],"security":[{"apiKey":["read"]}],"parameters":[{"name":"limit","in":"query","required":false,"description":"Entries per page: 20 by default, at most 50.","schema":{"type":"integer","default":20,"minimum":1,"maximum":50}},{"name":"cursor","in":"query","required":false,"description":"The `next` of the previous answer. Without it, from the start.","schema":{"type":"string"}}],"responses":{"200":{"description":"A page of Post","content":{"application/json":{"schema":{"type":"object","required":["items","next"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Post"}},"next":{"type":["string","null"]}}}}}},"304":{"description":"Not modified"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"posts_create","summary":"Publish a post.","tags":["posts"],"security":[{"apiKey":["write"]}],"parameters":[],"responses":{"200":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Created"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"text":{"type":"string","description":"The text of the post, reply or message."},"community":{"type":"string","description":"The `id` of the group whose feed channel the post goes to; it must be on, and you need the permission for it. Without it the post stands outside any group."},"quotes":{"type":"string","description":"The `id` of the post this one quotes."},"poll":{"type":"array","items":{"type":"string"},"description":"The answer options as a list of texts."},"media":{"type":"array","items":{"type":"string"},"description":"IDs of images uploaded in the app, or of a GIF or video from the media library (since 2.14)."},"audience":{"type":"string","enum":["everyone","close"],"description":"Who sees the post: `everyone` who may see it, `close` only your close friends."},"coauthor":{"type":"string","description":"The `id` of an account you invite as co-author. You must follow each other."}}}}}}}},"/v2/posts/{id}":{"get":{"operationId":"posts_get","summary":"A single post, by its `id`.","tags":["posts"],"security":[{"apiKey":["read"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The `id` of a post.","schema":{"type":"string"}}],"responses":{"200":{"description":"Post","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Post"}}}},"304":{"description":"Not modified"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}},"delete":{"operationId":"posts_delete","summary":"Remove one of your own posts.","tags":["posts"],"security":[{"apiKey":["write"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The `id` of a post.","schema":{"type":"string"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Ok"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v2/posts/{id}/replies":{"get":{"operationId":"posts_replies","summary":"The replies to a post, without blocked accounts.","tags":["replies"],"security":[{"apiKey":["read"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The `id` of a post.","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Entries per page: 20 by default, at most 50.","schema":{"type":"integer","default":20,"minimum":1,"maximum":50}},{"name":"cursor","in":"query","required":false,"description":"The `next` of the previous answer. Without it, from the start.","schema":{"type":"string"}}],"responses":{"200":{"description":"A page of Reply","content":{"application/json":{"schema":{"type":"object","required":["items","next"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Reply"}},"next":{"type":["string","null"]}}}}}},"304":{"description":"Not modified"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"posts_reply","summary":"Reply to a post.","tags":["replies"],"security":[{"apiKey":["write"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The `id` of a post.","schema":{"type":"string"}}],"responses":{"200":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Created"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["text"],"properties":{"text":{"type":"string","description":"The text of the post, reply or message."},"parentId":{"type":"string","description":"The `id` of the reply this one answers. Without it, straight to the post."},"media":{"type":"array","items":{"type":"string"},"description":"IDs of images uploaded in the app, or of a GIF or video from the media library (since 2.14)."},"publishAt":{"type":"integer","description":"When the reply should go out, in milliseconds since 1970. Without it, it goes out right away."}}}}}}}},"/v2/profiles/{handle}":{"get":{"operationId":"profiles_get","summary":"A profile, by its short name.","tags":["profiles"],"security":[{"apiKey":["read"]}],"parameters":[{"name":"handle","in":"path","required":true,"description":"The short name of a profile, in any mix of capitals.","schema":{"type":"string"}}],"responses":{"200":{"description":"Profile","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Profile"}}}},"304":{"description":"Not modified"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v2/profiles/{handle}/posts":{"get":{"operationId":"profiles_posts","summary":"The public posts of one profile, newest first.","tags":["profiles"],"security":[{"apiKey":["read"]}],"parameters":[{"name":"handle","in":"path","required":true,"description":"The short name of a profile, in any mix of capitals.","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Entries per page: 20 by default, at most 50.","schema":{"type":"integer","default":20,"minimum":1,"maximum":50}},{"name":"cursor","in":"query","required":false,"description":"The `next` of the previous answer. Without it, from the start.","schema":{"type":"string"}}],"responses":{"200":{"description":"A page of Post","content":{"application/json":{"schema":{"type":"object","required":["items","next"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Post"}},"next":{"type":["string","null"]}}}}}},"304":{"description":"Not modified"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v2/communities":{"get":{"operationId":"communities_list","summary":"The open groups of this instance; with `mine=true` your account’s groups.","tags":["communities"],"security":[{"apiKey":["read"]}],"parameters":[{"name":"limit","in":"query","required":false,"description":"Entries per page: 20 by default, at most 50.","schema":{"type":"integer","default":20,"minimum":1,"maximum":50}},{"name":"mine","in":"query","required":false,"description":"`true` for your account’s groups, internal and hidden ones too, by name.","schema":{"type":"boolean"}}],"responses":{"200":{"description":"A page of Community","content":{"application/json":{"schema":{"type":"object","required":["items","next"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Community"}},"next":{"type":["string","null"]}}}}}},"304":{"description":"Not modified"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"communities_create","summary":"Found a group. Answers with its `id`; you are its founder.","tags":["groupAdmin"],"security":[{"apiKey":["groups"]}],"parameters":[],"responses":{"200":{"description":"Made","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Made"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["name"],"properties":{"name":{"type":"string","description":"The name, at most 60 characters."},"description":{"type":"string","description":"The description, at most 240 characters."},"handle":{"type":"string","description":"The handle for @# mentions and the link: 3 to 30 lowercase letters, digits or `_`."},"tags":{"type":"array","items":{"type":"string"},"description":"Up to 5 #tags, what the group is about."},"joinPolicy":{"type":"string","enum":["open","application","invite"],"description":"How people join: `open` freely, `application` by applying, `invite` by invitation only."},"visibility":{"type":"string","enum":["open","internal","hidden"],"description":"Who sees the group: `open` everyone, `internal` only members its content, `hidden` only members at all."}}}}}}}},"/v2/communities/{id}":{"get":{"operationId":"communities_get","summary":"A single group, by its `id`.","tags":["communities"],"security":[{"apiKey":["read"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The `id` of a group.","schema":{"type":"string"}}],"responses":{"200":{"description":"Community","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Community"}}}},"304":{"description":"Not modified"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}},"put":{"operationId":"communities_update","summary":"Change a group you lead. Whatever you leave out stays.","tags":["groupAdmin"],"security":[{"apiKey":["groups"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The `id` of a group.","schema":{"type":"string"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Ok"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"name":{"type":"string","description":"The name, at most 60 characters."},"description":{"type":"string","description":"The description, at most 240 characters."},"handle":{"type":"string","description":"The handle for @# mentions and the link: 3 to 30 lowercase letters, digits or `_`."},"tags":{"type":"array","items":{"type":"string"},"description":"Up to 5 #tags, what the group is about."},"joinPolicy":{"type":"string","enum":["open","application","invite"],"description":"How people join: `open` freely, `application` by applying, `invite` by invitation only."},"visibility":{"type":"string","enum":["open","internal","hidden"],"description":"Who sees the group: `open` everyone, `internal` only members its content, `hidden` only members at all."},"image":{"type":"string","description":"The `id` of an uploaded picture (`POST /me/pictures`) as the group picture. Empty removes it."},"banner":{"type":"string","description":"The `id` of an uploaded picture as the group’s banner. Empty removes it."}}}}}}}},"/v2/communities/{id}/posts":{"get":{"operationId":"communities_posts","summary":"The posts of a group’s feed channel, newest first.","tags":["communities"],"security":[{"apiKey":["read"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The `id` of a group.","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Entries per page: 20 by default, at most 50.","schema":{"type":"integer","default":20,"minimum":1,"maximum":50}},{"name":"cursor","in":"query","required":false,"description":"The `next` of the previous answer. Without it, from the start.","schema":{"type":"string"}}],"responses":{"200":{"description":"A page of Post","content":{"application/json":{"schema":{"type":"object","required":["items","next"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Post"}},"next":{"type":["string","null"]}}}}}},"304":{"description":"Not modified"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v2/tags":{"get":{"operationId":"tags_list","summary":"The tags that are trending right now.","tags":["discover"],"security":[{"apiKey":["read"]}],"parameters":[{"name":"limit","in":"query","required":false,"description":"Entries per page: 20 by default, at most 50.","schema":{"type":"integer","default":20,"minimum":1,"maximum":50}}],"responses":{"200":{"description":"A page of Tag","content":{"application/json":{"schema":{"type":"object","required":["items","next"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Tag"}},"next":{"type":["string","null"]}}}}}},"304":{"description":"Not modified"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v2/search":{"get":{"operationId":"search","summary":"A search over posts, names, short names and tags.","tags":["discover"],"security":[{"apiKey":["read"]}],"parameters":[{"name":"q","in":"query","required":true,"description":"The words being looked for.","schema":{"type":"string"}},{"name":"type","in":"query","required":false,"description":"Which kind of result. Without it, every kind.","schema":{"type":"string","enum":["all","posts","profiles","tags"]}},{"name":"limit","in":"query","required":false,"description":"Entries per page: 20 by default, at most 50.","schema":{"type":"integer","default":20,"minimum":1,"maximum":50}}],"responses":{"200":{"description":"SearchResult","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchResult"}}}},"304":{"description":"Not modified"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v2/emojis":{"get":{"operationId":"emojis_list","summary":"The instance’s own emojis, with the address of their pictures.","tags":["discover"],"security":[{"apiKey":["read"]}],"parameters":[],"responses":{"200":{"description":"A page of Emoji","content":{"application/json":{"schema":{"type":"object","required":["items","next"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Emoji"}},"next":{"type":["string","null"]}}}}}},"304":{"description":"Not modified"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v2/media":{"get":{"operationId":"media_search","summary":"Shared GIFs or videos, most used first.","tags":["media"],"security":[{"apiKey":["read"]}],"parameters":[{"name":"kind","in":"query","required":false,"description":"`gif` or `video`; `gif` when not given.","schema":{"type":"string","enum":["gif","video"]}},{"name":"q","in":"query","required":false,"description":"Words in the name or the keywords.","schema":{"type":"string"}},{"name":"anywhere","in":"query","required":false,"description":"`true`: only what may appear on other websites too.","schema":{"type":"boolean"}},{"name":"limit","in":"query","required":false,"description":"Entries per page: 20 by default, at most 50.","schema":{"type":"integer","default":20,"minimum":1,"maximum":50}},{"name":"cursor","in":"query","required":false,"description":"The `next` of the previous answer. Without it, from the start.","schema":{"type":"string"}}],"responses":{"200":{"description":"A page of MediaItem","content":{"application/json":{"schema":{"type":"object","required":["items","next"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/MediaItem"}},"next":{"type":["string","null"]}}}}}},"304":{"description":"Not modified"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v2/media/mine":{"get":{"operationId":"media_mine","summary":"Your own media library, newest first.","tags":["media"],"security":[{"apiKey":["media"]}],"parameters":[{"name":"kind","in":"query","required":false,"description":"`gif` or `video`; `gif` when not given.","schema":{"type":"string","enum":["gif","video"]}},{"name":"q","in":"query","required":false,"description":"Words in the name or the keywords.","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Entries per page: 20 by default, at most 50.","schema":{"type":"integer","default":20,"minimum":1,"maximum":50}},{"name":"cursor","in":"query","required":false,"description":"The `next` of the previous answer. Without it, from the start.","schema":{"type":"string"}}],"responses":{"200":{"description":"A page of MediaItem","content":{"application/json":{"schema":{"type":"object","required":["items","next"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/MediaItem"}},"next":{"type":["string","null"]}}}}}},"304":{"description":"Not modified"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v2/media/{id}":{"get":{"operationId":"media_get","summary":"A GIF or video, yours or a shared one.","tags":["media"],"security":[{"apiKey":["read"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The ID of the GIF or video.","schema":{"type":"string"}}],"responses":{"200":{"description":"MediaItem","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MediaItem"}}}},"304":{"description":"Not modified"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"media_update","summary":"Change one of your GIFs or videos.","tags":["media"],"security":[{"apiKey":["media"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The ID of the GIF or video.","schema":{"type":"string"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Ok"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"name":{"type":"string","description":"The name it is found by: 2 to 40 characters."},"keywords":{"type":"string","description":"Keywords for the search, separated by spaces."},"shared":{"type":"boolean","description":"`true`: shared with everyone on tellmelo."},"anywhere":{"type":"boolean","description":"`true`: shared and allowed on other websites too. Only together with `shared`."}}}}}}},"delete":{"operationId":"media_delete","summary":"Remove one of your GIFs or videos.","tags":["media"],"security":[{"apiKey":["media"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The ID of the GIF or video.","schema":{"type":"string"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Ok"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v2/media/uploads":{"post":{"operationId":"media_upload","summary":"Start an upload.","tags":["media"],"security":[{"apiKey":["media"]}],"parameters":[],"responses":{"200":{"description":"UploadStarted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadStarted"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["kind","size","name"],"properties":{"kind":{"type":"string","enum":["gif","video"],"description":"`gif` or `video`; `gif` when not given."},"size":{"type":"integer","description":"The size of the whole file in bytes."},"name":{"type":"string","description":"The name it is found by: 2 to 40 characters."},"keywords":{"type":"string","description":"Keywords for the search, separated by spaces."},"shared":{"type":"boolean","description":"`true`: shared with everyone on tellmelo."},"anywhere":{"type":"boolean","description":"`true`: shared and allowed on other websites too. Only together with `shared`."}}}}}}}},"/v2/media/uploads/{upload}":{"put":{"operationId":"media_upload_piece","summary":"Send a piece of the file.","tags":["media"],"security":[{"apiKey":["media"]}],"parameters":[{"name":"upload","in":"path","required":true,"description":"The `upload` from the start.","schema":{"type":"string"}},{"name":"offset","in":"query","required":true,"description":"Where the piece starts in the file, in bytes; `0` for the first.","schema":{"type":"integer"}}],"responses":{"200":{"description":"UploadPiece","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadPiece"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}},"requestBody":{"required":true,"content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}}}},"/v2/me":{"get":{"operationId":"me","summary":"Your own profile, with the `id` the other paths expect.","tags":["account"],"security":[{"apiKey":["read"]}],"parameters":[],"responses":{"200":{"description":"Profile","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Profile"}}}},"304":{"description":"Not modified"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v2/feed":{"get":{"operationId":"feed","summary":"Your own feed, the way the application puts it together.","tags":["account"],"security":[{"apiKey":["read"]}],"parameters":[{"name":"tab","in":"query","required":false,"description":"Which feed: `for-you`, `following`, `latest` or `bookmarks`. `latest` by default.","schema":{"type":"string","enum":["for-you","following","latest","bookmarks"]}},{"name":"tag","in":"query","required":false,"description":"Only posts about this tag: written with it or recognised in them by the server. Without it, no filter.","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Entries per page: 20 by default, at most 50.","schema":{"type":"integer","default":20,"minimum":1,"maximum":50}},{"name":"cursor","in":"query","required":false,"description":"The `next` of the previous answer. Without it, from the start.","schema":{"type":"string"}}],"responses":{"200":{"description":"A page of Post","content":{"application/json":{"schema":{"type":"object","required":["items","next"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Post"}},"next":{"type":["string","null"]}}}}}},"304":{"description":"Not modified"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v2/notifications":{"get":{"operationId":"notifications","summary":"Your notifications, newest first.","tags":["notifications"],"security":[{"apiKey":["read"]}],"parameters":[{"name":"limit","in":"query","required":false,"description":"Entries per page: 20 by default, at most 50.","schema":{"type":"integer","default":20,"minimum":1,"maximum":50}},{"name":"cursor","in":"query","required":false,"description":"The `next` of the previous answer. Without it, from the start.","schema":{"type":"string"}}],"responses":{"200":{"description":"A page of Notification","content":{"application/json":{"schema":{"type":"object","required":["items","next"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Notification"}},"next":{"type":["string","null"]}}}}}},"304":{"description":"Not modified"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v2/conversations":{"get":{"operationId":"conversations","summary":"Your inbox: one row per conversation, the most recent first.","tags":["messages"],"security":[{"apiKey":["read"]}],"parameters":[{"name":"limit","in":"query","required":false,"description":"Entries per page: 20 by default, at most 50.","schema":{"type":"integer","default":20,"minimum":1,"maximum":50}},{"name":"cursor","in":"query","required":false,"description":"The `next` of the previous answer. Without it, from the start.","schema":{"type":"string"}}],"responses":{"200":{"description":"A page of Conversation","content":{"application/json":{"schema":{"type":"object","required":["items","next"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Conversation"}},"next":{"type":["string","null"]}}}}}},"304":{"description":"Not modified"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v2/conversations/{with}/messages":{"get":{"operationId":"messages_list","summary":"The messages of one conversation, newest first.","tags":["messages"],"security":[{"apiKey":["read"]}],"parameters":[{"name":"with","in":"path","required":true,"description":"The `id` of the other account. A conversation has no `id` of its own.","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Entries per page: 20 by default, at most 50.","schema":{"type":"integer","default":20,"minimum":1,"maximum":50}},{"name":"cursor","in":"query","required":false,"description":"The `next` of the previous answer. Without it, from the start.","schema":{"type":"string"}}],"responses":{"200":{"description":"A page of Message","content":{"application/json":{"schema":{"type":"object","required":["items","next"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Message"}},"next":{"type":["string","null"]}}}}}},"304":{"description":"Not modified"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"messages_send","summary":"Send a message in a conversation.","tags":["messages"],"security":[{"apiKey":["write"]}],"parameters":[{"name":"with","in":"path","required":true,"description":"The `id` of the other account. A conversation has no `id` of its own.","schema":{"type":"string"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Ok"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["text"],"properties":{"text":{"type":"string","description":"The text of the post, reply or message."},"replyTo":{"type":"string","description":"The `id` of an earlier message in this conversation that this one answers. Since 2.2."}}}}}}}},"/v2/posts/{id}/vote":{"post":{"operationId":"posts_vote","summary":"Take part in a poll.","tags":["polls"],"security":[{"apiKey":["write"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The `id` of a post.","schema":{"type":"string"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Ok"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["option"],"properties":{"option":{"type":"integer","description":"Which option, counted from 0. For multiple choice, call once per option."},"retract":{"type":"boolean","description":"`true` withdraws the vote."}}}}}}}},"/v2/relations":{"post":{"operationId":"relations_set","summary":"Like, save, repost, follow, join, block, mute, depending on `kind`.","tags":["relations"],"security":[{"apiKey":["write"]}],"parameters":[],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Ok"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["kind","target"],"properties":{"kind":{"type":"string","enum":["like","save","repost","follow","join","block","mute"],"description":"Which relation: `like`, `save`, `repost`, `follow`, `join`, `block` or `mute` (since 2.2)."},"target":{"type":"string","description":"The `id` of the post, profile or group, depending on `kind`."},"active":{"type":"boolean","description":"`true` sets the relation, `false` removes it."}}}}}}}},"/v2/conversations/{with}/read":{"post":{"operationId":"messages_read","summary":"Mark every message of a conversation as read.","tags":["messages"],"security":[{"apiKey":["write"]}],"parameters":[{"name":"with","in":"path","required":true,"description":"The `id` of the other account. A conversation has no `id` of its own.","schema":{"type":"string"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Ok"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v2/notifications/read":{"post":{"operationId":"notifications_read","summary":"Mark your notifications as read.","tags":["notifications"],"security":[{"apiKey":["write"]}],"parameters":[],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Ok"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v2/me/scheduled":{"get":{"operationId":"posts_scheduled","summary":"Your posts that aren’t out yet, and what they’re waiting for.","tags":["posts"],"security":[{"apiKey":["read"]}],"parameters":[],"responses":{"200":{"description":"A page of ScheduledPost","content":{"application/json":{"schema":{"type":"object","required":["items","next"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ScheduledPost"}},"next":{"type":["string","null"]}}}}}},"304":{"description":"Not modified"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v2/posts/{id}/schedule":{"post":{"operationId":"posts_schedule","summary":"Change when a scheduled post goes out, or when a post deletes itself.","tags":["posts"],"security":[{"apiKey":["write"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The `id` of a post.","schema":{"type":"string"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Ok"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"publishAt":{"type":"integer","description":"When the scheduled post goes out, in milliseconds since 1970."},"deleteAt":{"type":"integer","description":"When the post deletes itself, in milliseconds since 1970."}}}}}}}},"/v2/posts/{id}/edit":{"post":{"operationId":"posts_edit","summary":"Change the text of one of your posts.","tags":["posts"],"security":[{"apiKey":["write"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The `id` of a post.","schema":{"type":"string"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Ok"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["text"],"properties":{"text":{"type":"string","description":"The text of the post, reply or message."}}}}}}}},"/v2/replies/{id}/edit":{"post":{"operationId":"replies_edit","summary":"Change the text of one of your replies.","tags":["replies"],"security":[{"apiKey":["write"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The id of the reply.","schema":{"type":"string"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Ok"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["text"],"properties":{"text":{"type":"string","description":"The text of the post, reply or message."}}}}}}}},"/v2/replies/{id}":{"delete":{"operationId":"replies_delete","summary":"Remove one of your replies.","tags":["replies"],"security":[{"apiKey":["write"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The id of the reply.","schema":{"type":"string"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Ok"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v2/replies/{id}/like":{"post":{"operationId":"replies_like","summary":"Upvote a reply (a like is an upvote since replies are voted up and down), or take the upvote back; a downvote stays.","tags":["replies"],"security":[{"apiKey":["write"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The id of the reply.","schema":{"type":"string"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Ok"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}},"deprecated":true,"description":"Deprecated since 2.19: use `POST /replies/{id}/vote`. This route stays for now.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["active"],"properties":{"active":{"type":"boolean","description":"`true` sets the relation, `false` removes it."}}}}}}}},"/v2/conversations/{with}/messages/{id}":{"delete":{"operationId":"messages_delete","summary":"Delete one of your messages.","tags":["messages"],"security":[{"apiKey":["write"]}],"parameters":[{"name":"with","in":"path","required":true,"description":"The `id` of the other account. A conversation has no `id` of its own.","schema":{"type":"string"}},{"name":"id","in":"path","required":true,"description":"The id of the message.","schema":{"type":"string"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Ok"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v2/partner/quota":{"get":{"operationId":"gifts_quota","summary":"What’s left in your quota to give away.","tags":["gifts"],"security":[{"apiKey":["read"]}],"parameters":[],"responses":{"200":{"description":"Quota","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Quota"}}}},"304":{"description":"Not modified"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v2/partner/gifts":{"get":{"operationId":"gifts_given","summary":"What you’ve given from your quota, to whom and when – newest first.","tags":["gifts"],"security":[{"apiKey":["read"]}],"parameters":[{"name":"limit","in":"query","required":false,"description":"Entries per page: 20 by default, at most 50.","schema":{"type":"integer","default":20,"minimum":1,"maximum":50}},{"name":"cursor","in":"query","required":false,"description":"The `next` of the previous answer. Without it, from the start.","schema":{"type":"string"}}],"responses":{"200":{"description":"A page of QuotaGift","content":{"application/json":{"schema":{"type":"object","required":["items","next"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/QuotaGift"}},"next":{"type":["string","null"]}}}}}},"304":{"description":"Not modified"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"gifts_give","summary":"Give plan months or sparks from your quota to a member.","tags":["gifts"],"security":[{"apiKey":["gifts"]}],"parameters":[],"responses":{"200":{"description":"Quota","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Quota"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["handle","item"],"properties":{"handle":{"type":"string","description":"The @name of the member you’re giving to, with or without the @."},"item":{"type":"string","enum":["plan","sparks","shop"],"description":"`plan` for plan months, `sparks` for sparks, `shop` for a look from your stock (since 2.13)."},"quantity":{"type":"integer","description":"How much: up to 12 months or 35 sparks per gift."},"itemId":{"type":"string","description":"For `shop`: the look’s ID as `looks` in the quota names it. One piece per gift; `quantity` does not apply."}}}}}}}},"/v2/gift-drops":{"get":{"operationId":"drops_list","summary":"Your gifts under posts: how many places are still open and how they were paid for.","tags":["gifts"],"security":[{"apiKey":["read"]}],"parameters":[{"name":"limit","in":"query","required":false,"description":"Entries per page: 20 by default, at most 50.","schema":{"type":"integer","default":20,"minimum":1,"maximum":50}},{"name":"cursor","in":"query","required":false,"description":"The `next` of the previous answer. Without it, from the start.","schema":{"type":"string"}}],"responses":{"200":{"description":"A page of OwnGiftDrop","content":{"application/json":{"schema":{"type":"object","required":["items","next"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/OwnGiftDrop"}},"next":{"type":["string","null"]}}}}}},"304":{"description":"Not modified"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"drops_create","summary":"Publish a post with gifts for others to claim.","tags":["gifts"],"security":[{"apiKey":["gifts"]}],"parameters":[],"responses":{"200":{"description":"DropCreated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DropCreated"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["item","quantity","places"],"properties":{"text":{"type":"string","description":"The text of the post, reply or message."},"community":{"type":"string","description":"The `id` of the group whose feed channel the post goes to; it must be on, and you need the permission for it. Without it the post stands outside any group."},"item":{"type":"string","enum":["plan","sparks"],"description":"`plan` for plan months, `sparks` for sparks."},"quantity":{"type":"integer","description":"What each place holds: up to 12 months or 35 sparks."},"places":{"type":"integer","description":"How many people, up to 10,000."},"audience":{"type":"string","enum":["all","followers","group"],"description":"Who can claim: `all` everyone, `followers` only your followers, `group` only members of the group (only together with `community`)."},"newAccounts":{"type":"boolean","description":"`true` lets accounts younger than 7 days claim too. Leave it out to keep them out."}}}}}}}},"/v2/replies/{id}/vote":{"post":{"operationId":"replies_vote","summary":"Vote a reply up or down, or take your vote back. Answers with your vote and the score after it.","tags":["replies"],"security":[{"apiKey":["write"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The id of the reply.","schema":{"type":"string"}}],"responses":{"200":{"description":"ReplyVote","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReplyVote"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["vote"],"properties":{"vote":{"type":"string","enum":["up","down","none"],"description":"`up` votes up, `down` votes down, `none` takes your vote back."}}}}}}}},"/v2/replies/{id}/pick":{"post":{"operationId":"replies_pick","summary":"Highlight a reply under your own post as the best one, or take the highlight back.","tags":["replies"],"security":[{"apiKey":["write"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The id of the reply.","schema":{"type":"string"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Ok"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["active"],"properties":{"active":{"type":"boolean","description":"`true` highlights the reply, `false` takes the highlight back."}}}}}}}},"/v2/posts/{id}/replies/waiting":{"get":{"operationId":"replies_waiting","summary":"The replies waiting for approval under a post: all of them under your own post, otherwise only your own.","tags":["replies"],"security":[{"apiKey":["read"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The `id` of a post.","schema":{"type":"string"}}],"responses":{"200":{"description":"A page of Reply","content":{"application/json":{"schema":{"type":"object","required":["items","next"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Reply"}},"next":{"type":["string","null"]}}}}}},"304":{"description":"Not modified"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v2/replies/{id}/decide":{"post":{"operationId":"replies_decide","summary":"Approve or decline a waiting reply under your own post. A declined reply is deleted.","tags":["replies"],"security":[{"apiKey":["write"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The id of the reply.","schema":{"type":"string"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Ok"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["approve"],"properties":{"approve":{"type":"boolean","description":"`true` approves the reply, `false` declines it."}}}}}}}},"/v2/posts/{id}/replies/planned":{"get":{"operationId":"replies_planned","summary":"Your own replies planned for later under a post.","tags":["replies"],"security":[{"apiKey":["read"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The `id` of a post.","schema":{"type":"string"}}],"responses":{"200":{"description":"A page of PlannedReply","content":{"application/json":{"schema":{"type":"object","required":["items","next"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/PlannedReply"}},"next":{"type":["string","null"]}}}}}},"304":{"description":"Not modified"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v2/me/planned-replies/{id}":{"put":{"operationId":"replies_planned_update","summary":"Change the text or time of a planned reply. A failed one waits again afterwards.","tags":["replies"],"security":[{"apiKey":["write"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The `id` of the planned reply.","schema":{"type":"string"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Ok"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"text":{"type":"string","description":"The text of the post, reply or message."},"publishAt":{"type":"integer","description":"When the reply should go out, in milliseconds since 1970. Without it, it goes out right away."}}}}}}},"delete":{"operationId":"replies_planned_delete","summary":"Delete a planned reply.","tags":["replies"],"security":[{"apiKey":["write"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The `id` of the planned reply.","schema":{"type":"string"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Ok"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v2/me/planned-replies/{id}/send":{"post":{"operationId":"replies_planned_send","summary":"Send a planned reply right away.","tags":["replies"],"security":[{"apiKey":["write"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The `id` of the planned reply.","schema":{"type":"string"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Ok"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v2/posts/{id}/reply-settings":{"get":{"operationId":"posts_replySettings","summary":"Who may reply to your own post, whether replies wait for approval, and slow mode.","tags":["posts"],"security":[{"apiKey":["read"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The `id` of a post.","schema":{"type":"string"}}],"responses":{"200":{"description":"ReplySettings","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReplySettings"}}}},"304":{"description":"Not modified"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}},"put":{"operationId":"posts_replySettings_set","summary":"Change the reply settings of your own post. Whatever you leave out stays.","tags":["posts"],"security":[{"apiKey":["write"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The `id` of a post.","schema":{"type":"string"}}],"responses":{"200":{"description":"ReplySettings","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReplySettings"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"audience":{"type":"string","enum":["all","following","mentioned","nobody"],"description":"Who may reply: everyone, accounts you follow, those mentioned, or nobody."},"approval":{"type":"boolean","description":"Whether replies only appear once you approve them."},"slow":{"type":"string","enum":["auto","on","off"],"description":"Slow mode: `auto` turns it on by itself when many replies come in, `on` always, `off` never."}}}}}}}},"/v2/posts/{id}/coauthor":{"post":{"operationId":"posts_coauthor_answer","summary":"Accept or decline an invitation to co-author a post.","tags":["posts"],"security":[{"apiKey":["write"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The `id` of a post.","schema":{"type":"string"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Ok"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["accept"],"properties":{"accept":{"type":"boolean","description":"`true` accepts the invitation, `false` declines it."}}}}}}},"delete":{"operationId":"posts_coauthor_end","summary":"Step back as co-author, or as the author take the co-author off the post.","tags":["posts"],"security":[{"apiKey":["write"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The `id` of a post.","schema":{"type":"string"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Ok"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v2/posts/{id}/pin":{"post":{"operationId":"posts_pin","summary":"Pin your own post to the top of your profile, or unpin it.","tags":["posts"],"security":[{"apiKey":["write"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The `id` of a post.","schema":{"type":"string"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Ok"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["active"],"properties":{"active":{"type":"boolean","description":"`true` pins the post, `false` unpins it."}}}}}}}},"/v2/conversations/{with}/planned":{"post":{"operationId":"messages_later","summary":"Plan a message for later. Answers with the `id` of the planned message.","tags":["messages"],"security":[{"apiKey":["write"]}],"parameters":[{"name":"with","in":"path","required":true,"description":"The `id` of the other account. A conversation has no `id` of its own.","schema":{"type":"string"}}],"responses":{"200":{"description":"Made","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Made"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["text","sendAt"],"properties":{"text":{"type":"string","description":"The text of the post, reply or message."},"sendAt":{"type":"integer","description":"When the message is sent, in milliseconds since 1970."}}}}}}}},"/v2/me/planned-messages":{"get":{"operationId":"messages_planned","summary":"Your own messages still to be sent, in order of their time.","tags":["messages"],"security":[{"apiKey":["read"]}],"parameters":[{"name":"with","in":"query","required":false,"description":"Only the messages to this account (its `id`).","schema":{"type":"string"}}],"responses":{"200":{"description":"A page of PlannedMessage","content":{"application/json":{"schema":{"type":"object","required":["items","next"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/PlannedMessage"}},"next":{"type":["string","null"]}}}}}},"304":{"description":"Not modified"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v2/me/planned-messages/{id}/send":{"post":{"operationId":"messages_planned_send","summary":"Send a held or failed planned message now.","tags":["messages"],"security":[{"apiKey":["write"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The `id` of the planned message.","schema":{"type":"string"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Ok"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v2/me/planned-messages/{id}":{"delete":{"operationId":"messages_planned_delete","summary":"Delete a planned message before it is sent.","tags":["messages"],"security":[{"apiKey":["write"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The `id` of the planned message.","schema":{"type":"string"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Ok"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v2/profiles/{handle}/followers":{"get":{"operationId":"profiles_followers","summary":"Who follows a profile, newest first.","tags":["relations"],"security":[{"apiKey":["read"]}],"parameters":[{"name":"handle","in":"path","required":true,"description":"The short name of a profile, in any mix of capitals.","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Entries per page: 20 by default, at most 50.","schema":{"type":"integer","default":20,"minimum":1,"maximum":50}},{"name":"cursor","in":"query","required":false,"description":"The `next` of the previous answer. Without it, from the start.","schema":{"type":"string"}}],"responses":{"200":{"description":"A page of ProfileBrief","content":{"application/json":{"schema":{"type":"object","required":["items","next"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ProfileBrief"}},"next":{"type":["string","null"]}}}}}},"304":{"description":"Not modified"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v2/profiles/{handle}/following":{"get":{"operationId":"profiles_following","summary":"Whom a profile follows, newest first.","tags":["relations"],"security":[{"apiKey":["read"]}],"parameters":[{"name":"handle","in":"path","required":true,"description":"The short name of a profile, in any mix of capitals.","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Entries per page: 20 by default, at most 50.","schema":{"type":"integer","default":20,"minimum":1,"maximum":50}},{"name":"cursor","in":"query","required":false,"description":"The `next` of the previous answer. Without it, from the start.","schema":{"type":"string"}}],"responses":{"200":{"description":"A page of ProfileBrief","content":{"application/json":{"schema":{"type":"object","required":["items","next"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ProfileBrief"}},"next":{"type":["string","null"]}}}}}},"304":{"description":"Not modified"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v2/me/relations":{"get":{"operationId":"relations_mine","summary":"Whom you blocked, muted, or blocked from messaging only, newest first.","tags":["relations"],"security":[{"apiKey":["read"]}],"parameters":[{"name":"kind","in":"query","required":true,"description":"`block` blocked, `mute` muted, `dm_block` blocked from messaging only.","schema":{"type":"string","enum":["block","mute","dm_block"]}},{"name":"limit","in":"query","required":false,"description":"Entries per page: 20 by default, at most 50.","schema":{"type":"integer","default":20,"minimum":1,"maximum":50}},{"name":"cursor","in":"query","required":false,"description":"The `next` of the previous answer. Without it, from the start.","schema":{"type":"string"}}],"responses":{"200":{"description":"A page of ProfileBrief","content":{"application/json":{"schema":{"type":"object","required":["items","next"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ProfileBrief"}},"next":{"type":["string","null"]}}}}}},"304":{"description":"Not modified"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v2/me/collections":{"get":{"operationId":"collections_list","summary":"Your collections with the number of their posts.","tags":["collections"],"security":[{"apiKey":["read"]}],"parameters":[],"responses":{"200":{"description":"A page of Collection","content":{"application/json":{"schema":{"type":"object","required":["items","next"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Collection"}},"next":{"type":["string","null"]}}}}}},"304":{"description":"Not modified"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"collections_create","summary":"Create a collection. Answers with its `id`.","tags":["collections"],"security":[{"apiKey":["write"]}],"parameters":[],"responses":{"200":{"description":"Made","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Made"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["name"],"properties":{"name":{"type":"string","description":"The name, at most 40 characters. Unique per account, ignoring case."}}}}}}}},"/v2/me/collections/{id}":{"put":{"operationId":"collections_rename","summary":"Rename a collection.","tags":["collections"],"security":[{"apiKey":["write"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The `id` of the collection.","schema":{"type":"string"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Ok"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["name"],"properties":{"name":{"type":"string","description":"The name, at most 40 characters. Unique per account, ignoring case."}}}}}}},"delete":{"operationId":"collections_delete","summary":"Delete a collection.","tags":["collections"],"security":[{"apiKey":["write"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The `id` of the collection.","schema":{"type":"string"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Ok"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v2/me/collections/{id}/posts":{"get":{"operationId":"collections_posts","summary":"The posts of a collection, as in the saved tab.","tags":["collections"],"security":[{"apiKey":["read"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The `id` of the collection.","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Entries per page: 20 by default, at most 50.","schema":{"type":"integer","default":20,"minimum":1,"maximum":50}},{"name":"cursor","in":"query","required":false,"description":"The `next` of the previous answer. Without it, from the start.","schema":{"type":"string"}}],"responses":{"200":{"description":"A page of Post","content":{"application/json":{"schema":{"type":"object","required":["items","next"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Post"}},"next":{"type":["string","null"]}}}}}},"304":{"description":"Not modified"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"collections_put","summary":"Put a post into a collection or take it out.","tags":["collections"],"security":[{"apiKey":["write"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The `id` of the collection.","schema":{"type":"string"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Ok"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["post"],"properties":{"post":{"type":"string","description":"The `id` of the post."},"inside":{"type":"boolean","description":"`true` puts the post in (default), `false` takes it out."}}}}}}}},"/v2/profiles/{handle}/events":{"get":{"operationId":"profiles_events","summary":"The upcoming events of a profile, soonest first.","tags":["profiles"],"security":[{"apiKey":["read"]}],"parameters":[{"name":"handle","in":"path","required":true,"description":"The short name of a profile, in any mix of capitals.","schema":{"type":"string"}}],"responses":{"200":{"description":"A page of Event","content":{"application/json":{"schema":{"type":"object","required":["items","next"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Event"}},"next":{"type":["string","null"]}}}}}},"304":{"description":"Not modified"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v2/me/events":{"post":{"operationId":"events_create","summary":"Create an event. Answers with its `id`.","tags":["profiles"],"security":[{"apiKey":["write"]}],"parameters":[],"responses":{"200":{"description":"Made","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Made"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["title","startsAt"],"properties":{"title":{"type":"string","description":"The title."},"startsAt":{"type":"integer","description":"Start, in milliseconds since 1970."},"endsAt":{"type":"integer","description":"End, in milliseconds since 1970. Optional."},"place":{"type":"string","description":"Where it takes place."},"description":{"type":"string","description":"A description."},"signups":{"type":"boolean","description":"Whether people can sign up. Needs a plan with sign-ups."},"capacity":{"type":"integer","description":"How many can sign up at most. Without it, no limit."}}}}}}}},"/v2/me/events/{id}":{"put":{"operationId":"events_update","summary":"Change one of your events. All fields are set anew.","tags":["profiles"],"security":[{"apiKey":["write"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The `id` of the event.","schema":{"type":"string"}}],"responses":{"200":{"description":"Made","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Made"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["title","startsAt"],"properties":{"title":{"type":"string","description":"The title."},"startsAt":{"type":"integer","description":"Start, in milliseconds since 1970."},"endsAt":{"type":"integer","description":"End, in milliseconds since 1970. Optional."},"place":{"type":"string","description":"Where it takes place."},"description":{"type":"string","description":"A description."},"signups":{"type":"boolean","description":"Whether people can sign up. Needs a plan with sign-ups."},"capacity":{"type":"integer","description":"How many can sign up at most. Without it, no limit."}}}}}}},"delete":{"operationId":"events_delete","summary":"Delete one of your events.","tags":["profiles"],"security":[{"apiKey":["write"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The `id` of the event.","schema":{"type":"string"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Ok"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v2/me/events/{id}/signups":{"get":{"operationId":"events_signups","summary":"Who signed up for one of your events.","tags":["profiles"],"security":[{"apiKey":["read"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The `id` of the event.","schema":{"type":"string"}}],"responses":{"200":{"description":"A page of EventSignup","content":{"application/json":{"schema":{"type":"object","required":["items","next"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/EventSignup"}},"next":{"type":["string","null"]}}}}}},"304":{"description":"Not modified"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v2/events/{id}/signup":{"post":{"operationId":"events_signup","summary":"Sign up for an event or sign off.","tags":["profiles"],"security":[{"apiKey":["write"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The `id` of the event.","schema":{"type":"string"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Ok"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["going"],"properties":{"going":{"type":"boolean","description":"`true` signs you up, `false` signs you off."}}}}}}}},"/v2/me/pictures":{"post":{"operationId":"pictures_upload","summary":"Upload a picture, as its bytes. Answers with `id` and `url`; you then use the `id` as profile picture, banner or in a post.","tags":["account"],"security":[{"apiKey":["write"]}],"parameters":[],"responses":{"200":{"description":"Picture","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Picture"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}},"requestBody":{"required":true,"content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}}}},"/v2/me/profile":{"put":{"operationId":"profile_update","summary":"Change your profile: name, about, profile picture, banner and profile colour. Whatever you leave out stays.","tags":["account"],"security":[{"apiKey":["profile"]}],"parameters":[],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Ok"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"name":{"type":"string","description":"The display name, at most 60 characters."},"about":{"type":"string","description":"The about text."},"avatar":{"type":"string","description":"The `id` of an uploaded picture as profile picture. Empty removes it."},"banner":{"type":"string","description":"The `id` of an uploaded picture as banner. Empty removes it."},"color":{"type":"string","enum":["indigo","violet","rose","coral","amber","lime","green","teal","sky","slate","sand","night"],"description":"The profile colour, with a plan. `null` removes it."}}}}}}}},"/v2/me/emojis":{"get":{"operationId":"emojis_mine","summary":"Your own emojis.","tags":["account"],"security":[{"apiKey":["read"]}],"parameters":[],"responses":{"200":{"description":"A page of OwnEmoji","content":{"application/json":{"schema":{"type":"object","required":["items","next"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/OwnEmoji"}},"next":{"type":["string","null"]}}}}}},"304":{"description":"Not modified"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"emojis_add","summary":"Create an own emoji. Answers with all your emojis.","tags":["account"],"security":[{"apiKey":["profile"]}],"parameters":[],"responses":{"200":{"description":"A page of OwnEmoji","content":{"application/json":{"schema":{"type":"object","required":["items","next"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/OwnEmoji"}},"next":{"type":["string","null"]}}}}}},"304":{"description":"Not modified"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["name","picture"],"properties":{"name":{"type":"string","description":"The name you write the emoji with, as `:name:`."},"picture":{"type":"string","description":"The `id` from `POST /me/emojis/pictures`."}}}}}}}},"/v2/me/emojis/pictures":{"post":{"operationId":"emojis_picture","summary":"Upload the picture for an own emoji, as its bytes.","tags":["account"],"security":[{"apiKey":["profile"]}],"parameters":[],"responses":{"200":{"description":"EmojiPicture","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmojiPicture"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}},"requestBody":{"required":true,"content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}}}},"/v2/me/emojis/{name}":{"delete":{"operationId":"emojis_remove","summary":"Remove an own emoji. Answers with the rest.","tags":["account"],"security":[{"apiKey":["profile"]}],"parameters":[{"name":"name","in":"path","required":true,"description":"The name of the emoji, without colons.","schema":{"type":"string"}}],"responses":{"200":{"description":"A page of OwnEmoji","content":{"application/json":{"schema":{"type":"object","required":["items","next"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/OwnEmoji"}},"next":{"type":["string","null"]}}}}}},"304":{"description":"Not modified"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v2/me/emojis/sharing":{"put":{"operationId":"emojis_share","summary":"Set whether your followers may use your emojis in their own texts.","tags":["account"],"security":[{"apiKey":["profile"]}],"parameters":[],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Ok"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["shared"],"properties":{"shared":{"type":"boolean","description":"`true` shares your emojis with your followers, `false` doesn’t."}}}}}}}},"/v2/me/webhooks":{"get":{"operationId":"webhooks_list","summary":"Your webhooks with their state.","tags":["account"],"security":[{"apiKey":["webhooks"]}],"parameters":[],"responses":{"200":{"description":"A page of Webhook","content":{"application/json":{"schema":{"type":"object","required":["items","next"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Webhook"}},"next":{"type":["string","null"]}}}}}},"304":{"description":"Not modified"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"webhooks_add","summary":"Create a webhook. Answers with `id` and the secret for the signatures, this once only.","tags":["account"],"security":[{"apiKey":["webhooks"]}],"parameters":[],"responses":{"200":{"description":"WebhookCreated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookCreated"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["url","kinds"],"properties":{"url":{"type":"string","description":"An HTTPS address outside local networks, without credentials."},"kinds":{"type":"array","items":{"type":"string"},"enum":["reply","mention","group_mention","follow","like","repost","message","quota_changed","quota_gift","drop_claimed","drop_empty"],"description":"What the webhook is told about. Which kinds are open to you depends on your plan and partnership."}}}}}}}},"/v2/me/webhooks/{id}":{"delete":{"operationId":"webhooks_remove","summary":"Delete a webhook.","tags":["account"],"security":[{"apiKey":["webhooks"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The `id` of the webhook.","schema":{"type":"string"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Ok"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v2/me/webhooks/{id}/test":{"post":{"operationId":"webhooks_test","summary":"Send a test to a webhook.","tags":["account"],"security":[{"apiKey":["webhooks"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The `id` of the webhook.","schema":{"type":"string"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Ok"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v2/communities/{id}/channels":{"get":{"operationId":"communities_channels","summary":"The channels of a group you can see, in their order.","tags":["channels"],"security":[{"apiKey":["read"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The `id` of a group.","schema":{"type":"string"}}],"responses":{"200":{"description":"A page of Channel","content":{"application/json":{"schema":{"type":"object","required":["items","next"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Channel"}},"next":{"type":["string","null"]}}}}}},"304":{"description":"Not modified"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"channels_create","summary":"Create a chat channel.","tags":["groupAdmin"],"security":[{"apiKey":["groups"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The `id` of a group.","schema":{"type":"string"}}],"responses":{"200":{"description":"Made","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Made"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"name":{"type":"string","description":"The name, without `#`; empty for the name the app gives in each language."},"topic":{"type":"string","description":"The topic shown above the channel."},"category":{"type":"string","description":"The `id` of the category the channel goes into; empty for none."},"emoji":{"type":"string","description":"An emoji as the symbol."},"icon":{"type":"string","enum":["home","hash","megaphone","volume","message","help","info","bell","calendar","book","bookmark","pin","shield","star","heart","sparkles","flame","zap","trophy","gift","rocket","lightbulb","code","wrench","briefcase","graduation","palette","camera","film","music","gamepad","dumbbell","leaf","flower","paw","sun","moon","cloud","globe","map","coffee","pizza","smile"],"description":"A symbol of the app’s set, by its name."},"image":{"type":"string","description":"The id of a picture you uploaded with `/media/emoji`."},"color":{"type":"string","enum":["brand","indigo","violet","rose","amber","green","teal","red"],"description":"The tile’s colour."},"shape":{"type":"string","enum":["circle","square","triangle","diamond","hexagon","octagon","shield","star"],"description":"The tile’s shape; a circle without one."}}}}}}}},"/v2/channels/{id}/messages":{"get":{"operationId":"channels_messages","summary":"The messages of a chat channel, newest first.","tags":["channels"],"security":[{"apiKey":["read"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The `id` of a channel.","schema":{"type":"string"}},{"name":"cursor","in":"query","required":false,"description":"The `next` of the previous answer. Without it, from the start.","schema":{"type":"string"}},{"name":"thread","in":"query","required":false,"description":"The message whose thread is read: it and its replies instead of the chat.","schema":{"type":"string"}}],"responses":{"200":{"description":"A page of ChannelMessage","content":{"application/json":{"schema":{"type":"object","required":["items","next"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ChannelMessage"}},"next":{"type":["string","null"]}}}}}},"304":{"description":"Not modified"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"channels_send","summary":"Write a message in a chat channel.","tags":["channels"],"security":[{"apiKey":["write"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The `id` of a channel.","schema":{"type":"string"}}],"responses":{"200":{"description":"Made","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Made"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"text":{"type":"string","description":"The text of the post, reply or message."},"replyTo":{"type":"string","description":"The `id` of the message in the same channel you are answering."},"media":{"type":"array","items":{"type":"string"},"description":"IDs of images uploaded in the app, or of a GIF or video from the media library (since 2.14)."},"thread":{"type":"string","description":"The chat message whose thread is replied in; without it the message goes into the chat."},"card":{"type":"object","description":"A card `{ title, text, color, fields: [{ name, value }] }`, at most 10 fields."},"buttons":{"type":"array","items":{"type":"object"},"description":"Up to 5 buttons, each `{ id, label, style }` with `style` `primary`, `secondary` or `danger`. A press arrives as an `interaction` event."}}}}}}}},"/v2/communities/{id}/members":{"get":{"operationId":"communities_members","summary":"The members of a group with their roles.","tags":["communities"],"security":[{"apiKey":["read"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The `id` of a group.","schema":{"type":"string"}}],"responses":{"200":{"description":"A page of GroupMember","content":{"application/json":{"schema":{"type":"object","required":["items","next"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/GroupMember"}},"next":{"type":["string","null"]}}}}}},"304":{"description":"Not modified"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v2/communities/{id}/roles":{"get":{"operationId":"communities_roles","summary":"The roles of a group, the highest first, @everyone last.","tags":["communities"],"security":[{"apiKey":["read"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The `id` of a group.","schema":{"type":"string"}}],"responses":{"200":{"description":"A page of Role","content":{"application/json":{"schema":{"type":"object","required":["items","next"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Role"}},"next":{"type":["string","null"]}}}}}},"304":{"description":"Not modified"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"roles_create","summary":"Create a role.","tags":["groupAdmin"],"security":[{"apiKey":["groups"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The `id` of a group.","schema":{"type":"string"}}],"responses":{"200":{"description":"Made","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Made"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"name":{"type":"string","description":"The role’s name; @everyone keeps its own."},"color":{"type":"string","enum":["indigo","violet","rose","amber","green","teal"],"description":"The colour; empty for none."},"permissions":{"type":"array","items":{"type":"string"},"description":"The permissions: `view`, `send`, `attach`, `post_feed`, `invite`, `mention_everyone`, `moderate`, `timeout_members`, `kick_members`, `ban_members`, `manage_channels`, `manage_roles`."},"selfable":{"type":"boolean","description":"`true`: members take the role themselves. Only for roles that allow no more than taking part (view, send, attach, voice_connect, voice_speak, voice_video)."}}}}}}}},"/v2/communities/{id}/bell":{"get":{"operationId":"communities_bell","summary":"Which notifications a group sends you.","tags":["communities"],"security":[{"apiKey":["read"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The `id` of a group.","schema":{"type":"string"}}],"responses":{"200":{"description":"Bell","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Bell"}}}},"304":{"description":"Not modified"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}},"put":{"operationId":"communities_bell_set","summary":"Set which notifications a group sends you.","tags":["communities"],"security":[{"apiKey":["write"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The `id` of a group.","schema":{"type":"string"}}],"responses":{"200":{"description":"Bell","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Bell"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["level"],"properties":{"level":{"type":"string","enum":["all","important","off"],"description":"Which notifications come."}}}}}}}},"/v2/invites/{code}":{"get":{"operationId":"invites_get","summary":"The group behind an invitation link, before joining.","tags":["communities"],"security":[{"apiKey":["read"]}],"parameters":[{"name":"code","in":"path","required":true,"description":"The code of an invitation link, the end of its address.","schema":{"type":"string"}}],"responses":{"200":{"description":"InvitePreview","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvitePreview"}}}},"304":{"description":"Not modified"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}},"delete":{"operationId":"invites_revoke","summary":"Take back an invitation link.","tags":["groupAdmin"],"security":[{"apiKey":["groups"]}],"parameters":[{"name":"code","in":"path","required":true,"description":"The code of an invitation link, the end of its address.","schema":{"type":"string"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Ok"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v2/channels/{id}/read":{"post":{"operationId":"channels_read","summary":"Mark a chat channel as read up to a point in time.","tags":["channels"],"security":[{"apiKey":["write"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The `id` of a channel.","schema":{"type":"string"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Ok"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["at"],"properties":{"at":{"type":"integer","description":"Up to when it is read, in milliseconds, usually the `createdAt` of the newest message."}}}}}}}},"/v2/channel-messages/{id}":{"delete":{"operationId":"channels_messages_delete","summary":"Delete one of your messages in a chat channel.","tags":["channels"],"security":[{"apiKey":["write"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The `id` of a message in a chat channel.","schema":{"type":"string"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Ok"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v2/roles/{id}/self":{"put":{"operationId":"roles_self","summary":"Take or put down a self-assignable role.","tags":["communities"],"security":[{"apiKey":["write"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The `id` of a role.","schema":{"type":"string"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Ok"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"active":{"type":"boolean","description":"`false` takes the role away; otherwise it is given."}}}}}}}},"/v2/events":{"get":{"operationId":"events_list","summary":"The events from the bot's groups since an event, page by page.","tags":["bots"],"security":[{"apiKey":["read"]}],"parameters":[{"name":"since","in":"query","required":false,"description":"The number of the last event the bot already has. Without it, the stream starts now and the list at the oldest.","schema":{"type":"string"}}],"responses":{"200":{"description":"A page of BotEvent","content":{"application/json":{"schema":{"type":"object","required":["items","next"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/BotEvent"}},"next":{"type":["string","null"]}}}}}},"304":{"description":"Not modified"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v2/events/stream":{"get":{"operationId":"events_stream","summary":"The events from the bot's groups as they happen (server-sent events).","tags":["bots"],"security":[{"apiKey":["read"]}],"parameters":[{"name":"since","in":"query","required":false,"description":"The number of the last event the bot already has. Without it, the stream starts now and the list at the oldest.","schema":{"type":"string"}}],"responses":{"200":{"description":"BotEvent","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BotEvent"}}}},"304":{"description":"Not modified"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v2/me/commands":{"get":{"operationId":"commands_list","summary":"The bot's commands.","tags":["bots"],"security":[{"apiKey":["read"]}],"parameters":[],"responses":{"200":{"description":"A page of BotCommand","content":{"application/json":{"schema":{"type":"object","required":["items","next"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/BotCommand"}},"next":{"type":["string","null"]}}}}}},"304":{"description":"Not modified"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"put":{"operationId":"commands_set","summary":"Set the bot's commands, all at once.","tags":["bots"],"security":[{"apiKey":["write"]}],"parameters":[],"responses":{"200":{"description":"A page of BotCommand","content":{"application/json":{"schema":{"type":"object","required":["items","next"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/BotCommand"}},"next":{"type":["string","null"]}}}}}},"304":{"description":"Not modified"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["commands"],"properties":{"commands":{"type":"array","items":{"type":"object"},"description":"Up to 25 commands, each `{ name, description }`."}}}}}}}},"/v2/interactions/{id}/reply":{"post":{"operationId":"interactions_reply","summary":"Answer a command or a button.","tags":["bots"],"security":[{"apiKey":["write"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The id from the event (`data.interaction`).","schema":{"type":"string"}}],"responses":{"200":{"description":"Made","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Made"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"text":{"type":"string","description":"The text of the post, reply or message."},"private":{"type":"boolean","description":"`true`: only whoever used the command or button sees the answer, for a day."},"card":{"type":"object","description":"A card `{ title, text, color, fields: [{ name, value }] }`, at most 10 fields."},"buttons":{"type":"array","items":{"type":"object"},"description":"Up to 5 buttons, each `{ id, label, style }` with `style` `primary`, `secondary` or `danger`. A press arrives as an `interaction` event."}}}}}}}},"/v2/communities/{id}/emojis":{"get":{"operationId":"communities_emojis","summary":"A group's own emojis.","tags":["communities"],"security":[{"apiKey":["read"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The `id` of a group.","schema":{"type":"string"}}],"responses":{"200":{"description":"A page of GroupEmoji","content":{"application/json":{"schema":{"type":"object","required":["items","next"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/GroupEmoji"}},"next":{"type":["string","null"]}}}}}},"304":{"description":"Not modified"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"communities_emojis_add","summary":"Give the group an emoji.","tags":["groupAdmin"],"security":[{"apiKey":["groups"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The `id` of a group.","schema":{"type":"string"}}],"responses":{"200":{"description":"A page of GroupEmoji","content":{"application/json":{"schema":{"type":"object","required":["items","next"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/GroupEmoji"}},"next":{"type":["string","null"]}}}}}},"304":{"description":"Not modified"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["name","picture"],"properties":{"name":{"type":"string","description":"The name you write the emoji with, as `:name:`."},"picture":{"type":"string","description":"The `id` from `POST /me/emojis/pictures`."}}}}}}}},"/v2/communities/{id}/emojis/{name}":{"delete":{"operationId":"communities_emojis_remove","summary":"Remove an emoji from the group.","tags":["groupAdmin"],"security":[{"apiKey":["groups"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The `id` of a group.","schema":{"type":"string"}},{"name":"name","in":"path","required":true,"description":"The name of the emoji, without colons.","schema":{"type":"string"}}],"responses":{"200":{"description":"A page of GroupEmoji","content":{"application/json":{"schema":{"type":"object","required":["items","next"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/GroupEmoji"}},"next":{"type":["string","null"]}}}}}},"304":{"description":"Not modified"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v2/invites/{code}/join":{"post":{"operationId":"invites_join","summary":"Join a group with an invitation link.","tags":["communities"],"security":[{"apiKey":["write"]}],"parameters":[{"name":"code","in":"path","required":true,"description":"The code of an invitation link, the end of its address.","schema":{"type":"string"}}],"responses":{"200":{"description":"Joined","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Joined"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"rules":{"type":"boolean","description":"`true` if you accept the group’s rules; needed when it has any."}}}}}}}},"/v2/roles/{id}":{"put":{"operationId":"roles_update","summary":"Change a role’s name, colour and permissions.","tags":["groupAdmin"],"security":[{"apiKey":["groups"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The `id` of a role.","schema":{"type":"string"}}],"responses":{"200":{"description":"Made","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Made"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"name":{"type":"string","description":"The role’s name; @everyone keeps its own."},"color":{"type":"string","enum":["indigo","violet","rose","amber","green","teal"],"description":"The colour; empty for none."},"permissions":{"type":"array","items":{"type":"string"},"description":"The permissions: `view`, `send`, `attach`, `post_feed`, `invite`, `mention_everyone`, `moderate`, `timeout_members`, `kick_members`, `ban_members`, `manage_channels`, `manage_roles`."},"selfable":{"type":"boolean","description":"`true`: members take the role themselves. Only for roles that allow no more than taking part (view, send, attach, voice_connect, voice_speak, voice_video)."}}}}}}},"delete":{"operationId":"roles_delete","summary":"Delete a role.","tags":["groupAdmin"],"security":[{"apiKey":["groups"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The `id` of a role.","schema":{"type":"string"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Ok"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v2/communities/{id}/roles/order":{"put":{"operationId":"roles_order","summary":"Set the rank of the roles.","tags":["groupAdmin"],"security":[{"apiKey":["groups"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The `id` of a group.","schema":{"type":"string"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Ok"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["roles"],"properties":{"roles":{"type":"array","items":{"type":"string"},"description":"The `id`s of all roles below your own highest, the highest first; for the leadership all except @everyone."}}}}}}}},"/v2/roles/{id}/members/{member}":{"put":{"operationId":"roles_assign","summary":"Give a member a role or take it away.","tags":["groupAdmin"],"security":[{"apiKey":["groups"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The `id` of a role.","schema":{"type":"string"}},{"name":"member","in":"path","required":true,"description":"The `id` of a member’s account.","schema":{"type":"string"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Ok"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"active":{"type":"boolean","description":"`false` takes the role away; otherwise it is given."}}}}}}}},"/v2/channels/{id}":{"put":{"operationId":"channels_update","summary":"Change a channel’s name, topic and category.","tags":["groupAdmin"],"security":[{"apiKey":["groups"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The `id` of a channel.","schema":{"type":"string"}}],"responses":{"200":{"description":"Made","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Made"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"name":{"type":"string","description":"The name, without `#`; empty for the name the app gives in each language."},"topic":{"type":"string","description":"The topic shown above the channel."},"category":{"type":"string","description":"The `id` of the category the channel goes into; empty for none."},"emoji":{"type":"string","description":"An emoji as the symbol."},"icon":{"type":"string","enum":["home","hash","megaphone","volume","message","help","info","bell","calendar","book","bookmark","pin","shield","star","heart","sparkles","flame","zap","trophy","gift","rocket","lightbulb","code","wrench","briefcase","graduation","palette","camera","film","music","gamepad","dumbbell","leaf","flower","paw","sun","moon","cloud","globe","map","coffee","pizza","smile"],"description":"A symbol of the app’s set, by its name."},"image":{"type":"string","description":"The id of a picture you uploaded with `/media/emoji`."},"color":{"type":"string","enum":["brand","indigo","violet","rose","amber","green","teal","red"],"description":"The tile’s colour."},"shape":{"type":"string","enum":["circle","square","triangle","diamond","hexagon","octagon","shield","star"],"description":"The tile’s shape; a circle without one."}}}}}}},"delete":{"operationId":"channels_delete","summary":"Delete a chat channel with its messages.","tags":["groupAdmin"],"security":[{"apiKey":["groups"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The `id` of a channel.","schema":{"type":"string"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Ok"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v2/communities/{id}/channels/order":{"put":{"operationId":"channels_order","summary":"Set the order of the categories and chat channels.","tags":["groupAdmin"],"security":[{"apiKey":["groups"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The `id` of a group.","schema":{"type":"string"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Ok"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["categories","channels"],"properties":{"categories":{"type":"array","items":{"type":"string"},"description":"The `id`s of all the group’s categories in their new order."},"channels":{"type":"array","items":{"type":"string"},"description":"The `id`s of all the group’s chat channels in their new order."}}}}}}}},"/v2/communities/{id}/channels/shape":{"put":{"operationId":"channels_shape","summary":"Set the shape of all the group’s channel symbols.","tags":["groupAdmin"],"security":[{"apiKey":["groups"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The `id` of a group.","schema":{"type":"string"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Ok"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"shape":{"type":"string","enum":["circle","square","triangle","diamond","hexagon","octagon","shield","star"],"description":"The shape of all the group’s symbols; left out, each channel has its own."}}}}}}}},"/v2/channels/{id}/overrides":{"get":{"operationId":"channels_overrides","summary":"What roles may do differently in a channel than in the group.","tags":["groupAdmin"],"security":[{"apiKey":["groups"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The `id` of a channel.","schema":{"type":"string"}}],"responses":{"200":{"description":"A page of ChannelOverride","content":{"application/json":{"schema":{"type":"object","required":["items","next"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ChannelOverride"}},"next":{"type":["string","null"]}}}}}},"304":{"description":"Not modified"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v2/channels/{id}/overrides/{role}":{"put":{"operationId":"channels_override","summary":"Set what a role may do differently in a channel.","tags":["groupAdmin"],"security":[{"apiKey":["groups"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The `id` of a channel.","schema":{"type":"string"}},{"name":"role","in":"path","required":true,"description":"The `id` of a role.","schema":{"type":"string"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Ok"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"allow":{"type":"array","items":{"type":"string"},"description":"What the role may do here as well: in a chat `view`, `send`, `attach`, `mention_everyone`, `moderate`, in the feed channel `view` and `post_feed`."},"deny":{"type":"array","items":{"type":"string"},"description":"What the role may not do here, from the same permissions. Both lists empty remove the difference."}}}}}}}},"/v2/communities/{id}/categories":{"post":{"operationId":"categories_create","summary":"Create a category for channels.","tags":["groupAdmin"],"security":[{"apiKey":["groups"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The `id` of a group.","schema":{"type":"string"}}],"responses":{"200":{"description":"Made","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Made"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["name"],"properties":{"name":{"type":"string","description":"The category’s name."},"emoji":{"type":"string","description":"An emoji as the symbol."},"icon":{"type":"string","enum":["home","hash","megaphone","volume","message","help","info","bell","calendar","book","bookmark","pin","shield","star","heart","sparkles","flame","zap","trophy","gift","rocket","lightbulb","code","wrench","briefcase","graduation","palette","camera","film","music","gamepad","dumbbell","leaf","flower","paw","sun","moon","cloud","globe","map","coffee","pizza","smile"],"description":"A symbol of the app’s set, by its name."},"image":{"type":"string","description":"The id of a picture you uploaded with `/media/emoji`."},"color":{"type":"string","enum":["brand","indigo","violet","rose","amber","green","teal","red"],"description":"The tile’s colour."}}}}}}}},"/v2/categories/{id}":{"put":{"operationId":"categories_update","summary":"Rename a category.","tags":["groupAdmin"],"security":[{"apiKey":["groups"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The `id` of a category.","schema":{"type":"string"}}],"responses":{"200":{"description":"Made","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Made"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["name"],"properties":{"name":{"type":"string","description":"The category’s name."},"emoji":{"type":"string","description":"An emoji as the symbol."},"icon":{"type":"string","enum":["home","hash","megaphone","volume","message","help","info","bell","calendar","book","bookmark","pin","shield","star","heart","sparkles","flame","zap","trophy","gift","rocket","lightbulb","code","wrench","briefcase","graduation","palette","camera","film","music","gamepad","dumbbell","leaf","flower","paw","sun","moon","cloud","globe","map","coffee","pizza","smile"],"description":"A symbol of the app’s set, by its name."},"image":{"type":"string","description":"The id of a picture you uploaded with `/media/emoji`."},"color":{"type":"string","enum":["brand","indigo","violet","rose","amber","green","teal","red"],"description":"The tile’s colour."}}}}}}},"delete":{"operationId":"categories_delete","summary":"Delete a category.","tags":["groupAdmin"],"security":[{"apiKey":["groups"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The `id` of a category.","schema":{"type":"string"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Ok"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v2/communities/{id}/feed":{"put":{"operationId":"communities_feed","summary":"Switch a group’s feed channel on or off.","tags":["groupAdmin"],"security":[{"apiKey":["groups"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The `id` of a group.","schema":{"type":"string"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Ok"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["on"],"properties":{"on":{"type":"boolean","description":"`true` switches the feed channel on, `false` off."}}}}}}}},"/v2/communities/{id}/invites":{"get":{"operationId":"invites_list","summary":"A group’s invitation links that still work.","tags":["groupAdmin"],"security":[{"apiKey":["groups"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The `id` of a group.","schema":{"type":"string"}}],"responses":{"200":{"description":"A page of InviteLink","content":{"application/json":{"schema":{"type":"object","required":["items","next"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/InviteLink"}},"next":{"type":["string","null"]}}}}}},"304":{"description":"Not modified"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"invites_create","summary":"Create an invitation link.","tags":["groupAdmin"],"security":[{"apiKey":["groups"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The `id` of a group.","schema":{"type":"string"}}],"responses":{"200":{"description":"Made","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Made"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"days":{"type":"integer","enum":["1","7","30"],"description":"How many days the link works; without it, until it is taken back."},"uses":{"type":"integer","enum":["1","5","10","25","100"],"description":"How often the link can be used; without it, any number of times."}}}}}}}},"/v2/channel-messages/{id}/remove":{"post":{"operationId":"channels_messages_remove","summary":"Remove another member’s message from a channel.","tags":["groupAdmin"],"security":[{"apiKey":["groups"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The `id` of a message in a chat channel.","schema":{"type":"string"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Ok"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v2/communities/{id}/posts/{post}/remove":{"post":{"operationId":"communities_posts_remove","summary":"Remove a post from a group.","tags":["groupAdmin"],"security":[{"apiKey":["groups"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The `id` of a group.","schema":{"type":"string"}},{"name":"post","in":"path","required":true,"description":"The `id` of a post.","schema":{"type":"string"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Ok"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["reason"],"properties":{"reason":{"type":"string","description":"The reason the member reads."}}}}}}}},"/v2/communities/{id}/members/{member}":{"delete":{"operationId":"communities_members_remove","summary":"Kick a member from a group.","tags":["groupAdmin"],"security":[{"apiKey":["groups"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The `id` of a group.","schema":{"type":"string"}},{"name":"member","in":"path","required":true,"description":"The `id` of a member’s account.","schema":{"type":"string"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Ok"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["reason"],"properties":{"reason":{"type":"string","description":"The reason the member reads."}}}}}}}},"/v2/communities/{id}/members/{member}/timeout":{"put":{"operationId":"communities_members_timeout","summary":"Mute a member.","tags":["groupAdmin"],"security":[{"apiKey":["groups"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The `id` of a group.","schema":{"type":"string"}},{"name":"member","in":"path","required":true,"description":"The `id` of a member’s account.","schema":{"type":"string"}}],"responses":{"200":{"description":"Until","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Until"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["seconds"],"properties":{"seconds":{"type":"integer","enum":["60","300","600","3600","86400","604800"],"description":"How long, in seconds."},"reason":{"type":"string","description":"A reason the member reads; optional."}}}}}}},"delete":{"operationId":"communities_members_timeout_lift","summary":"Lift a timeout.","tags":["groupAdmin"],"security":[{"apiKey":["groups"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The `id` of a group.","schema":{"type":"string"}},{"name":"member","in":"path","required":true,"description":"The `id` of a member’s account.","schema":{"type":"string"}}],"responses":{"200":{"description":"Until","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Until"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v2/communities/{id}/bans":{"get":{"operationId":"bans_list","summary":"A group's running bans.","tags":["groupAdmin"],"security":[{"apiKey":["groups"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The `id` of a group.","schema":{"type":"string"}}],"responses":{"200":{"description":"A page of Ban","content":{"application/json":{"schema":{"type":"object","required":["items","next"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Ban"}},"next":{"type":["string","null"]}}}}}},"304":{"description":"Not modified"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v2/communities/{id}/bans/{member}":{"put":{"operationId":"bans_create","summary":"Ban a member.","tags":["groupAdmin"],"security":[{"apiKey":["groups"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The `id` of a group.","schema":{"type":"string"}},{"name":"member","in":"path","required":true,"description":"The `id` of a member’s account.","schema":{"type":"string"}}],"responses":{"200":{"description":"Until","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Until"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["reason"],"properties":{"days":{"type":"integer","enum":["1","7","30"],"description":"How long, in days; leave it out for a ban without an end."},"reason":{"type":"string","description":"The reason the member reads."}}}}}}},"delete":{"operationId":"bans_lift","summary":"Lift a ban.","tags":["groupAdmin"],"security":[{"apiKey":["groups"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The `id` of a group.","schema":{"type":"string"}},{"name":"member","in":"path","required":true,"description":"The `id` of a member’s account.","schema":{"type":"string"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Ok"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v2/communities/{id}/log":{"get":{"operationId":"communities_log","summary":"The leadership’s log: who removed what and why.","tags":["groupAdmin"],"security":[{"apiKey":["groups"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The `id` of a group.","schema":{"type":"string"}}],"responses":{"200":{"description":"A page of LogEntry","content":{"application/json":{"schema":{"type":"object","required":["items","next"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/LogEntry"}},"next":{"type":["string","null"]}}}}}},"304":{"description":"Not modified"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v2/communities/{id}/bots":{"get":{"operationId":"communities_bots","summary":"The bots of a group with what their role allows.","tags":["communities"],"security":[{"apiKey":["read"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The `id` of a group.","schema":{"type":"string"}}],"responses":{"200":{"description":"A page of GroupBot","content":{"application/json":{"schema":{"type":"object","required":["items","next"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/GroupBot"}},"next":{"type":["string","null"]}}}}}},"304":{"description":"Not modified"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v2/communities/{id}/voice":{"get":{"operationId":"communities_voice","summary":"Who is in a group’s voice channels right now, per channel.","tags":["channels"],"security":[{"apiKey":["read"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The `id` of a group.","schema":{"type":"string"}}],"responses":{"200":{"description":"A page of VoiceRoom","content":{"application/json":{"schema":{"type":"object","required":["items","next"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/VoiceRoom"}},"next":{"type":["string","null"]}}}}}},"304":{"description":"Not modified"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v2/channels/{id}/voice":{"post":{"operationId":"channels_voice_join","summary":"Take a seat in a voice channel to play music or sound.","tags":["bots"],"security":[{"apiKey":["write"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The `id` of a channel.","schema":{"type":"string"}}],"responses":{"200":{"description":"VoiceSeat","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VoiceSeat"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}}},"components":{"securitySchemes":{"apiKey":{"type":"http","scheme":"bearer","bearerFormat":"tm_key_"}},"schemas":{"Service":{"type":"object","description":"The answer of the root: who is answering, and what this key may do.","required":["name","version","scope","rateLimit","docs","spec"],"properties":{"name":{"type":"string","description":"Always `tellmelo`."},"version":{"type":"string","description":"The version of the API, for example `2.1`."},"scope":{"type":"string","description":"What this key may do: `read` or `read write`."},"rateLimit":{"$ref":"#/components/schemas/RateLimit","description":"The budget of this key."},"docs":{"type":"string","description":"Where this documentation is, as a path on this instance."},"spec":{"type":"string","description":"Where the machine-readable description is."}}},"RateLimit":{"type":"object","description":"The budget of this key in the current minute.","required":["limit","remaining"],"properties":{"limit":{"type":"integer","description":"Requests per minute."},"remaining":{"type":"integer","description":"How many are left in this minute."}}},"Post":{"type":"object","description":"A post, in the same shape everywhere.","required":["id","text","kind","author","community","media","poll","quotes","continues","counts","pinned","giftDrop","createdAt"],"properties":{"id":{"type":"string","description":"The id of the post."},"text":{"type":["string","null"],"description":"The text as written (`null` for a post that is only a poll or only pictures)."},"kind":{"type":"string","enum":["post","poll"],"description":"What the post is."},"author":{"$ref":"#/components/schemas/ProfileBrief","description":"Who wrote it."},"community":{"oneOf":[{"$ref":"#/components/schemas/CommunityBrief"},{"type":"null"}],"description":"The group it was written in (`null` outside every group)."},"media":{"type":"array","items":{"$ref":"#/components/schemas/Media"},"description":"Its images, in order; empty if there are none."},"poll":{"oneOf":[{"$ref":"#/components/schemas/Poll"},{"type":"null"}],"description":"The poll (`null` if there is none)."},"quotes":{"type":["string","null"],"description":"The id of the post this one quotes."},"continues":{"type":["string","null"],"description":"The id of the post this one continues, as an addendum."},"counts":{"$ref":"#/components/schemas/Counts","description":"Replies, likes and reposts."},"pinned":{"type":"boolean","description":"Whether it is pinned to the top of its author’s profile."},"giftDrop":{"oneOf":[{"$ref":"#/components/schemas/GiftDrop"},{"type":"null"}],"description":"Gifts to claim under the post (`null` if there are none)."},"createdAt":{"type":"integer","description":"When it was written."}}},"Reply":{"allOf":[{"$ref":"#/components/schemas/Post"},{"type":"object","description":"A reply under a post: a post with two more fields.","required":["postId","parentId"],"properties":{"postId":{"type":"string","description":"The post the whole conversation hangs off."},"parentId":{"type":["string","null"],"description":"The reply this one answers (`null` if it answers the post directly)."}}}]},"ReplyVote":{"type":"object","description":"Your vote on a reply and its score.","required":["vote","score"],"properties":{"vote":{"type":"string","enum":["up","down","none"],"description":"Your vote."},"score":{"type":"integer","description":"Upvotes minus downvotes, also below zero."}}},"PlannedReply":{"type":"object","description":"One of your replies planned for later.","required":["id","parentId","text","publishAt","state"],"properties":{"id":{"type":"string","description":"The `id` of the planned reply."},"parentId":{"type":["string","null"],"description":"The reply it will answer (`null` if it answers the post directly)."},"text":{"type":"string","description":"The text."},"publishAt":{"type":"integer","description":"When it goes out."},"state":{"type":"string","enum":["waiting","failed"],"description":"Its state."}}},"ReplySettings":{"type":"object","description":"The reply settings of one of your posts.","required":["audience","approval","slow"],"properties":{"audience":{"type":"string","enum":["all","following","mentioned","nobody"],"description":"Who may reply."},"approval":{"type":"boolean","description":"Whether replies wait for your approval."},"slow":{"type":"string","enum":["auto","on","off"],"description":"Slow mode."}}},"Counts":{"type":"object","description":"How many replies, likes and reposts a post has.","required":["replies","likes","reposts"],"properties":{"replies":{"type":"integer","description":"Replies, all levels together."},"likes":{"type":"integer","description":"Likes."},"reposts":{"type":"integer","description":"Reposts."}}},"Media":{"type":"object","description":"An image of a post or a message.","required":["url","kind","poster","ai"],"properties":{"url":{"type":"string","description":"The address of the picture or video, relative to this instance. Load it with the key in the header."},"kind":{"type":"string","enum":["image","video","gif"],"description":"`image`, `video` or `gif` (since 2.10). Videos and GIFs are MP4 files."},"poster":{"type":["string","null"],"description":"For videos and GIFs the address of the preview image, otherwise `null` (since 2.10)."},"ai":{"type":["string","null"],"enum":["with","without"],"description":"Whether the image was made with AI, as the uploader said or the team marked it after a report; `null` without a label (since 2.11)."}}},"Poll":{"type":"object","description":"The poll of a post.","required":["options","total","multiple","endsAt","running","resultsVisible","myVotes"],"properties":{"options":{"type":"array","items":{"$ref":"#/components/schemas/PollOption"},"description":"The answers, in order. `option` in a vote counts from 0."},"total":{"type":"integer","description":"All votes together, always present."},"multiple":{"type":"boolean","description":"Whether more than one answer may be chosen."},"endsAt":{"type":["integer","null"],"description":"When the poll ends (`null` if it runs without an end)."},"running":{"type":"boolean","description":"Whether votes can still be cast."},"resultsVisible":{"type":"boolean","description":"Whether the votes per answer are shown (see `votes`)."},"myVotes":{"type":"array","items":{"type":"integer"},"description":"The answers you chose, counted from 0."}}},"PollOption":{"type":"object","description":"One answer of a poll.","required":["text","votes"],"properties":{"text":{"type":"string","description":"The answer."},"votes":{"type":["integer","null"],"description":"Its votes (`null` while the results are held back)."}}},"ProfileBrief":{"type":"object","description":"A profile as it appears inside other objects: as an author, in a search.","required":["id","handle","name","verified","accountKind"],"properties":{"id":{"type":"string","description":"The id of the account: what `/relations` and `/conversations/{with}` expect."},"handle":{"type":"string","description":"The short name, without `@`, written the way the member chose it."},"name":{"type":"string","description":"The display name. It may contain emojis, including `:name:`."},"verified":{"type":"boolean","description":"Whether the account is verified."},"accountKind":{"type":"string","enum":["person","business","association","automated","bot"],"description":"What kind of account it is."}}},"Profile":{"allOf":[{"$ref":"#/components/schemas/ProfileBrief"},{"type":"object","description":"A profile on its own, with its description and its followers.","required":["about","website","websiteVerified","followers","createdAt"],"properties":{"about":{"type":["string","null"],"description":"The description (`null` if there is none)."},"website":{"type":["string","null"],"description":"The profile’s website (`null` if there is none). Since 2.3."},"websiteVerified":{"type":"boolean","description":"Whether the website links back to this profile with `rel=me`, checked weekly. Since 2.3."},"followers":{"type":"integer","description":"How many accounts follow it."},"createdAt":{"type":["integer","null"],"description":"When the account was created (`null` while the member hides the join date; since 2.9)."}}}]},"CommunityBrief":{"type":"object","description":"The group a post was written in.","required":["id","name"],"properties":{"id":{"type":"string","description":"The id of the group."},"name":{"type":["string","null"],"description":"Its name."}}},"Community":{"type":"object","description":"A group of this instance.","required":["id","name","handle","description","tags","members","joinPolicy","visibility","feedChannel","sparks","perks","membership"],"properties":{"id":{"type":"string","description":"The id of the group."},"name":{"type":"string","description":"Its name."},"handle":{"type":["string","null"],"description":"The short name to mention the group with `@#`. Since 2.15."},"description":{"type":["string","null"],"description":"The description (`null` if there is none)."},"tags":{"type":"array","items":{"type":"string"},"description":"The topics it is about."},"members":{"type":"integer","description":"How many members it has."},"joinPolicy":{"type":"string","enum":["open","application","invite"],"description":"How one gets in."},"visibility":{"type":"string","enum":["open","internal","hidden"],"description":"Who sees it. `internal` and `hidden` only its members (since 2.15)."},"feedChannel":{"type":"boolean","description":"Whether its feed channel is on. Since 2.15."},"sparks":{"type":"integer","description":"How many sparks the group holds right now (since 2.19)."},"perks":{"type":"array","items":{"type":"string"},"description":"The perks its sparks pay for (since 2.19)."},"membership":{"oneOf":[{"$ref":"#/components/schemas/Membership"},{"type":"null"}],"description":"What your account is and may do in the group; `null` if it is no member. Since 2.15."}}},"Membership":{"type":"object","description":"What your account is and may do in the group.","required":["leader","roles","permissions","mutedUntil"],"properties":{"leader":{"type":["string","null"],"enum":["founder","manager"],"description":"Whether you founded the group or help lead it; `null` otherwise."},"roles":{"type":"array","items":{"type":"string"},"description":"The `id`s of your roles, the highest first."},"permissions":{"type":"array","items":{"type":"string"},"description":"What you may do in the group."},"mutedUntil":{"type":["integer","null"],"description":"Until when a timeout mutes you here; `null` without one."}}},"Person":{"type":"object","description":"A member, in short.","required":["id","handle","name","bot"],"properties":{"id":{"type":"string","description":"The account’s `id`."},"handle":{"type":"string","description":"The username, without `@`."},"name":{"type":"string","description":"The display name."},"bot":{"type":"boolean","description":"Whether the account is a bot (since 2.18)."}}},"Channel":{"type":"object","description":"A channel of a group.","required":["id","kind","name","topic","category","unread","permissions","symbol"],"properties":{"id":{"type":"string","description":"The `id`."},"kind":{"type":"string","enum":["feed","chat","voice","hub"],"description":"Which kind of channel."},"name":{"type":["string","null"],"description":"The name without `#`; `null` for the name the app gives in each language."},"topic":{"type":"string","description":"The topic; empty if there is none."},"category":{"oneOf":[{"$ref":"#/components/schemas/ChannelCategory"},{"type":"null"}],"description":"The category; `null` without one."},"unread":{"type":"integer","description":"How many messages of others you have not read yet, up to 100."},"permissions":{"type":"array","items":{"type":"string"},"description":"What you may do in this channel."},"symbol":{"$ref":"#/components/schemas/ChannelSymbol","description":"Its symbol; the shape already the group’s when it sets one."}}},"ChannelCategory":{"type":"object","description":"The category a channel is under.","required":["id","name","symbol"],"properties":{"id":{"type":"string","description":"The `id`."},"name":{"type":"string","description":"The name."},"symbol":{"$ref":"#/components/schemas/ChannelSymbol","description":"Its symbol."}}},"ChannelSymbol":{"type":"object","description":"A channel’s or category’s symbol: at most one of emoji, symbol and picture, otherwise the sign of its kind.","required":["emoji","icon","image","color","shape"],"properties":{"emoji":{"type":["string","null"],"description":"The emoji; `null` without one."},"icon":{"type":["string","null"],"description":"The name of the symbol of the app’s set; `null` without one."},"image":{"type":["string","null"],"description":"The address of the own picture; `null` without one."},"color":{"type":["string","null"],"description":"The tile’s colour; `null` for that of its kind."},"shape":{"type":["string","null"],"description":"The tile’s shape; `null` for a circle."}}},"ChannelMessage":{"type":"object","description":"A message in a chat channel.","required":["id","text","author","media","replyTo","roleColor","threadOf","threadCount","card","buttons","createdAt"],"properties":{"id":{"type":"string","description":"The `id`."},"text":{"type":["string","null"],"description":"The text (`null` for a message of only pictures or voice)."},"author":{"$ref":"#/components/schemas/Person","description":"Who wrote it."},"media":{"type":"array","items":{"$ref":"#/components/schemas/Media"},"description":"Its pictures and voice messages; empty if there are none."},"replyTo":{"type":["string","null"],"description":"The `id` of the message it answers; `null` if none."},"roleColor":{"type":["string","null"],"description":"The colour of the author's highest role that has one; `null` without."},"threadOf":{"type":["string","null"],"description":"The message whose thread this one replies in; `null` in the chat."},"threadCount":{"type":"integer","description":"How many replies this message's thread has."},"card":{"type":["object","null"],"description":"A bot's card: `title`, `text`, `color` and `fields`; otherwise `null`."},"buttons":{"type":"array","items":{"type":"object"},"description":"A bot's buttons: each `id`, `label` and `style`."},"createdAt":{"type":"integer","description":"When it was written."}}},"Role":{"type":"object","description":"A role of a group.","required":["id","name","everyone","color","permissions","members","editable","selfable"],"properties":{"id":{"type":"string","description":"The `id`."},"name":{"type":["string","null"],"description":"The name; `null` for @everyone."},"everyone":{"type":"boolean","description":"Whether it is @everyone, the role of all members."},"color":{"type":["string","null"],"description":"The colour: `indigo`, `violet`, `rose`, `amber`, `green` or `teal`; `null` without one."},"permissions":{"type":"array","items":{"type":"string"},"description":"Its permissions."},"members":{"type":"integer","description":"How many have it; for @everyone all members."},"editable":{"type":"boolean","description":"Whether your account may change it."},"selfable":{"type":"boolean","description":"Whether members take and put down the role themselves."}}},"GroupMember":{"allOf":[{"$ref":"#/components/schemas/Person"},{"type":"object","description":"A member of a group with their roles.","required":["leader","roles","mutedUntil"],"properties":{"leader":{"type":["string","null"],"enum":["founder","manager"],"description":"Whether the member founded the group or helps lead it; `null` otherwise."},"roles":{"type":"array","items":{"type":"string"},"description":"The `id`s of their roles, the highest first."},"mutedUntil":{"type":["integer","null"],"description":"Until when a timeout mutes the member, if your account may give timeouts; `null` otherwise."}}}]},"ChannelOverride":{"type":"object","description":"What a role may do differently in a channel than in the group.","required":["role","allow","deny"],"properties":{"role":{"type":"string","description":"The role’s `id`."},"allow":{"type":"array","items":{"type":"string"},"description":"What it may also do here."},"deny":{"type":"array","items":{"type":"string"},"description":"What it may not do here."}}},"Bell":{"type":"object","description":"A group’s bell.","required":["level"],"properties":{"level":{"type":"string","enum":["all","important","off"],"description":"Which notifications come."}}},"InviteLink":{"type":"object","description":"An invitation link of a group.","required":["code","url","createdBy","createdAt","expiresAt","uses","maxUses"],"properties":{"code":{"type":"string","description":"The code."},"url":{"type":"string","description":"The address to share."},"createdBy":{"oneOf":[{"$ref":"#/components/schemas/Person"},{"type":"null"}],"description":"Who created it; `null` if the account is deleted."},"createdAt":{"type":"integer","description":"When it was created."},"expiresAt":{"type":["integer","null"],"description":"Until when it works; `null` without an end."},"uses":{"type":"integer","description":"How often it was used."},"maxUses":{"type":["integer","null"],"description":"How often it can be used; `null` for any number of times."}}},"InvitePreview":{"type":"object","description":"Where an invitation link leads.","required":["community","member"],"properties":{"community":{"$ref":"#/components/schemas/InviteGroup","description":"The group."},"member":{"type":"boolean","description":"Whether your account is a member already."}}},"InviteGroup":{"type":"object","description":"The group behind an invitation link.","required":["id","name","members","rules"],"properties":{"id":{"type":"string","description":"The `id`."},"name":{"type":"string","description":"The name."},"members":{"type":"integer","description":"How many members it has."},"rules":{"type":"array","items":{"type":"string"},"description":"Its rules, accepted when joining; empty if there are none."}}},"Joined":{"type":"object","description":"Joining with an invitation link.","required":["community"],"properties":{"community":{"type":"string","description":"The group’s `id`."}}},"LogEntry":{"type":"object","description":"An entry in the leadership’s log.","required":["id","action","member","reason","by","createdAt"],"properties":{"id":{"type":"string","description":"The `id`."},"action":{"type":"string","enum":["post_removed","member_removed","message_removed","member_kicked","member_banned","member_unbanned","member_timed_out","timeout_lifted","voice_muted","voice_removed","bot_added","bot_removed"],"description":"What happened."},"member":{"$ref":"#/components/schemas/Person","description":"Whom it concerned."},"reason":{"type":"string","description":"The reason; empty for messages and when none was given."},"by":{"type":["string","null"],"description":"The name of who did it; `null` if the account is deleted."},"createdAt":{"type":"integer","description":"When."}}},"Ban":{"type":"object","description":"A ban from a group.","required":["member","until","createdAt","by"],"properties":{"member":{"$ref":"#/components/schemas/Person","description":"Who is banned."},"until":{"type":["integer","null"],"description":"Until when; `null` until it is lifted."},"createdAt":{"type":["integer","null"],"description":"Since when; `null` for bans from before 2.16."},"by":{"type":["string","null"],"description":"The name of who banned; `null` if unknown."}}},"Until":{"type":"object","description":"When a timeout or ban ends.","required":["until"],"properties":{"until":{"type":["integer","null"],"description":"The time; `null` for a ban without an end or a timeout that was lifted."}}},"Tag":{"type":"object","description":"A tag and how many posts carry it.","required":["tag","posts"],"properties":{"tag":{"type":"string","description":"The tag, without `#`."},"posts":{"type":"integer","description":"How many recent posts carry it."}}},"SearchResult":{"type":"object","description":"Three lists, possibly empty.","required":["posts","profiles","tags"],"properties":{"posts":{"type":"array","items":{"$ref":"#/components/schemas/Post"},"description":"Matching posts, newest first."},"profiles":{"type":"array","items":{"$ref":"#/components/schemas/ProfileBrief"},"description":"Matching profiles, by short name."},"tags":{"type":"array","items":{"$ref":"#/components/schemas/Tag"},"description":"Matching tags, most used first."}}},"Emoji":{"type":"object","description":"An emoji of this instance.","required":["name","url"],"properties":{"name":{"type":"string","description":"The name, as it stands between the colons."},"url":{"type":"string","description":"The address of the picture, relative to this instance."}}},"Notification":{"type":"object","description":"A notification. One row can gather several events of the same kind.","required":["id","kind","text","actor","postId","read","more","createdAt","updatedAt"],"properties":{"id":{"type":"string","description":"The id of the notification."},"kind":{"type":"string","enum":["reply","like","reply_like","duel","reply_pick","repost","follow","mention","group_mention","channel_mention","message","scheduled","video","reminder","report","moderation","team","reward","gift","present","spark","loyalty","impact","discovery","group_post","group_moderation","group","coauthor","partner","news","pick","advent","team_message","challenge","nudge","signin"],"description":"What happened."},"text":{"type":["string","null"],"description":"Only for reports and moderation: the related text, otherwise `null`."},"actor":{"$ref":"#/components/schemas/Actor","description":"Who did it."},"postId":{"type":["string","null"],"description":"The post it is about (`null` if it is about none)."},"read":{"type":"boolean","description":"Whether it has been marked as read."},"more":{"type":"integer","description":"How many further events this row stands for, beyond the one named."},"createdAt":{"type":"integer","description":"When it first happened."},"updatedAt":{"type":"integer","description":"When it last gathered another event. The list is sorted by this."}}},"Actor":{"type":"object","description":"Who triggered a notification.","required":["handle","name"],"properties":{"handle":{"type":"string","description":"The short name."},"name":{"type":"string","description":"The display name."}}},"Conversation":{"type":"object","description":"One row of your inbox.","required":["with","handle","name","excerpt","truncated","fromMe","lastMessageId","unread","updatedAt"],"properties":{"with":{"type":"string","description":"The id of the other account: what `/conversations/{with}/messages` expects."},"handle":{"type":"string","description":"Their short name."},"name":{"type":"string","description":"Their display name."},"excerpt":{"type":["string","null"],"description":"The beginning of the last message (`null` if it has no text)."},"truncated":{"type":"boolean","description":"Whether the excerpt was cut short."},"fromMe":{"type":"boolean","description":"Whether the last message is yours."},"lastMessageId":{"type":"string","description":"The id of the last message."},"unread":{"type":"integer","description":"How many of their messages you have not read yet."},"updatedAt":{"type":"integer","description":"When the last message was written."}}},"Message":{"type":"object","description":"A message in a conversation.","required":["id","text","from","to","read","media","replyTo","createdAt"],"properties":{"id":{"type":"string","description":"The id of the message."},"text":{"type":["string","null"],"description":"The text (`null` for a message that is only pictures)."},"from":{"type":"string","description":"The id of the account that wrote it."},"to":{"type":"string","description":"The id of the account it was written to."},"read":{"type":"boolean","description":"Whether the recipient has read it."},"media":{"type":"array","items":{"$ref":"#/components/schemas/Media"},"description":"Its images; empty if there are none."},"replyTo":{"type":["string","null"],"description":"The `id` of the message this one answers (`null` if it answers none). Since 2.2."},"createdAt":{"type":"integer","description":"When it was sent."}}},"PlannedMessage":{"type":"object","description":"One of your messages planned for later.","required":["id","to","text","sendAt","state"],"properties":{"id":{"type":"string","description":"The `id` of the planned message."},"to":{"type":"string","description":"The `id` of the account receiving it."},"text":{"type":["string","null"],"description":"The text, `null` with end-to-end encryption."},"sendAt":{"type":"integer","description":"When it is sent."},"state":{"type":"string","enum":["waiting","held","failed"],"description":"Its state."}}},"ScheduledPost":{"type":"object","description":"One of your posts that isn’t out yet.","required":["id","text","communityId","publishAt","deleteAt","waitingFor","createdAt"],"properties":{"id":{"type":"string","description":"The id of the post."},"text":{"type":["string","null"],"description":"The text."},"communityId":{"type":["string","null"],"description":"The group it appears in (`null` outside groups)."},"publishAt":{"type":["integer","null"],"description":"When it goes out (`null` while it’s waiting for something else)."},"deleteAt":{"type":["integer","null"],"description":"When it deletes itself (`null`: never)."},"waitingFor":{"type":"string","enum":["time","review","check","payment"],"description":"What it’s waiting for."},"createdAt":{"type":"integer","description":"When it was written."}}},"Collection":{"type":"object","description":"A collection of saved posts.","required":["id","name","count"],"properties":{"id":{"type":"string","description":"The `id` of the collection."},"name":{"type":"string","description":"Its name."},"count":{"type":"integer","description":"How many posts are in it."}}},"Event":{"type":"object","description":"An upcoming event of a profile.","required":["id","title","startsAt","endsAt","place","description","signups"],"properties":{"id":{"type":"string","description":"The `id` of the event."},"title":{"type":"string","description":"The title."},"startsAt":{"type":"integer","description":"Start."},"endsAt":{"type":["integer","null"],"description":"End, `null` without an end."},"place":{"type":["string","null"],"description":"The place."},"description":{"type":["string","null"],"description":"The description."},"signups":{"oneOf":[{"$ref":"#/components/schemas/EventSignups"},{"type":"null"}],"description":"The sign-ups, `null` without sign-ups."}}},"EventSignups":{"type":"object","description":"How many have signed up.","required":["count","going"],"properties":{"count":{"type":"integer","description":"The number of sign-ups."},"going":{"type":"boolean","description":"Whether you have signed up."}}},"EventSignup":{"type":"object","description":"Someone who signed up for one of your events.","required":["id","handle","name","at"],"properties":{"id":{"type":"string","description":"The `id` of the account."},"handle":{"type":"string","description":"The handle."},"name":{"type":"string","description":"The display name."},"at":{"type":"integer","description":"When they signed up."}}},"Picture":{"type":"object","description":"An uploaded picture.","required":["id","url"],"properties":{"id":{"type":"string","description":"The `id` of the picture."},"url":{"type":"string","description":"Where it can be seen."}}},"EmojiPicture":{"type":"object","description":"The uploaded picture of an emoji.","required":["id","url","animated"],"properties":{"id":{"type":"string","description":"The `id` of the picture."},"url":{"type":"string","description":"Where it can be seen."},"animated":{"type":"boolean","description":"Whether it moves."}}},"OwnEmoji":{"type":"object","description":"One of your own emojis.","required":["name","url","animated","resting"],"properties":{"name":{"type":"string","description":"Its name."},"url":{"type":"string","description":"Its picture."},"animated":{"type":"boolean","description":"Whether it moves."},"resting":{"type":"boolean","description":"Resting because the plan allows fewer emojis right now: it stays but can’t be used."}}},"GroupEmoji":{"type":"object","description":"An emoji of a group.","required":["name","url","animated"],"properties":{"name":{"type":"string","description":"Its name."},"url":{"type":"string","description":"Its picture."},"animated":{"type":"boolean","description":"Whether it moves."}}},"BotEvent":{"type":"object","description":"An event in one of the bot's groups.","required":["id","type","community","channel","createdAt","data"],"properties":{"id":{"type":"string","description":"Its number, ascending; it's how you continue (`since`, `Last-Event-ID`)."},"type":{"type":"string","enum":["message.created","message.deleted","member.joined","member.left","voice.joined","command","interaction"],"description":"What happened."},"community":{"type":"string","description":"The group."},"channel":{"type":["string","null"],"description":"The channel; `null` for the whole group."},"createdAt":{"type":"integer","description":"When it happened."},"data":{"type":"object","description":"What belongs to it, by type: `message`, `member` (with `reason`), `command` or `interaction`."}}},"BotCommand":{"type":"object","description":"A command of a bot.","required":["name","description"],"properties":{"name":{"type":"string","description":"Its name, without “/”."},"description":{"type":"string","description":"What it does."}}},"VoiceSeat":{"type":"object","description":"A seat in a voice channel.","required":["url","token","iceServers","speak","video"],"properties":{"url":{"type":"string","description":"The media server's address (LiveKit)."},"token":{"type":"string","description":"The token for this channel, valid for a few minutes."},"iceServers":{"type":"array","items":{"type":"object"},"description":"The STUN and TURN servers for the connection."},"speak":{"type":"boolean","description":"Whether the bot may send sound there."},"video":{"type":"boolean","description":"Whether the bot may send video there."}}},"Webhook":{"type":"object","description":"One of your webhooks.","required":["id","url","kinds","active","lastStatus","lastAt","failures"],"properties":{"id":{"type":"string","description":"The `id` of the webhook."},"url":{"type":"string","description":"Its address."},"kinds":{"type":"array","items":{"type":"string"},"description":"What it is told about."},"active":{"type":"boolean","description":"Whether it receives deliveries. After many failures in a row it is switched off."},"lastStatus":{"type":["integer","null"],"description":"The HTTP status of the last delivery."},"lastAt":{"type":["integer","null"],"description":"When the last delivery was."},"failures":{"type":"integer","description":"Failures in a row."}}},"WebhookCreated":{"type":"object","description":"A new webhook with its secret.","required":["id","secret"],"properties":{"id":{"type":"string","description":"The `id` of the webhook."},"secret":{"type":"string","description":"The secret for the signatures, this once only."}}},"GroupBot":{"type":"object","description":"A bot of a group.","required":["id","handle","name","description","permissions"],"properties":{"id":{"type":"string","description":"The `id` of the bot account."},"handle":{"type":"string","description":"Its handle."},"name":{"type":"string","description":"Its name."},"description":{"type":"string","description":"What it does, in its owner’s words."},"permissions":{"type":"array","items":{"type":"string"},"description":"What its role in the group allows."}}},"VoiceRoom":{"type":"object","description":"A voice channel with the people in it.","required":["channel","people"],"properties":{"channel":{"type":"string","description":"The `id` of the channel."},"people":{"type":"array","items":{"$ref":"#/components/schemas/VoicePerson"},"description":"Who is in it right now."}}},"VoicePerson":{"type":"object","description":"Someone in a voice channel.","required":["id","handle","name","muted","deaf","camera","screen"],"properties":{"id":{"type":"string","description":"The `id` of the account."},"handle":{"type":"string","description":"The handle."},"name":{"type":"string","description":"The display name."},"muted":{"type":"boolean","description":"Whether their microphone is off."},"deaf":{"type":"boolean","description":"Whether they hear nothing (their own choice)."},"camera":{"type":"boolean","description":"Whether their camera is on."},"screen":{"type":"boolean","description":"Whether they share their screen."}}},"GiftDrop":{"type":"object","description":"Gifts under a post – never with the names of those who claimed them.","required":["item","quantity","places","left","audience","newAccounts","status","claimed"],"properties":{"item":{"type":"string","enum":["plan","sparks"],"description":"What a place holds."},"quantity":{"type":"integer","description":"How much each place holds: months or sparks."},"places":{"type":"integer","description":"How many places there are in total."},"left":{"type":"integer","description":"How many are still open."},"audience":{"type":"string","enum":["all","followers","group"],"description":"Who can claim."},"newAccounts":{"type":"boolean","description":"Whether accounts younger than 7 days can claim too."},"status":{"type":"string","enum":["awaiting_payment","open","closed"],"description":"Where things stand."},"claimed":{"type":"boolean","description":"Whether you already have a place yourself (always `false` on public paths)."}}},"OwnGiftDrop":{"allOf":[{"$ref":"#/components/schemas/GiftDrop"},{"type":"object","description":"Your gifts under a post, with the post and how they were paid for.","required":["postId","funding","createdAt"],"properties":{"postId":{"type":"string","description":"The post they’re under."},"funding":{"type":"string","enum":["free","quota","payment"],"description":"How they’re paid for."},"createdAt":{"type":"integer","description":"When they were created."}}}]},"Quota":{"type":"object","description":"What’s in a quota.","required":["months","sparks","looks"],"properties":{"months":{"type":"integer","description":"Plan months still to give away."},"sparks":{"type":"integer","description":"Sparks still to give away."},"looks":{"type":"array","items":{"$ref":"#/components/schemas/QuotaLook"},"description":"Looks in stock still to give away (since 2.13)."}}},"QuotaLook":{"type":"object","description":"A look in a partner’s stock, with the pieces left (since 2.13).","required":["id","name","kind","quantity"],"properties":{"id":{"type":"string","description":"The look’s ID; pass it as `itemId` when giving it."},"name":{"type":"string","description":"The look’s name."},"kind":{"type":"string","enum":["frame","background","card"],"description":"What kind of look it is."},"quantity":{"type":"integer","description":"How many pieces are left."}}},"QuotaGift":{"type":"object","description":"A gift from the quota.","required":["item","quantity","itemId","recipient","createdAt"],"properties":{"item":{"type":"string","enum":["plan","sparks","shop"],"description":"What was given."},"quantity":{"type":"integer","description":"How much."},"itemId":{"type":["string","null"],"description":"The look given when `item` is `shop`; otherwise `null`."},"recipient":{"$ref":"#/components/schemas/Actor","description":"To whom."},"createdAt":{"type":"integer","description":"When."}}},"MediaItem":{"type":"object","description":"A GIF or video from the media library (since 2.14).","required":["id","kind","name","keywords","width","height","seconds","url","poster","uploader","mine","shared","anywhere","embed"],"properties":{"id":{"type":"string","description":"The ID; for `media` when posting."},"kind":{"type":"string","enum":["gif","video"],"description":"GIF or video."},"name":{"type":"string","description":"The name."},"keywords":{"type":"string","description":"The keywords, in lowercase."},"width":{"type":"integer","description":"Width in pixels."},"height":{"type":"integer","description":"Height in pixels."},"seconds":{"type":"integer","description":"Length in seconds; `0` for GIFs."},"url":{"type":"string","description":"The MP4 file, relative to this instance. Load it with the key in the header."},"poster":{"type":"string","description":"The preview image, also with the key."},"uploader":{"$ref":"#/components/schemas/Actor","description":"Who uploaded it."},"mine":{"type":"boolean","description":"Whether it is yours."},"shared":{"type":"boolean","description":"Whether it is shared with everyone on tellmelo."},"anywhere":{"type":"boolean","description":"Whether it may appear on other websites too."},"embed":{"oneOf":[{"$ref":"#/components/schemas/Embed"},{"type":"null"}],"description":"The addresses for other websites; `null` while it isn’t allowed there."}}},"Embed":{"type":"object","description":"The addresses for other websites. They work without a key.","required":["page","file","poster","code"],"properties":{"page":{"type":"string","description":"The player for an `<iframe>`."},"file":{"type":"string","description":"The MP4 file for a player of your own."},"poster":{"type":"string","description":"The preview image."},"code":{"type":"string","description":"The finished code to embed it."}}},"UploadStarted":{"type":"object","description":"An upload that has started.","required":["upload","piece"],"properties":{"upload":{"type":"string","description":"The ID of this upload."},"piece":{"type":"integer","description":"The largest a piece may be, in bytes."}}},"UploadPiece":{"type":"object","description":"A piece that arrived.","required":["received","item"],"properties":{"received":{"type":"integer","description":"How many bytes have arrived."},"item":{"oneOf":[{"$ref":"#/components/schemas/MediaItem"},{"type":"null"}],"description":"After the last piece the new GIF or video, otherwise `null`."}}},"Created":{"type":"object","description":"The answer of a write that created something.","required":["id","scheduledFor","deleteAt"],"properties":{"id":{"type":"string","description":"The id of what was created."},"scheduledFor":{"type":["integer","null"],"description":"When it appears, if publishing was scheduled (otherwise `null`)."},"deleteAt":{"type":["integer","null"],"description":"When it deletes itself, if that was set (otherwise `null`)."}}},"DropCreated":{"type":"object","description":"The response when a post with gifts was created.","required":["id","funding"],"properties":{"id":{"type":"string","description":"The id of the new post."},"funding":{"type":"string","enum":["free","quota"],"description":"How the gifts are paid for."}}},"Made":{"type":"object","description":"What was just created or changed.","required":["id"],"properties":{"id":{"type":"string","description":"The `id`; for an invitation link its code."}}},"Ok":{"type":"object","description":"The answer of a write that has nothing to hand back.","required":["ok"],"properties":{"ok":{"type":"boolean","description":"Always `true`."}}},"Error":{"type":"object","required":["error","message"],"properties":{"error":{"type":"string","description":"A fixed code. Compare against this."},"message":{"type":"string","description":"A sentence for a person. Do not compare against this."}}}},"responses":{"Unauthorized":{"description":"The key is missing or not valid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Forbidden":{"description":"The key is not allowed to do this.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"NotFound":{"description":"There is nothing at this address.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"RateLimited":{"description":"Too many requests in one minute.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"security":[{"apiKey":["read"]}]}