Pular para o conteúdo principal

Pontos de acesso da API

Cada endpoint público da API da plataforma Kaleidr é descrito em uma seção própria.

  • URL base: https://api.kaleidr.com/inference-api/b2b/v1
  • Credencial: Authorization: Bearer … ou X-Api-Key: …. No backend, use uma chave de servidor (kld_sk_live_…). No navegador, use um token de sessão (kld_sess_live_…). Uma chave publicável só é aceita na troca por uma sessão. Consulte Autenticação e escopos.
  • Corpos: JSON, UTF-8. Envie Content-Type: application/json em cada POST. O corpo pode ter até 2 MiB, ou 5 MiB nos endpoints /design/*. Corpos maiores recebem 413 request_too_large.
  • Erros: respostas 4xx ou 5xx com corpo JSON, descritas em Erros. Um endpoint informa falhas com status 200: consulte Rotas.

Os exemplos usam uma chave de servidor armazenada em uma variável de ambiente:

export KALEIDR_KEY="kld_sk_live_…"

Resumo​

EndpointFinalidadeEscopoCobrança
POST /sdk/sessionsTrocar uma chave publicável por uma sessãoEscopo do produtoUm carregamento de mapa para tile; gratuito nos demais casos
POST /sdk/share-sessionsTrocar o ID de um mapa publicado por uma sessão de chatnenhumGratuito
POST /chat/control/streamEnviar uma pergunta e transmitir resposta, locais, ações e rotasaiCréditos de IA pelos tokens utilizados
POST /chat/control/routeTraçar uma rota entre coordenadas conhecidasaiGratuito
GET /retrieval/geocode/forwardConverter texto digitado em locais e endereçosaiCréditos de IA, taxa fixa
POST /spotIdentificar local, endereço, regiões e conteúdo opcional em um pontoaiCréditos de IA, taxa fixa
POST /spot/overview/streamTransmitir uma breve visão geral de um item retornado por /spotaiCréditos de IA pelos tokens utilizados
GET /retrieval/poi/enrichObsoleto, use /spot. Detalhes e fotos de um localaiCréditos de IA, taxa fixa
POST /chat/summary/streamObsoleto, use /spot/overview/stream. Transmitir resumo de local ou edifícioaiCréditos de IA pelos tokens utilizados
POST /chat/button/streamTransmitir a resposta a uma pergunta sobre um localaiCréditos de IA pelos tokens utilizados
POST /design/analyzeRecomendar um design de mapa para uma tabela de dadosdesignCréditos de IA, taxa fixa
POST /design/apply-directCriar uma camada de mapa com uma tabela e um estilodesignGratuito
GET /design/styles, /design/samples, /design/themesCatálogos de designdesignGratuito

O funcionamento das cobranças, reservas e limites está em Cotas e limites de taxa.

Todos os endpoints de execução podem retornar os erros descritos em Erros comuns a todos os endpoints de execução. As seções abaixo listam apenas os erros específicos de cada endpoint.


POST /sdk/sessions​

Troca uma chave publicável por um token de sessão de curta duração, vinculado à origem da solicitação e a um produto. O SDK faz essa troca a cada montagem com chave. Chame o endpoint diretamente apenas no seu próprio cliente de navegador.

Autenticação: chave publicável. Exige: cabeçalho Origin (adicionado pelo navegador). Cobrança: um carregamento de mapa quando product é tile; caso contrário, nenhuma.

CampoTipoObrigatórioObservações
productstringSimchat, editor, viewer ou tile.
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"}'
{
"session_token": "kld_sess_live_eyJhbGciOi…",
"expires_in": 900,
"product": "chat",
"basemap_style_id": null
}

basemap_style_id indica o mapa base padrão da sua organização ou null quando não há um configurado.

StatusCódigoQuando ocorre
401Invalid or missing API keyChave desconhecida, revogada ou expirada.
403publishable_key_requiredA chave é de servidor ou legada.
403origin_requiredCabeçalho Origin ausente.
403origin_not_allowedA origem não está entre as permitidas para a chave.
403product_not_allowedOs produtos permitidos para a chave excluem product.
403tier_capability_not_allowedO plano não inclui o produto ou seu escopo.
403insufficient_scopeA chave foi criada sem o escopo do produto.
422validaçãoproduct está ausente ou não é um dos quatro valores permitidos.
429rate_limitedTrocas de sessão demais para esta chave. Retry-After: 5.
429map_load_quota_exceededApenas tile: cota de carregamentos de mapa esgotada.
404sessions_disabledSessões desativadas na plataforma. Entre em contato com o suporte.
503sessions_not_configuredFalha da plataforma. Tente novamente e, se persistir, contate o suporte.

A duração, as regras de renovação e a ordem dessas verificações estão em Autenticação e escopos: troca de sessão.

POST /sdk/share-sessions​

Troca o ID de um mapa publicado por uma sessão de chat, permitindo que visitantes conversem sem precisar colocar uma chave na página. O bloco Kaleidr AI do mapa no Studio precisa ativar o recurso solicitado.

Autenticação: nenhuma. Exige: cabeçalho Origin. Cobrança: nenhuma; as chamadas de chat feitas com a sessão são cobradas da organização proprietária do mapa.

CampoTipoObrigatórioObservações
share_idstringSimDe 1 a 128 caracteres: letras, dígitos, _ e -.
featurestringNãocontrol_tower (o padrão), o painel Ask Kaleidr do mapa, ou popups, o chat com IA nos pop-ups. Cada um só é concedido enquanto seu interruptor está ativo.
curl -s https://api.kaleidr.com/inference-api/b2b/v1/sdk/share-sessions \
-H "Origin: https://www.example.com" \
-H "Content-Type: application/json" \
-d '{"share_id":"your-map-id","feature":"control_tower"}'
{ "session_token": "kld_sess_live_eyJhbGciOi…", "expires_in": 300, "product": "chat" }
StatusCódigoQuando ocorre
403origin_requiredCabeçalho Origin ausente.
404not_foundNenhum mapa publicado ou link de compartilhamento tem este ID, ou o mapa do link de compartilhamento não está publicado.
403chat_disabledO Kaleidr AI do mapa não ativa o recurso solicitado.
403origin_not_allowedA página não pertence aos domínios permitidos.
403owner_has_no_organizationO proprietário não tem uma organização para cobrança.
403tier_capability_not_allowedO plano do proprietário não inclui chat.
422validaçãoshare_id está ausente ou contém caracteres inválidos, ou feature não é nenhum dos dois valores.
429rate_limitedTrocas demais para este mapa ou a partir deste endereço. Retry-After: 5.
404sessions_disabledSessões desativadas na plataforma.
503share_grant_unavailable, sessions_not_configuredFalha da plataforma. Tente novamente.

Consulte Kaleidr AI em um mapa publicado.


POST /chat/control/stream​

Recebe uma pergunta e transmite a resposta: texto enquanto é gerado, locais mencionados com coordenadas, ações no mapa e rotas. É o endpoint que alimenta o Kaleidr Chat.

Autenticação: chave de servidor, token de sessão ou chave legada. Escopo: ai. Cobrança: créditos de IA conforme os tokens usados pela resposta. Resposta: text/event-stream, descrita no contrato de transmissão SSE.

CampoTipoObrigatórioPadrãoObservações
messagesarray de { role, content }Não[]Conversa até aqui, do turno mais antigo ao mais recente, terminando na nova mensagem do usuário. role pode ser user ou assistant. Outros papéis, incluindo system, e mensagens com content vazio são ignorados. A pergunta respondida é a última mensagem user. Limites de tamanho abaixo.
session_idstringNãogeradoID de conversa de 1 a 128 caracteres: letras, dígitos, _, ., : e -. Forneça um ID estável e reutilize-o em todos os turnos. Caso seja omitido, o servidor gera um ID para a solicitação e o devolve nos eventos phase e start.
locationobjeto { lat, lng }NãonenhumLocal que o usuário está vendo: centro do mapa. Usado para interpretar “perto daqui”.
map_zoomnúmeroNãonenhumNível de zoom do mapa.
langstringNão"en"Idioma da resposta no padrão BCP 47, como fr ou pt-BR. Até 35 caracteres.
layoutstringNãonenhumO layout do viewer em que a conversa ocorre: "guide" enquanto o viewer incorporado mostra seu layout de guia; caso contrário, omita. Até 16 caracteres.
app_snapshotobjetoNãonenhumAceito, mas desnecessário; omita.
auto_actionsbooleanoNãonenhumAceito, mas desnecessário; omita.

Campos desconhecidos são aceitos e ignorados. Não há um campo para instruções de sistema, persona, ferramentas nem contexto próprio. A solicitação contém apenas a conversa, uma localização e um idioma.

O servidor não armazena a transcrição por você. Envie sempre os turnos anteriores em messages, com o mesmo session_id.

Um session_id pertence somente à sua organização. O contexto de curto prazo da conversa é mantido por organização, de modo que outra organização que envie o mesmo ID não consegue visualizar nem alterar sua conversa. Dentro da sua organização, atribua um ID único à conversa de cada usuário final.

Limites de solicitação​

Pedidos que ultrapassem qualquer um desses limites são recusados com 422 antes de gerar uma resposta, sem cobrança. O corpo é {"detail": "<code>"}.

LimiteValorCódigo
Mensagens em messages400too_many_messages
Comprimento do content de uma mensagem64.000 caracteresmessage_too_long
Comprimento total de todos os valores content200.000 caracteresconversation_too_long
session_idDe 1 a 128 caracteres: letras, dígitos, _, ., :, -invalid_session_id
lang35 caractereslang_too_long
layout16 caracteresinvalid_layout

Todas as mensagens contam para esses limites, inclusive as ignoradas. Uma conversa longa costuma atingir o limite de comprimento total antes do limite de quantidade de mensagens. Envie apenas os turnos recentes necessários e remova os mais antigos. Consulte Como ler o fluxo.

curl -N https://api.kaleidr.com/inference-api/b2b/v1/chat/control/stream \
-H "Authorization: Bearer $KALEIDR_KEY" \
-H "Content-Type: application/json" \
-H "Accept: text/event-stream" \
-d '{
"session_id": "trip-42",
"messages": [{"role": "user", "content": "Where is the Louvre, and what is next to it?"}],
"location": {"lat": 48.8566, "lng": 2.3522},
"map_zoom": 12,
"lang": "en"
}'

-N desativa o buffer de saída do curl para imprimir os quadros assim que chegam. Exemplo de resposta abreviada:

event: phase
data: {"type": "phase", "phase": "thinking", "session_id": "trip-42"}

: keep-alive

event: start
data: {"type": "start", "session_id": "trip-42", "purpose": "control"}

data: {"text": "The [[Louvre Museum]] is on the right bank of the Seine"}

event: place
data: {"name": "Louvre Museum", "coordinates": {"lat": 48.8606, "lng": 2.3376}, "category": "museum"}

data: {"text": ", with the [[Tuileries Garden]] directly to its west."}

event: place
data: {"name": "Tuileries Garden", "coordinates": {"lat": 48.8635, "lng": 2.3275}, "category": "park"}

event: early_actions
data: {"type": "early_actions", "actions": [{"type": "map.fitBounds", "payload": {"coordinates": [[2.3376, 48.8606], [2.3275, 48.8635]], "padding": 50, "maxZoom": 15, "duration": 1000}}], "places_count": 2, "is_partial": true}

event: end
data: {"type": "end", "full_text": "The [[Louvre Museum]] is on the right bank of the Seine, with the [[Tuileries Garden]] directly to its west.", "places": [{"name": "Louvre Museum", "coordinates": {"lat": 48.8606, "lng": 2.3376}, "category": "museum"}, {"name": "Tuileries Garden", "coordinates": {"lat": 48.8635, "lng": 2.3275}, "category": "park"}], "actions": [], "question_type": "…", "response_time": 6.4, "total_tokens": 3120}

event: quota
data: {"type": "quota", "product": "b2b", "meter": "b2b.tokens", "tier": "pro", "used": 184223, "limit": 5000000, "reset_at": "2026-11-01T04:00:00+00:00", "period": "month"}
StatusCódigoQuando ocorre
413request_too_largeO corpo da solicitação supera 2 MiB.
422validaçãoO corpo não contém JSON válido ou algum campo tem tipo incorreto.
422too_many_messages, message_too_long, conversation_too_long, invalid_session_id, lang_too_long, invalid_layoutA solicitação ultrapassa um limite.
429quota_exceededA reserva de créditos de IA ou o teto mensal desta chave é insuficiente.

O evento quota do exemplo é a versão recebida por uma chave de servidor. Um fluxo lido com token de sessão contém uma versão menor: veja o evento quota.

Depois que o streaming começa, uma falha chega como evento error, e não como status HTTP. Para criar um cliente, consulte Leitura do fluxo.

POST /chat/control/route​

Calcula uma rota entre coordenadas que você já conhece. Nenhuma pergunta é feita e nenhum texto é gerado.

Autenticação: chave de servidor, token de sessão ou chave legada. Escopo: ai. Cobrança: nenhuma. Mesmo assim, é preciso haver saldo disponível de créditos de IA para a chamada ser aceita.

CampoTipoObrigatórioPadrãoObservações
placesarray de objetosSim, pelo menos dois[]Cada objeto é { lat, lng, name? }, com lat e lng numéricos diretamente no nível superior do objeto. label pode substituir name. Entradas sem lat e lng numéricos são ignoradas sem erro.
profilestringNão"driving"driving, walking, cycling ou transit. Qualquer outro valor usa driving.
raw_querystringNão"Show directions"Texto digitado pelo usuário, se houver.

O primeiro local é a origem e o último é o destino.

O formato de um lugar é diferente no fluxo

Um evento place no fluxo de chat contém a posição aninhada: { "coordinates": { "lat": …, "lng": … } }. Este endpoint exige lat e lng diretamente no objeto. Enviar um lugar do fluxo sem alterações resulta em error, pois nenhuma entrada contém coordenadas utilizáveis.

curl -s https://api.kaleidr.com/inference-api/b2b/v1/chat/control/route \
-H "Authorization: Bearer $KALEIDR_KEY" \
-H "Content-Type: application/json" \
-d '{
"places": [
{"name": "Louvre Museum", "lat": 48.8606, "lng": 2.3376},
{"name": "Tuileries Garden", "lat": 48.8635, "lng": 2.3275}
],
"profile": "walking"
}'

Sucesso é uma resposta 200 com action (valores ilustrativos):

{
"action": {
"type": "map.showRoute",
"payload": {
"id": "control-directions",
"label": "Directions",
"profile": "walking",
"coordinates": [[2.3376, 48.8606], [2.3352, 48.8619], [2.3275, 48.8635]],
"distance_m": 870,
"duration_s": 640,
"turn_by_turn": [{ "text": "Walk west on Rue de Rivoli." }],
"attribution": {
"text": "© OpenStreetMap contributors",
"url": "https://www.openstreetmap.org/copyright",
"license": "https://opendatacommons.org/licenses/odbl/"
}
}
},
"route": { "…": "the full planning result the action was built from" }
}

Desenhe action.payload.coordinates, uma lista de pares [lng, lat]. distance_m está em metros e duration_s em segundos. Exiba attribution.text com link para attribution.url sempre que mostrar a rota.

Para profile: "transit", payload.transit contém uma viagem sem baldeação: caminhada, um trajeto de transporte e outra caminhada. O nível superior não contém attribution; o crédito da operadora fica em payload.transit.attribution. Mostre-o junto à viagem.

Este endpoint informa falhas com HTTP 200​

Não conseguir planejar uma rota não é um erro 4xx. A resposta é 200, com uma string error e sem action:

{ "error": "Route planning failed." }

Isso ocorre quando o planejador não consegue conectar os lugares ou falha por qualquer outro motivo. Se menos de dois lugares tiverem coordenadas válidas, o texto será At least two resolved places are required to build a route.. Esse texto foi feito para exibição direta, portanto verifique a presença de error, e não sua redação. Uma viagem de transporte público sem serviço direto responde da mesma forma, com o motivo em palavras e três campos extras: reason, covered e available.

Verifique o corpo da resposta, não o status:

const res = await fetch(`${API}/chat/control/route`, { method: 'POST', headers, body });
if (!res.ok) throw new Error(`route request refused: ${res.status}`); // 401, 403, 422, 429
const data = await res.json();
if (data.error) {
showMessage(data.error); // a 200 that is a failure
} else {
drawLine(data.action.payload.coordinates);
}

Falhas de autenticação, escopo, validação, cota e limite de taxa continuam sendo respostas normais 401, 403, 422 e 429.

GET /retrieval/geocode/forward​

Converte o texto digitado em locais e endereços correspondentes. Foi criado para campos de pesquisa ou de Origem/Destino.

Autenticação: chave de servidor, token de sessão ou chave legada. Escopo: ai. Cobrança: créditos de IA, taxa fixa por chamada, cobrada mesmo quando results está vazio.

ParâmetroTipoObrigatórioPadrãoObservações
qstringSimDe 1 a 200 caracteres: nome de local, endereço com número de imóvel ou lat,lng digitados.
near_latnúmeroNãoDe −90 a 90. Prioriza resultados próximos. Usado somente com near_lng.
near_lngnúmeroNãoDe −180 a 180. Usado somente com near_lat.
limitinteiroNão5De 1 a 20.
modestringNãoModalidade de deslocamento (driving, walking, cycling, transit). Uma viagem curta prioriza resultados próximos.
curl -s -G https://api.kaleidr.com/inference-api/b2b/v1/retrieval/geocode/forward \
-H "Authorization: Bearer $KALEIDR_KEY" \
--data-urlencode "q=20 W 34th St, New York" \
--data-urlencode "limit=3"
{
"query": "20 W 34th St, New York",
"results": [
{
"lat": 40.7484,
"lng": -73.9857,
"display_name": "20 W 34th St, New York, NY 10001",
"type": "address",
"source": "…",
"id": "…",
"confidence": "exact",
"attribution": {
"dataset": "us/ny/city_of_new_york",
"license": "…",
"attribution": "Address data from the NYC Department of City Planning."
}
}
],
"attribution": {
"text": "Overture Maps Foundation, overturemaps.org",
"licenses": [
"https://cdla.dev/permissive-2-0/",
"https://www.apache.org/licenses/LICENSE-2.0",
"https://opensource.foursquare.com/places-notice-txt/",
"https://docs.overturemaps.org/attribution/"
],
"sources": [
{
"dataset": "us/ny/city_of_new_york",
"license": "…",
"attribution": "Address data from the NYC Department of City Planning."
}
]
}
}

Todos os resultados contêm lat, lng, display_name, type e source. Os demais campos aparecem quando aplicáveis:

Campo do resultadoSignificado
idPara um endereço: identificador Kaleidr daquele número de porta, que permanece estável entre atualizações de dados e pode ser armazenado e comparado.
confidenceComo o resultado corresponde ao texto (tabela abaixo). Ausente se lat,lng foi digitado.
approximate, method, matched_numbers, within_m, scoreApenas em endereços estimados (abaixo).
attributionCondições do conjunto de dados de origem: dataset, license e, quando aplicável, license_url, attribution (crédito a exibir) e use_restriction.
confidenceO resultado é
exactO número digitado, na rua e localidade indicadas.
fuzzyO mesmo, apesar de erro de grafia no nome da rua.
name_exactUm local cujo nome corresponde exatamente às palavras digitadas.
localityCidade, região ou bairro indicado no texto.
interpolated, nearestEstimativa de um número de imóvel ausente nos dados.
partialRua cujo nome completo começa com o texto digitado.
name_partialLocal cujo nome compartilha algumas palavras digitadas.
ambiguousEndereço sem localidade indicada nem referência próxima: uma entre várias opções.

Endereços estimados. Quando o número digitado não consta nos dados, a resposta o coloca na rua correspondente: entre os números conhecidos mais próximos no mesmo lado, no número conhecido mais próximo ou ao longo do quarteirão cuja faixa numérica o contém. O resultado inclui approximate: true e:

CampoSignificado
method"interpolated" (entre dois números conhecidos), "nearest" (no número conhecido mais próximo) ou "range" (ao longo do quarteirão).
matched_numbersNúmeros utilizados como base da estimativa.
within_mDistância em metros entre esses números ou comprimento do quarteirão: limite máximo do desvio se a numeração segue a ordem. Ausente com "nearest".
scoreConfiança de 0 a 1. Pontuação baixa indica uma localização aproximada na rua, não a porta exata.

Uma correspondência exata nunca inclui esses campos.

Atribuição. Encaminhe o campo de nível superior attribution junto dos resultados. O campo text é o crédito que deve ser exibido, e licenses contém os termos que acompanham os dados. Se houver endereços, attribution.sources lista cada conjunto de dados de endereços utilizado. Respeite a use_restriction de cada conjunto para esses resultados:

Conjunto de dadosCrédito a exibirRestrição de uso
au/countrywide (G-NAF)G-NAF © Geoscape Australia, licenciado pela Commonwealth da Austrália conforme o Open Geo-coded National Address File (G-NAF) End User Licence Agreement.Não utilizar para gerar endereços ou compilações de endereços para envio postal, a menos que cada endereço seja verificado quanto ao recebimento de correspondência por fonte diferente de G-NAF; o uso deve cumprir os Australian Privacy Principles.
ca/countrywide (Statistics Canada)Adaptado de Statistics Canada, National Address Register, 2025-07-29. Isso não representa endosso do produto pela Statistics Canada.Não identificar pessoas, empresas ou organizações, nem sugerir endosso pela Statistics Canada.
us/ny/city_of_new_yorkDados de endereços do NYC Department of City Planning.Nenhuma.
us/ma/statewide (MassGIS)MassGIS (Bureau of Geographic Information), Commonwealth of Massachusetts EOTSSNenhuma (domínio público).

Nenhuma correspondência e falha interna têm a mesma aparência. Uma consulta sem resultados retorna 200 com "results": []. Uma pesquisa que falha internamente também pode retornar o mesmo; nesse caso, não há cobrança. Trate um array vazio como “nada a mostrar”, e não como erro.

StatusCódigoQuando ocorre
422validaçãoq ausente, vazio ou com mais de 200 caracteres; limit ou coordenada fora do intervalo permitido.
429quota_exceededOs créditos de IA disponíveis não cobrem a chamada.

POST /spot​

Responde o que existe em um ponto: o local clicado pelo usuário, o endereço mais próximo e as regiões que contêm o ponto. Cada valor informa o crédito que precisa ser exibido. Sob solicitação, também inclui conteúdo descritivo e fotos do local.

Autenticação: chave de servidor, token de sessão ou chave legada. Escopo: ai. Cobrança: créditos de IA, taxa fixa por chamada conforme o item mais caro solicitado em want, cobrada mesmo que nada seja encontrado. content ou photos custam a taxa de /retrieval/poi/enrich quando o conteúdo é obtido para esta chamada; caso contrário, address custa a taxa de /retrieval/geocode/forward. Conteúdo já obtido para uma solicitação anterior não é cobrado; assim, essa chamada, se também solicitar address, cobra a taxa de geocodificação. Chamadas que solicitam apenas entities, regions, boundaries ou tenants são gratuitas. O padrão de want inclui address, portanto omitir want cobra a taxa de geocodificação.

CampoTipoObrigatórioPadrãoObservações
latnúmeroSimDe −90 a 90. O ponto.
lngnúmeroSimDe −180 a 180.
zoomnúmeroNãoDe 0 a 24. Nível de zoom do mapa.
hintobjetoNãoO que o usuário clicou (abaixo).
wantarray de stringsNão["entities", "address", "regions"]Partes que serão retornadas (abaixo).
langstringNão"en"Idioma de content. Até 16 caracteres.

O ponto determina o resultado; a dica apenas seleciona. Uma dica escolhe entre o que está no ponto e nunca desloca a resposta. Um lugar a mais de 75 metros de lat, lng não será retornado, qualquer que seja a dica.

Campo hintObservações
idIdentificador do lugar no Kaleidr: a parte de uma referência poi: após os dois-pontos.
nameNome do lugar, conforme aparece no rótulo do mapa. Até 200 caracteres. É comparado por correspondência exata com os lugares no ponto e identifica o lugar para content. Quando region_level é county, state ou country, também seleciona a região desse nível cujo nome corresponda, desconsiderando maiúsculas, minúsculas e acentos, entre as regiões no ponto (para estado ou país, também as que ficam a até 5 km do ponto). Se o nome não corresponder a nenhuma delas, nada muda.
categoryCategoria do lugar. Até 100 caracteres. Usada para content.
region_levelCom boundaries, retorna somente o contorno da região neste nível (city, county, state ou country); sem essa opção, retorna o contorno de todas as regiões. Com name, a região desse nível tanto em regions quanto em boundaries é aquela selecionada pelo nome.
layer, wiki_title, ta_location_id, yelp_business_id, data_sourceCampos aceitos. São usados pelos próprios aplicativos do Kaleidr; omita-os.
Valor de wantAdiciona
entitiesO lugar clicado, quando hint identifica um lugar localizado no ponto.
addressO endereço de rua mais próximo.
regionsA cidade e o condado (somente nos Estados Unidos), o estado e o país que contêm o ponto. Se o ponto estiver no mar, a até 5 km da costa, retorna o estado e o país mais próximos.
boundariesregions, cada uma com seu contorno (apenas um nível quando hint.region_level é informado).
contentConteúdo descritivo do lugar: resumo, fotos e link. Requer o nome do lugar, obtido do lugar clicado ou de hint.name.
photosSomente as fotos do lugar. Tem o mesmo custo que content.
tenantsOs lugares identificados pelo nome perto do ponto, do mais próximo ao mais distante: os estabelecimentos em um edifício. Seu aplicativo mantém os que estão dentro da área ocupada pelo edifício que ele exibe.
curl -s https://api.kaleidr.com/inference-api/b2b/v1/spot \
-H "Authorization: Bearer $KALEIDR_KEY" \
-H "Content-Type: application/json" \
-d '{
"lat": 40.7484,
"lng": -73.9857,
"zoom": 17,
"hint": {"name": "Empire State Building", "category": "landmark"},
"want": ["entities", "address", "regions"]
}'

Uma resposta abreviada com valores ilustrativos:

{
"spot": { "lat": 40.7484, "lng": -73.9857, "zoom": 17 },
"entities": [
{
"ref": "poi:3f1c2a9e-…",
"kind": "poi",
"role": "clicked",
"name": { "value": "Empire State Building", "license": "CDLA-Permissive-2.0", "attr": "a1" },
"at": { "lat": 40.74844, "lng": -73.98566 },
"facts": {
"category": { "value": "landmark_and_historical_building", "license": "CDLA-Permissive-2.0", "attr": "a1" },
"website": { "value": "https://www.esbnyc.com", "license": "CDLA-Permissive-2.0", "attr": "a1" }
}
}
],
"address": {
"ref": "address:ka1…",
"line": { "value": "20 W 34th St, New York, NY 10001", "license": "CDLA-Permissive-2.0", "attr": "a2" },
"at": { "lat": 40.7484, "lng": -73.9857 }
},
"regions": [
{
"ref": "region:tiger:3651000",
"kind": "region",
"level": "city",
"name": { "value": "New York", "license": "LicenseRef-Public-Domain", "attr": "a3" },
"label": { "lat": 40.6976, "lng": -73.9795 }
},
{
"ref": "region:tiger:36",
"kind": "region",
"level": "state",
"name": { "value": "New York", "license": "LicenseRef-Public-Domain", "attr": "a3" },
"label": { "lat": 42.7559, "lng": -75.8099 }
}
],
"attributions": {
"a1": { "text": "© Overture Maps Foundation", "license": "CDLA-Permissive-2.0" },
"a2": { "text": "Address data from the NYC Department of City Planning.", "license": "CDLA-Permissive-2.0" },
"a3": { "text": "U.S. Census Bureau, TIGER/Line", "license": "LicenseRef-Public-Domain" }
},
"withheld": ["building_facts"]
}
CampoSignificado
spotO ponto enviado: { lat, lng, zoom }.
entitiesO local clicado e, quando solicitados, os estabelecimentos no edifício; caso contrário, um array vazio. Cada entrada contém ref, kind ("poi" para o local clicado, "tenant" para um estabelecimento), role ("clicked" ou "inside"), name, at (posição própria do local, { lat, lng }) e facts (category e, se conhecido, website do local clicado). O ref de um estabelecimento é uma referência poi:, que também pode ter sua descrição transmitida. Ignore entradas de kind desconhecido.
addressEndereço mais próximo ou null: { ref, line, at }.
regionsRegiões que contêm o ponto, da menor para a maior. Cada uma tem ref, kind ("region"), level (city, county, state ou country), name e label: ponto para posicionar o nome da região, { lat, lng }, ou null. Com want: ["boundaries"], também contém geometry, seu contorno em geometria GeoJSON.
contentAparece quando want inclui content ou photos, o nome do local é conhecido e o conteúdo pode ser retornado. É o objeto de /retrieval/poi/enrich (campos) ou, ao solicitar apenas photos, { photos, source, cached }, ambos acrescidos de license e attr. Pode ser null quando não há conteúdo recuperável.
attributionsCréditos desta resposta: { text, license }, indexados pelo attr de cada valor.
withheldConteúdo omitido pela API devido a restrições, agrupado por tipo; array vazio quando nada foi omitido.

Uma ref identifica um elemento para /spot/overview/stream: poi:<id> para um local, address:<id> para um endereço, region:<source>:<id> para uma região (<source> é tiger, nuts ou ne). Os aplicativos próprios do Kaleidr também usam building:<id>, que a API não retorna. Trate as referências como strings opacas.

Exibir a atribuição de cada valor​

Cada valor de um conjunto de dados é um objeto { value, license, attr }: dado, licença e chave de attributions. Sempre que exibir um valor, exiba também attributions[attr].text, ao lado ou em uma área de créditos acessível. Uma resposta pode misturar várias fontes; um único crédito para a resposta inteira não é suficiente. Mantenha license e a atribuição com o valor ao armazená-lo ou repassá-lo.

content recebe atribuição da mesma forma, usando seu próprio attr. Um valor com live_only: true pode ser exibido somente ao usuário atual, nunca armazenado nem repassado.

Consulte Licenças de dados para saber o que cada licença exige.

O que a API não retorna​

Os próprios aplicativos do Kaleidr exibem mais informações sobre um ponto do que a API, porque parte dos dados não é licenciada para outros sites:

  • Valores sob ODbL, derivados do OpenStreetMap: fatos sobre edifícios (andares, altura e classe). Resumos de edifícios também não estão disponíveis.
  • Respostas de provedores terceirizados: consultas de endereços em serviços de geocodificação e notas, avaliações e fotos do Yelp e do Tripadvisor.

withheld permite distinguir “não se sabe nada aqui” de “não disponível pela API”. Ele identifica tipos, nunca valores: building_facts quando o ponto está em um edifício; content quando o único conteúdo sobre o local pode não ser disponibilizado. Outras entradas identificam outras partes omitidas da mesma forma.

Erros de POST /spot:

StatusCódigoQuando ocorre
413request_too_largeO corpo ultrapassa 2 MiB.
422validaçãolat ou lng ausente ou fora dos limites, zoom fora de 0 a 24, want com valor desconhecido ou campo longo demais ou malformado.
429quota_exceededOs créditos de IA disponíveis não cobrem a chamada.

Uma parte que não pôde ser consultada é retornada vazia (null ou []). A chamada ainda é cobrada.

POST /spot/overview/stream​

Transmite uma descrição escrita curta de um item retornado por /spot, identificado por seu ref.

Autenticação: chave de servidor, token de sessão ou chave legada. Escopo: ai. Cobrança: créditos de IA conforme os tokens usados. Cada descrição é gerada para a solicitação. Resposta: text/event-stream: normalmente um quadro place com o nome completo do local, como "Springfield, Ohio, United States of America", seguido dos quadros de resumo de local. Consulte Streams de resumo e botões.

CampoTipoObrigatórioPadrãoObservações
refstringSimUma ref de uma resposta de /spot, com até 128 caracteres, ou place: (abaixo).
lat, lngnúmeroSimPonto enviado a /spot.
langstringNão"en"Idioma da descrição. Até 16 caracteres.
hintobjetoSomente para place:{ name, category? }: nome a descrever.
refDescrição
poi:<id>O local.
region:<source>:<id>A região.
place:Um nome para o qual Kaleidr não tem registro, como um local que /spot retornou sem entidade. Envie o nome em hint.name.
address:<id>, building:<id>Não disponível pela API: o fluxo envia um quadro error. Veja O que a API não retorna.

O elemento é localizado novamente em lat, lng, portanto nenhum dado da solicitação é assumido como fato sobre ele. Uma referência poi: a mais de 75 metros do ponto, uma referência region: que não contém o ponto e place: sem hint.name também recebem um quadro error.

curl -N https://api.kaleidr.com/inference-api/b2b/v1/spot/overview/stream \
-H "Authorization: Bearer $KALEIDR_KEY" \
-H "Content-Type: application/json" \
-d '{"ref": "poi:3f1c2a9e-…", "lat": 40.7484, "lng": -73.9857, "lang": "en"}'

Uma referência que não pode ser descrita retorna este quadro no lugar de um resumo. Ele contém ref e não inclui partial_text:

event: error
data: {"type": "error", "message": "Nothing to describe here.", "ref": "address:ka1…"}
StatusCódigoQuando ocorre
413request_too_largeO corpo ultrapassa 2 MiB.
422validaçãoref não segue nenhum dos formatos anteriores, lat ou lng ausente ou fora dos limites, ou lang com mais de 16 caracteres.
429quota_exceededOs créditos de IA disponíveis não cobrem a chamada.

Migração dos endpoints descontinuados​

GET /retrieval/poi/enrich e POST /chat/summary/stream estão obsoletos. Continuarão respondendo como antes até 2027-01-15 e poderão ser removidos em qualquer momento depois dessa data. Os cabeçalhos das respostas avisam sobre a descontinuação; Deprecation indica o dia da descontinuação, 2026-10-16, como horário Unix:

Deprecation: @1792108800
Sunset: Fri, 15 Jan 2027 00:00:00 GMT
Link: </inference-api/b2b/v1/spot>; rel="successor-version"

O cabeçalho Link de /chat/summary/stream aponta para /inference-api/b2b/v1/spot/overview/stream. Registre o cabeçalho Sunset para identificar as chamadas ainda usadas.

De GET /retrieval/poi/enrich para POST /spot:

AntesDepois
lat, lon (consulta)lat, lng (corpo). Observe a mudança do nome.
name, categoryhint.name, hint.category
langlang, até 16 caracteres
Consulta completawant: ["content"]
photos_only=truewant: ["photos"]
radius, dataSource, ta_location_id, regionLevelOmita.
Corpo da respostacontent: mesmo objeto, com live_only acrescentado
attributioncontent.attribution

A cobrança é a mesma ou menor: /spot não cobra pelo conteúdo já obtido para uma solicitação anterior. Uma consulta é cobrada pelo item mais caro de want; assim, quando o conteúdo é obtido para a chamada, adicionar entities, address ou regions os retorna na mesma chamada, sem custo extra.

De POST /chat/summary/stream para POST /spot/overview/stream:

AntesDepois
Local: location, building_properties.name, .categoryChame /spot com o ponto e hint: { name, category }, depois transmita a visão geral do ref do local em entities, com os mesmos lat e lng. Se entities estiver vazio, envie ref: "place:" com o mesmo hint.
building_properties.pidref: "poi:<id>"
langlang, até 16 caracteres
max_tokensOmita.
Edifício: type: "building" e seus camposSem sucessor. A descrição de edifícios não está disponível pela API.
QuadrosQuadros de resumo de um local, após um novo quadro place que nomeia o local.

GET /retrieval/poi/enrich​

Obsoleto

Este endpoint está obsoleto e pode ser removido depois de 2027-01-15. Use POST /spot com want: ["content"]. Consulte Migração de endpoints obsoletos.

Retorna conteúdo descritivo de um local: título, resumo, fotos e link.

Autenticação: chave de servidor, token de sessão ou chave legada. Escopo: ai. Cobrança: créditos de IA, taxa fixa por chamada. A cobrança ocorre mesmo quando nenhum conteúdo é encontrado.

ParâmetroTipoObrigatórioPadrãoObservações
latnúmeroSimLatitude do local.
lonnúmeroSimLongitude do local. Observe o nome lon, não lng.
namestringNãoNome do local. Recomendado: apenas um ponto frequentemente não encontra nada.
categorystringNãoCategoria do local, conforme o evento place.
radiusinteiroNão250Raio de busca em metros em torno do ponto.
langstringNão"en"Idioma do conteúdo.
photos_onlybooleanoNãofalseRetornar somente fotos (resposta menor, abaixo).
dataSource, ta_location_id, regionLevelstringNãoAceitos, mas são dicas para os próprios aplicativos Kaleidr; omita.
curl -s -G https://api.kaleidr.com/inference-api/b2b/v1/retrieval/poi/enrich \
-H "Authorization: Bearer $KALEIDR_KEY" \
--data-urlencode "lat=48.8606" \
--data-urlencode "lon=2.3376" \
--data-urlencode "name=Louvre Museum" \
--data-urlencode "category=museum"
{
"source": "wikipedia",
"found": true,
"title": "Louvre",
"photos": ["https://upload.wikimedia.org/…/Louvre_Museum.jpg"],
"summary": "The Louvre is a national art museum in Paris, France…",
"rating": null,
"phone": null,
"hours": null,
"reviews": [],
"url": "https://en.wikipedia.org/wiki/Louvre",
"attribution": ["Wikipedia"]
}
CampoTipoSignificado
sourcestringOrigem do conteúdo. "omitted" indica que existe conteúdo, mas ele não pode ser retornado pela API (abaixo).
foundbooleanofalse quando nada foi encontrado; os demais campos ficam vazios.
titlestringTítulo do local na fonte.
summarystring ou nullDescrição breve.
photosarray de URLsPode estar vazio.
urlstring ou nullLink para a página de origem.
attributionarray de stringsFontes a creditar, como ["Wikipedia"]. Exiba junto com o conteúdo.
rating, phone, hours, reviewsPodem ser null ou vazios. Notas e avaliações de fornecedores licenciados nunca são retornadas pela API.
unverifiedbooleanoOpcional. true quando a correspondência do local é incerta.

Com photos_only=true, a resposta é { "photos": […], "source": "…", "cached": false }.

Conteúdo não disponibilizado. Alguns conteúdos são licenciados somente para aplicativos do Kaleidr. Se esse for o único conteúdo disponível para um local, a resposta será 200, com "source": "omitted", "found": false e sem conteúdo. A chamada ainda é cobrada. Consulte Licenças de dados.

StatusCódigoQuando ocorre
422validaçãolat ou lon está ausente ou não é número.
429quota_exceededOs créditos de IA disponíveis não cobrem a chamada.
500An internal error occurred. Please try again.A busca falhou. A chamada continua sendo cobrada.

POST /chat/summary/stream​

Obsoleto

Este endpoint está obsoleto e pode ser removido depois de 2027-01-15. Use POST /spot/overview/stream. Não há substituto para resumos de edifícios. Consulte Migração de endpoints obsoletos.

Transmite um breve resumo escrito de um local ou edifício. Ele alimenta o cartão de local no Kaleidr Chat.

Autenticação: chave de servidor, token de sessão ou chave legada. Escopo: ai. Cobrança: créditos de IA conforme os tokens usados. Cada resumo é gerado para a solicitação. Resposta: text/event-stream. Consulte Streams de resumo e botões.

O campo type do corpo escolhe o tipo de resumo.

Um edifício ("type": "building"):

CampoTipoObrigatórioObservações
typestringSim"building".
addressstringSimEndereço completo do edifício. Até 500 caracteres.
lat, lngnúmeroNãoPosição do edifício.
building_levelsinteiroNãoNúmero de andares, se conhecido.
building_height_mnúmeroNãoAltura do edifício em metros, se conhecida.
tenant_namesarray de stringsNãoEmpresas no edifício. Até 100 nomes de até 200 caracteres cada.
poi_countinteiroNãoQuantidade de locais no edifício.
langstringNãoPadrão "en". Até 35 caracteres.
curl -N https://api.kaleidr.com/inference-api/b2b/v1/chat/summary/stream \
-H "Authorization: Bearer $KALEIDR_KEY" \
-H "Content-Type: application/json" \
-d '{"type": "building", "address": "20 W 34th St, New York, NY 10001", "lat": 40.7484, "lng": -73.9857}'
event: start
data: {"type": "start", "address": "20 W 34th St, New York, NY 10001"}

data: {"text": "A landmark office tower in Midtown Manhattan"}

event: end
data: {"type": "end", "full_text": "A landmark office tower in Midtown Manhattan…", "parsed": {"…": "…"}, "total_tokens": 910}

event: quota
data: {"type": "quota", "product": "b2b", "meter": "b2b.tokens", "tier": "pro", "used": 185133, "limit": 5000000, "reset_at": "2026-11-01T04:00:00+00:00", "period": "month"}

Um local (type ausente ou "poi"). O corpo aceita location (objeto { lat, lng }), building_properties (objeto), lang e max_tokens (inteiro). Essa variante foi concebida para o painel do próprio Kaleidr, e o significado de seus campos ainda não é um contrato público. Prefira /chat/control/stream para perguntar sobre um local a partir de código próprio.

Campo do localLimite
building_properties.name, .type, .category, .poi_type200 caracteres cada
building_properties.pid128 caracteres
Cada campo de texto em building_properties.event4.000 caracteres
lang35 caracteres
max_tokensValor acima do padrão do endpoint é reduzido ao padrão. Não é possível pedir uma descrição mais longa.

As duas variantes leem apenas os campos listados aqui. Qualquer outro campo no corpo é ignorado. Um campo acima do seu limite de tamanho é rejeitado com 422 field_too_long, antes de qualquer resumo ser gerado.

StatusCódigoQuando ocorre
413request_too_largeO corpo supera 2 MiB.
422field_too_longUm campo ultrapassa seu limite ou tenant_names contém mais de 100 entradas. O corpo é {"detail": "field_too_long"}.
500Summary stream errorO corpo não pôde ser lido ou a solicitação de edifício não tem address. Este endpoint retorna 500, não 422, para outros corpos incorretos.
429quota_exceededOs créditos de IA disponíveis não cobrem a chamada.

POST /chat/button/stream​

Transmite a resposta a uma única pergunta sobre um local, como “Quais são os horários de funcionamento?”. É o endpoint dos botões de perguntas no cartão de lugar do Kaleidr Chat. Não mantém uma conversa: cada chamada é independente.

Autenticação: chave de servidor, token de sessão ou chave legada. Escopo: ai. Cobrança: créditos de IA conforme os tokens usados. Resposta: text/event-stream. Consulte Streams de resumo e botões.

CampoTipoObrigatórioPadrãoObservações
querystringSimPergunta. Até 4.000 caracteres.
place_namestringNãoNome do local. Até 200 caracteres.
place_typestringNãoCategoria do local. Até 200 caracteres.
addressstringNãoEndereço do local. Até 500 caracteres.
locationobjeto { lat, lng }NãoPosição do local.
langstringNão"en"Idioma da resposta. Até 35 caracteres.
descriptionstringNãoDescrição do local já conhecida. Até 4.000 caracteres.
websitestringNãoSite do local, se conhecido. Até 2.048 caracteres.
stores_previewarray de objetos { name }NãoEstabelecimentos no local que você já conhece. Até 50 entradas; cada name com até 200 caracteres. Outros campos são ignorados.
button_id, session_id, place_idstringNãoIdentificadores próprios para correlacionar solicitações. Até 128 caracteres cada.

Campos que não aparecem nesta tabela são ignorados. Campos acima do comprimento máximo são recusados com 422 field_too_long antes da geração da resposta.

curl -N https://api.kaleidr.com/inference-api/b2b/v1/chat/button/stream \
-H "Authorization: Bearer $KALEIDR_KEY" \
-H "Content-Type: application/json" \
-d '{
"query": "What is this place known for?",
"place_name": "Louvre Museum",
"place_type": "museum",
"location": {"lat": 48.8606, "lng": 2.3376}
}'
event: start
data: {"type": "start", "query_type": "…"}

data: {"text": "The Louvre is best known for"}

event: end
data: {"type": "end", "full_text": "The Louvre is best known for…", "reply": "The Louvre is best known for…", "query_type": "…", "first_token_ms": 820, "total_ms": 3900, "total_tokens": 640}
StatusCódigoQuando ocorre
413request_too_largeO corpo supera 2 MiB.
422field_too_longCampo longo demais ou stores_preview contém mais de 50 entradas. O corpo é {"detail": "field_too_long"}.
500Button chat stream errorO corpo não pôde ser lido ou não contém query. Este endpoint responde 500, e não 422, para outros corpos incorretos.
429quota_exceededOs créditos de IA disponíveis não cobrem a chamada.

POST /design/analyze​

Examina as colunas e uma amostra da tabela e recomenda como representá-la no mapa.

O Editor incorporado não chama os endpoints de design. Eles formam uma interface REST para suas próprias ferramentas.

Autenticação: chave de servidor, token de sessão ou chave legada. Escopo: design. Cobrança: créditos de IA, taxa fixa por chamada bem-sucedida. Chamadas que falham não são cobradas.

CampoTipoObrigatórioObservações
columnsarray de stringsSimDe 1 a 256 nomes de coluna, todos únicos.
sampleRowsarray de objetosNãoAté 1.000 linhas, cada objeto com nomes das colunas como chaves.
datasetNamestringNãoAté 512 caracteres.
rowCountinteiroNãoNúmero total de linhas da tabela, igual ou superior a 0.
userGoalstringNãoAté 1.000 caracteres: o que o mapa deve mostrar.
supportedStylesarray de stringsNãoIDs dos estilos disponíveis, em palavras minúsculas unidas por hífens.

Os nomes dos campos usam camelCase. Campos desconhecidos são ignorados.

curl -s https://api.kaleidr.com/inference-api/b2b/v1/design/analyze \
-H "Authorization: Bearer $KALEIDR_KEY" \
-H "Content-Type: application/json" \
-d '{
"datasetName": "stores.csv",
"columns": ["name", "lat", "lng", "revenue"],
"sampleRows": [
{"name": "Downtown", "lat": 40.7128, "lng": -74.0060, "revenue": 120000},
{"name": "Uptown", "lat": 40.7831, "lng": -73.9712, "revenue": 86000}
],
"rowCount": 240,
"userGoal": "Show which stores earn the most"
}'
{
"datasetProfile": { "…": "what was detected in each column" },
"designPlan": { "…": "the recommended style, theme and reasoning" },
"issues": [],
"recommendation": { "…": "…" },
"suggestedConfig": { "…": "…" },
"explanation": "…"
}

Leia designPlan. Ele pode ser null. recommendation, suggestedConfig e explanation são campos antigos mantidos para compatibilidade e previstos para remoção; não dependa deles. issues lista os problemas encontrados nos dados.

StatusCódigoQuando ocorre
413request_too_largeO corpo supera 5 MiB. O mesmo limite se aplica a /design/apply-direct.
422validaçãocolumns ausente, vazio, longo demais ou duplicado; ou outro limite acima excedido.
429quota_exceededOs créditos de IA disponíveis não cobrem a chamada.
500map_design_analyze_failedAnálise falhou. Não há cobrança.

POST /design/apply-direct​

Cria uma camada de mapa a partir de uma tabela e de um estilo escolhido, sem análise.

Autenticação: chave de servidor, token de sessão ou chave legada. Escopo: design. Cobrança: nenhuma.

CampoTipoObrigatórioObservações
stylestringSimID de estilo de 1 a 64 caracteres. IDs listados em /design/styles.
configobjetoSimObjeto com location, metric e visual. location.mode ("coordinates" ou "region") e visual.layerName são obrigatórios; os demais subcampos ainda não estão documentados.
tableobjetoSim{ fileName?, columns[], rows[] }. Cada linha é um objeto que associa o nome de uma coluna a um valor, e cada valor deve ser string JSON: envie "120000", não 120000. Uma linha com número ou null é rejeitada com 422.
layerLabelstringSimNome visível da camada, de 1 a 512 caracteres.
themePackIdstringNãoID de tema de /design/themes. IDs desconhecidos são ignorados.
datasetSourceobjetoNão{ label, url? }: responsável pela publicação dos dados para a atribuição da camada.
datasetIdstringNãoAté 128 caracteres. Usado como ID da camada.
yearinteiroNãoDe 1800 a 2100.

A resposta sempre contém um status:

{ "status": "applied", "message": null, "spec": { "…": "a partial map specification" } }
statusSignificado
appliedspec contém a camada.
unsupported-styleEste estilo não pode ser criado com os dados fornecidos. message informa o motivo.
insufficient-dataA tabela não contém dados necessários, como colunas de posição. message explica.

As três respostas têm status 200. Verifique status.

GET /design/styles, /design/samples, /design/themes​

Três catálogos somente de leitura: estilos de mapa disponíveis, mapas de exemplo e pacotes de temas.

Autenticação: chave de servidor, token de sessão ou chave legada. Escopo: design. Cobrança: nenhuma. Essas chamadas contam para o limite de solicitações por minuto da chave, mas não para o limite de concorrência.

curl -s https://api.kaleidr.com/inference-api/b2b/v1/design/styles \
-H "Authorization: Bearer $KALEIDR_KEY"

Cada resposta agrupa sua lista em uma única chave:

{ "styles": [ { "…": "…" } ] }

/design/samples retorna { "samples": [ … ] } e /design/themes retorna { "themes": [ … ] }.


Erros comuns a todos os endpoints de execução​

Todos os endpoints, exceto os dois de troca de sessão, podem retornar estes erros antes do processamento específico. Eles são verificados nesta ordem.

OrdemStatusCódigoQuando ocorre
1401Invalid or missing API keyCredencial ausente ou chave desconhecida, revogada ou expirada.
2401publishable_requires_sessionChave publicável enviada diretamente. Troque por uma sessão primeiro.
2403server_key_in_browserChave de servidor enviada com cabeçalho Origin.
2403session_origin_mismatchToken de sessão usado de outra origem.
2403ip_not_allowedChave de servidor ou legada com lista de IPs permitidos, chamada de um endereço fora da lista.
3403insufficient_scopeA chave não tem o escopo exigido pelo endpoint.
3403tier_capability_not_allowedA chave tem o escopo, mas o plano atual não o inclui mais.
3403product_not_allowedChave de servidor ou legada limitada a determinados produtos chamou um endpoint de outro produto. Consulte Restrição de chaves.
4429quota_exceededApenas endpoints com cobrança: reserva de créditos ou teto da chave não cobre a chamada.
5429visitor_limit_reachedApenas sessões de mapas publicados: visitante fez solicitações demais.
6429rate_limitedLimite de solicitações por minuto da chave esgotado.
7429b2b_overloaded, org_overloadedChamadas simultâneas demais.

Um corpo acima do tamanho permitido é rejeitado com 413 request_too_large: 2 MiB em todos os endpoints, 5 MiB em /design/*. Se a solicitação declarar seu comprimento, a rejeição ocorre antes de todas as verificações acima.

Os corpos e o tratamento das respostas estão em Erros e Cotas e limites de taxa.

Conteúdo relacionado​