Usuários (Admin)
Estas rotas leem e editam qualquer conta na instância. Uma conta possui mais campos aqui do que o recurso público de Usuários retorna, incluindo seus detalhes de contato, seus endereços de rede e seu estado no ciclo de vida.
Cada grupo de campos mutáveis tem sua própria rota, sua própria ACL e sua própria ação de auditoria, portanto, não há uma atualização combinada.
Toda operação nesta página registra uma entrada de auditoria de Admin, incluindo leituras. Obter usuário Admin atual é a exceção e não registra nada. POST /v1/admin/users/{user_id}/avatar-block aborda o caminho de um usuário, mas pertence a Listas de bloqueio (Blocklists).
Objeto de usuário Admin
Seção intitulada “Objeto de usuário Admin”A visualização administrativa completa de uma conta. Ela tem todas as flags armazenadas, os campos privados do ciclo de vida e os campos de contato e rede que o objeto de usuário público nunca expõe.
Quando o chamador não possui user:view:email, user:view:dob ou user:view:ip, o Decoding Chat oculta os campos que a ACL ausente protege e ainda retorna todas as chaves, de modo que o formato do objeto é idêntico para todos os chamadores.
Estrutura
Seção intitulada “Estrutura”| Campo | Tipo | Descrição |
|---|---|---|
| id | snowflake | O ID da conta |
| username | string | O nome de usuário da conta, exclusivo apenas em conjunto com seu discriminador (1 a 32 caracteres) |
| discriminator1 | integer | Discriminador de 0 a 9999, sem preenchimento |
| global_name | ?string | O nome de exibição da conta ou nulo quando não definido |
| bot | boolean | Se a conta é um bot |
| system | boolean | Se a conta é uma conta de sistema oficial |
| flags2 | string | Flags de conta como uma string decimal não assinada de 64 bits |
| premium_flags | integer | Flags premium |
| avatar | ?string | O hash do avatar ou nulo quando a conta não tiver nenhum |
| banner | ?string | O hash do banner de perfil ou nulo quando a conta não tiver nenhum |
| bio | ?string | A biografia do perfil ou nula quando não definida |
| pronouns | ?string | Os pronomes do perfil ou nulos quando não definidos |
| accent_color | ?integer | A cor de destaque do perfil empacotada em um número inteiro ou nula quando não definida |
| email3 | ?string | O endereço de e-mail registrado ou nulo quando a conta não tiver nenhum |
| email_verified3 | boolean | Se o endereço registrado foi verificado |
| email_bounced3 | boolean | Se a entrega para o endereço registrado retornou com erro grave (hard bounce) |
| has_verified_phone | boolean | Se a conta é tratada como tendo concluÃdo a verificação por telefone |
| date_of_birth4 | ?string | A data de nascimento no formato YYYY-MM-DD ou nula quando nenhuma estiver armazenada |
| locale | ?string | A localidade (locale) salva ou nula quando a conta nunca tiver definido uma |
| premium_type | ?integer | Tipo premium |
| premium_since | ?ISO8601 timestamp | O horário em que a assinatura premium começou ou nulo quando a conta não tiver nenhuma |
| premium_until | ?ISO8601 timestamp | O horário em que a assinatura premium expira ou nulo quando a conta não tiver nenhuma |
| premium_grace_ends_at | ?ISO8601 timestamp | O horário em que o perÃodo de carência de pagamento termina ou nulo quando nenhum perÃodo de carência estiver em andamento |
| premium_lifetime_sequence | ?integer | O número de sequência da compra vitalÃcia ou nulo quando a conta não possuir nenhuma |
| suspicious_activity_flags | integer | Flags de atividade suspeita |
| phone_verification_deferred5 | boolean | Se um requisito de telefone armazenado é adiado até que a conta entre em uma comunidade descobrÃvel ou grande |
| temp_banned_until6 | ?ISO8601 timestamp | O horário em que o banimento expira ou nulo quando não houver banimento |
| pending_deletion_at | ?ISO8601 timestamp | O horário em que a exclusão programada é executada ou nulo quando nenhuma estiver programada |
| pending_bulk_message_deletion_at7 | ?ISO8601 timestamp | O horário em que a exclusão programada de mensagens em massa da própria conta é executada |
| deletion_reason_code | ?integer | Motivo da exclusão |
| deletion_public_reason | ?string | O motivo exibido ao titular da conta ou nulo quando nenhum foi fornecido |
| acls8 | array[string] | ACLs de Admin efetivas, com no máximo 111 entradas |
| traits9 | array[string] | Os rótulos de operador de formato livre definidos na conta, com no máximo 100 entradas |
| has_totp10 | boolean | Se um autenticador TOTP está registrado |
| authenticator_types10 | array[integer] | Tipos de autenticador registrados, com no máximo 10 entradas |
| last_active_at | ?ISO8601 timestamp | O horário da última atividade registrada ou nulo quando nenhuma for registrada |
| last_active_ip11 | ?string | O endereço IP de onde a conta esteve ativa pela última vez |
| last_active_ip_reverse11 12 | ?string | O nome DNS reverso desse endereço IP |
| last_active_location11 12 | ?string | A localização aproximada desse endereço IP |
1 Um número JSON sem preenchimento aqui, diferente da string discriminator com preenchimento zero do Resumo de usuário Admin e do Usuário resolvido Admin incorporado em outros objetos Admin
2 Serializado como uma string decimal
3 Requer user:view:email. Sem isso, o email é nulo enquanto email_verified e email_bounced são ambos falsos, independentemente do estado armazenado, de modo que uma conta não verificada e uma oculta são indistinguÃveis
4 Requer user:view:dob e, sem isso, o campo é nulo
5 Derivado do bit 1 << 16 de suspicious_activity_flags, que fica fora do registro de flags de atividade suspeita
6 Definido por Banir usuário para ambos os modos de banimento. Uma expiração que já passou é relatada como nula, de modo que um banimento temporário decorrido é lido da mesma forma que nenhum banimento
7 Gravado quando o titular da conta agenda a exclusão de suas próprias mensagens em massa e limpo por Cancelar exclusão agendada de mensagens
8 O conjunto gravado por Definir ACLs de usuário, retornado na ordem armazenada. Este conjunto sozinho decide se a conta pode alcançar a API Admin, e a flag de conta STAFF account flag não tem nenhum papel nisso
9 Classificado em ordem crescente, diferente de acls
10 Nunca ocultado e retornado na Ãntegra a qualquer chamador que a operação tenha admitido
11 Requer user:view:ip e, sem isso, o campo é nulo e nenhuma pesquisa de rede é tentada
12 Resolvido ao vivo de last_active_ip para cada resposta e nulo quando a pesquisa falha ou não retorna nada. O resultado do DNS reverso é armazenado em cache por um dia
Exemplo
Seção intitulada “Exemplo”{ "id": "1493004551122763776", "username": "subject", "discriminator": 7, "global_name": null, "bot": false, "system": false, "flags": "8796093022208", "premium_flags": 0, "avatar": "a1b2c3d4e5f60718293a4b5c6d7e8f90", "email": "subject@example.com", "email_verified": true, "email_bounced": false, "has_verified_phone": false, "date_of_birth": "1998-03-21", "suspicious_activity_flags": 0, "phone_verification_deferred": false, "temp_banned_until": null, "pending_deletion_at": null, "deletion_reason_code": null, "acls": [], "traits": ["early-signup"], "has_totp": true, "authenticator_types": [1, 2], "last_active_at": "2026-08-30T21:04:02.771000+00:00", "last_active_ip": "203.0.113.24", "last_active_ip_reverse": "host24.example.com", "last_active_location": "Stockholm, Sweden"}Flags de conta
Seção intitulada “Flags de conta”O campo flags do objeto de usuário Admin é um campo de bits de 64 bits serializado como uma string decimal não assinada. Ele contém todas as flags armazenadas, incluindo aquelas que a API HTTP deixa de fora do seu subconjunto público.
| Valor | Nome | Descrição |
|---|---|---|
| 1 << 0 | STAFF | A conta é de um membro da equipe |
| 1 << 2 | PARTNER | A conta é um parceiro |
| 1 << 3 | BUG_HUNTER | A conta é um caçador de bugs |
| 1 << 4 | FRIENDLY_BOT | O bot aceita solicitações de amizade de usuários |
| 1 << 5 | FRIENDLY_BOT_MANUAL_APPROVAL | O bot requer aprovação manual para solicitações de amizade |
| 1 << 6 | SPAMMER | A conta está sinalizada como um spammer |
| 1 << 33 | HIGH_GLOBAL_RATE_LIMIT | A conta possui limites de taxa globais elevados |
| 1 << 34 | DELETED | A conta foi excluÃda |
| 1 << 35 | DISABLED_SUSPICIOUS_ACTIVITY | A conta está desativada por atividade suspeita |
| 1 << 36 | SELF_DELETED | A conta foi excluÃda pelo próprio usuário |
| 1 << 38 | DISABLED | A conta está desativada |
| 1 << 39 | HAS_SESSION_STARTED | A conta iniciou uma sessão |
| 1 << 47 | RATE_LIMIT_BYPASS | A conta pode ignorar os limites de taxa |
| 1 << 48 | REPORT_BANNED | A conta está banida de fazer denúncias |
| 1 << 49 | VERIFIED_NOT_UNDERAGE | A conta está verificada como não sendo de menor de idade |
| 1 << 51 | HAS_DISMISSED_PREMIUM_ONBOARDING | A conta dispensou a integração premium |
| 1 << 53 | APP_STORE_REVIEWER | A conta pertence a um revisor de loja de aplicativos |
| 1 << 57 | STAFF_HIDDEN | O status de equipe está oculto nas flags públicas |
| 1 << 60 | AGE_VERIFIED_ADULT | A conta teve a maioridade verificada por meio de verificação de cartão |
| 1 << 61 | FORCE_INBOUND_PHONE_VERIFICATION | A conta é forçada a passar pela verificação de telefone de entrada, independentemente do prefixo |
| 1 << 62 | NOT_SUSPICIOUS | A conta está permanentemente isenta de sinalização automática de atividades suspeitas |
Flags premium
Seção intitulada “Flags premium”| Valor | Nome | Descrição |
|---|---|---|
| 1 << 0 | DISCRIMINATOR | A conta tem um discriminador premium |
| 1 << 1 | BADGE_HIDDEN | O emblema premium está oculto |
| 1 << 2 | BADGE_MASKED | O emblema premium está mascarado |
| 1 << 3 | BADGE_TIMESTAMP_HIDDEN | O carimbo de data/hora do emblema premium está oculto |
| 1 << 4 | BADGE_SEQUENCE_HIDDEN | A sequência do emblema premium está oculta |
| 1 << 5 | PERKS_SANITIZED | As vantagens premium são higienizadas |
| 1 << 6 | PURCHASE_DISABLED | A compra premium está desativada |
| 1 << 7 | ENABLED_OVERRIDE | O status premium tem uma substituição ativada |
| 1 << 8 | PERKS_DISABLED | As vantagens premium estão temporariamente desativadas |
Tipos premium
Seção intitulada “Tipos premium”| Valor | Nome | Descrição |
|---|---|---|
| 0 | NONE | Nenhuma assinatura premium |
| 1 | SUBSCRIPTION | Assinatura premium ativa |
| 2 | LIFETIME | Assinatura premium vitalÃcia |
Flags de atividade suspeita
Seção intitulada “Flags de atividade suspeita”Um campo de bits de 32 bits de requisitos de verificação aplicados a uma conta. Atualizar flags de atividade suspeita e Desativar usuário por atividade suspeita ambos gravam o valor completo, de modo que um bit que a solicitação omita é limpo.
| Valor | Nome | Descrição |
|---|---|---|
| 1 << 0 | REQUIRE_VERIFIED_EMAIL1 | Requer um e-mail verificado |
| 1 << 1 | REQUIRE_REVERIFIED_EMAIL1 | Requer um e-mail reverificado |
| 1 << 2 | REQUIRE_VERIFIED_PHONE2 | Requer um telefone verificado |
| 1 << 3 | REQUIRE_REVERIFIED_PHONE3 | Requer um telefone reverificado |
| 1 << 4 | REQUIRE_VERIFIED_EMAIL_OR_VERIFIED_PHONE1 | Requer e-mail verificado ou telefone verificado |
| 1 << 5 | REQUIRE_REVERIFIED_EMAIL_OR_VERIFIED_PHONE1 | Requer e-mail reverificado ou telefone verificado |
| 1 << 6 | REQUIRE_VERIFIED_EMAIL_OR_REVERIFIED_PHONE1 | Requer e-mail verificado ou telefone reverificado |
| 1 << 7 | REQUIRE_REVERIFIED_EMAIL_OR_REVERIFIED_PHONE1 | Requer e-mail reverificado ou telefone reverificado |
| 1 << 8 | REQUIRE_INBOUND_PHONE_VERIFICATION2 | Requer verificação de SMS de entrada, onde o titular da conta envia um texto com um código para o número SMS de entrada da instância |
1 Limpo automaticamente sempre que o e-mail da conta for verificado, seja por meio de verificação comum ou por meio de Verificar e-mail do usuário
2 Limpo automaticamente por Atualizar verificação de telefone do usuário quando define has_verified_phone como verdadeiro, junto com o bit de adiamento 1 << 16
3 Adiável junto com REQUIRE_VERIFIED_PHONE. Atualizar verificação de telefone do usuário deixa este definido
O bit 1 << 16 fica fora desse registro. Ele adia um requisito de telefone até que a conta se junte a uma comunidade descobrÃvel ou grande, e o objeto de usuário Admin relata isso como phone_verification_deferred. Atualizar flags de atividade suspeita e Desativar usuário por atividade suspeita limitam flags apenas a um número inteiro não negativo de 32 bits e nenhum mascara o valor enviado, portanto, uma solicitação com esse bit o define diretamente.
Motivos da exclusão
Seção intitulada “Motivos da exclusão”| Valor | Nome | Descrição |
|---|---|---|
| 1 | USER_REQUESTED1 | O titular da conta solicitou a exclusão |
| 2 | OTHER | Outro motivo |
| 3 | SPAM | Spam |
| 4 | CHEATING_OR_EXPLOITATION | Trapaça ou exploração |
| 5 | COORDINATED_RAIDING | Raiding coordenado |
| 6 | AUTOMATION_OR_SELFBOT | Uso de automação ou selfbot |
| 7 | NONCONSENSUAL_SEXUAL_CONTENT | Conteúdo sexual não consensual |
| 8 | SCAM_OR_SOCIAL_ENGINEERING | Golpe ou engenharia social |
| 9 | CHILD_SEXUAL_CONTENT | Conteúdo sexual infantil |
| 10 | PRIVACY_VIOLATION_OR_DOXXING | Violação de privacidade ou doxxing |
| 11 | HARASSMENT_OR_BULLYING | Assédio ou bullying |
| 12 | PAYMENT_FRAUD | Fraude de pagamento |
| 13 | CHILD_SAFETY_VIOLATION | Violação de segurança infantil |
| 14 | BILLING_DISPUTE_OR_ABUSE | Disputa ou abuso de faturamento |
| 15 | UNSOLICITED_EXPLICIT_CONTENT | Conteúdo explÃcito não solicitado |
| 16 | GRAPHIC_VIOLENCE | Violência gráfica |
| 17 | BAN_EVASION | Evasão de banimento |
| 18 | TOKEN_OR_CREDENTIAL_SCAM | Golpe de token ou credencial |
| 19 | INACTIVITY | Inatividade |
| 20 | HATE_SPEECH_OR_EXTREMIST_CONTENT | Discurso de ódio ou conteúdo extremista |
| 21 | MALICIOUS_LINKS_OR_MALWARE | Links maliciosos ou malware |
| 22 | IMPERSONATION_OR_FAKE_IDENTITY | Falsidade ideológica ou identidade falsa |
1 O único valor que reduz o atraso de agendamento mÃnimo para 14 dias e suprime a lista de bloqueio de identificadores e a resolução automática de relatórios descritos em Agendar exclusão de usuário
Um valor de solicitação reason_code fora deste registro falha na validação do corpo com 400 INVALID_FORM_BODY.
Campos de perfil
Seção intitulada “Campos de perfil”Os valores que Limpar campos de perfil do usuário aceita em fields.
| Valor | Descrição |
|---|---|
| avatar | Imagem de avatar do perfil |
| banner | Imagem de banner do perfil |
| bio | Biografia do perfil |
| pronouns | Pronomes do perfil |
| global_name | Nome de exibição |
Categorias de relacionamento
Seção intitulada “Categorias de relacionamento”| Valor | Descrição |
|---|---|
| friend | Uma amizade mútua |
| incoming_request | Um pedido de amizade que a conta recebeu |
| outgoing_request | Um pedido de amizade que a conta enviou |
| blocked | Uma conta que esta conta bloqueou |
Remover uma amizade ou pedido de amizade remove-o para ambas as contas. Remover um bloqueio afeta apenas a conta que o definiu.
Objeto de sessão de usuário Admin
Seção intitulada “Objeto de sessão de usuário Admin”Uma entrada para cada sessão de autenticação de uma conta. As sessões encerradas permanecem listadas com deleted_at definido. Nenhuma operação retorna o token de sessão.
Estrutura
Seção intitulada “Estrutura”| Campo | Tipo | Descrição |
|---|---|---|
| session_id_hash | string | O hash codificado em base64url do ID da sessão (8 a 256 caracteres) |
| created_at | ISO8601 timestamp | O horário em que a sessão foi criada |
| approx_last_used_at | ISO8601 timestamp | O horário aproximado em que a sessão foi usada pela última vez |
| client_ip1 | string | O endereço IP a partir do qual a sessão foi criada |
| client_ip_reverse1 2 | ?string | O nome DNS reverso desse endereço IP |
| client_os3 | ?string | O sistema operacional do cliente derivado do user agent armazenado |
| client_platform3 | ?string | A plataforma do cliente derivada do user agent armazenado |
| client_location1 2 | ?string | A localização aproximada desse endereço IP |
| deleted_at | ?ISO8601 timestamp | O horário em que a sessão foi encerrada ou nulo enquanto ainda estiver ativa |
1 Requer user:view:ip. Sem isso, o client_ip é a string literal [redacted], ambos os campos derivados são nulos e nenhuma pesquisa de rede é tentada
2 Resolvido ao vivo para cada resposta e nulo para essa entrada quando sua própria pesquisa falha
3 Derivado do user agent armazenado no tempo de leitura, então uma sessão registrada sem um relata nulo para ambos
Exemplo
Seção intitulada “Exemplo”{ "session_id_hash": "Zm9vYmFyLXNlc3Npb24taGFzaC1leGFtcGxl", "created_at": "2026-07-02T11:31:09.400000+00:00", "approx_last_used_at": "2026-08-30T20:58:14.120000+00:00", "client_ip": "203.0.113.24", "client_ip_reverse": "host24.example.com", "client_os": "Windows", "client_platform": "Desktop", "client_location": "Stockholm, Sweden", "deleted_at": null}Objeto de usuário resolvido Admin
Seção intitulada “Objeto de usuário resolvido Admin”O resumo da conta incorporado no objeto de canal de mensagem direta Admin e no objeto de relacionamento Admin. É o Resumo de usuário Admin que as entradas de auditoria incorporam, com avatar adicionado.
Estrutura
Seção intitulada “Estrutura”| Campo | Tipo | Descrição |
|---|---|---|
| id | snowflake | O ID da conta |
| username | string | O nome de usuário da conta |
| discriminator1 | string | O discriminador de quatro dÃgitos da conta |
| global_name | ?string | O nome de exibição da conta ou nulo quando não definido |
| avatar | ?string | O hash do avatar ou nulo quando a conta não tiver nenhum |
1 Preenchido à esquerda com zeros até quatro dÃgitos, ao contrário do número inteiro discriminator sem preenchimento do Objeto de usuário Admin
Exemplo
Seção intitulada “Exemplo”{ "id": "1493004551122763776", "username": "kelsier", "discriminator": "0042", "global_name": "Kelsier", "avatar": "a1b2c3d4e5f60718293a4b5c6d7e8f90"}Objeto de canal de mensagem direta Admin
Seção intitulada “Objeto de canal de mensagem direta Admin”Uma entrada para cada canal de mensagem direta ou de mensagem direta em grupo que a conta participou. Os nomes dos campos diferem do objeto de canal público.
Estrutura
Seção intitulada “Estrutura”| Campo | Tipo | Descrição |
|---|---|---|
| channel_id | snowflake | O ID do canal |
| channel_type | ?integer | Tipo de canal ou nulo quando o registro do canal não estiver disponÃvel |
| channel_nsfw | ?boolean | Se o canal tem restrição de idade ou nulo quando o registro do canal não estiver disponÃvel |
| guild_nsfw_level1 | ?integer | NÃvel NSFW da guilda proprietária |
| recipient_ids | array[snowflake] | Os IDs dos destinatários do canal, com no máximo 100 entradas |
| recipients2 | array[Objeto de usuário resolvido Admin] | As contas de destinatário resolvidas, com no máximo 100 entradas |
| last_message_id | ?snowflake | O ID da mensagem mais recente ou nulo quando o canal estiver vazio |
| is_open | boolean | Se o canal está aberto no cliente da conta de destino |
| name | ?string | O nome do grupo ou nulo quando sem nome |
| icon | ?string | O hash do Ãcone do grupo ou nulo quando o grupo não tiver nenhum |
| owner_id | ?snowflake | O ID do proprietário do grupo ou nulo para uma mensagem direta um-para-um |
1 Sempre nulo
2 Contém apenas os destinatários cujas contas ainda existem, portanto pode ser menor que recipient_ids
Exemplo
Seção intitulada “Exemplo”{ "channel_id": "1496118820043030528", "channel_type": 3, "channel_nsfw": false, "guild_nsfw_level": null, "recipient_ids": ["1493004551122763776", "1489200013322551296"], "recipients": [], "last_message_id": "1500992244771848192", "is_open": true, "name": "Weekend plans", "icon": null, "owner_id": "1493004551122763776"}Objeto de relacionamento Admin
Seção intitulada “Objeto de relacionamento Admin”Estrutura
Seção intitulada “Estrutura”| Campo | Tipo | Descrição |
|---|---|---|
| target_user_id | snowflake | O ID da outra conta |
| category | string | Categoria de relacionamento |
| nickname | ?string | O apelido que a conta atribuiu à outra parte |
| since | ?ISO8601 timestamp | O horário em que o relacionamento foi estabelecido ou nulo quando não registrado |
| target1 | ?Objeto de usuário resolvido Admin | A outra conta resolvida |
1 Nulo quando a outra conta não existir mais, enquanto target_user_id permanecer presente
Exemplo
Seção intitulada “Exemplo”{ "target_user_id": "1489200013322551296", "category": "friend", "nickname": null, "since": "2026-04-18T14:22:51.006000+00:00", "target": { "id": "1489200013322551296", "username": "operator", "discriminator": "0042", "global_name": "Operator" }}Objeto de log de alterações de usuário Admin
Seção intitulada “Objeto de log de alterações de usuário Admin”Uma alteração registrada no endereço de e-mail da conta, no estado de verificação do telefone ou no nome de usuário e no discriminador. As próprias alterações do titular da conta aparecem aqui, bem como as feitas por Alterar nome de usuário e Alterar e-mail do usuário.
Estrutura
Seção intitulada “Estrutura”| Campo | Tipo | Descrição |
|---|---|---|
| event_id1 | string | O ID da entrada de alteração como uma string decimal não assinada de 64 bits |
| field | string | O campo que foi alterado, um dos seguintes: email, has_verified_phone ou fluxer_tag |
| old_value2 | ?string | O valor antes da alteração ou nulo quando o campo não estava definido |
| new_value2 | ?string | O valor após a alteração ou nulo quando o campo foi limpo |
| reason3 | ?string | O motivo registrado para a alteração ou nulo quando não registrado |
| actor_user_id | ?snowflake | O ID do Admin atuante ou nulo para uma alteração originada pelo usuário |
| event_at | ISO8601 timestamp | O horário em que a alteração foi registrada |
1 Retornado como page_token para continuar a navegação. Uma entrada armazenada sem seu próprio ID de evento relata o ID da conta em vez disso
2 Uma entrada de email lida sem user:view:email mantém a entrada e substitui ambos os campos de valor pela string literal [redacted]. Um valor ausente é nulo
3 Uma alteração de Admin registra o valor literal admin_action
Exemplo
Seção intitulada “Exemplo”{ "event_id": "1500992244771848192", "field": "email", "old_value": "[redacted]", "new_value": "[redacted]", "reason": "admin_action", "actor_user_id": "1489200013322551296", "event_at": "2026-08-14T07:55:31.882000+00:00"}Objeto de entrada de trituração de mensagens
Seção intitulada “Objeto de entrada de trituração de mensagens”Estrutura
Seção intitulada “Estrutura”| Campo | Tipo | Descrição |
|---|---|---|
| channel_id | snowflake | O ID do canal no qual a mensagem foi enviada |
| message_id | snowflake | O ID da mensagem a ser triturada |
Exemplo
Seção intitulada “Exemplo”{ "channel_id": "1496118820043030528", "message_id": "1500992244771848192"}Listar usuários
Seção intitulada “Listar usuários”GET/v1/admin/usersLista e pesquisa contas. Requer user:lookup e user:view:email ou user:view:ip para os seletores marcados abaixo. A resposta tem uma matriz de objetos de usuário Admin e um total.
O Decoding Chat honra exatamente um seletor, nesta ordem de precedência: user_id, resolve, email, last_active_ip, então a pesquisa indexada q. Um parâmetro de precedência mais baixa enviado ao lado de um de precedência mais alta é ignorado e a solicitação ainda é bem-sucedida. Uma solicitação sem seletor executa a pesquisa indexada com uma consulta vazia.
Parâmetros de consulta
Seção intitulada “Parâmetros de consulta”| Campo | Tipo | Descrição |
|---|---|---|
| user_id?1 | array[snowflake] | IDs exatos de conta, com no máximo 100 valores |
| resolve?2 | string | Um identificador exato para resolver (1 a 1024 caracteres) |
| email?3 | string | Endereço de e-mail registrado exato (1 a 320 caracteres) |
| last_active_ip?4 | string | Endereço IP exato ativo pela última vez (1 a 64 caracteres) |
| q?5 | string | Consulta indexada de texto livre (1 a 1024 caracteres) |
| limit?6 | integer | Máximo de contas a retornar (1 a 200, padrão 50) |
| offset?6 | integer | Número de resultados a serem ignorados (0 a 100000, padrão 0) |
1 Repita o parâmetro para passar mais de um valor. A resposta é não ordenada e não tem entrada para um ID que não corresponde a nenhuma conta, portanto, um cliente corresponde a cada conta retornada por seu id
2 Resolve no máximo uma conta, e um valor contendo @ requer user:view:email. Um valor não correspondente retorna uma matriz vazia
3 Correspondido exatamente após o corte, retorna no máximo uma conta e requer user:view:email
4 Correspondido exatamente após o corte com o último endereço ativo armazenado da conta, de modo que uma sub-rede ou um endereço parcial não corresponde a nada. Requer user:view:ip
5 Fornecido pelo Ãndice de pesquisa de usuários. Uma instância sem back-end de pesquisa configurado retorna 403 FEATURE_TEMPORARILY_DISABLED
6 Honrado pelos seletores last_active_ip e q. Os seletores user_id, resolve e email ignoram ambos
O Decoding Chat escolhe a pesquisa de resolve pelo formato do valor. Um valor username#discriminator resolve a tag, um valor que é totalmente composto por dÃgitos resolve o ID da conta e um valor contendo @ resolve o endereço de e-mail. Todos os outros valores resolvem um ID de assinatura Stripe.
Um valor q totalmente composto por dÃgitos também resolve exatamente aquele ID de conta e o coloca em primeiro lugar, mesmo que o Ãndice de pesquisa não o tenha correspondido, desde que o offset seja zero. Esse hit direto aumenta o total em um quando o Ãndice não o retornou.
Corpo da resposta
Seção intitulada “Corpo da resposta”| Campo | Tipo | Descrição |
|---|---|---|
| users | array[Objeto de usuário Admin] | As contas nesta página |
| total1 | integer | O número de contas que o seletor correspondeu |
1 Os seletores user_id e resolve relatam o comprimento de users, portanto, total nunca excede a página retornada para esses dois
Resposta
Seção intitulada “Resposta”| Status | Corpo | Condição |
|---|---|---|
| 2001 | corpo da resposta | As contas foram retornadas |
| 403 | resposta de erro | MISSING_ACL, pois o seletor honrado requer user:view:email ou user:view:ip |
| 403 | resposta de erro | FEATURE_TEMPORARILY_DISABLED, pois a pesquisa indexada foi executada em uma instância sem back-end de pesquisa |
1 Um seletor que não corresponde a nada retorna uma matriz users vazia e um total zero
Efeitos colaterais
Seção intitulada “Efeitos colaterais”A operação registra uma entrada de auditoria de Admin com ação search_users, tipo de alvo user e ID do alvo 0. As chaves de metadados são selector, result_count para as contas em users e total. O selector é o seletor honrado, um dentre user_id, resolve, email, last_active_ip ou search para a pesquisa indexada.
O seletor user_id adiciona user_id_count para o número de IDs fornecidos e user_id quando exatamente um ID é fornecido. Os seletores last_active_ip e search adicionam limit e offset. A pesquisa indexada adiciona has_query como true quando q não está em branco. Os valores de resolve, email, last_active_ip e q não são registrados. Uma solicitação com falha não registra nada.
Limite de taxa
Seção intitulada “Limite de taxa”200 solicitações por minuto para cada usuário autenticado, no bucket admin:lookup.
Obter usuário Admin atual
Seção intitulada “Obter usuário Admin atual”GET/v1/admin/users/@meRetorna a conta com a qual a solicitação foi autenticada, envolvida em um membro user. Requer admin:authenticate.
Cada credencial de Admin possui admin:authenticate, então toda conta que puder acessar a API Admin pode ler esta rota. email, date_of_birth e os campos de IP são retornados sem ocultação, seja qual for a credencial atuante. acls relata o conjunto de ACLs armazenado na conta. Para uma credencial de chave de API Admin, esse conjunto pode ser mais amplo do que o que a própria chave pode usar.
Corpo da resposta
Seção intitulada “Corpo da resposta”| Campo | Tipo | Descrição |
|---|---|---|
| user | Objeto de usuário Admin | A conta com a qual a solicitação foi autenticada |
Resposta
Seção intitulada “Resposta”| Status | Corpo | Condição |
|---|---|---|
| 200 | corpo da resposta | O Admin atual foi retornado |
| 403 | resposta de erro | O tipo de credencial é recusado ou a conta não possui admin:authenticate |
Efeitos colaterais
Seção intitulada “Efeitos colaterais”A operação não registra nenhuma entrada de auditoria de Admin.
Limite de taxa
Seção intitulada “Limite de taxa”200 solicitações por minuto para cada usuário autenticado, no bucket admin:lookup.
Obter usuário
Seção intitulada “Obter usuário”GET/v1/admin/users/{user_id}Retorna uma conta como uma matriz de um único elemento. Requer user:lookup.
Parâmetros de caminho
Seção intitulada “Parâmetros de caminho”| Campo | Tipo | Descrição |
|---|---|---|
| user_id | snowflake | O ID da conta de destino |
Corpo da resposta
Seção intitulada “Corpo da resposta”| Campo | Tipo | Descrição |
|---|---|---|
| users1 | array[Objeto de usuário Admin] | A conta solicitada ou uma matriz vazia |
1 A resposta é o mesmo envelope que Listar usuários retorna para seu seletor user_id, sem o membro total
Resposta
Seção intitulada “Resposta”| Status | Corpo | Condição |
|---|---|---|
| 2001 | corpo da resposta | A pesquisa foi concluÃda |
1 Esta operação não responde 404. Um ID sem conta correspondente retorna 200 com uma matriz users vazia, de modo que um cliente verifica o comprimento da matriz
Uma conta com uma exclusão pendente ou concluÃda ainda é retornada, com seu estado de ciclo de vida visÃvel por meio de pending_deletion_at, deletion_reason_code e deletion_public_reason.
Efeitos colaterais
Seção intitulada “Efeitos colaterais”A operação registra uma entrada de auditoria de Admin com ação get_user, tipo de alvo user, o caminho user_id como ID do alvo e uma chave de metadados found. found é true quando users tem a conta e false quando está vazia.
Limite de taxa
Seção intitulada “Limite de taxa”200 solicitações por minuto para cada usuário autenticado, no bucket admin:lookup.
Alterar nome de usuário
Seção intitulada “Alterar nome de usuário”PATCH/v1/admin/users/{user_id}/usernameSubstitui o nome de usuário, aloca ou reivindica um discriminador e retorna a conta resultante. Requer user:update:username.
Uma conta de destino pode possuir um discriminador personalizado em todas as instâncias auto-hospedadas e em qualquer outra instância apenas quando o limite feature_custom_discriminator resolver para um valor acima de zero para essa conta.
Parâmetros de caminho
Seção intitulada “Parâmetros de caminho”| Campo | Tipo | Descrição |
|---|---|---|
| user_id | snowflake | O ID da conta de destino |
Corpo JSON
Seção intitulada “Corpo JSON”| Campo | Tipo | Descrição |
|---|---|---|
| username1 | string | Nome de usuário substituto (1 a 32 caracteres) |
| discriminator?2 | string | Discriminador solicitado de um a quatro dÃgitos decimais |
1 Cortado antes da validação, restrito a letras, dÃgitos e sublinhados, e rejeitado quando em minúsculas para everyone ou here ou contiver fluxer ou system message
2 Honrado apenas quando a conta de destino puder manter um discriminador personalizado. Em todos os outros casos, incluindo um campo omitido, o Decoding Chat aloca um discriminador livre para o nome de usuário enviado
Corpo da resposta
Seção intitulada “Corpo da resposta”| Campo | Tipo | Descrição |
|---|---|---|
| user | Objeto de usuário Admin | A conta resultante |
Resposta
Seção intitulada “Resposta”| Status | Corpo | Condição |
|---|---|---|
| 200 | corpo da resposta | O nome de usuário foi substituÃdo |
| 400 | resposta de erro | A validação do caminho ou do corpo falha, ou a tag solicitada está ocupada e a solicitação retorna TAG_ALREADY_TAKEN |
| 404 | resposta de erro | UNKNOWN_USER, porque a conta não existe |
TAG_ALREADY_TAKEN também cobre um nome de usuário enviado sem discriminador livre restante e um bloqueio de alocação que a operação não consegue obter dentro de sua espera de 10 segundos.
Efeitos colaterais
Seção intitulada “Efeitos colaterais”Atualização de usuário é emitida para as próprias sessões da conta, e cada guilda da qual a conta é membro recebe Atualização de membro de guilda. O Decoding Chat reindexa o membro em cada guilda indexada em segundo plano, de modo que um resultado de pesquisa de membro possa relatar brevemente a tag anterior.
A alteração é registrada no log de alterações de contato e é retornada por Listar log de alterações do usuário com reason definido como admin_action e actor_user_id definido como o Admin atuante.
A operação registra uma entrada de auditoria de Admin com ação change_username, tipo de alvo user e as chaves de metadados old_username, new_username e discriminator.
Limite de taxa
Seção intitulada “Limite de taxa”100 solicitações por minuto para cada usuário autenticado, no bucket admin:user:modify.
Alterar e-mail do usuário
Seção intitulada “Alterar e-mail do usuário”PATCH/v1/admin/users/{user_id}/emailSubstitui o endereço de e-mail da conta e retorna a conta resultante. Requer user:update:email.
O endereço substituto é armazenado não verificado. Use Verificar e-mail do usuário posteriormente para marcá-lo como verificado, ou Reenviar e-mail de verificação para permitir que o titular da conta o verifique.
Parâmetros de caminho
Seção intitulada “Parâmetros de caminho”| Campo | Tipo | Descrição |
|---|---|---|
| user_id | snowflake | O ID da conta de destino |
Corpo JSON
Seção intitulada “Corpo JSON”| Campo | Tipo | Descrição |
|---|---|---|
| email1 | string | Endereço de e-mail substituto (1 a 254 caracteres) |
1 Normalizado e validado como um endereço de e-mail, mas a própria operação não faz verificação de exclusividade
Corpo da resposta
Seção intitulada “Corpo da resposta”| Campo | Tipo | Descrição |
|---|---|---|
| user | Objeto de usuário Admin | A conta resultante |
Resposta
Seção intitulada “Resposta”| Status | Corpo | Condição |
|---|---|---|
| 200 | corpo da resposta | O endereço de e-mail foi substituÃdo |
| 404 | resposta de erro | UNKNOWN_USER, porque a conta não existe |
Efeitos colaterais
Seção intitulada “Efeitos colaterais”email_verified é definido como falso. O marcador de devolução armazenado sobrevive à alteração, de modo que um endereço substituÃdo em uma conta devolvida permanece marcado como devolvido até que uma verificação o limpe.
Nenhum aviso é enviado ao endereço anterior ou substituto. Atualização de usuário é emitida para as próprias sessões da conta, e nenhuma Atualização de membro de guilda é seguida.
A alteração é registrada no log de alterações de contato e é retornada por Listar log de alterações do usuário, onde ambos os valores são substituÃdos por [redacted] para um chamador sem user:view:email.
A operação registra uma entrada de auditoria de Admin com ação change_email, tipo de alvo user e as chaves de metadados old_email e new_email. O log de auditoria não é ocultado na leitura, portanto, ambos os endereços são visÃveis para qualquer titular de audit_log:view.
Limite de taxa
Seção intitulada “Limite de taxa”100 solicitações por minuto para cada usuário autenticado, no bucket admin:user:modify.
Verificar e-mail do usuário
Seção intitulada “Verificar e-mail do usuário”PUT/v1/admin/users/{user_id}/email-verificationMarca o endereço de e-mail atual da conta como verificado sem um link de confirmação e retorna a conta resultante. Requer user:update:email.
A operação não aceita corpo de solicitação e nunca limpa a verificação, de modo que a única maneira de marcar um endereço como não verificado é substituÃ-lo com Alterar e-mail do usuário.
Parâmetros de caminho
Seção intitulada “Parâmetros de caminho”| Campo | Tipo | Descrição |
|---|---|---|
| user_id | snowflake | O ID da conta de destino |
Corpo da resposta
Seção intitulada “Corpo da resposta”| Campo | Tipo | Descrição |
|---|---|---|
| user | Objeto de usuário Admin | A conta resultante |
Resposta
Seção intitulada “Resposta”| Status | Corpo | Condição |
|---|---|---|
| 2001 | corpo da resposta | O endereço de e-mail foi marcado como verificado |
| 404 | resposta de erro | UNKNOWN_USER, porque a conta não existe |
1 Uma conta que não tem endereço de e-mail armazenado ainda é aceita, e email_verified é definido como verdadeiro enquanto email permanece nulo
Efeitos colaterais
Seção intitulada “Efeitos colaterais”email_verified torna-se verdadeiro e email_bounced torna-se falso. A mesma gravação limpa cada um destes bits de flag de atividade suspeita: REQUIRE_VERIFIED_EMAIL, REQUIRE_REVERIFIED_EMAIL, REQUIRE_VERIFIED_EMAIL_OR_VERIFIED_PHONE, REQUIRE_REVERIFIED_EMAIL_OR_VERIFIED_PHONE, REQUIRE_VERIFIED_EMAIL_OR_REVERIFIED_PHONE e REQUIRE_REVERIFIED_EMAIL_OR_REVERIFIED_PHONE.
Atualização de usuário é emitida para as próprias sessões da conta. A operação registra uma entrada de auditoria de Admin com ação verify_email, tipo de alvo user e uma chave de metadados email com o endereço como estava antes da gravação, ou o literal null quando a conta não tinha nenhum.
Limite de taxa
Seção intitulada “Limite de taxa”100 solicitações por minuto para cada usuário autenticado, no bucket admin:user:modify.
Reenviar e-mail de verificação
Seção intitulada “Reenviar e-mail de verificação”POST/v1/admin/users/{user_id}/verification-emailSolicita um novo e-mail de verificação para a conta. Requer user:update:email. Retorna uma resposta 204 vazia.
Cada endereço pode receber no máximo três e-mails de verificação em quinze minutos, independentemente do limite de taxa do Admin. Mais solicitações retornam 429 sem emitir um token.
Parâmetros de caminho
Seção intitulada “Parâmetros de caminho”| Campo | Tipo | Descrição |
|---|---|---|
| user_id | snowflake | O ID da conta de destino |
Resposta
Seção intitulada “Resposta”| Status | Corpo | Condição |
|---|---|---|
| 204 | vazio | A solicitação foi aceita, independentemente de um e-mail ter sido enviado ou não |
| 4001 | resposta de erro | O parâmetro de caminho não é um snowflake, ou a conta não tem endereço de e-mail |
| 403 | resposta de erro | O tipo de credencial ou avaliação de ACL nega a solicitação, ou BOT_USER_AUTH_ENDPOINT_ACCESS_DENIED quando o destino for um bot |
| 404 | resposta de erro | UNKNOWN_USER, porque a conta não existe |
1 Um endereço ausente retorna INVALID_FORM_BODY com o código de validação USER_DOES_NOT_HAVE_AN_EMAIL_ADDRESS
Efeitos colaterais
Seção intitulada “Efeitos colaterais”Um token de verificação de uso único é armazenado em relação ao ID da conta e seu endereço atual, e o link é enviado por e-mail para esse endereço. O estado de verificação da conta permanece inalterado até que o link seja usado.
A operação registra uma entrada de auditoria de Admin com ação resend_verification_email, tipo de alvo user e uma chave de metadados email. Nenhuma distribuição de gateway é emitida.
Limite de taxa
Seção intitulada “Limite de taxa”100 solicitações por minuto para cada usuário autenticado, no bucket admin:user:modify.
Enviar redefinição de senha
Seção intitulada “Enviar redefinição de senha”POST/v1/admin/users/{user_id}/password-resetCria um token de redefinição de senha e o envia por e-mail para o titular da conta. Requer user:update:email. Retorna uma resposta 204 vazia.
Parâmetros de caminho
Seção intitulada “Parâmetros de caminho”| Campo | Tipo | Descrição |
|---|---|---|
| user_id | snowflake | O ID da conta de destino |
Resposta
Seção intitulada “Resposta”| Status | Corpo | Condição |
|---|---|---|
| 204 | vazio | A solicitação foi aceita, independentemente de um e-mail ter sido enviado ou não |
| 4001 | resposta de erro | O parâmetro de caminho não é um snowflake, ou a conta não tem endereço de e-mail |
| 404 | resposta de erro | UNKNOWN_USER, porque a conta não existe |
1 Um endereço ausente retorna INVALID_FORM_BODY com o código de validação USER_DOES_NOT_HAVE_AN_EMAIL_ADDRESS
Ao contrário de Reenviar e-mail de verificação, esta operação não tem limite de três e-mails por endereço em quinze minutos e aceita uma conta de bot.
Efeitos colaterais
Seção intitulada “Efeitos colaterais”Um token de redefinição de senha de uso único é armazenado no ID da conta e em seu endereço de e-mail atual, e o token é enviado por e-mail para esse endereço. A senha da conta, sessões e outras credenciais permanecem inalteradas até que o titular da conta conclua a redefinição.
A operação registra uma entrada de auditoria de Admin com ação send_password_reset, tipo de alvo user e uma chave de metadados email. Nenhuma distribuição de gateway é emitida.
Limite de taxa
Seção intitulada “Limite de taxa”100 solicitações por minuto para cada usuário autenticado, no bucket admin:user:modify.
Alterar data de nascimento do usuário
Seção intitulada “Alterar data de nascimento do usuário”PATCH/v1/admin/users/{user_id}/date-of-birthSubstitui a data de nascimento armazenada e retorna a conta resultante. Requer user:update:dob.
Parâmetros de caminho
Seção intitulada “Parâmetros de caminho”| Campo | Tipo | Descrição |
|---|---|---|
| user_id | snowflake | O ID da conta de destino |
Corpo JSON
Seção intitulada “Corpo JSON”| Campo | Tipo | Descrição |
|---|---|---|
| date_of_birth1 | string | Data de substituição no formato YYYY-MM-DD |
1 Exatamente dez caracteres correspondentes a YYYY-MM-DD. O campo é obrigatório, portanto não há como limpar uma data de nascimento armazenada por meio desta operação
Corpo da resposta
Seção intitulada “Corpo da resposta”| Campo | Tipo | Descrição |
|---|---|---|
| user | Objeto de usuário Admin | A conta resultante |
Resposta
Seção intitulada “Resposta”| Status | Corpo | Condição |
|---|---|---|
| 200 | corpo da resposta | A data de nascimento foi substituÃda |
| 404 | resposta de erro | UNKNOWN_USER, porque a conta não existe |
Efeitos colaterais
Seção intitulada “Efeitos colaterais”A nova data altera o conteúdo com restrição de idade que a conta pode acessar. Atualização de usuário é emitida para as próprias sessões da conta.
A alteração não é gravada no log de alterações de contato. A operação registra uma entrada de auditoria de Admin com ação change_dob, tipo de alvo user e as chaves de metadados old_dob e new_dob, em que um valor anterior ausente é o literal null.
Limite de taxa
Seção intitulada “Limite de taxa”100 solicitações por minuto para cada usuário autenticado, no bucket admin:user:modify.
Limpar campos de perfil do usuário
Seção intitulada “Limpar campos de perfil do usuário”DELETE/v1/admin/users/{user_id}/profile-fieldsLimpa os campos de perfil nomeados e retorna a conta resultante. Requer user:update:profile.
A limpeza é a única alteração de perfil neste recurso. Nenhuma rota define uma biografia, nome de exibição, avatar ou banner para um novo valor.
Parâmetros de caminho
Seção intitulada “Parâmetros de caminho”| Campo | Tipo | Descrição |
|---|---|---|
| user_id | snowflake | O ID da conta de destino |
Corpo JSON
Seção intitulada “Corpo JSON”| Campo | Tipo | Descrição |
|---|---|---|
| fields1 | array[string] | Campos de perfil para limpar, com no máximo 10 entradas |
1 Obrigatório. Uma matriz vazia é aceita, não limpa nada e ainda registra uma entrada de auditoria. Um valor fora do registro falha na validação do corpo
Corpo da resposta
Seção intitulada “Corpo da resposta”| Campo | Tipo | Descrição |
|---|---|---|
| user | Objeto de usuário Admin | A conta resultante |
Resposta
Seção intitulada “Resposta”| Status | Corpo | Condição |
|---|---|---|
| 200 | corpo da resposta | Os campos nomeados foram limpos |
| 404 | resposta de erro | UNKNOWN_USER, porque a conta não existe |
Efeitos colaterais
Seção intitulada “Efeitos colaterais”Limpar avatar ou banner agenda o ativo anterior para exclusão.
Atualização de usuário é emitida para as próprias sessões da conta, e cada guilda da qual a conta é membro recebe Atualização de membro de guilda quando a operação altera avatar ou global_name.
A operação registra uma entrada de auditoria de Admin com ação clear_fields, tipo de alvo user e uma chave de metadados fields com os nomes enviados unidos por vÃrgulas.
Limite de taxa
Seção intitulada “Limite de taxa”100 solicitações por minuto para cada usuário autenticado, no bucket admin:user:modify.
Definir status de bot do usuário
Seção intitulada “Definir status de bot do usuário”PUT/v1/admin/users/{user_id}/bot-statusMarca a conta como um bot ou como uma conta comum e retorna a conta resultante. Requer user:update:bot_status.
Parâmetros de caminho
Seção intitulada “Parâmetros de caminho”| Campo | Tipo | Descrição |
|---|---|---|
| user_id | snowflake | O ID da conta de destino |
Corpo JSON
Seção intitulada “Corpo JSON”| Campo | Tipo | Descrição |
|---|---|---|
| bot1 | boolean | Se a conta é um bot |
1 Obrigatório. Defini-lo como falso também limpa system na mesma gravação
Corpo da resposta
Seção intitulada “Corpo da resposta”| Campo | Tipo | Descrição |
|---|---|---|
| user | Objeto de usuário Admin | A conta resultante |
Resposta
Seção intitulada “Resposta”| Status | Corpo | Condição |
|---|---|---|
| 200 | corpo da resposta | O status de bot foi definido |
| 4031 | resposta de erro | O tipo de credencial ou a avaliação da ACL negam a solicitação. ACCESS_DENIED quando o alvo mantiver uma ACL de Admin e bot for verdadeiro |
| 404 | resposta de erro | UNKNOWN_USER, porque a conta não existe |
1 Uma conta de equipe (staff) não pode ser convertida em um bot. Limpe seu conjunto de ACLs com Definir ACLs de usuário primeiro
Efeitos colaterais
Seção intitulada “Efeitos colaterais”Atualização de usuário é emitida para as próprias sessões da conta, e cada guilda da qual a conta é membro recebe Atualização de membro de guilda quando a gravação altera bot ou system.
A operação registra uma entrada de auditoria de Admin com ação set_bot_status, tipo de alvo user e uma chave de metadados bot. Limpar system como efeito colateral não registra uma segunda entrada.
Limite de taxa
Seção intitulada “Limite de taxa”100 solicitações por minuto para cada usuário autenticado, no bucket admin:user:modify.
Definir status de sistema do usuário
Seção intitulada “Definir status de sistema do usuário”PUT/v1/admin/users/{user_id}/system-statusMarca a conta como uma conta oficial de sistema ou remove esse marcador e retorna a conta resultante. Requer user:update:bot_status, a mesma ACL que Definir status de bot do usuário.
Parâmetros de caminho
Seção intitulada “Parâmetros de caminho”| Campo | Tipo | Descrição |
|---|---|---|
| user_id | snowflake | O ID da conta de destino |
Corpo JSON
Seção intitulada “Corpo JSON”| Campo | Tipo | Descrição |
|---|---|---|
| system1 | boolean | Se a conta é uma conta de sistema |
1 Obrigatório. Defini-lo como verdadeiro em uma conta que já não é um bot falha na validação
Corpo da resposta
Seção intitulada “Corpo da resposta”| Campo | Tipo | Descrição |
|---|---|---|
| user | Objeto de usuário Admin | A conta resultante |
Resposta
Seção intitulada “Resposta”| Status | Corpo | Condição |
|---|---|---|
| 200 | corpo da resposta | O status de sistema foi definido |
| 404 | resposta de erro | UNKNOWN_USER, porque a conta não existe |
1 O caso não-bot é INVALID_FORM_BODY com o código de validação USER_MUST_BE_A_BOT_TO_BE_MARKED_AS_A_SYSTEM_USER no caminho system
Efeitos colaterais
Seção intitulada “Efeitos colaterais”Atualização de usuário é emitida para as próprias sessões da conta. A operação registra uma entrada de auditoria de Admin com ação set_system_status, tipo de alvo user e uma chave de metadados system.
Limite de taxa
Seção intitulada “Limite de taxa”100 solicitações por minuto para cada usuário autenticado, no bucket admin:user:modify.
Definir ACLs de usuário
Seção intitulada “Definir ACLs de usuário”PUT/v1/admin/users/{user_id}/aclsSubstitui o conjunto de ACLs de Admin mantido pela conta e retorna a conta resultante. Requer acl:set:user.
A matriz enviada substitui totalmente o conjunto armazenado. Uma matriz vazia remove todas as ACLs, o que também remove o acesso à API Admin da conta e deixa todas as chaves da API Admin que a conta criou incapazes de satisfazer qualquer operação.
Parâmetros de caminho
Seção intitulada “Parâmetros de caminho”| Campo | Tipo | Descrição |
|---|---|---|
| user_id | snowflake | O ID da conta de destino |
Corpo JSON
Seção intitulada “Corpo JSON”| Campo | Tipo | Descrição |
|---|---|---|
| acls1 | array[string] | ACLs de Admin de substituição, com no máximo 111 valores |
1 Obrigatório. Um valor fora do registro de ACLs falha na validação do corpo, e um valor repetido é recolhido
Corpo da resposta
Seção intitulada “Corpo da resposta”| Campo | Tipo | Descrição |
|---|---|---|
| user | Objeto de usuário Admin | A conta resultante |
Resposta
Seção intitulada “Resposta”| Status | Corpo | Condição |
|---|---|---|
| 200 | corpo da resposta | O conjunto de ACLs foi substituÃdo |
| 400 | resposta de erro | A validação do caminho ou do corpo falha, incluindo um valor acls fora do registro de ACL |
| 403 | resposta de erro | O tipo de credencial ou a avaliação da ACL negam a solicitação, ou ACCESS_DENIED quando o caminho nomear a conta atuante |
| 404 | resposta de erro | UNKNOWN_USER, porque a conta não existe |
O limite de concessão é avaliado após a conta ser resolvida, de modo que um ID desconhecido falha primeiro com 404.
Efeitos colaterais
Seção intitulada “Efeitos colaterais”O conjunto de ACLs armazenado é substituÃdo e aparece no próximo objeto de usuário Admin. A conta pode alcançar a API Admin exatamente quando o novo conjunto mantiver admin:authenticate ou *. Estreitar o conjunto estreita todas as sessões existentes e chaves de API Admin da conta sem rotacionar nenhuma credencial.
Atualização de usuário é emitida para as próprias sessões da conta. A operação registra uma entrada de auditoria de Admin com ação set_acls, tipo de alvo user e uma chave de metadados acls com os valores enviados unidos por vÃrgulas.
Limite de taxa
Seção intitulada “Limite de taxa”100 solicitações por minuto para cada usuário autenticado, no bucket admin:user:modify.
Definir caracterÃsticas de usuário
Seção intitulada “Definir caracterÃsticas de usuário”PUT/v1/admin/users/{user_id}/traitsSubstitui o conjunto de caracterÃsticas da conta e retorna a conta resultante. Requer user:update:traits.
CaracterÃsticas são rótulos de operador de formato livre que não têm significado de ACL e não concedem nenhuma capacidade.
Parâmetros de caminho
Seção intitulada “Parâmetros de caminho”| Campo | Tipo | Descrição |
|---|---|---|
| user_id | snowflake | O ID da conta de destino |
Corpo JSON
Seção intitulada “Corpo JSON”| Campo | Tipo | Descrição |
|---|---|---|
| traits1 | array[string] | Conjunto de caracterÃsticas de substituição, com no máximo 100 valores de 1 a 128 caracteres |
1 Obrigatório. Uma matriz vazia limpa totalmente o conjunto armazenado e um valor repetido é recolhido
Corpo da resposta
Seção intitulada “Corpo da resposta”| Campo | Tipo | Descrição |
|---|---|---|
| user | Objeto de usuário Admin | A conta resultante |
Resposta
Seção intitulada “Resposta”| Status | Corpo | Condição |
|---|---|---|
| 200 | corpo da resposta | O conjunto de caracterÃsticas foi substituÃdo |
| 404 | resposta de erro | UNKNOWN_USER, porque a conta não existe |
Efeitos colaterais
Seção intitulada “Efeitos colaterais”O conjunto de caracterÃsticas armazenado é substituÃdo e retornado classificado pelo próximo objeto de usuário Admin. Atualização de usuário é emitida para as próprias sessões da conta.
A operação registra uma entrada de auditoria de Admin com ação set_traits e tipo de alvo user. Uma solicitação não vazia tem uma chave de metadados traits com os valores enviados unidos por vÃrgulas, e uma solicitação que limpa o conjunto não tem metadados nenhum.
Limite de taxa
Seção intitulada “Limite de taxa”100 solicitações por minuto para cada usuário autenticado, no bucket admin:user:modify.
Atualizar flags de usuário
Seção intitulada “Atualizar flags de usuário”PATCH/v1/admin/users/{user_id}/flagsAdiciona e remove flags de conta e retorna a conta resultante. Requer user:update:flags.
As adições são aplicadas antes das remoções, de modo que uma flag nomeada em ambas as matrizes acaba sendo apagada. Um bit fora do registro de flags de conta é aplicado inalterado.
Parâmetros de caminho
Seção intitulada “Parâmetros de caminho”| Campo | Tipo | Descrição |
|---|---|---|
| user_id | snowflake | O ID da conta de destino |
Corpo JSON
Seção intitulada “Corpo JSON”| Campo | Tipo | Descrição |
|---|---|---|
| add_flags?1 | array[string] | Valores de flag de conta para adicionar, com no máximo 64 entradas (padrão vazio) |
| remove_flags?1 | array[string] | Valores de flag de conta para remover, com no máximo 64 entradas (padrão vazio) |
1 Um valor de flag de 64 bits como uma string decimal não assinada, como 64. Um valor com vários bits é aplicado como uma máscara
Corpo da resposta
Seção intitulada “Corpo da resposta”| Campo | Tipo | Descrição |
|---|---|---|
| user | Objeto de usuário Admin | A conta resultante |
Resposta
Seção intitulada “Resposta”| Status | Corpo | Condição |
|---|---|---|
| 200 | corpo da resposta | As flags foram atualizadas |
| 404 | resposta de erro | UNKNOWN_USER, porque a conta não existe |
Tarefas em massa aplica a mesma alteração a até 1.000 contas como uma tarefa enfileirada update_user_flags.
Efeitos colaterais
Seção intitulada “Efeitos colaterais”Atualização de usuário é emitida para as próprias sessões da conta. Uma alteração nas flags públicas da conta também envia Atualização de membro da guilda para as guildas da conta.
A operação registra uma entrada de auditoria de Admin com ação update_flags, tipo de alvo user e as chaves de metadados add_flags, remove_flags e new_flags. Uma matriz vazia é omitida do mapa de metadados.
Limite de taxa
Seção intitulada “Limite de taxa”100 solicitações por minuto para cada usuário autenticado, no bucket admin:user:modify.
Atualizar flags premium do usuário
Seção intitulada “Atualizar flags premium do usuário”PATCH/v1/admin/users/{user_id}/premium-flagsAdiciona e remove flags premium e retorna a conta resultante. Requer user:update:flags, a mesma ACL que Atualizar flags de usuário.
As flags premium controlam a exibição do emblema, a substituição do premium, o bloqueio de compras e a higienização de vantagens. Elas não concedem nem revogam uma assinatura.
Parâmetros de caminho
Seção intitulada “Parâmetros de caminho”| Campo | Tipo | Descrição |
|---|---|---|
| user_id | snowflake | O ID da conta de destino |
Corpo JSON
Seção intitulada “Corpo JSON”| Campo | Tipo | Descrição |
|---|---|---|
| add_flags?1 | array[integer] | Valores de flag premium para adicionar, com no máximo 64 entradas (padrão vazio) |
| remove_flags?1 | array[integer] | Valores de flag premium para remover, com no máximo 64 entradas (padrão vazio) |
1 Cada entrada é um valor de flag de 32 bits, como 2. As adições são aplicadas antes das remoções
Corpo da resposta
Seção intitulada “Corpo da resposta”| Campo | Tipo | Descrição |
|---|---|---|
| user | Objeto de usuário Admin | A conta resultante |
Resposta
Seção intitulada “Resposta”| Status | Corpo | Condição |
|---|---|---|
| 200 | corpo da resposta | As flags premium foram atualizadas |
| 404 | resposta de erro | UNKNOWN_USER, porque a conta não existe |
Efeitos colaterais
Seção intitulada “Efeitos colaterais”A exibição do emblema premium reflete as novas flags. Atualização de usuário é emitida para as próprias sessões da conta.
A operação registra uma entrada de auditoria de Admin com ação update_premium_flags, tipo de alvo user e as chaves de metadados add_flags, remove_flags e new_flags.
Limite de taxa
Seção intitulada “Limite de taxa”100 solicitações por minuto para cada usuário autenticado, no bucket admin:user:modify.
Atualizar verificação de telefone do usuário
Seção intitulada “Atualizar verificação de telefone do usuário”PUT/v1/admin/users/{user_id}/phone-verificationDefine se a conta é tratada como tendo concluÃdo a verificação por telefone e retorna a conta resultante. Requer user:update:phone.
Esta operação é a única maneira de definir has_verified_phone de volta para falso uma vez que é verdadeiro.
Parâmetros de caminho
Seção intitulada “Parâmetros de caminho”| Campo | Tipo | Descrição |
|---|---|---|
| user_id | snowflake | O ID da conta de destino |
Corpo JSON
Seção intitulada “Corpo JSON”| Campo | Tipo | Descrição |
|---|---|---|
| has_verified_phone1 | boolean | Se a conta conta como verificada por telefone |
1 Obrigatório. Defini-lo como verdadeiro também limpa as flags de atividade suspeita REQUIRE_VERIFIED_PHONE e REQUIRE_INBOUND_PHONE_VERIFICATION junto com o bit de adiamento 1 << 16, e defini-lo como falso não limpa nenhuma flag
Corpo da resposta
Seção intitulada “Corpo da resposta”| Campo | Tipo | Descrição |
|---|---|---|
| user | Objeto de usuário Admin | A conta resultante |
Resposta
Seção intitulada “Resposta”| Status | Corpo | Condição |
|---|---|---|
| 200 | corpo da resposta | O estado de verificação do telefone foi definido |
| 404 | resposta de erro | UNKNOWN_USER, porque a conta não existe |
REQUIRE_REVERIFIED_PHONE está fora do conjunto limpo, portanto, uma conta sob um requisito de reverificação o mantém após esta operação marcá-lo como verificado.
Efeitos colaterais
Seção intitulada “Efeitos colaterais”Atualização de usuário é emitida para as próprias sessões da conta. A operação registra uma entrada de auditoria de Admin com ação update_has_verified_phone, tipo de alvo user e uma chave de metadados has_verified_phone. Quando as flags de atividade suspeita também foram limpas, a entrada também tem suspicious_activity_flags_before e suspicious_activity_flags_after.
Limite de taxa
Seção intitulada “Limite de taxa”100 solicitações por minuto para cada usuário autenticado, no bucket admin:user:modify.
Atualizar flags de atividade suspeita
Seção intitulada “Atualizar flags de atividade suspeita”PUT/v1/admin/users/{user_id}/suspicious-activity-flagsSubstitui as flags de atividade suspeita da conta e retorna a conta resultante. Requer user:update:suspicious_activity.
A operação define requisitos de verificação sem desativar a conta. Desativar usuário por atividade suspeita também bloqueia a conta.
Parâmetros de caminho
Seção intitulada “Parâmetros de caminho”| Campo | Tipo | Descrição |
|---|---|---|
| user_id | snowflake | O ID da conta de destino |
Corpo JSON
Seção intitulada “Corpo JSON”| Campo | Tipo | Descrição |
|---|---|---|
| flags1 | integer | Flags de atividade suspeita de substituição |
1 Obrigatório. O valor substitui o campo de bits armazenado completo, de modo que um bit omitido é limpo e um valor de zero não define nenhum requisito
Corpo da resposta
Seção intitulada “Corpo da resposta”| Campo | Tipo | Descrição |
|---|---|---|
| user | Objeto de usuário Admin | A conta resultante |
Resposta
Seção intitulada “Resposta”| Status | Corpo | Condição |
|---|---|---|
| 200 | corpo da resposta | As flags foram substituÃdas |
| 404 | resposta de erro | UNKNOWN_USER, porque a conta não existe |
O bit de adiamento 1 << 16 armazenado é preservado apenas quando já estava definido e o valor enviado define os mesmos bits REQUIRE_VERIFIED_PHONE e REQUIRE_REVERIFIED_PHONE do valor armazenado, com pelo menos um deles definido. Qualquer outro valor enviado limpa o bit de adiamento, de modo que qualquer requisito de telefone no valor enviado para de esperar por uma entrada em uma guilda.
Tarefas em massa aplica a mesma alteração a até 1.000 contas como uma tarefa enfileirada update_suspicious_activity_flags.
Efeitos colaterais
Seção intitulada “Efeitos colaterais”Atualização de usuário é emitida para as próprias sessões da conta. O Decoding Chat registra um resultado de risco challenged em relação à conta quando a gravação altera o conjunto e deixa pelo menos uma flag de registro definida.
A operação registra uma entrada de auditoria de Admin com ação update_suspicious_activity_flags, tipo de alvo user e uma chave de metadados flags com o valor enviado. Um bit de adiamento preservado faz com que esse valor difira das flags com as quais a conta termina.
Limite de taxa
Seção intitulada “Limite de taxa”100 solicitações por minuto para cada usuário autenticado, no bucket admin:user:modify.
Desativar usuário por atividade suspeita
Seção intitulada “Desativar usuário por atividade suspeita”PUT/v1/admin/users/{user_id}/suspicious-activity-disablementDesativa a conta, substitui suas flags de atividade suspeita, destrói sua senha e retorna a conta resultante. Requer user:disable:suspicious.
Parâmetros de caminho
Seção intitulada “Parâmetros de caminho”| Campo | Tipo | Descrição |
|---|---|---|
| user_id | snowflake | O ID da conta de destino |
Corpo JSON
Seção intitulada “Corpo JSON”| Campo | Tipo | Descrição |
|---|---|---|
| flags1 | integer | Flags de atividade suspeita de substituição |
1 Obrigatório. O valor substitui o campo de bits completo armazenado. Diferente de Atualizar flags de atividade suspeita, o bit de adiamento nunca é preservado
Corpo da resposta
Seção intitulada “Corpo da resposta”| Campo | Tipo | Descrição |
|---|---|---|
| user | Objeto de usuário Admin | A conta resultante |
Resposta
Seção intitulada “Resposta”| Status | Corpo | Condição |
|---|---|---|
| 200 | corpo da resposta | A conta foi desativada |
| 404 | resposta de erro | UNKNOWN_USER, porque a conta não existe |
O Decoding Chat adiciona a flag de conta DISABLED_SUSPICIOUS_ACTIVITY, portanto, todas as outras flags armazenadas sobrevivem. Nenhuma operação dedicada limpa isso. Desbanir usuário limpa apenas DISABLED e Atualizar flags de usuário pode remover o bit como qualquer outro.
Efeitos colaterais
Seção intitulada “Efeitos colaterais”A conta é marcada com DISABLED_SUSPICIOUS_ACTIVITY, suas flags de atividade suspeita são substituÃdas e o hash de sua senha é definido como nulo. Cada sessão de autenticação é excluÃda em seguida, desconectando a conta em todos os dispositivos.
O Decoding Chat registra um resultado de risco disabled_suspicious, juntamente com um resultado challenged quando as flags enviadas forem diferentes de zero. O Decoding Chat envia um e-mail para o titular da conta quando a conta tiver um endereço de e-mail.
Atualização de usuário é emitida depois que as sessões já foram excluÃdas, de modo que nenhuma conexão da conta permanece para recebê-la. A operação registra uma entrada de auditoria de Admin com ação disable_suspicious_activity, tipo de alvo user e uma chave de metadados flags.
Limite de taxa
Seção intitulada “Limite de taxa”100 solicitações por minuto para cada usuário autenticado, no bucket admin:user:modify.
Banir usuário
Seção intitulada “Banir usuário”PUT/v1/admin/users/{user_id}/banDesativa uma conta temporária ou permanentemente e retorna a conta resultante. Requer user:temp_ban.
Parâmetros de caminho
Seção intitulada “Parâmetros de caminho”| Campo | Tipo | Descrição |
|---|---|---|
| user_id | snowflake | O ID da conta de destino |
Corpo JSON
Seção intitulada “Corpo JSON”| Campo | Tipo | Descrição |
|---|---|---|
| duration_hours1 | integer | Duração do banimento em horas inteiras, onde 0 bane permanentemente (0-8760) |
| reason?2 | string | Declaração de motivos enviada para a conta banida (no máximo 512 caracteres) |
1 Obrigatório. A expiração é calculada a partir do momento em que o banimento é aplicado, portanto, nenhum campo de expiração absoluta é aceito. O limite de 8760 equivale a um ano
2 IncluÃdo no e-mail de banimento temporário e na entrada de auditoria, mas não é armazenado na conta, portanto, nenhuma operação de leitura o retorna
Corpo da resposta
Seção intitulada “Corpo da resposta”| Campo | Tipo | Descrição |
|---|---|---|
| user | Objeto de usuário Admin | A conta resultante |
Resposta
Seção intitulada “Resposta”| Status | Corpo | Condição |
|---|---|---|
| 200 | corpo da resposta | A conta foi banida |
| 404 | resposta de erro | UNKNOWN_USER, porque a conta não existe |
Efeitos colaterais
Seção intitulada “Efeitos colaterais”DISABLED é adicionado à s flags da conta e temp_banned_until é definido como a expiração resolvida. Toda sessão de autenticação é excluÃda em seguida, desconectando a conta em todos os dispositivos.
Uma tentativa de autenticação enquanto o banimento permanece falha com 403 ACCOUNT_SUSPENDED_TEMPORARILY. Uma tentativa após a expiração limpar a flag DISABLED e temp_banned_until na mesma solicitação, de modo que um banimento temporário termine sem uma operação Admin.
Quando a conta tem um endereço de e-mail e duration_hours for maior que zero, a duração, a expiração e o reason fornecido são enviados por e-mail para o titular da conta. Um banimento permanente não envia e-mail.
Atualização de usuário é emitida depois que as sessões são excluÃdas, de modo que nenhuma conexão da conta permanece para recebê-la. DISABLED não é uma flag de conta pública e nenhuma outra conta observa a alteração.
A operação registra uma entrada de auditoria de Admin com ação temp_ban, tipo de alvo user e as chaves de metadados duration_hours, reason e banned_until.
Limite de taxa
Seção intitulada “Limite de taxa”100 solicitações por minuto para cada usuário autenticado, no bucket admin:user:modify.
Desbanir usuário
Seção intitulada “Desbanir usuário”DELETE/v1/admin/users/{user_id}/banLimpa o banimento da conta e retorna a conta resultante. Requer user:temp_ban.
Parâmetros de caminho
Seção intitulada “Parâmetros de caminho”| Campo | Tipo | Descrição |
|---|---|---|
| user_id | snowflake | O ID da conta de destino |
Corpo da resposta
Seção intitulada “Corpo da resposta”| Campo | Tipo | Descrição |
|---|---|---|
| user | Objeto de usuário Admin | A conta resultante |
Resposta
Seção intitulada “Resposta”| Status | Corpo | Condição |
|---|---|---|
| 2001 | corpo da resposta | O banimento foi limpo |
| 404 | resposta de erro | UNKNOWN_USER, porque a conta não existe |
1 A operação não verifica nenhuma precondição. Em uma conta que nunca foi banida, ela grava temp_banned_until como nulo, limpa DISABLED e ainda envia e-mail ao titular da conta
Efeitos colaterais
Seção intitulada “Efeitos colaterais”temp_banned_until é limpo e DISABLED é removido das flags da conta. DISABLED_SUSPICIOUS_ACTIVITY é uma flag diferente e não é limpa, de modo que uma conta desativada por Desativar usuário por atividade suspeita permanece desativada.
As sessões excluÃdas não são restauradas. O titular da conta é notificado por e-mail quando a conta tem um endereço de e-mail. Atualização de usuário é emitida para as próprias sessões da conta.
A operação registra uma entrada de auditoria de Admin com ação unban, tipo de alvo user e sem metadados.
Limite de taxa
Seção intitulada “Limite de taxa”100 solicitações por minuto para cada usuário autenticado, no bucket admin:user:modify.
Agendar exclusão de usuário
Seção intitulada “Agendar exclusão de usuário”PUT/v1/admin/users/{user_id}/deletionCria ou substitui um agendamento de exclusão de conta e retorna a conta resultante. Requer user:delete. Um agendamento não pode ser alterado assim que a exclusão for iniciada.
O Decoding Chat aumenta o atraso enviado para o mÃnimo para o motivo da exclusão, de modo que uma solicitação de um dia sob qualquer motivo diferente de USER_REQUESTED seja armazenada como 60 dias.
O valor de X-Audit-Log-Reason também é armazenado na conta como o motivo da exclusão privada e reutilizado como motivo da lista de bloqueio para os banimentos de identificador abaixo.
Parâmetros de caminho
Seção intitulada “Parâmetros de caminho”| Campo | Tipo | Descrição |
|---|---|---|
| user_id | snowflake | O ID da conta de destino |
Corpo JSON
Seção intitulada “Corpo JSON”| Campo | Tipo | Descrição |
|---|---|---|
| reason_code1 | integer | Motivo da exclusão |
| public_reason?2 | string | Declaração de motivos mostrada ao titular da conta (no máximo 512 caracteres) |
| days_until_deletion?3 | integer | Atraso solicitado em dias inteiros (1 a 365, padrão 60) |
1 Obrigatório e validado em relação ao registro de motivo de exclusão. USER_REQUESTED seleciona o mÃnimo de 14 dias, e todos os outros valores selecionam o mÃnimo de 60 dias
2 Armazenado na conta e incluÃdo no e-mail de exclusão. Omiti-lo armazena nulo
3 O prazo armazenado é o instante da solicitação mais o maior valor entre esse e o mÃnimo para o código de motivo. Não há campo de carimbo de data/hora absoluto
Corpo da resposta
Seção intitulada “Corpo da resposta”| Campo | Tipo | Descrição |
|---|---|---|
| user | Objeto de usuário Admin | A conta resultante |
Resposta
Seção intitulada “Resposta”| Status | Corpo | Condição |
|---|---|---|
| 200 | corpo da resposta | O agendamento de exclusão foi armazenado |
| 404 | resposta de erro | UNKNOWN_USER, porque a conta não existe |
| 409 | resposta de erro | CONFLICT, porque o apagamento começou ou o estado de exclusão mudou durante a solicitação |
user:delete também permite agendar a exclusão do Admin atuante ou de uma conta com permissões mais amplas.
Efeitos colaterais
Seção intitulada “Efeitos colaterais”A conta não pode mais ser autenticada e suas sessões de autenticação existentes são excluÃdas. O apagamento é agendado para o prazo resultante.
O Decoding Chat cancela uma assinatura Stripe na conta sem rateio e reembolsa a cobrança por trás de sua fatura mais recente como fraudulenta. Quando o cancelamento ou reembolso falhar, o Decoding Chat registrará a falha e ainda manterá o agendamento de exclusão.
O prazo e a public_reason fornecida são enviados por e-mail para o titular da conta quando ela tem um endereço de e-mail.
Para todos os motivos, exceto USER_REQUESTED, o Decoding Chat também bloqueia o endereço de e-mail da conta. Ele marca o último endereço IP ativo da conta, seus endereços IP autorizados e os endereços IP de suas sessões ativas e encerradas como suspeitos e resolve os relatórios pendentes em relação à conta. Essas etapas de aplicação são feitas no melhor esforço e podem falhar sem cancelar o agendamento de exclusão.
Atualização de usuário é emitida depois que as sessões já foram excluÃdas. A operação registra uma entrada de auditoria de Admin com a ação schedule_deletion, tipo de alvo user e as chaves de metadados days e reason_code. Os banimentos de identificador registram suas próprias entradas de lista de bloqueio e, quando o Decoding Chat resolve pelo menos um relatório, ele registra uma segunda entrada com a ação auto_resolve_reports_on_deletion e uma chave de metadados resolved_count.
Limite de taxa
Seção intitulada “Limite de taxa”100 solicitações por minuto para cada usuário autenticado, no bucket admin:user:modify.
Cancelar exclusão de usuário
Seção intitulada “Cancelar exclusão de usuário”DELETE/v1/admin/users/{user_id}/deletionCancela um agendamento de exclusão e retorna a conta resultante. Requer user:delete. O apagamento não pode ser cancelado depois de iniciado.
Parâmetros de caminho
Seção intitulada “Parâmetros de caminho”| Campo | Tipo | Descrição |
|---|---|---|
| user_id | snowflake | O ID da conta de destino |
Corpo da resposta
Seção intitulada “Corpo da resposta”| Campo | Tipo | Descrição |
|---|---|---|
| user | Objeto de usuário Admin | A conta resultante |
Resposta
Seção intitulada “Resposta”| Status | Corpo | Condição |
|---|---|---|
| 200 | corpo da resposta | A exclusão foi cancelada ou não havia exclusão agendada |
| 404 | resposta de erro | UNKNOWN_USER, porque a conta não existe |
| 409 | resposta de erro | CONFLICT, porque o apagamento começou ou o estado de exclusão mudou durante a solicitação |
Efeitos colaterais
Seção intitulada “Efeitos colaterais”O agendamento de exclusão e os motivos são limpos, permitindo que a conta seja autenticada novamente, a menos que outra restrição se aplique.
O Decoding Chat envia um e-mail para o titular da conta quando ela tem um endereço de e-mail. O e-mail cita o valor X-Audit-Log-Reason literalmente e volta para o texto literal deletion canceled quando o cabeçalho estiver ausente ou for nulo.
Atualização de usuário é emitida para as próprias sessões da conta. A operação registra uma entrada de auditoria de Admin com ação cancel_deletion, tipo de alvo user e sem metadados.
Limite de taxa
Seção intitulada “Limite de taxa”100 solicitações por minuto para cada usuário autenticado, no bucket admin:user:modify.
Listar guildas de usuário
Seção intitulada “Listar guildas de usuário”GET/v1/admin/users/{user_id}/guildsLista as guildas das quais a conta é membro, em ordem crescente de ID de guilda. Requer user:list:guilds. Ambos os cursores se aplicam à lista de membros classificada da própria conta.
Parâmetros de caminho
Seção intitulada “Parâmetros de caminho”| Campo | Tipo | Descrição |
|---|---|---|
| user_id | snowflake | O ID da conta de destino |
Parâmetros de consulta
Seção intitulada “Parâmetros de consulta”| Campo | Tipo | Descrição |
|---|---|---|
| before?1 | snowflake | Retornar guildas ordenadas antes deste ID de guilda |
| after?1 | snowflake | Retornar guildas ordenadas após este ID de guilda |
| limit? | integer | Número máximo de guildas a retornar (1 a 200, padrão 200) |
| with_counts?2 | boolean | Se as contagens ativas de membros e presenças devem ser resolvidas (padrão falso) |
1 Um cursor nomeando uma guilda da qual a conta não é membro é ignorado e a solicitação ainda é bem-sucedida. after é aplicado antes de before e os dois se combinam para limitar uma janela
2 Apenas as strings exatas true, True e 1 contam como verdadeiras
Corpo da resposta
Seção intitulada “Corpo da resposta”| Campo | Tipo | Descrição |
|---|---|---|
| guilds1 | array[Objeto de guilda Admin] | As guildas nesta página nas quais a conta é um membro |
1 approximate_member_count e approximate_presence_count estão presentes apenas quando with_counts resolvido como verdadeiro. owner_username, owner_global_name e owner_discriminator são resolvidos por esta operação e são nulos apenas para uma conta de proprietário que não existe mais
Resposta
Seção intitulada “Resposta”| Status | Corpo | Condição |
|---|---|---|
| 200 | corpo da resposta | A página de associação foi retornada |
| 404 | resposta de erro | UNKNOWN_USER, porque a conta não existe |
A resposta não tem estado de paginação. Derive o próximo cursor do último ID de guilda retornado e trate uma página curta como o fim da lista.
Efeitos colaterais
Seção intitulada “Efeitos colaterais”A operação registra uma entrada de auditoria de Admin com a ação list_user_guilds, tipo de alvo user, o caminho user_id como ID de alvo e as chaves de metadados limit, with_counts e guild_count para as guildas retornadas. Um cursor fornecido adiciona before_guild_id ou after_guild_id. Uma solicitação com falha não registra nada.
Limite de taxa
Seção intitulada “Limite de taxa”200 solicitações por minuto para cada usuário autenticado, no bucket admin:lookup.
Listar canais de mensagem direta do usuário
Seção intitulada “Listar canais de mensagem direta do usuário”GET/v1/admin/users/{user_id}/dm-channelsLista os canais de mensagem direta nos quais a conta participou. Requer user:list:dm_channels. A leitura não abre, reabre ou reconhece um canal para a conta de destino.
A ramificação de grupo ignora before, after e limit e retorna todos os grupos dos quais a conta é destinatária em uma resposta.
Parâmetros de caminho
Seção intitulada “Parâmetros de caminho”| Campo | Tipo | Descrição |
|---|---|---|
| user_id | snowflake | O ID da conta de destino |
Parâmetros de consulta
Seção intitulada “Parâmetros de consulta”| Campo | Tipo | Descrição |
|---|---|---|
| type? | string | dm ou group_dm (padrão dm) |
| before?1 | snowflake | Retornar canais atualizados antes desse ID de mensagem |
| after?1 | snowflake | Retornar canais atualizados depois desse ID de mensagem |
| limit?2 | integer | Máximo de canais a retornar (1 a 100, padrão 100) |
| include_recipients?3 | boolean | Se os destinatários dos canais devem ser resolvidos (padrão verdadeiro) |
1 Ignorado pela ramificação de grupo. Um cursor não correspondente na ramificação dm é ignorado e a solicitação ainda é bem-sucedida. after é aplicado antes de before e os dois se combinam para limitar uma janela
2 Ignorado pela ramificação de grupo
3 Apenas as strings exatas true, True e 1 contam como verdadeiras. Falso omite a matriz recipients e ainda retorna a matriz recipient_ids completa
Corpo da resposta
Seção intitulada “Corpo da resposta”| Campo | Tipo | Descrição |
|---|---|---|
| channels | array[Objeto de canal de mensagem direta Admin] | Os canais nesta página, classificados pelo ID da mensagem mais recente decrescente |
Resposta
Seção intitulada “Resposta”| Status | Corpo | Condição |
|---|---|---|
| 200 | corpo da resposta | A página de canal foi retornada |
| 404 | resposta de erro | UNKNOWN_USER, porque a conta não existe |
Na ramificação dm, derive o próximo cursor da ID da mensagem mais recente do último canal e trate uma página curta como o fim da lista. Como o classificador não é exclusivo, um último canal que compartilha sua ID de mensagem com o próximo não visto fará com que o próximo canal seja ignorado.
Efeitos colaterais
Seção intitulada “Efeitos colaterais”A operação registra uma entrada de auditoria de Admin com ação list_user_dm_channels, tipo de alvo user, o caminho user_id como ID do alvo e as chaves de metadados type, include_recipients e channel_count para os canais retornados. O branch dm adiciona limit e os cursores passados como before_message_id ou after_message_id. Uma solicitação falha não registra nada.
Limite de taxa
Seção intitulada “Limite de taxa”200 solicitações por minuto para cada usuário autenticado, no bucket admin:lookup.
Triturar mensagens de usuário em massa
Seção intitulada “Triturar mensagens de usuário em massa”POST/v1/admin/users/{user_id}/shred-messagesPrograma uma tarefa em massa do sistema para excluir as mensagens recentes da conta e retorna 202. Requer message:shred.
O triturador ignora canais que pertencem a uma guilda retida, e max_age_days não pode exceder a janela de trituração mantida pela instância, que padroniza para 15 dias. Nenhuma dessas regras se aplica a mensagens diretas individuais (DMs).
Parâmetros de caminho
Seção intitulada “Parâmetros de caminho”| Campo | Tipo | Descrição |
|---|---|---|
| user_id | snowflake | O ID da conta de destino |
Corpo JSON
Seção intitulada “Corpo JSON”| Campo | Tipo | Descrição |
|---|---|---|
| max_age_days?1 | integer | Dias de mensagens para excluir (0 a 30, padrão 3) |
| include_dms?2 | boolean | Se as mensagens em DMs individuais devem ser excluÃdas (padrão falso) |
1 0 não exclui nada, 30 exclui o máximo permitido
2 Quando verdadeiro, as mensagens em DMs são excluÃdas em toda a conta, ignorando max_age_days
Corpo da resposta
Seção intitulada “Corpo da resposta”Nenhum.
Resposta
Seção intitulada “Resposta”| Status | Corpo | Condição |
|---|---|---|
| 202 | vazio | A tarefa de trituração foi enfileirada |
| 403 | resposta de erro | O tipo de credencial ou a avaliação da ACL negam a solicitação |
| 404 | resposta de erro | UNKNOWN_USER, porque a conta não existe |
Efeitos colaterais
Seção intitulada “Efeitos colaterais”Uma tarefa em massa é criada para excluir as mensagens. A operação registra uma entrada de auditoria de Admin com ação shred_user_messages, tipo de alvo user e chaves de metadados max_age_days e include_dms.
Limite de taxa
Seção intitulada “Limite de taxa”10 solicitações por minuto para cada usuário autenticado, no bucket admin:user:shred.
Cancelar exclusão agendada de mensagens
Seção intitulada “Cancelar exclusão agendada de mensagens”DELETE/v1/admin/users/{user_id}/message-deletionCancela a exclusão de mensagens em massa que o titular da conta agendou para si mesmo e retorna a conta resultante. Requer user:cancel:bulk_message_deletion.
Excluir todas as mensagens do usuário enfileira um trabalho Admin separado sobre as mesmas mensagens, e o cancelamento desse agendamento deixa esse trabalho em execução.
Parâmetros de caminho
Seção intitulada “Parâmetros de caminho”| Campo | Tipo | Descrição |
|---|---|---|
| user_id | snowflake | O ID da conta de destino |
Corpo da resposta
Seção intitulada “Corpo da resposta”| Campo | Tipo | Descrição |
|---|---|---|
| user | Objeto de usuário Admin | A conta resultante |
Resposta
Seção intitulada “Resposta”| Status | Corpo | Condição |
|---|---|---|
| 2001 | corpo da resposta | A exclusão agendada foi cancelada ou a conta não tinha nenhuma |
| 404 | resposta de erro | UNKNOWN_USER, porque a conta não existe |
1 A operação é idempotente. Chamá-la em uma conta sem exclusão agendada tem êxito, retorna a conta inalterada e ainda registra a entrada de auditoria
Efeitos colaterais
Seção intitulada “Efeitos colaterais”pending_bulk_message_deletion_at é limpo junto com as contagens de canal e mensagens armazenadas, e a conta é removida da fila de exclusão em massa, para que nenhuma outra mensagem seja excluÃda. As mensagens já excluÃdas por uma execução anterior não são restauradas.
Nenhuma Atualização de usuário é emitida, ao contrário de todas as outras operações de usuário mutantes nesta página, então um cliente conectado só fica sabendo do cancelamento em sua próxima leitura. A operação registra uma entrada de auditoria de Admin com ação cancel_bulk_message_deletion, tipo de alvo user e sem metadados.
Limite de taxa
Seção intitulada “Limite de taxa”100 solicitações por minuto para cada usuário autenticado, no bucket admin:user:modify.
Criar arquivo de usuário
Seção intitulada “Criar arquivo de usuário”POST/v1/admin/users/{user_id}/archivesCria um arquivo assÃncrono dos dados da conta e retorna o objeto de arquivo criado. Requer archive:trigger:user.
O progresso, o download e a expiração do arquivo estão documentados em Arquivos (Archives).
Parâmetros de caminho
Seção intitulada “Parâmetros de caminho”| Campo | Tipo | Descrição |
|---|---|---|
| user_id | snowflake | O ID do assunto do arquivo |
Corpo JSON
Seção intitulada “Corpo JSON”| Campo | Tipo | Descrição |
|---|---|---|
| include_attachments?1 | boolean | Se os arquivos enviados estão incluÃdos (padrão falso) |
1 A inclusão de binários de anexos torna o arquivo maior e mais lento para compilar, e apenas um arquivo que os inclua retém a mÃdia original enviada
Resposta
Seção intitulada “Resposta”| Status | Corpo | Condição |
|---|---|---|
| 2001 | Objeto de arquivo | O arquivo foi enfileirado |
| 404 | resposta de erro | UNKNOWN_USER, e nenhum registro de arquivo ou trabalho de compilação é criado |
1 O arquivo começa com progress_percent em zero e progress_step definido como Queued
Efeitos colaterais
Seção intitulada “Efeitos colaterais”O Decoding Chat cria o registro do arquivo e enfileira um trabalho de compilação, para que a resposta retorne antes que qualquer dado seja coletado. A geração do arquivo lê os dados da conta sem alterá-los.
Nenhum Gateway Dispatch é emitido.
A operação registra uma entrada de auditoria de Admin com ação trigger_user_archive, tipo de alvo user, o caminho user_id como ID de alvo e as chaves de metadados archive_id para o arquivo criado e include_attachments como true ou false.
Limite de taxa
Seção intitulada “Limite de taxa”200 solicitações por minuto para cada usuário autenticado, no bucket admin:lookup.
Listar log de alterações de usuário
Seção intitulada “Listar log de alterações de usuário”GET/v1/admin/users/{user_id}/change-logLista as alterações de identidade e de campo de contato registradas para a conta, da mais recente para a mais antiga. Requer user:view:contact_log. Valores de e-mail também requerem user:view:email.
Parâmetros de caminho
Seção intitulada “Parâmetros de caminho”| Campo | Tipo | Descrição |
|---|---|---|
| user_id | snowflake | O ID da conta de destino |
Parâmetros de consulta
Seção intitulada “Parâmetros de consulta”| Campo | Tipo | Descrição |
|---|---|---|
| limit? | integer | Máximo de entradas a retornar (1 a 200, padrão 50) |
| page_token?1 | string | Cursor retornado como next_page_token pela página anterior (1 a 64 caracteres) |
1 Continua a caminhada dos mais recentes primeiro, para que retorne as entradas registradas antes do cursor
Corpo da resposta
Seção intitulada “Corpo da resposta”| Campo | Tipo | Descrição |
|---|---|---|
| entries1 | array[Objeto de log de alterações de usuário Admin] | As alterações de identidade e contato nesta página |
| next_page_token2 | ?string | O cursor para enviar como page_token, ou nulo quando esta for a última página |
1 Limitado em 200 entradas, o que também é o limit máximo
2 Definido apenas quando a página retornou exatamente limit entradas, de modo que uma página final que por acaso esteja cheia relata um cursor cuja próxima página está vazia
Resposta
Seção intitulada “Resposta”| Status | Corpo | Condição |
|---|---|---|
| 2001 | corpo da resposta | A página de alteração foi retornada |
1 Esta operação não resolve a conta, por isso nunca responde UNKNOWN_USER. Um ID sem conta correspondente retorna uma página vazia
Sem user:view:email, uma entrada email ainda é retornada com ambos os campos de valor substituÃdos pela string literal [redacted], de modo que o fato e a hora da alteração permanecem visÃveis enquanto os endereços não.
Efeitos colaterais
Seção intitulada “Efeitos colaterais”A operação registra uma entrada de auditoria de Admin com ação list_user_change_log, tipo de alvo user, o caminho user_id como ID do alvo e as chaves de metadados limit e entry_count para as entradas retornadas. Um page_token fornecido adiciona has_page_token como true, e o valor do cursor não é registrado.
Limite de taxa
Seção intitulada “Limite de taxa”200 solicitações por minuto para cada usuário autenticado, no bucket admin:lookup.

