Autenticação e escopos
Toda chamada à API da plataforma Kaleidr inclui uma credencial. Existem três tipos, tratados de formas diferentes pela API:
- Uma chave publicável identifica sua organização no navegador. Ela não pode chamar a API diretamente; é trocada por uma sessão.
- Um token de sessão é a credencial usada de fato pelo navegador nas chamadas à API. Ele tem duração curta e está vinculado à origem de um site e a um produto.
- Uma chave de servidor é um segredo enviado diretamente pelo seu backend em cada requisição.
Esta página explica como cada credencial é enviada, como funciona a troca por sessão, o que cada escopo permite, como o escopo vendor é concedido e todos os erros de autenticação, com suas causas e soluções. Para entender o que cada credencial permite caso seja exposta, consulte o modelo de segurança.
Tipos de credenciais
| Credencial | Prefixo | Onde fica | Como é usada | Plano |
|---|---|---|---|---|
| Chave publicável | kld_pk_live_… | Código-fonte da página | Enviada uma vez na troca por sessão; rejeitada em todos os outros endpoints | Free, Pro, Enterprise |
| Token de sessão | kld_sess_live_… | Memória do navegador | Enviado em cada chamada de execução feita pela página para a qual foi emitido | Emitido a partir de uma chave publicável ou de um mapa publicado |
| Chave de servidor | kld_sk_live_… | Somente no seu backend | Enviada em cada chamada de execução; rejeitada quando a requisição inclui o cabeçalho Origin | Pro, Enterprise |
| Chave legada | kld_live_… | Seu backend | Funciona como credencial direta, como uma chave de servidor. Sua rotação gera uma chave de servidor | Somente chaves existentes |
Chaves criadas pela API de gerenciamento de chaves com environment: "test" usam test em vez de live (kld_pk_test_…, kld_sk_test_…). Uma chave de teste não pode carregar tiles do mapa-base.
Uma chave é exibida integralmente apenas uma vez, quando é criada ou rotacionada. A Kaleidr armazena somente um hash; portanto, uma chave perdida não pode ser recuperada: faça sua rotação.
Envio de uma credencial
Envie a credencial em qualquer um dos dois cabeçalhos. Ambos são aceitos em todos os endpoints.
Authorization: Bearer kld_sk_live_…
X-Api-Key: kld_sk_live_…
Se a requisição incluir ambos, Authorization será usado quando seu valor começar com um prefixo da Kaleidr; caso contrário, X-Api-Key será lido. Nunca coloque uma chave de servidor em uma URL.
O que cada credencial pode fazer em um endpoint de execução (todos, exceto a troca por sessão):
| Credencial | Resultado em um endpoint de execução |
|---|---|
| Chave publicável | 401 publishable_requires_session. Primeiro, troque-a por uma sessão. |
Chave de servidor, sem cabeçalho Origin | Aceita; em seguida, são verificados a lista de IPs permitidos, o escopo, os produtos permitidos, a cota e o limite de requisições. |
Chave de servidor com cabeçalho Origin | 403 server_key_in_browser. Navegadores adicionam Origin a requisições entre origens, permitindo que a API identifique uma chave de servidor em uma página web. |
| Token de sessão da origem para a qual foi emitido | Aceito. |
Token de sessão com outro Origin | 403 session_origin_mismatch. |
Token de sessão de um mapa publicado sem Origin | 403 session_origin_mismatch. |
O SDK JavaScript aplica essa mesma regra antes: Kaleidr.mount rejeita uma chave kld_sk_… no navegador sem fazer nenhuma requisição.
Troca por sessão
Uma chave publicável é trocada por um token de sessão em um endpoint. O SDK faz isso em cada montagem com chave e mantém o token atualizado; você só precisa chamar o endpoint diretamente ao criar seu próprio cliente de navegador.
POST https://api.kaleidr.com/inference-api/b2b/v1/sdk/sessions
X-Api-Key: kld_pk_live_…
Content-Type: application/json
{ "product": "chat" }
product é obrigatório e deve ser chat, editor, viewer ou tile. A requisição deve incluir o cabeçalho Origin. O navegador o adiciona automaticamente.
{
"session_token": "kld_sess_live_eyJhbGciOi…",
"expires_in": 900,
"product": "chat",
"basemap_style_id": null
}
| Campo | Significado |
|---|---|
session_token | Credencial usada nas chamadas de execução. Formato: kld_sess_{env}_{token}. |
expires_in | Validade em segundos. Uma sessão com chave dura 900 segundos. Leia esse campo; não fixe o número no código. |
product | Produto ao qual a sessão está vinculada. |
basemap_style_id | Mapa-base padrão da sua organização, ou null quando nenhum estiver configurado. |
A que uma sessão está vinculada
- Uma origem. O
Originda requisição de troca. Chamadas feitas de outra origem são rejeitadas. - Um produto. Uma sessão
tilenão pode chamar endpoints de chat. - Um conjunto restrito de escopos. A sessão inclui somente o escopo necessário ao produto:
aipara chat,designpara editor,mapspara tile e nenhum para viewer. Uma sessão de chat também mantémvendorquando a chave o possui e o plano o permite (Enterprise). Sessões de outros produtos nunca incluemvendor.
Renovação
O cliente não pode solicitar uma validade maior. Faça outra troca antes do vencimento de expires_in. O SDK renova 90 segundos antes de expirar, quando uma aba em segundo plano volta a ficar visível com a sessão a 90 segundos ou menos do vencimento (ou já expirada), e a cada 30 segundos após uma falha de renovação. Se a primeira troca falhar, a montagem falha e não é repetida.
Cada troca com product: "tile" consome um carregamento de mapa da franquia da sua organização; as trocas dos outros produtos não têm custo. A troca tem um limite de requisições próprio por chave, separado das chamadas de execução. Consulte Cotas e limites de requisições.
Ordem das verificações
A troca é interrompida na primeira verificação que falhar:
| Ordem | Verificação | Falha |
|---|---|---|
| 1 | A chave é válida | 401 Invalid or missing API key |
| 2 | Limite de trocas da chave | 429 rate_limited |
| 3 | A chave é publicável | 403 publishable_key_required |
| 4 | A requisição inclui o cabeçalho Origin | 403 origin_required |
| 5 | A origem está na lista de origens permitidas da chave, caso exista | 403 origin_not_allowed |
| 6 | A chave não está restrita de forma a excluir este produto | 403 product_not_allowed |
| 7 | Seu plano inclui o produto | 403 tier_capability_not_allowed |
| 8 | A chave possui o escopo exigido pelo produto | 403 insufficient_scope, ou tier_capability_not_allowed se a chave o possui, mas seu plano não o inclui mais |
| 9 | Para tile: há um carregamento de mapa disponível | 429 map_load_quota_exceeded |
Teste pelo terminal
curl -s https://api.kaleidr.com/inference-api/b2b/v1/sdk/sessions \
-H "X-Api-Key: kld_pk_live_…" \
-H "Origin: https://www.example.com" \
-H "Content-Type: application/json" \
-d '{"product":"chat"}'
Isso funciona porque Origin é um cabeçalho comum que qualquer cliente fora do navegador pode definir. Por isso, a lista de origens permitidas é descrita como um controle para navegadores, não como um segredo: consulte CORS e origens permitidas.
Sessões para um mapa publicado
Um mapa publicado pelo Studio cujo bloco Kaleidr AI ativa Control Tower ou Popup Window pode oferecer chat aos visitantes sem uma chave na página. Em vez dela, a página troca o ID público do mapa e o recurso que ele abre:
POST https://api.kaleidr.com/inference-api/b2b/v1/sdk/share-sessions
Content-Type: application/json
{ "share_id": "your-map-id", "feature": "control_tower" }
{ "session_token": "kld_sess_live_eyJhbGciOi…", "expires_in": 300, "product": "chat" }
Essa sessão serve apenas para chat, inclui o escopo ai, dura 300 segundos e é cobrada da organização proprietária do mapa. Ela nunca inclui vendor. Deve ser usada pela página que a solicitou: uma chamada sem Origin ou com outra origem é rejeitada. As recusas são:
| Status | Código | Causa |
|---|---|---|
| 403 | origin_required | A requisição não contém o cabeçalho Origin. |
| 404 | not_found | Não existe mapa publicado nem link de compartilhamento com esse ID, ou o mapa do link de compartilhamento não está publicado. |
| 403 | chat_disabled | O Kaleidr AI do mapa não ativa o recurso solicitado. |
| 403 | origin_not_allowed | A página não está entre os domínios permitidos do mapa. |
| 403 | owner_has_no_organization | O proprietário do mapa não tem uma organização à qual cobrar. |
| 403 | tier_capability_not_allowed | O plano do proprietário não inclui chat. |
| 429 | rate_limited | Houve trocas demais para este mapa ou a partir deste endereço. |
A configuração está descrita em Kaleidr AI em um mapa publicado.
Escopos
Uma chave contém escopos. Cada família de endpoints exige um deles.
| Escopo | O que libera | Necessário para |
|---|---|---|
ai | Endpoints /chat/* e /retrieval/* | Chat e qualquer backend que chame endpoints de conversa ou consulta |
design | Endpoints /design/* | Sessões do Editor e qualquer backend que chame endpoints de design |
maps | Sessões de mapa-base | Tile |
vendor | Nada por si só. Permite que as respostas do chat usem os dados publicados da sua própria organização. | Chat, quando você enviou dados |
Uma nova chave recebe ai, maps e design, a menos que você solicite algo diferente. No plano Free, uma chave sempre inclui todos os recursos do Free: exatamente esses três escopos e os quatro produtos (chat, editor, viewer, tile), independentemente de quais sejam especificados na requisição. vendor nunca é um padrão, e somente uma organização Enterprise pode criar uma chave com esse escopo.
Uma solicitação de criação de chave que inclua um escopo ou produto não permitido pelo plano é rejeitada com 403 tier_capability_not_allowed. Nenhum item é removido silenciosamente da solicitação. Na prática, isso ocorre ao solicitar vendor no Free ou no Pro.
Os escopos são definidos quando a chave é criada. Nenhum endpoint ou configuração pode alterá-los depois disso. Uma chave rotacionada herda os escopos, exceto aqueles que o plano atual não permite mais. Para alterar os escopos, crie uma nova chave e revogue a antiga.
A rotação no Free segue a regra do Free. Nesse plano, a substituta de uma chave publicável rotacionada inclui todos os recursos do Free (ai, maps, design e os quatro produtos), independentemente dos escopos da chave anterior. Uma chave de servidor ou legada não pode ser rotacionada no Free: a requisição é rejeitada com 403 free_plan_publishable_only.
O que uma chave pode fazer é limitado tanto pela chave quanto pelo plano
Toda requisição verifica os escopos e produtos registrados para a chave em relação ao que o plano da sua organização inclui hoje. Alterar o plano nunca modifica uma chave, mas muda o que ela pode fazer:
insufficient_scope: o escopo nunca foi concedido à chave. Solução: use uma chave que o tenha.tier_capability_not_allowed: a chave possui o escopo, mas o plano atual não o inclui. Solução: altere o plano.
vendor é a exceção à segunda regra, pois não libera nenhum endpoint. Uma chave que armazene vendor em um plano inferior ao Enterprise não é rejeitada: suas requisições funcionam, mas as respostas são produzidas sem os seus dados.
Uma chave com a lista de produtos vazia pode usar todos os produtos incluídos no seu plano. Uma chave sem escopos é rejeitada em qualquer endpoint.
Um limite de produtos se aplica a todas as chaves
allowed_products restringe uma chave a alguns dos produtos chat, editor, viewer e tile. Esse limite é aplicado a todos os tipos de chave, no ponto em que cada chave é usada:
| Chave | Onde o limite é verificado | Recusa |
|---|---|---|
| Chave publicável | Na troca por sessão, em relação ao product solicitado | 403 product_not_allowed |
| Chave de servidor ou legada | Em cada requisição de execução, em relação ao produto ao qual pertence o endpoint | 403 product_not_allowed |
Cada família de endpoints pertence ao produto cujo escopo exige:
| Endpoints | Escopo | Produto que uma chave restrita deve permitir |
|---|---|---|
/chat/*, /retrieval/* | ai | chat |
/design/* | design | editor |
Portanto, uma chave de servidor criada com "allowed_products": ["tile"] é rejeitada em /chat/control/stream com 403 product_not_allowed, embora tenha o escopo ai. Uma chave de servidor limitada apenas a viewer não pode chamar nenhum endpoint de execução, porque um mapa publicado não precisa de chave. Deixe a lista vazia quando uma chave precisar acessar todos os endpoints permitidos por seus escopos.
Um token de sessão não passa novamente por essa verificação: ele foi vinculado a um único produto quando foi emitido.
| Free | Pro | Enterprise | |
|---|---|---|---|
| Chaves publicáveis | Sim | Sim | Sim |
| Chaves de servidor | Não | Sim | Sim |
ai, maps, design | Sim | Sim | Sim |
vendor | Não | Não | Sim |
O Pro acrescenta chaves de servidor e um limite maior de chaves ativas ao que o Free oferece. A tabela completa dos planos está em Obter uma chave de API.
O escopo vendor
vendor não libera nenhum endpoint. Ele determina se uma resposta de chat feita com essa chave pode utilizar os dados publicados da sua própria organização, além do conhecimento geral da Kaleidr. O processo completo, do envio dos dados à resposta, está em Seus dados: visão geral.
Quem pode utilizá-lo:
- Free e Pro não podem ter
vendor. Uma solicitação de criação de chave com esse escopo é rejeitada com 403tier_capability_not_allowed, com ou sem o envio devendor_acknowledged. Nenhuma chave é criada. - Enterprise pode criar chaves com
vendor.
O escopo serve para ler os dados por meio de uma chave. O envio de dados é uma permissão separada, concedida a um proprietário ou administrador da organização, e não à chave; também é exclusiva do Enterprise: Free e Pro não podem enviar dados comerciais. Os arquivos que um usuário conectado adiciona a um mapa no Kaleidr Studio são um recurso diferente, disponível em todos os planos, e nenhum escopo permite lê-los: consulte Conjuntos de dados em um mapa.
A página API Keys não pode conceder vendor. Crie a chave pela API de gerenciamento de chaves:
curl -s https://api.kaleidr.com/shared-api/api-keys \
-H "Authorization: Bearer $KALEIDR_ACCOUNT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "store-locator-chat",
"key_type": "publishable",
"scopes": ["ai", "vendor"],
"vendor_acknowledged": true,
"allowed_origins": ["https://www.example.com"]
}'
vendor_acknowledged: true é obrigatório para uma chave publicável que inclua vendor. Sem isso, a solicitação falha com 422 vendor_scope_requires_acknowledgement. Esse campo existe porque uma chave publicável fica no código-fonte público da página; assim, qualquer visitante pode ler os dados acessíveis por ela. Uma chave de servidor não precisa dessa confirmação.
Antes de adicionar vendor a uma chave publicável:
- Use uma chave por site. Apenas o site que precisa responder com seus dados deve receber
vendor. - Considere públicos, nesse site, todos os seus dados publicados. Não publique custos de aquisição, tarifas ainda não divulgadas ou informações que você não colocaria na página.
- Lembre-se de que sessões já em andamento não recebem o novo escopo. Uma chave criada com
vendoro fornece apenas às sessões emitidas a partir de então.
Para retirar vendor, revogue a chave e crie uma substituta sem esse escopo. A revogação passa a valer na próxima requisição, inclusive para sessões já emitidas.
Quando uma organização deixa o Enterprise
A mudança de Enterprise para Pro ou Free não altera suas chaves nem faz com que elas parem de funcionar:
| O que muda | Após a mudança |
|---|---|
Uma chave com vendor | Continua funcionando para todos os outros usos. As respostas deixam de utilizar os seus dados. Nenhum erro, status ou campo indica isso. |
| Sessões de navegador emitidas antes da mudança | São encerradas. A pr óxima requisição retorna 401, e o SDK obtém uma nova sessão sem vendor. |
Rotação de uma chave com vendor | No Pro: retorna 201 com sucesso. A substituta mantém os mesmos escopos, exceto vendor; a lista de produtos não muda. No Free: a substituta de uma chave publicável recebe ai, maps, design e os quatro produtos, independentemente da chave anterior; a rotação de uma chave de servidor ou legada é rejeitada com 403 free_plan_publishable_only. |
Criação de uma chave com vendor | Rejeitada com 403 tier_capability_not_allowed. |
| Suas versões publicadas | Proprietários e administradores ainda podem listá-las, despublicá-las e excluí-las em qualquer plano usando a API de envio de dados. No Free e no Pro, envio e publicação são rejeitados com 403 vendor_data_not_on_plan. |
Ao voltar para o Enterprise, uma chave que ainda armazene vendor poderá acessar os dados novamente. Uma substituta rotacionada no plano inferior não recupera o escopo: crie uma nova chave.
Restrições de uma chave
| Restrição | Aplica-se a | Configurável na página API Keys | Configurável pela API de gerenciamento de chaves | Recusa |
|---|---|---|---|---|
| Origens permitidas | Chaves publicáveis | Sim | Sim (allowed_origins) | 403 origin_not_allowed na troca |
| Produtos permitidos | Qualquer chave | Não | Sim (allowed_products) | 403 product_not_allowed: na troca para uma chave publicável, em cada requisição de execução para uma chave de servidor ou legada. Consulte limites de produtos. |
| Lista de IPs permitidos | Chaves de servidor e legadas | Não | Sim (allowed_ips) | 403 ip_not_allowed |
| Limite mensal | Qualquer chave | Não | Sim (monthly_cap_tokens) | 429 quota_exceeded |
| Expiração | Qualquer chave | Não | Sim (expires_at) | 401 após a data |
| Escopos | Qualquer chave | Não | Apenas na criação (scopes) | 403 insufficient_scope |
Origens permitidas. Até 100 entradas, cada uma no formato scheme://host[:port], sem caminho. Em uma chave publicável, uma lista vazia significa qualquer origem. Os detalhes e motivos de falha estão em CORS e origens permitidas.
Lista de IPs permitidos. Até 100 endereços IP ou blocos CIDR. Um bloco que corresponda a todos os endereços (/0) é rejeitado: deixe a lista vazia para permitir qualquer endereço. Se houver uma lista e não for possível determinar o endereço do solicitante, a requisição será rejeitada.
Limite mensal. Teto do que uma chave pode consumir dos créditos de IA da organização durante um período de faturamento. Consulte Cotas e limites de requisições.
O que muda em uma sessão já emitida
Uma sessão verifica novamente sua chave de origem em cada requisição; por isso, remover o acesso tem efeito rápido. Conceder acesso adicional exige uma nova troca.
| Alteração na chave ou na conta | Efeito em uma sessão já emitida |
|---|---|
| Chave revogada ou rotacionada sem período de carência | 401 na próxima requisição. |
| Origem da sessão removida das origens permitidas da chave | 401 na próxima requisição. |
| Produto da sessão removido dos produtos permitidos da chave | 401 na próxima requisição. |
| Plano rebaixado | Sessões emitidas antes do rebaixamento recebem 401. Sessões emitidas depois recebem 403 tier_capability_not_allowed ao tentar usar algo que o plano já não inclui. |
| Limite mensal adicionado ou reduzido | Aplicado na próxima requisição. |
| Limite mensal removido | Aplicado a partir da próxima troca. |
| Plano atualizado para uma categoria superior | Aplicado a partir da próxima troca. |
Como as sessões duram poucos minutos, aguardar “até a próxima troca” é pouco tempo. A renovação do SDK aplica a mudança sem alterações no código.
API de gerenciamento de chaves
A página API Keys em kaleidr.com/api-keys permite configurar o nome, o tipo e as origens permitidas de uma chave. Todo o restante descrito nesta página é configurado pela mesma API utilizada por essa página.
- URL base:
https://api.kaleidr.com/shared-api/api-keys - Autenticação:
Authorization: Bearercom o token de acesso de uma conta Kaleidr conectada que seja proprietária ou administradora da organização. Uma chave da plataforma não é aceita aqui. Atualmente não existe uma credencial separada de longa duração para gerenciamento de chaves. - Organização: quando nenhuma organização é indicada, usa-se a sua organização principal. Para indicar outra, envie
org_idno corpo JSON ao criar uma chave e como parâmetro de consulta?org_id=em todas as outras rotas. Um parâmetroorg_idna consulta da rota de criação é ignorado.
| Método e caminho | Finalidade | Sucesso |
|---|---|---|
POST / | Criar uma chave | 201, objeto da chave mais plaintext_key |
GET / | Listar chaves ativas, das mais recentes às mais antigas | 200 |
GET /{id}/events?limit=1..200 | Eventos de auditoria de uma chave | 200 |
PATCH /{id} | Alterar restrições | 200, objeto da chave |
POST /{id}/rotate | Substituir a chave | 201, nova chave mais plaintext_key |
POST /{id}/revoke | Revogar a chave | 200, objeto da chave |
Não existe uma rota de exclusão: revogue a chave para desativá-la definitivamente.
Campos aceitos na criação de uma chave:
| Campo | Tipo | Padrão | Observações |
|---|---|---|---|
name | string, de 1 a 200 caracteres | obrigatório | |
org_id | UUID | sua organização principal | Organização em que a chave é criada. Envie no corpo: um parâmetro de consulta é ignorado nesta rota. |
key_type | "publishable" ou "server" | "publishable" | "server" é rejeitado no Free com 403 free_plan_publishable_only. |
environment | "live" ou "test" | "live" | |
scopes | array de strings | ["ai", "maps", "design"] | Entre ai, maps, design, vendor. Qualquer outro retorna 422 unknown_scope. Um escopo que seu plano não permite (vendor abaixo de Enterprise) retorna 403 tier_capability_not_allowed. |
allowed_origins | array de strings, até 100 | [] | Vazio significa qualquer origem para uma chave publicável. |
allowed_products | array de strings | [] | Entre chat, editor, viewer, tile. Vazio significa todos. Qualquer outro retorna 422 unknown_product. Aplica-se a chaves publicáveis, de servidor e legadas: consulte limites de produtos. |
allowed_ips | array de strings, até 100 | [] | Endereços IP ou blocos CIDR. |
monthly_cap_tokens | inteiro, 0 ou mais | nenhum | 1 ou mais limita a chave. 0 ou null significa sem limite. |
expires_at | data e hora futuras | nenhum | |
vendor_acknowledged | booleano | false | Obrigatório para uma chave publicável com vendor (Enterprise). |
PATCH aceita name, allowed_origins, allowed_products, allowed_ips, monthly_cap_tokens e expires_at. Envie apenas os campos que deseja alterar; um null explícito limpa o valor. scopes não é aceito.
rotate aceita { "grace_hours": 0 }, entre 0 e 8760. A substituta herda os escopos da chave antiga, exceto aqueles que seu plano atual não permite mais. No Free, a substituta sempre recebe todos os recursos do Free, e uma chave de servidor ou legada não pode ser rotacionada (403 free_plan_publishable_only). Com 0, a chave antiga e suas sessões param de funcionar imediatamente. Com um período de carência, a chave antiga continua funcionando até o fim desse período, ainda conta no limite de chaves ativas do plano e não pode ser rotacionada novamente. A página API Keys usa um período de carência de 24 horas.
Os erros dessas rotas são descritos em Erros: gerenciamento de chaves.
Erros de autenticação
Um 401 significa que a API não aceita a credencial. Um 403 significa que a API reconhece a credencial, mas recusa a operação. Todos têm o formato {"detail": "<code>"}.
No navegador, uma requisição rejeitada por causa da credencial ou da origem não inclui um cabeçalho CORS na resposta; por isso, a página vê um erro CORS em vez do corpo. Uma requisição rejeitada posteriormente por escopo ou plano pode ser lida, e o SDK informa kaleidr session exchange failed (403). Nos dois casos, abra a requisição na guia Network das ferramentas do navegador para ler o código. Consulte CORS e origens permitidas.
| Status | Código | Causa | Solução |
|---|---|---|---|
| 401 | Invalid or missing API key | Nenhuma credencial; chave desconhecida, revogada ou expirada; sessão expirada; sessão cuja chave foi revogada, perdeu a permissão para esta origem ou produto ou foi emitida antes de um rebaixamento de plano; organização suspensa ou sem plano. | Verifique o valor e o estado da chave na página API Keys. Para uma sessão, faça outra troca. |
| 401 | publishable_requires_session | Uma chave publicável foi enviada a um endpoint de execução. | Troque-a por uma sessão ou chame o endpoint pelo backend com uma chave de servidor. |
| 403 | publishable_key_required | A troca por sessão foi chamada com uma chave de servidor ou legada. | Use uma chave kld_pk_… na troca. |
| 403 | origin_required | Troca por sessão sem cabeçalho Origin. | Faça a chamada a partir de uma página no navegador. |
| 403 | origin_not_allowed | A origem da página não está entre as origens permitidas da chave ou entre os domínios permitidos do mapa publicado. | Adicione a origem exata à chave ou o domínio ao mapa. |
| 403 | product_not_allowed | Os produtos permitidos da chave excluem o produto: o product solicitado na troca ou, para uma chave de servidor ou legada, o produto ao qual pertence o endpoint chamado. | Altere allowed_products ou use outra chave. |
| 403 | insufficient_scope | A chave foi criada sem o escopo exigido pelo endpoint ou produto. | Use uma chave que tenha esse escopo. Escopos não podem ser editados. |
| 403 | tier_capability_not_allowed | A chave tem o escopo ou produto, mas o plano atual não o inclui. | Altere o plano em kaleidr.com/billing. |
| 403 | server_key_in_browser | Uma chave de servidor foi enviada com o cabeçalho Origin. | Faça a chamada pelo seu backend. Se a chave estava no código-fonte da página, faça sua rotação. |
| 403 | session_origin_mismatch | Um token de sessão foi usado de outra origem, diferente daquela para a qual foi emitido, ou uma sessão de mapa publicado foi usada sem Origin. | Faça a troca por sessão na página que irá usá-la. |
| 403 | ip_not_allowed | Uma chave de servidor ou legada com lista de IPs permitidos foi usada de um endereço fora da lista. | Faça a chamada de um endereço permitido ou altere allowed_ips. |
| 403 | chat_disabled | Troca de mapa publicado: o Kaleidr AI do mapa não ativa o recurso solicitado. | Ative Control Tower ou Popup Window no bloco Kaleidr AI do mapa no Studio. |
| 403 | owner_has_no_organization | Troca de mapa publicado: o proprietário do mapa não tem organização. | O proprietário deve criar uma organização ou entrar em uma existente. |
| 404 | not_found | Troca de mapa publicado: não existe mapa publicado nem link de compartilhamento com esse ID. | Verifique o ID e se o mapa está publicado. |
O catálogo completo, incluindo respostas 429 e 5xx, está em Erros.
Relacionados
- Modelo de segurança: o que cada credencial permite caso seja exposta.
- CORS e origens permitidas: como a lista de origens é aplicada.
- Endpoints: o que cada escopo permite chamar.
- Obter uma chave de API: criação de chaves na página API Keys.