Antes de criar
A chave pertence à tribo em cuja administração você a criar, e a ninguém mais: não existe chave global de conta, nem chave que enxergue duas tribos. Só dono ou administrador da tribo pode criar, listar ou revogar chaves.Passo a passo

A aba API do admin da tribo — criação de chaves e configuração de webhooks vivem na mesma tela.
1
Abra a administração da tribo
Vá a
https://tryno.io/<sua-tribo>/admin e selecione a aba API. Confirme
que está na tribo certa antes de continuar.2
Crie uma nova chave
Dê um nome que identifique o consumidor, como
Backend produção,
Automação n8n ou Zapier. O nome é obrigatório e é truncado em
60 caracteres.3
Selecione as permissões
Marque apenas os escopos que a integração precisa ler. É obrigatório
escolher ao menos um escopo válido.
4
Copie imediatamente
Salve o token no cofre antes de fechar a confirmação. Depois disso ele não
é exibido de novo.
5
Valide com GET /v1/me
Uma chamada confirma tribo e escopos antes de você construir em cima.
201 Created
string
obrigatório
Rótulo humano, truncado em 60 caracteres. Vazio ⇒
400 invalid_name.string[]
obrigatório
Escopos da chave. Valores desconhecidos são descartados em silêncio e
duplicatas são removidas; se sobrar zero escopo válido, a resposta é
400 no_scopes.Quais permissões escolher
Conceda o mínimo necessário — uma chave entregue a um terceiro deve ver só o que aquele terceiro precisa.
O escopo que cada endpoint exige:
GET /v1/me não exige escopo algum: ele apenas identifica a própria chave.
A lista de escopos selecionáveis também inclui
community:read. Hoje
nenhum endpoint de /v1 exige esse escopo — os metadados da tribo já vêm em
GET /v1/me. Ele existe reservado para leituras futuras; conceder ou não
conceder não muda nada no acesso atual. Dizemos isso em vez de deixar você
supor que ele libera alguma coisa.Escopos não são editáveis depois da criação
Escopos não são editáveis depois da criação
Não existe endpoint para alterar os escopos de uma chave já criada. Para
ampliar ou reduzir o acesso de uma integração, crie uma nova chave com o
conjunto correto e revogue a antiga — é o mesmo procedimento da rotação,
descrito abaixo.E um papel administrativo humano não amplia os escopos gravados na chave:
o que vale é exclusivamente o conjunto persistido no momento da criação.
Como usar a chave
Envie a chave como Bearer no cabeçalhoAuthorization. É o único formato
aceito — não existe X-API-Key, nem chave em query string, nem em cookie.
O servidor resolve tribo e escopos a partir da própria credencial, então você
nunca passa o handle da tribo em /v1.
Cabeçalho HTTP
Resposta
Formato da chave
tryno_sk_ seguido de 43 caracteres base64url. Os 17 primeiros
caracteres (tryno_sk_ + 8) formam o keyPrefix: é o que a listagem mostra e
o que identifica a chave sem revelá-la.
O prefixo tryno_sk_ é o gatilho para scanners de segredo — se você vazar uma
chave num repositório público, ela é detectável, e você deve revogá-la
imediatamente.
Rotação de chaves
A Tryno suporta múltiplas chaves ativas por tribo ao mesmo tempo, e é isso que torna a rotação sem downtime possível. O que não existe é rotação automática, data de expiração, ou um endpoint de “regenerar chave” que troque o segredo mantendo o mesmo id — a rotação é sempre criar nova, migrar, revogar antiga.1
Crie a nova chave, com os mesmos escopos
Nome diferente e datado ajuda:
Backend produção 2026-08. Nesse momento você
tem duas chaves válidas simultaneamente — é a janela de sobreposição.2
Confira os escopos da nova antes de trocar nada
scopes não bater com o da antiga, pare aqui: houve typo, e a nova chave
tem menos acesso.3
Publique a nova chave nos consumidores
Atualize a variável de ambiente / cofre e faça o deploy. Rode a janela de
sobreposição por tempo suficiente para cobrir todos os consumidores —
inclusive jobs que só rodam de madrugada, semanalmente ou no fechamento do
mês. Uma janela de 7 dias cobre a maioria dos casos; para automações mensais,
use 35.
4
Confirme pelo lastUsedAt que a antiga parou
keyPrefix antigo. Só avance quando o lastUsedAt dela
estiver claramente parado no passado e o lastUsedAt da nova estiver
fresco. Este é o passo que impede a rotação de derrubar um consumidor
esquecido.5
Revogue a antiga
401.O
lastUsedAt é atualizado no máximo uma vez por minuto por chave — a
gravação é deliberadamente estrangulada para não amplificar escrita no caminho
de autenticação. Consequências práticas: (1) ele é ótimo para responder “esta
chave ainda está sendo usada?”; (2) ele não é um log de auditoria por
chamada, e uma chave chamada 500 vezes num minuto registra um carimbo só.
Numa rotação, deixe pelo menos alguns minutos entre a última verificação e a
revogação.Rotação de emergência (chave vazada)
Rotação de emergência (chave vazada)
Quando a chave está publicamente exposta, a ordem se inverte: revogue
primeiro, conserte depois. Uma janela de indisponibilidade da sua integração
é preferível a uma janela de leitura por terceiros — ainda mais com
orders:read.DELETEna chave comprometida. Efeito imediato.- Crie a substituta e faça o deploy.
- Verifique no log da listagem se o
lastUsedAtda chave revogada indica uso em horários que você não reconhece. - Remova o segredo do histórico do repositório, se foi esse o vazamento — revogar não apaga o commit.
Listar e revogar
Listar (nunca devolve o texto da chave — só o prefixo)
id, name, keyPrefix, scopes,
lastUsedAt, revokedAt (null se ativa), createdAt — mais o campo
availableScopes com o catálogo completo de escopos válidos. Nunca o texto
da chave.
Revogar
revokedAt preenchido —
é o registro de auditoria de quem existiu e quando saiu de circulação.
Quando a autenticação falha
403
401 é deliberadamente indistinguível entre “chave inexistente” e “chave
revogada”: informar a diferença ajudaria apenas quem está sondando chaves.
Checklist de depuração para um 401 inesperado
Checklist de depuração para um 401 inesperado
- O cabeçalho é literalmente
Authorization: Bearer+ a chave? SemBearer, a chave é ignorada. - Sobrou espaço, quebra de linha ou aspas ao copiar do cofre? Um
\nno fim da variável de ambiente é a causa mais comum. - A chave foi truncada? O token completo tem
tryno_sk_+ 43 caracteres. - A chave foi revogada por outro administrador? Confira
revokedAtna listagem. - Você está chamando
/api/v1/…? Uma chavetryno_sk_não autentica a API da aplicação (/api/communities/…), que usa cookie de sessão.
Próximo passo — configure webhooks →
Receba
member.joined, order.paid e os demais eventos em vez de consultar
a API em laço.
