Download OpenAPI specification:
Documentação agregada das APIs PrismaData, cobrindo localização, roteamento, autenticação e consulta de precatórios/RPVs.
A PrismaData API fornece dados geoespaciais e socioeconômicos do Brasil através de endpoints REST. Com uma única coordenada (latitude/longitude) você obtém informações sobre favelas, renda, presídios, fronteiras, setor censitário e mais.
Base URL: https://api.prismadata.io/v1
ak_xxxxxxxxxxxxxxxx) — obtida no painel ou via suporteUse sua API Key diretamente no header X-Apikey de cada requisição. O gateway valida a chave e gerencia o token JWT internamente — não é necessário chamar /auth/token separadamente.
Envie uma coordenada para qualquer endpoint de localização. Exemplo: consultar o presídio mais próximo de um ponto.
A resposta é um JSON com campos prefixados por prismadata__<serviço>__. Veja a seção Formato de Resposta para detalhes.
curl:
curl "https://api.prismadata.io/v1/location/prison?lat=-25.5&lng=-54.5" \
-H "X-Apikey: ak_xxxxxxxxxxxxxxxx"
Python (httpx):
import httpx
resp = httpx.get(
"https://api.prismadata.io/v1/location/prison",
params={"lat": -25.5, "lng": -54.5},
headers={"X-Apikey": "ak_xxxxxxxxxxxxxxxx"},
)
dados = resp.json()
nome = dados["prismadata__prison__nome_estabelecimento"]
print(nome or "Nenhum presídio próximo")
JavaScript (fetch):
const resp = await fetch(
"https://api.prismadata.io/v1/location/prison?lat=-25.5&lng=-54.5",
{ headers: { "X-Apikey": "ak_xxxxxxxxxxxxxxxx" } }
);
const dados = await resp.json();
const nome = dados.prismadata__prison__nome_estabelecimento;
console.log(nome ?? "Nenhum presídio próximo");
Todas as respostas da API incluem headers de rate limiting que informam o estado atual da sua cota de requisições.
| Header | Tipo | Descrição |
|---|---|---|
X-RateLimit-Limit |
integer | Número máximo de requisições permitidas por minuto para o usuário |
X-RateLimit-Remaining |
integer | Número de requisições restantes na janela atual |
X-RateLimit-Reset |
integer | Unix timestamp (segundos) indicando quando a janela de rate limit será reiniciada |
O rate limit é aplicado por usuário (identificado via token JWT) no API Gateway (KrakenD).
Além do rate limit por minuto, cada tenant pode possuir uma quota que limita o número total de requisições em um período maior (diário, semanal, mensal ou anual). Quando o tenant possui uma política de quota ativa, todas as respostas incluem os seguintes headers:
| Header | Tipo | Descrição |
|---|---|---|
X-Quota-Limit |
integer | Limite total de requisições da quota do tenant no período |
X-Quota-Used |
integer | Número de requisições já consumidas no período atual |
X-Quota-Remaining |
integer | Número de requisições restantes no período atual |
X-Quota-Period |
string | Período da quota: daily, weekly, monthly, yearly ou custom |
X-Quota-Reset |
integer | Unix timestamp (segundos) indicando quando a quota será reiniciada |
Quando a quota é excedida, a API retorna HTTP 429.
Quotas podem ser configuradas por endpoint ou globalmente para o tenant. Consulte seu contrato ou entre em contato com o suporte para detalhes sobre sua quota.
Quando o rate limit ou a quota são excedidos, a API retorna HTTP 429 com uma mensagem em texto plano indicando o motivo:
rate limit exceededlimit exceeded: 1000 requests used, limit is 1000Dica: Monitore o header
X-Quota-Remainingnas respostas para evitar o 429 proativamente — quando o valor estiver baixo, reduza a taxa de requisições.
Ao receber um 429, o cliente deve:
X-RateLimit-Reset ou X-Quota-Reset para saber quando a janela será reiniciada.Exemplo em Python:
import time, random, httpx
def request_com_retry(client, method, url, **kwargs):
for tentativa in range(5):
resp = client.request(method, url, **kwargs)
if resp.status_code != 429:
return resp
reset = (
resp.headers.get("X-RateLimit-Reset")
or resp.headers.get("X-Quota-Reset")
)
if reset:
wait = max(0, int(reset) - int(time.time())) + 1
else:
wait = (2 ** tentativa) + random.uniform(0, 1)
time.sleep(wait)
return resp
Todos os campos de resposta seguem o padrão prismadata__<serviço>__<campo>, facilitando a identificação da origem de cada dado.
| Serviço | Prefixo | Exemplo |
|---|---|---|
| Geocoder | prismadata__geocoder__ |
prismadata__geocoder__latitude |
| Favelas | prismadata__slum__ |
prismadata__slum__favela_nome |
| Renda Estática | prismadata__personal_income_static__ |
prismadata__personal_income_static__percentil_br |
| Renda PDF | prismadata__personal_income_pdf__ |
prismadata__personal_income_pdf__mean |
| Presídios | prismadata__prison__ |
prismadata__prison__nome_estabelecimento |
| Fronteiras | prismadata__border__ |
prismadata__border__faixa_fronteira |
| InfoSC | prismadata__infosc__ |
prismadata__infosc__cod_setor |
| Rotas | prismadata__routing_route__ |
prismadata__routing_route__distancia_m |
| Isocronas | prismadata__routing_isochrone__ |
prismadata__routing_isochrone__geometria |
| Validação de Endereços | prismadata__addr_validation__ |
prismadata__addr_validation__score |
Endpoints GET retornam um objeto JSON plano com os campos do serviço:
{
"prismadata__prison__nome_estabelecimento": "Unidade Penal X",
"prismadata__prison__distancia_borda_m": 1010.79,
"prismadata__prison__uf": "MS"
}
Endpoints batch retornam um dicionário onde as chaves são os identificadores enviados na requisição e os valores são os objetos de resposta:
{
"ponto_1": { "prismadata__prison__nome_estabelecimento": "...", ... },
"ponto_2": { "prismadata__prison__nome_estabelecimento": "...", ... }
}
Quando um ponto está fora da área de cobertura de um serviço, os campos de detalhe retornam null. Isso indica ausência de dados, não um erro.
Porém, indicadores de proximidade ou pertencimento podem ter valor mesmo quando os campos de detalhe são null. Exemplo para um ponto longe de qualquer presídio:
{
"prismadata__prison__ponto_dentro_presidio": false,
"prismadata__prison__distancia_borda_m": 85000.5,
"prismadata__prison__nome_estabelecimento": null,
"prismadata__prison__uf": null,
"prismadata__prison__tipo_estabelecimento": null
}
O padrão é: campos booleanos e de distância indicam relação espacial e geralmente têm valor; campos de detalhe (nome, tipo, UF) dependem de haver uma entidade próxima o suficiente.
Todas as respostas incluem os headers X-RateLimit-Limit, X-RateLimit-Remaining e X-RateLimit-Reset. Veja a seção Rate Limiting & Quota para detalhes.
| Código | Significado | Content-Type | Ação recomendada |
|---|---|---|---|
| 200 | Sucesso | application/json |
— |
| 401 | Não autenticado | text/plain |
Verificar API Key ou token JWT |
| 403 | Sem permissão | text/plain |
Verificar roles do token |
| 404 | Não encontrado | text/plain |
Verificar URL do endpoint |
| 422 | Validação falhou | application/json ou vazio |
Corrigir parâmetros (ver abaixo) |
| 429 | Rate limit / quota | text/plain |
Ver seção Rate Limiting & Quota |
| 500 | Erro interno | text/plain |
Retry com backoff, contatar suporte |
Erros 401, 403, 404, 429 e 500 retornam texto plano — use resp.text, não resp.json(). Exemplos de mensagens reais:
| Código | Mensagem |
|---|---|
| 401 | failed to fetch JWT: auth service returned status: 401 Unauthorized |
| 404 | 404 page not found |
Erro 422 possui dois cenários distintos:
lat=abc), o gateway rejeita a requisição antes de encaminhá-la ao serviço. Neste caso o corpo da resposta é vazio (content-length: 0).lat ausente), o serviço retorna JSON no formato ValidationError.Importante: sempre verifique se o corpo da resposta 422 tem conteúdo antes de fazer parse JSON.
Quando os parâmetros enviados são inválidos e a requisição chega ao serviço, a API retorna um 422 com o formato padrão do FastAPI:
{
"detail": [
{
"type": "missing",
"loc": ["query", "lat"],
"msg": "Field required",
"input": null
}
]
}
Cada item em detail contém:
type: tipo do erro (ex: missing, value_error, type_error)loc: localização do parâmetro (ex: ["query", "lat"], ["body", "coordenadas"])msg: mensagem descritiva do erroinput: valor recebido (ou null se ausente)Python (httpx):
import httpx
resp = httpx.get(
"https://api.prismadata.io/v1/location/prison",
params={"lat": -25.5, "lng": -54.5},
headers={"X-Apikey": "ak_xxxxxxxxxxxxxxxx"},
)
if resp.status_code == 200:
dados = resp.json()
elif resp.status_code == 422:
# Gateway pode retornar 422 com body vazio
if resp.headers.get("content-type", "").startswith("application/json") and resp.text:
erros = resp.json()["detail"]
for erro in erros:
print(f"Erro em {erro['loc']}: {erro['msg']}")
else:
print("Parâmetro com tipo inválido (rejeitado pelo gateway)")
elif resp.status_code == 429:
reset = resp.headers.get("X-RateLimit-Reset")
print(f"Rate limit. Retry após timestamp {reset}")
else:
# 401, 403, 404, 500 — corpo é texto plano
print(f"Erro {resp.status_code}: {resp.text}")
JavaScript (fetch):
const resp = await fetch(
"https://api.prismadata.io/v1/location/prison?lat=-25.5&lng=-54.5",
{ headers: { "X-Apikey": "ak_xxxxxxxxxxxxxxxx" } }
);
if (resp.ok) {
const dados = await resp.json();
} else if (resp.status === 422) {
// Gateway pode retornar 422 com body vazio
const contentType = resp.headers.get("content-type") || "";
const body = await resp.text();
if (contentType.includes("application/json") && body) {
const { detail } = JSON.parse(body);
detail.forEach(e => console.error(`Erro em ${e.loc}: ${e.msg}`));
} else {
console.error("Parâmetro com tipo inválido (rejeitado pelo gateway)");
}
} else if (resp.status === 429) {
const reset = resp.headers.get("X-RateLimit-Reset");
console.warn(`Rate limit. Retry após timestamp ${reset}`);
} else {
// 401, 403, 404, 500 — corpo é texto plano
console.error(`Erro ${resp.status}: ${await resp.text()}`);
}
O token JWT tem validade configurável de 1 a 15 minutos (default: 15 min), definida pelo administrador da conta por usuário. O campo exp no payload do JWT contém o timestamp Unix de expiração.
X-Apikey (recomendado)O gateway renova o token automaticamente a cada requisição. Nenhum tratamento especial é necessário.
username/password via /auth/tokenAo gerenciar o JWT diretamente, extraia o campo exp dos claims e renove o token antes da expiração:
import httpx
import json
import base64
import time
BASE = "https://api.prismadata.io/v1"
class TokenManager:
def __init__(self, username: str, password: str):
self.username = username
self.password = password
self.token = None
self.exp = 0
def _obter_token(self):
resp = httpx.post(
f"{BASE}/auth/token",
data={"username": self.username, "password": self.password},
)
resp.raise_for_status()
self.token = resp.json()["access_token"]
# Extrair exp do payload JWT (segunda parte, base64)
payload = self.token.split(".")[1]
payload += "=" * (-len(payload) % 4) # padding
claims = json.loads(base64.urlsafe_b64decode(payload))
self.exp = claims["exp"]
def get_headers(self) -> dict:
if time.time() >= self.exp - 30: # renova 30s antes
self._obter_token()
return {"Authorization": f"Bearer {self.token}"}
mgr = TokenManager("user@email.com", "senha")
resp = httpx.get(
f"{BASE}/location/prison",
params={"lat": -25.5, "lng": -54.5},
headers=mgr.get_headers(),
)
O modo sandbox permite testar a integração com a API usando dados sintéticos. As respostas mantêm a mesma estrutura e tipos de dados da produção, mas com valores fictícios.
Sandbox é uma propriedade da conta do usuário, configurada pelo administrador no Portal Administrativo. Não é algo que o desenvolvedor ativa por requisição.
sandboxX-Sandbox em todas as requisiçõesNenhuma ação é necessária no código de integração. Se a conta é sandbox, todas as respostas já serão sintéticas automaticamente.
Solicite ao administrador a ativação do modo sandbox na sua conta para começar a receber dados sintéticos.
O SDK Python detecta automaticamente quando a conta está em modo sandbox e exibe um aviso durante a inicialização:
[PrismaData] Atenção: conta em modo sandbox — respostas contêm dados sintéticos.
Use operações em lote quando precisar consultar múltiplos pontos ou endereços em uma única chamada. Isso reduz latência e simplifica a integração.
| Endpoint | Método | Descrição |
|---|---|---|
/location/batch |
POST | Consulta de localização em lote (presídios, favelas, etc.) |
/location/batch/aggregator |
POST | Agregador de múltiplos serviços em lote |
/routing/batch/route |
POST | Cálculo de múltiplas rotas |
/routing/batch/isochrone |
POST | Cálculo de múltiplas isocronas |
Envie um JSON onde as chaves são identificadores únicos (strings) e os valores são arrays [latitude, longitude]:
{
"ponto_1": [-23.550520, -46.633308],
"ponto_2": [-22.906847, -43.172897]
}
A resposta é um dicionário com as mesmas chaves enviadas na requisição, mapeando para os objetos de resposta do serviço:
{
"ponto_1": {
"prismadata__prison__nome_estabelecimento": "...",
"prismadata__prison__distancia_borda_m": 1500.0
},
"ponto_2": {
"prismadata__prison__nome_estabelecimento": "...",
"prismadata__prison__distancia_borda_m": 3200.0
}
}
Para rotas, cada item contém coordenadas de origem e destino:
{
"rotas": [
{
"origem": {"lat": -19.9191, "lng": -43.9378},
"destino": {"lat": -19.9498, "lng": -43.9477}
}
]
}
| Serviço | Máx. itens por batch |
|---|---|
Localização (/location/batch) |
1024 |
Agregador (/location/batch/aggregator) |
1024 |
Roteamento (/routing/batch/route) |
16 |
Isocronas (/routing/batch/isochrone) |
16 |
Sem falha parcial: cada ponto é processado independentemente. Todos os pontos retornam resultado — pontos fora de cobertura recebem campos de detalhe null (veja seção Formato de Resposta).
Agregador sem serviços habilitados: se nenhum flag de serviço for informado via query parameter (slum, prison, border, etc.), a resposta contém objetos vazios {} para cada ponto.
A cobrança de chamadas batch é feita por número de itens no lote. Um batch com 10 pontos equivale a 10 chamadas individuais.
Python (httpx):
import httpx
coordenadas = {
"ponto_1": [-23.550520, -46.633308],
"ponto_2": [-22.906847, -43.172897],
}
resp = httpx.post(
"https://api.prismadata.io/v1/location/batch",
json=coordenadas,
headers={"X-Apikey": "ak_xxxxxxxxxxxxxxxx"},
)
resultados = resp.json()
for chave, dados in resultados.items():
print(f"{chave}: {dados}")
curl:
curl -X POST "https://api.prismadata.io/v1/location/batch" \
-H "X-Apikey: ak_xxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"ponto_1": [-23.55, -46.63], "ponto_2": [-22.90, -43.17]}'
JavaScript (fetch):
const coordenadas = {
ponto_1: [-23.550520, -46.633308],
ponto_2: [-22.906847, -43.172897]
};
const resp = await fetch(
"https://api.prismadata.io/v1/location/batch",
{
method: "POST",
headers: {
"X-Apikey": "ak_xxxxxxxxxxxxxxxx",
"Content-Type": "application/json"
},
body: JSON.stringify(coordenadas)
}
);
const resultados = await resp.json();
Object.entries(resultados).forEach(([chave, dados]) => {
console.log(`${chave}:`, dados);
});
Requer Python >= 3.10.
pip install prismadata
Extras opcionais:
pip install prismadata[pandas] # enriquecimento de DataFrames
pip install prismadata[sklearn] # transformer scikit-learn
pip install prismadata[cache] # cache local em disco
pip install prismadata[progress] # barra de progresso (tqdm)
pip install prismadata[all] # todos os extras
from prismadata import Client
client = Client(api_key="ak_xxxxxxxxxxxxxxxx")
# Consultar favela mais proxima
result = client.slum(lat=-23.55, lng=-46.63)
print(result)
# Geocodificar um endereco
geo = client.geocode(full_address="Av Paulista 1000, Sao Paulo")
print(geo)
O SDK aceita 3 formas de credencial (em ordem de prioridade):
1. API Key direta:
client = Client(api_key="ak_xxxxxxxxxxxxxxxx")
2. Usuario e senha:
client = Client(username="user@email.com", password="senha")
3. Variaveis de ambiente:
export PRISMADATA_APIKEY=ak_xxxxxxxxxxxxxxxx
# ou
export PRISMADATA_USERNAME=user@email.com
export PRISMADATA_PASSWORD=senha
client = Client() # detecta automaticamente
A renovacao do token JWT e automatica — o SDK cuida internamente.
from prismadata import AsyncClient
async with await AsyncClient.create(api_key="ak_xxxxxxxxxxxxxxxx") as client:
result = await client.slum(lat=-23.55, lng=-46.63)
print(result)
# Enriquecimento de DataFrames tambem funciona
enriched = await client.enrich(df, services=["slum", "income_static"])
O AsyncClient usa factory pattern — note o await antes de AsyncClient.create().
Todos os metodos do Client possuem equivalente assincrono no AsyncClient.
Para consultas em volume, use os metodos *_batch:
points = {
"p1": [-23.55, -46.63],
"p2": [-22.90, -43.17],
"p3": [-19.92, -43.94],
}
# Batch de favelas
result = client.slum_batch(points)
# Batch de presídios
result = client.prison_batch(points)
# Batch de renda estatica
result = client.personal_income_static_batch(points)
# Batch de renda PDF (distribuicao de probabilidade)
result = client.personal_income_pdf_batch(points)
# Batch de renda PDF com parametros demograficos
result = client.personal_income_pdf_batch_detailed({
"p1": {"lat": -23.55, "lng": -46.63, "gender": "M", "age": 50},
"p2": {"lat": -22.90, "lng": -43.17, "gender": "F", "age": 30, "is_responsible": True},
})
# Batch com multiplos servicos (agregador)
result = client.aggregate_batch(
points,
services=["slum", "prison", "infosc"],
)
O SDK divide automaticamente lotes grandes em chunks e reenvia com retry em caso de erro.
# Geocodificar enderecos em lote (max 512 por chunk)
addresses = {
"p1": {"endereco_completo": "Av Paulista 1000, Sao Paulo, SP"},
"p2": {"cep": "30130-165", "numero": "100", "logradouro": "Rua da Bahia"},
}
result = client.geocode_batch(addresses)
# Geocodificacao reversa em lote (max 1024 por chunk)
points = {"p1": [-23.55, -46.63], "p2": [-22.90, -43.17]}
result = client.reverse_geocode_batch(points)
# Geocodificacao + agregacao em lote
result = client.geocode_aggregate_batch(
addresses,
services=["slum", "infosc"],
)
# Cada resultado contem campos do geocoder + dos servicos solicitados
Com o extra pandas, enriqueca DataFrames diretamente:
import pandas as pd
from prismadata import Client
client = Client(api_key="ak_xxxxxxxxxxxxxxxx")
df = pd.DataFrame({
"lat": [-23.55, -22.90, -19.92],
"lng": [-46.63, -43.17, -43.94],
})
enriched = client.enrich(
df,
services=["slum", "prison", "income_static"],
)
print(enriched.columns.tolist())
Com o extra sklearn, use o transformer em pipelines de ML:
from sklearn.pipeline import Pipeline
from prismadata import Client
client = Client(api_key="ak_xxxxxxxxxxxxxxxx")
transformer = client.get_transformer(
services=["slum", "income_static"],
lat_col="latitude",
lng_col="longitude",
)
pipe = Pipeline([
("prismadata", transformer),
("model", your_model),
])
from prismadata import Client
from prismadata.exceptions import (
AuthenticationError,
BatchError,
RateLimitError,
PrismaDataError,
)
try:
client = Client(api_key="ak_xxxxxxxxxxxxxxxx")
result = client.slum(lat=-23.55, lng=-46.63)
except AuthenticationError:
print("Credenciais invalidas")
except RateLimitError:
print("Rate limit excedido, aguarde e tente novamente")
except PrismaDataError as e:
print(f"Erro da API: {e}")
Quando um lote grande falha parcialmente, o SDK coleta os resultados dos chunks
que deram certo e levanta BatchError com os dados parciais:
try:
result = client.slum_batch(large_point_dict)
except BatchError as e:
# Resultados dos chunks que deram certo
for key, value in e.partial_results.items():
process(key, value)
# Chaves dos chunks que falharam (para retry manual)
print(f"Falhou: {e.failed_keys}")
O SDK implementa retry automatico com backoff exponencial para erros transientes (429, 500, 502, 503, 504).
Alem disso, respeita os headers Retry-After e X-RateLimit-Reset do servidor.
SDK oficial em R para a API de inteligencia geoespacial da PrismaData (https://api.prismadata.io/v1). Este guia cobre instalacao, autenticacao, consultas individuais e em lote, enriquecimento de data.frames, integracao com tidymodels e tratamento de erros.
Quando disponivel no CRAN, basta executar:
install.packages("prismadata")
Para instalar a versao mais recente diretamente do repositorio:
# Instale o pacote remotes caso ainda nao tenha
install.packages("remotes")
# Instale o prismadata a partir do GitHub
remotes::install_github("prismadata/prismadata-r")
O pacote possui dependencias opcionais que habilitam funcionalidades extras. Instale conforme a necessidade:
# Cache em disco (para evitar chamadas repetidas a API)
install.packages("cachem")
# Enriquecimento de tibbles e manipulacao com dplyr
install.packages(c("tibble", "dplyr"))
# Integracao com tidymodels (step_prismadata)
install.packages("recipes")
Exemplo minimo para comecar a usar o pacote: criar um cliente, consultar a proximidade de favela para um par de coordenadas e inspecionar o resultado.
library(prismadata)
# Cria o cliente com sua chave de API
client <- prismadata_client(api_key = "ak_xxxxxxxxxxxxxxxx")
# Consulta a favela mais proxima de um ponto em Sao Paulo
resultado <- client$slum(lat = -23.55, lng = -46.63)
# Inspeciona o retorno
str(resultado)
# $ prismadata__favela__nome : chr "Paraisopolis"
# $ prismadata__favela__distancia_m : num 3420
# $ prismadata__favela__area_ha : num 102.3
# ...
O objeto client expoe metodos para todos os servicos da API: geocodificacao, inteligencia de localizacao, roteamento, validacao de enderecos e consultas de credito.
# Geocodificacao
geo <- client$geocode(full_address = "Av Paulista 1000, Sao Paulo, SP")
# Geocodificacao reversa
endereco <- client$reverse_geocode(lat = -23.5632, lng = -46.6542)
# Proximidade de presidio
presidio <- client$prison(lat = -23.55, lng = -46.63)
# Proximidade de fronteira
fronteira <- client$border(lat = -23.55, lng = -46.63)
# Informacoes do setor censitario (IBGE)
setor <- client$infosc(lat = -23.55, lng = -46.63)
# Estimativa de renda estatica
renda <- client$income_static(lat = -23.55, lng = -46.63)
# Calculo de rota entre dois pontos
rota <- client$route(
points = list(c(-23.55, -46.63), c(-22.90, -43.17)),
profile = "car"
)
# Isocrona (area alcancavel em 10 minutos de carro)
iso <- client$isochrone(lat = -23.55, lng = -46.63, time_limit = 600, profile = "car")
O pacote suporta tres formas de autenticacao, avaliadas na seguinte ordem de prioridade:
A forma mais simples. Voce recebe a chave no painel da PrismaData.
client <- prismadata_client(api_key = "ak_xxxxxxxxxxxxxxxx")
Autentica via endpoint /auth/token, obtendo um JWT que e renovado automaticamente.
client <- prismadata_client(
username = "usuario@empresa.com",
password = "minha_senha_segura"
)
Quando nenhum argumento e passado, o pacote busca credenciais automaticamente nas variaveis de ambiente. Isso e ideal para ambientes de producao, CI/CD e containers.
# Opcao A: defina a variavel PRISMADATA_APIKEY
Sys.setenv(PRISMADATA_APIKEY = "ak_xxxxxxxxxxxxxxxx")
# Opcao B: defina PRISMADATA_USERNAME e PRISMADATA_PASSWORD
Sys.setenv(PRISMADATA_USERNAME = "usuario@empresa.com")
Sys.setenv(PRISMADATA_PASSWORD = "minha_senha_segura")
# O cliente detecta as credenciais automaticamente
client <- prismadata_client()
A ordem de resolucao e:
api_key explicitousername + password explicitosPRISMADATA_APIKEYPRISMADATA_USERNAME + PRISMADATA_PASSWORDSe nenhuma credencial for encontrada, o pacote emite um erro do tipo prismadata_authentication_error com instrucoes de configuracao.
client <- prismadata_client(
api_key = "ak_xxxxxxxxxxxxxxxx",
timeout = 60, # Timeout de requisicao em segundos (padrao: 30)
cache = TRUE, # Habilita cache em disco (requer pacote cachem)
cache_ttl = 86400, # Tempo de vida do cache em segundos (padrao: 24h)
clean_columns = TRUE, # Remove prefixo "prismadata__" dos nomes de colunas
show_progress = TRUE, # Exibe barra de progresso em operacoes batch
app_name = "meu_app" # Nome da aplicacao enviado no header X-App
)
# Retorna informacoes do usuario autenticado
info <- client$me()
print(info)
# $username
# [1] "usuario@empresa.com"
# $roles
# [1] "admin" "full_reader"
Para consultar muitos pontos de uma vez, use os metodos *_batch(). O pacote faz o auto-chunking automaticamente: listas com mais de 1024 pontos sao divididas em blocos e enviadas sequencialmente, com barra de progresso.
# Cria uma lista nomeada de coordenadas (lat, lng)
pontos <- list(
"sp_centro" = c(-23.5505, -46.6333),
"rj_centro" = c(-22.9068, -43.1729),
"bh_centro" = c(-19.9191, -43.9386),
"poa_centro" = c(-30.0346, -51.2177),
"recife" = c(-8.0476, -34.8770)
)
# Consulta em lote
resultados <- client$slum_batch(pontos)
# Cada resultado e acessado pela chave do ponto
resultados$sp_centro$prismadata__favela__distancia_m
# [1] 2145.7
resultados$rj_centro$prismadata__favela__nome
# [1] "Morro da Providencia"
Consulta varios servicos simultaneamente para cada ponto (favela, presidio, fronteira, setor censitario).
pontos <- list(
"loc_1" = c(-23.55, -46.63),
"loc_2" = c(-22.90, -43.17)
)
resultados <- client$aggregate_batch(
points = pontos,
services = c("slum", "prison", "infosc")
)
# O resultado de cada ponto contem campos de todos os servicos solicitados
resultados$loc_1$prismadata__favela__distancia_m
resultados$loc_1$prismadata__presidio__distancia_m
resultados$loc_1$prismadata__info_sc__cod_setor
Calcula multiplas rotas de uma vez. O limite por chunk para roteamento e de 16 itens.
# Cada item deve conter um elemento "points" com a lista de coordenadas
itens_rota <- list(
list(points = list(c(-23.55, -46.63), c(-23.56, -46.65))),
list(points = list(c(-22.90, -43.17), c(-22.91, -43.20))),
list(points = list(c(-19.92, -43.94), c(-19.93, -43.96)))
)
resultados <- client$route_batch(itens_rota, profile = "car")
# Estrutura do retorno
resultados$TOTAL # Total de rotas solicitadas
resultados$SUCESSOS # Quantidade de rotas calculadas com sucesso
resultados$FALHAS # Quantidade de falhas
resultados$RESULTADOS # Lista com os dados de cada rota
# Geocodificar enderecos em lote (max 512 por chunk)
enderecos <- list(
"p1" = list(endereco_completo = "Av Paulista 1000, Sao Paulo, SP"),
"p2" = list(cep = "30130-165", numero = "100", logradouro = "Rua da Bahia")
)
resultados <- client$geocode_batch(enderecos)
# Geocodificacao reversa em lote (max 1024 por chunk)
pontos <- list("p1" = c(-23.55, -46.63), "p2" = c(-22.90, -43.17))
resultados <- client$reverse_geocode_batch(pontos)
# Geocodificacao + agregacao em lote
resultados <- client$geocode_aggregate_batch(
enderecos,
services = c("slum", "infosc")
)
# Cada resultado contem campos do geocoder + dos servicos solicitados
resultados$p1$prismadata__geocoder__latitude
resultados$p1$prismadata__slum__favela_distancia_m
# Proximidade de presidio em lote
client$prison_batch(pontos)
# Proximidade de fronteira em lote
client$border_batch(pontos)
# Setor censitario em lote
client$infosc_batch(pontos)
# Isocronas em lote
itens_iso <- list(
list(lat = -23.55, lng = -46.63, time_limit = 600),
list(lat = -22.90, lng = -43.17, time_limit = 300)
)
client$isochrone_batch(itens_iso, profile = "car", direction = "outgoing")
slum_batch, prison_batch, border_batch, infosc_batch, aggregate_batch): limite de 1024 pontos por chunk.route_batch, isochrone_batch): limite de 16 itens por chunk.Quando a quantidade de pontos excede o limite, o pacote divide automaticamente em chunks, envia cada um separadamente e consolida os resultados. A barra de progresso e exibida quando ha mais de um chunk (desative com show_progress = FALSE no construtor do cliente).
O metodo client$enrich() recebe um data.frame com colunas de latitude e longitude e retorna o mesmo data.frame acrescido de colunas com dados geoespaciais da PrismaData.
# Data.frame de entrada com coordenadas
df <- data.frame(
id = c("loja_sp", "loja_rj", "loja_bh"),
lat = c(-23.5505, -22.9068, -19.9191),
lng = c(-46.6333, -43.1729, -43.9386)
)
# Enriquece com dados de favela, setor censitario e renda
enriquecido <- client$enrich(
df,
lat_col = "lat",
lng_col = "lng",
services = c("slum", "infosc", "income_static")
)
# O data.frame agora possui colunas adicionais
names(enriquecido)
# [1] "id" "lat" "lng"
# [4] "prismadata__favela__distancia_m" "prismadata__favela__nome"
# [7] "prismadata__info_sc__cod_setor" "prismadata__renda__mediana"
# ...
# Visualiza o resultado
head(enriquecido)
library(dplyr)
enriquecido <- client$enrich(df, services = c("slum", "prison")) |>
as_tibble() |>
filter(prismadata__favela__distancia_m < 5000) |>
arrange(prismadata__favela__distancia_m)
Para remover o prefixo prismadata__ e simplificar os nomes, crie o cliente com clean_columns = TRUE:
client <- prismadata_client(
api_key = "ak_xxxxxxxxxxxxxxxx",
clean_columns = TRUE
)
enriquecido <- client$enrich(df, services = c("slum"))
names(enriquecido)
# [1] "id" "lat" "lng" "favela_distancia_m" "favela_nome" ...
Voce tambem pode limpar nomes manualmente em qualquer momento:
# Limpa nomes de um vetor de caracteres
clean_columns(c("prismadata__favela__distancia_m", "prismadata__geocoder__latitude"))
# [1] "favela_distancia_m" "geocoder_latitude"
# Limpa nomes de um data.frame
df_limpo <- clean_columns(enriquecido)
O pacote oferece o step step_prismadata() para integracao direta com o framework tidymodels/recipes. Ele permite adicionar features geoespaciais ao seu pipeline de machine learning de forma declarativa.
library(recipes)
library(prismadata)
# Suponha um dataset de treino com coordenadas e uma variavel alvo
dados_treino <- data.frame(
lat = c(-23.55, -22.90, -19.92, -30.03, -8.05),
lng = c(-46.63, -43.17, -43.94, -51.22, -34.88),
valor = c(1500, 2300, 1800, 1200, 900),
target = c(1, 0, 1, 0, 1)
)
dados_teste <- data.frame(
lat = c(-23.56, -22.91),
lng = c(-46.64, -43.18),
valor = c(1600, 2100),
target = c(1, 0)
)
# Define a receita com o step de enriquecimento PrismaData
receita <- recipe(target ~ ., data = dados_treino) |>
step_prismadata(
lat, lng,
services = c("slum", "income_static"),
api_key = "ak_xxxxxxxxxxxxxxxx"
)
# Prepara a receita (faz as chamadas a API para os dados de treino)
receita_preparada <- prep(receita, training = dados_treino)
# Aplica a receita nos dados de teste (faz as chamadas para os dados de teste)
dados_enriquecidos <- bake(receita_preparada, new_data = dados_teste)
# O resultado e um tibble com as colunas originais + colunas de enriquecimento
print(dados_enriquecidos)
library(recipes)
library(prismadata)
receita <- recipe(target ~ ., data = dados_treino) |>
step_prismadata(
lat, lng,
services = c("slum", "prison", "infosc"),
api_key = "ak_xxxxxxxxxxxxxxxx",
clean_columns = TRUE
) |>
step_normalize(all_numeric_predictors()) |>
step_dummy(all_nominal_predictors())
prep(), uma chamada e feita com a primeira linha dos dados de treino para descobrir os nomes das colunas de enriquecimento. Em seguida, o dataset completo e enriquecido durante o bake().skip = TRUE pode ser usado para pular o step durante o bake() (util para debug).username/password tambem e suportada no step.O pacote define uma hierarquia de condicoes (errors) customizadas, todas herdando de prismadata_error. Isso permite capturar erros especificos com tryCatch.
| Classe | Descricao | Status HTTP |
|---|---|---|
prismadata_error |
Erro generico da API | Qualquer |
prismadata_authentication_error |
Falha de autenticacao (credenciais invalidas, token expirado) | 401, 403 |
prismadata_rate_limit_error |
Limite de requisicoes excedido | 429 |
prismadata_quota_error |
Cota de uso esgotada | 402 |
prismadata_validation_error |
Parametros de entrada invalidos | 422 |
prismadata_batch_error |
Falha parcial em operacao batch | -- |
tryCatch(
{
resultado <- client$slum(lat = -23.55, lng = -46.63)
print(resultado)
},
# Erro de autenticacao (credencial invalida ou expirada)
prismadata_authentication_error = function(e) {
message("Erro de autenticacao: ", conditionMessage(e))
message("Status HTTP: ", e$status_code)
},
# Limite de requisicoes por segundo excedido
prismadata_rate_limit_error = function(e) {
message("Rate limit excedido. Aguarde antes de tentar novamente.")
message("Status HTTP: ", e$status_code)
},
# Cota de uso esgotada (creditos insuficientes)
prismadata_quota_error = function(e) {
message("Cota esgotada: ", conditionMessage(e))
},
# Parametros de entrada invalidos
prismadata_validation_error = function(e) {
message("Dados de entrada invalidos: ", conditionMessage(e))
},
# Qualquer outro erro da API PrismaData
prismadata_error = function(e) {
message("Erro da API: ", conditionMessage(e))
message("Status HTTP: ", e$status_code)
message("Corpo da resposta: ", paste(e$body, collapse = ", "))
}
)
consulta_com_retry <- function(client, lat, lng, tentativas = 3) {
for (i in seq_len(tentativas)) {
resultado <- tryCatch(
client$slum(lat = lat, lng = lng),
prismadata_rate_limit_error = function(e) {
if (i < tentativas) {
tempo_espera <- 2^i
message(sprintf("Rate limit atingido. Tentativa %d/%d. Aguardando %ds...",
i, tentativas, tempo_espera))
Sys.sleep(tempo_espera)
NULL
} else {
stop("Rate limit excedido apos ", tentativas, " tentativas.")
}
}
)
if (!is.null(resultado)) return(resultado)
}
}
resultado <- consulta_com_retry(client, lat = -23.55, lng = -46.63)
O pacote ja implementa retry automatico com backoff exponencial para os seguintes status HTTP: 429 (rate limit), 500, 502, 503 e 504 (erros de servidor). Sao feitas ate 3 tentativas antes de emitir o erro. O header Retry-After e respeitado quando presente na resposta.
Operacoes em lote podem falhar parcialmente: parte dos chunks retorna com sucesso enquanto outros falham (por timeout, erro de servidor etc.). Nesses casos, o pacote emite um erro do tipo prismadata_batch_error que carrega tanto os resultados parciais quanto as chaves que falharam.
O erro prismadata_batch_error possui dois campos extras acessiveis no handler:
e$partial_results: lista nomeada com os resultados dos chunks que tiveram sucesso.e$failed_keys: vetor de caracteres com as chaves (IDs dos pontos) que falharam.# Lista grande de pontos
pontos <- list(
"p001" = c(-23.55, -46.63),
"p002" = c(-22.90, -43.17),
"p003" = c(-19.92, -43.94),
"p004" = c(-30.03, -51.22),
"p005" = c(-8.05, -34.88)
# ... imagine centenas de pontos
)
resultados <- tryCatch(
client$slum_batch(pontos),
# Captura falha parcial
prismadata_batch_error = function(e) {
message(sprintf(
"Falha parcial: %d resultados obtidos, %d chaves falharam",
length(e$partial_results),
length(e$failed_keys)
))
# Exibe quais chaves falharam
message("Chaves com falha: ", paste(e$failed_keys, collapse = ", "))
# Retorna os resultados parciais para nao perder o que ja foi processado
e$partial_results
},
# Outros erros da API
prismadata_error = function(e) {
message("Erro geral da API: ", conditionMessage(e))
NULL
}
)
# Processa os resultados parciais (se houver)
if (!is.null(resultados)) {
message(sprintf("Processando %d resultados parciais...", length(resultados)))
for (chave in names(resultados)) {
distancia <- resultados[[chave]]$prismadata__favela__distancia_m
message(sprintf(" %s: %.1f metros da favela mais proxima", chave, distancia))
}
}
consulta_batch_resiliente <- function(client, pontos, max_tentativas = 3) {
resultados_finais <- list()
pendentes <- pontos
for (tentativa in seq_len(max_tentativas)) {
if (length(pendentes) == 0) break
resultado <- tryCatch(
client$slum_batch(pendentes),
prismadata_batch_error = function(e) {
# Acumula resultados parciais
resultados_finais <<- c(resultados_finais, e$partial_results)
# Filtra apenas os pontos que falharam para retry
chaves_falha <- e$failed_keys
message(sprintf(
"Tentativa %d: %d sucessos, %d falhas. Retentando falhas...",
tentativa,
length(e$partial_results),
length(chaves_falha)
))
pendentes <<- pontos[chaves_falha]
NULL
}
)
if (!is.null(resultado)) {
# Tudo funcionou nesta tentativa
resultados_finais <- c(resultados_finais, resultado)
pendentes <- list()
}
}
if (length(pendentes) > 0) {
warning(sprintf(
"%d pontos nao puderam ser processados apos %d tentativas: %s",
length(pendentes),
max_tentativas,
paste(names(pendentes), collapse = ", ")
))
}
resultados_finais
}
# Uso
todos_resultados <- consulta_batch_resiliente(client, pontos)
Para operacoes de roteamento em lote, a estrutura do partial_results e diferente -- segue o formato com TOTAL, SUCESSOS, FALHAS e RESULTADOS:
itens_rota <- list(
list(points = list(c(-23.55, -46.63), c(-23.56, -46.65))),
list(points = list(c(-22.90, -43.17), c(-22.91, -43.20)))
)
resultado <- tryCatch(
client$route_batch(itens_rota, profile = "car"),
prismadata_batch_error = function(e) {
parcial <- e$partial_results
message(sprintf(
"Rotas: %d total, %d sucessos, %d falhas",
parcial$TOTAL,
parcial$SUCESSOS,
parcial$FALHAS
))
message("Indices com falha: ", paste(e$failed_keys, collapse = ", "))
# Retorna os resultados parciais
parcial
}
)
| Metodo | Descricao |
|---|---|
client$geocode() |
Geocodificacao de endereco |
client$reverse_geocode() |
Geocodificacao reversa |
client$slum() |
Proximidade de favela |
client$prison() |
Proximidade de presidio |
client$border() |
Proximidade de fronteira |
client$infosc() |
Setor censitario (IBGE) |
client$income_static() |
Estimativa de renda estatica |
client$income_pdf() |
Funcao densidade de probabilidade de renda |
client$route() |
Calculo de rota |
client$isochrone() |
Calculo de isocrona |
client$compare_address() |
Comparacao de endereco vs coordenadas |
client$validate_address() |
Validacao de endereco via GPS |
client$cluster_locations() |
Clusterizacao de localizacoes historicas |
client$precatory() |
Consulta de precatorios/RPV |
client$precatory_detail() |
Detalhamento de precatorios/RPV |
client$aggregate() |
Multiplos servicos em uma chamada |
client$slum_batch() |
Favela em lote |
client$prison_batch() |
Presidio em lote |
client$border_batch() |
Fronteira em lote |
client$infosc_batch() |
Setor censitario em lote |
client$aggregate_batch() |
Multiplos servicos em lote |
client$geocode_batch() |
Geocodificacao em lote |
client$reverse_geocode_batch() |
Geocodificacao reversa em lote |
client$geocode_aggregate_batch() |
Geocodificacao + agregacao em lote |
client$route_batch() |
Rotas em lote |
client$isochrone_batch() |
Isocronas em lote |
client$enrich() |
Enriquecimento de data.frame |
client$me() |
Informacoes do usuario autenticado |
step_prismadata() |
Step para recipes/tidymodels |
clean_columns() |
Limpeza de nomes de colunas |
Para mais informacoes, consulte a documentacao da API em https://docs.prismadata.io ou abra uma issue no repositorio GitHub.
O servico de autenticacao PrismaData gerencia credenciais, tokens JWT e API Keys para acesso as APIs de dados PrismaData.
Existem duas formas de autenticar nas APIs PrismaData. Recomendamos o uso de API Key por sua simplicidade e menor latencia.
A API Key e a forma mais simples de autenticacao. Basta envia-la no header X-Apikey em qualquer request ao gateway:
curl https://api.prismadata.io/v1/location/prison?lat=-25.5&lng=-54.5 \
-H "X-Apikey: ak_xxxxxxxxxxxxxxxx"
Vantagens da API Key:
Para obter um token JWT diretamente, envie suas credenciais via POST /token:
curl -X POST https://api.prismadata.io/v1/auth/token \
-d "username=seu_usuario&password=sua_senha"
Em seguida, use o token retornado no header Authorization:
curl https://api.prismadata.io/v1/location/prison?lat=-25.5&lng=-54.5 \
-H "Authorization: Bearer eyJ..."
Importante sobre tokens JWT:
exp), tipicamente 15 minutosPOST /token| API Key | Token JWT | |
|---|---|---|
| Obtencao | Fornecida pelo administrador | POST /token com usuario/senha |
| Expiracao | Nao expira | Expira (claim exp, tipicamente 15min) |
| Renovacao | Automatica pelo gateway | Manual pelo cliente |
| Uso | Header X-Apikey |
Header Authorization: Bearer |
| Latencia | Menor (token cacheado no gateway) | Maior (requer chamada ao /token a cada expiracao) |
| Recomendado para | Integracao backend-to-backend, scripts, automacoes | Browsers, apps com login de usuario |
O endpoint /token aceita dois modos de autenticacao via application/x-www-form-urlencoded:
Com API Key (campo api_key):
curl -X POST https://api.prismadata.io/v1/auth/token \
-d "api_key=ak_xxxxxxxxxxxxxxxx"
Com usuario e senha (campos username e password):
curl -X POST https://api.prismadata.io/v1/auth/token \
-d "username=seu_usuario&password=sua_senha"
O token JWT contém os seguintes claims:
| Claim | Tipo | Descricao |
|---|---|---|
sub |
string | Username do usuario |
roles |
string[] | Roles atribuidos ao usuario |
rate_limit |
float | Limite de requisicoes por minuto |
allowed_network |
string | CIDR permitido (vazio = sem restricao) |
sandbox |
bool | Modo sandbox (dados sinteticos) |
tenant_id |
int/null | ID do tenant |
quota_limit |
int/null | Limite global de quota |
quota_limits |
object/null | Limites por endpoint |
quota_expiry |
int/null | Unix timestamp de expiracao da quota |
exp |
int | Unix timestamp de expiracao do token |
Headers do JWT: kid (Key ID), iss ("PrismaDataAuth"), alg (RS256).
Credenciais de acesso sao fornecidas pela equipe PrismaData. Para solicitar acesso, entre em contato pelo portal.
Autentica via usuario/senha ou API Key e retorna um token JWT assinado com RS256. O token e retornado no body e tambem em um cookie httpOnly para uso em browsers.
Login com API Key (recomendado): envie no campo api_key. A API Key nao expira e o gateway gerencia o token automaticamente, sem necessidade de controle de validade pelo cliente.
curl -X POST .../token -d "api_key=ak_xxxxxxxx"
Login com senha: envie username e password como form-urlencoded. O token JWT retornado possui expiracao (claim exp) e o cliente deve controlar sua validade, renovando-o antes da expiracao.
curl -X POST .../token -d "username=user&password=pass"
| username | string (Username) Default: "" Nome de usuario (usado apenas no login com senha). |
| password | string (Password) Default: "" Senha do usuario (usado apenas no login com senha). |
| api_key | string (Api Key) Default: "" API Key para autenticacao (recomendado). Quando informado, os campos username e password sao ignorados. |
curl -X POST "https://api.prismadata.io/v1/auth/token" \ -d "api_key=ak_xxxxxxxxxxxxxxxx"
{- "access_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6InByaXNtYWRhdGEtMSIsImlzcyI6IlByaXNtYURhdGFBdXRoIn0...",
- "token_type": "bearer"
}Retorna os dados do usuario autenticado extraidos do token JWT. O token e obtido do cookie httpOnly ou do header Authorization: Bearer <token>.
curl "https://api.prismadata.io/v1/auth/me" \ -H "X-Apikey: ak_xxxxxxxxxxxxxxxx"
{- "username": "usuario_exemplo",
- "roles": [
- "full_reader"
], - "tenant_id": 1,
- "sandbox": false,
- "rate_limit": 60
}API de Identificacao de Pais por IP/Coordenada para Compliance PLD/FT.
Identifica o pais de origem de um acesso a partir de endereco IP ou coordenada geografica, retornando classificacao de risco, status em listas de sancoes internacionais (GAFI, OFAC, UE), paraisos fiscais (RFB, UE), deteccao de VPN/Proxy/TOR/Datacenter/Satelite, ASN (Autonomous System Number) e indice de confianca da geolocalizacao.
Cada resposta inclui assinatura digital Ed25519, funcionando como laudo tecnico verificavel por terceiros (auditores, BACEN, PF).
Identifica o pais a partir de IP ou coordenada.
| input_type required | string (Input Type) Tipo de entrada: 'ip' ou 'coordinate' |
Ip (string) or Ip (null) (Ip) Endereco IP | |
Latitude (number) or Latitude (null) (Latitude) Latitude | |
Longitude (number) or Longitude (null) (Longitude) Longitude | |
| enrich | boolean (Enrich) Default: true Ativa retorno de VPN/proxy/TOR/datacenter |
| check_sanctions | boolean (Check Sanctions) Default: true Verifica listas de sancoes e paraisos fiscais |
curl "https://api.prismadata.io/v1/identity/ipinfo?input_type=valor" \ -H "X-Apikey: ak_xxxxxxxxxxxxxxxx"
{- "prismadata__ipinfo__input_type": "ip",
- "prismadata__ipinfo__input_ip": "185.220.101.42",
- "prismadata__ipinfo__resolved_latitude": 52.52,
- "prismadata__ipinfo__resolved_longitude": 13.405,
- "prismadata__ipinfo__country_code": "DE",
- "prismadata__ipinfo__country_name": "Germany",
- "prismadata__ipinfo__continent": "Europe",
- "prismadata__ipinfo__risk_level": "low",
- "prismadata__ipinfo__is_sanctioned": false,
- "prismadata__ipinfo__gafi_status": "not_listed",
- "prismadata__ipinfo__ofac_status": "not_listed",
- "prismadata__ipinfo__eu_status": "not_listed",
- "prismadata__ipinfo__bacen_alert": false,
- "prismadata__ipinfo__is_tax_haven_rfb": false,
- "prismadata__ipinfo__is_tax_haven_eu": false,
- "prismadata__ipinfo__is_vpn": true,
- "prismadata__ipinfo__is_proxy": false,
- "prismadata__ipinfo__is_tor_exit_node": true,
- "prismadata__ipinfo__is_datacenter": true,
- "prismadata__ipinfo__connection_type": "tor",
- "prismadata__ipinfo__asn": 51167,
- "prismadata__ipinfo__asn_org": "Contabo GmbH",
- "prismadata__ipinfo__geoip_confidence": 0.95,
- "prismadata__ipinfo__country_timezone": "Europe/Berlin",
- "prismadata__ipinfo__country_utc_offset": "+01:00",
- "prismadata__ipinfo__local_time": "2026-03-01T14:32:05+01:00",
- "prismadata__ipinfo__is_business_hours": true,
- "prismadata__ipinfo__query_id": "550e8400-e29b-41d4-a716-446655440000",
- "prismadata__ipinfo__timestamp": "2026-03-01T13:32:05.123Z",
- "prismadata__ipinfo__requester_ip": "203.0.113.42",
- "prismadata__ipinfo__requester_razao_social": "Toro Investimentos S.A.",
- "prismadata__ipinfo__requester_cnpj": "18.631.838/0001-46",
- "prismadata__ipinfo__query_time_ms": 7,
- "prismadata__ipinfo__signature_algorithm": "Ed25519",
- "prismadata__ipinfo__signature_value": "base64_encoded_signature_here",
- "prismadata__ipinfo__signature_key_id": "prismadata-signing-key-2026-01"
}Identifica o pais para um lote de IPs ou coordenadas (max 1024).
| input_type required | string (Input Type) Tipo de entrada: 'ip' ou 'coordinate' |
| enrich | boolean (Enrich) Default: true Ativa retorno de VPN/proxy/TOR/datacenter |
| check_sanctions | boolean (Check Sanctions) Default: true Verifica listas de sancoes e paraisos fiscais |
additional property | object (BatchItem) Item individual do lote. |
{- "property1": {
- "ip": "string",
- "latitude": -90,
- "longitude": -180
}, - "property2": {
- "ip": "string",
- "latitude": -90,
- "longitude": -180
}
}nullVerifica a assinatura digital de uma resposta da API.
required | object (Signed Response) Resposta completa com assinatura |
{- "signed_response": { }
}nullRetorna chaves publicas disponiveis para verificacao.
curl "https://api.prismadata.io/v1/identity/ipinfo/signing-keys" \ -H "X-Apikey: ak_xxxxxxxxxxxxxxxx"
nullListagem paginada de consultas com filtros.
Date From (string) or Date From (null) (Date From) Data inicio (ISO 8601) | |
Date To (string) or Date To (null) (Date To) Data fim (ISO 8601) | |
Risk Level (string) or Risk Level (null) (Risk Level) Filtro por nivel de risco | |
Country Code (string) or Country Code (null) (Country Code) Filtro por pais (ISO 3166-1) | |
Is Vpn (boolean) or Is Vpn (null) (Is Vpn) Filtro por VPN detectada | |
Is Sanctioned (boolean) or Is Sanctioned (null) (Is Sanctioned) Filtro por sancao | |
| page | integer (Page) >= 1 Default: 1 Pagina |
| page_size | integer (Page Size) [ 1 .. 200 ] Default: 50 Itens por pagina |
curl "https://api.prismadata.io/v1/identity/ipinfo/reports" \ -H "X-Apikey: ak_xxxxxxxxxxxxxxxx"
nullRetorna laudo PDF auditavel de uma consulta.
| query_id required | string (Query Id) |
curl "https://api.prismadata.io/v1/identity/ipinfo/report/{query_id}" \ -H "X-Apikey: ak_xxxxxxxxxxxxxxxx"
nullDownload em lote de laudos PDF em formato ZIP (max 100).
Date From (string) or Date From (null) (Date From) Data inicio (ISO 8601) | |
Date To (string) or Date To (null) (Date To) Data fim (ISO 8601) | |
Risk Level (string) or Risk Level (null) (Risk Level) Filtro por nivel de risco | |
Country Code (string) or Country Code (null) (Country Code) Filtro por pais (ISO 3166-1) | |
Is Vpn (boolean) or Is Vpn (null) (Is Vpn) Filtro por VPN detectada | |
Is Sanctioned (boolean) or Is Sanctioned (null) (Is Sanctioned) Filtro por sancao |
curl "https://api.prismadata.io/v1/identity/ipinfo/reports/download" \ -H "X-Apikey: ak_xxxxxxxxxxxxxxxx"
nullO dado de fronteiras indica se um ponto está localizado em uma faixa de fronteira e traz algumas informações desta fronteira, como proximidade da fronteira, qual é o país mais próximo e se a mancha urbana do município que o ponto se encontra está próximo da faixa de fronteira.
A faixa de fronteira, segundo o IBGE, é uma faixa de até 150 km de largura ao longo das fronteiras terrestres do Brasil, considerada importante para a defesa nacional. Essa área abrange 16,7% do território brasileiro.
Maiores informações podem ser encontradas na documentação de produto. Testes manuais com o fim de se compreender melhor o dado podem ser feitos aqui.
Busca as informações de fronteiras em lote. A cobrança desta api é feita em função do número de coordenadas contidas no lote.
| property name* additional property | Array of numbers (Coordinates) = 2 items Encapsula as coordenadas geográficas |
{- "point1": [
- -23.5505,
- -46.6333
], - "point2": [
- 40.7128,
- -74.006
]
}{- "1": {
- "prismadata__border__area_municipio_integrada_faixa_de_fronteira_km2": 609.19,
- "prismadata__border__area_total_municipio_km2": 609.19,
- "prismadata__border__distancia_geodesica_pais_mais_proximo_pt_km": 1.112,
- "prismadata__border__distancia_geodesica_pais_mais_proximo_sede_municipio_km": 1.014,
- "prismadata__border__distancia_geodesica_ponto_borda_faixa_de_fronteira_km": 0.757,
- "prismadata__border__municipio_possui_cidade_gemea": true,
- "prismadata__border__nome_municipio_de_fronteira": "Foz do Iguaçu",
- "prismadata__border__pais_mais_proximo": "PARAGUAI",
- "prismadata__border__pais_mais_proximo_pt": "PARAGUAI",
- "prismadata__border__ponto_contido_na_faixa_de_fronteira": true,
- "prismadata__border__porcentagem_area_municipio_faixa_de_fronteira": 100,
- "prismadata__border__sede_municipio_dentro_da_faixa_de_fronteira": true
}, - "2": {
- "prismadata__border__area_municipio_integrada_faixa_de_fronteira_km2": 5011.42,
- "prismadata__border__area_total_municipio_km2": 5011.42,
- "prismadata__border__distancia_geodesica_pais_mais_proximo_pt_km": 3.245,
- "prismadata__border__distancia_geodesica_pais_mais_proximo_sede_municipio_km": 2.871,
- "prismadata__border__distancia_geodesica_ponto_borda_faixa_de_fronteira_km": 12.34,
- "prismadata__border__municipio_possui_cidade_gemea": true,
- "prismadata__border__nome_municipio_de_fronteira": "Guaíra",
- "prismadata__border__pais_mais_proximo": "PARAGUAI",
- "prismadata__border__pais_mais_proximo_pt": "PARAGUAI",
- "prismadata__border__ponto_contido_na_faixa_de_fronteira": true,
- "prismadata__border__porcentagem_area_municipio_faixa_de_fronteira": 100,
- "prismadata__border__sede_municipio_dentro_da_faixa_de_fronteira": true
}
}Endpoint para consultar a proximidade do ponto às fronteiras brasileiras.
| lat required | number (Lat) ( -90 .. 90 ) Example: lat=-25.52568655357868 Latitude do ponto de consulta. |
| lng required | number (Lng) ( -180 .. 180 ) Example: lng=-54.59273323017718 Longitude do ponto de consulta. |
curl "https://api.prismadata.io/v1/location/border?lat=-25.52568655357868&lng=-54.59273323017718" \ -H "X-Apikey: ak_xxxxxxxxxxxxxxxx"
{- "prismadata__border__area_municipio_integrada_faixa_de_fronteira_km2": 609.19,
- "prismadata__border__area_total_municipio_km2": 609.19,
- "prismadata__border__distancia_geodesica_pais_mais_proximo_pt_km": 1.112,
- "prismadata__border__distancia_geodesica_pais_mais_proximo_sede_municipio_km": 1.014,
- "prismadata__border__distancia_geodesica_ponto_borda_faixa_de_fronteira_km": 0.757,
- "prismadata__border__municipio_possui_cidade_gemea": true,
- "prismadata__border__nome_municipio_de_fronteira": "Foz do Iguaçu",
- "prismadata__border__pais_mais_proximo": "PARAGUAI",
- "prismadata__border__pais_mais_proximo_pt": "PARAGUAI",
- "prismadata__border__ponto_contido_na_faixa_de_fronteira": true,
- "prismadata__border__porcentagem_area_municipio_faixa_de_fronteira": 100,
- "prismadata__border__sede_municipio_dentro_da_faixa_de_fronteira": true
}Existem 3 entidades que compõem o dado de favelas: Favelas, complexos e ilhas.
As favelas propriamente ditas que são regiões que são classificadas desta forma pelo IBGE em função das características construtivas do domicílios contidos nesta região. Note que favelas, em conjunto, quando se encontram próximas, podem formar complexos de favelas.
Além disso, é possível a existência de regiões dentro de favelas ou complexos nas quais os aspectos construtivos dos domicílios não se enquadram dentro do conceito do IBGE para que um domicílio seja considerado de favela, contudo são regiões que estão cercadas por regiões de favela. Neste caso, denominou-se esta região de ilha, já que ela se encontra rodeada por favela apesar dela própria não ser uma região de favela. Frequentemente as ilhas, são regiões que contêm domicilios de conjuntos habitacionais.
Caso o ponto se encontre distante mais de 5000 metros de uma entidade valores vazios são retornados.
Maiores informações podem ser encontradas na documentação de produto. Testes manuais com o fim de se compreender melhor o dado podem ser feitos aqui.
Busca as informações de favelas em lote. A cobrança desta api é feita em função do número de coordenadas contidas no lote.
| property name* additional property | Array of numbers (Coordinates) = 2 items Encapsula as coordenadas geográficas |
{- "point1": [
- -23.5505,
- -46.6333
], - "point2": [
- 40.7128,
- -74.006
]
}{- "prismadata__slum__complexo_area_m2": 1755169.882444958,
- "prismadata__slum__complexo_distancia_centroid_m": 847.28,
- "prismadata__slum__complexo_distancia_m": 132.96,
- "prismadata__slum__complexo_dompp_total": 13901,
- "prismadata__slum__complexo_hash_id": 6146791748692800000,
- "prismadata__slum__complexo_municipio": "Belo Horizonte",
- "prismadata__slum__complexo_perimetro_m": 10054.86267269001,
- "prismadata__slum__complexo_total_favelas": 9,
- "prismadata__slum__complexo_uf": "Minas Gerais",
- "prismadata__slum__favela_area_m2": 114306.97,
- "prismadata__slum__favela_distancia_centroid_m": 280.37,
- "prismadata__slum__favela_distancia_m": 132.96,
- "prismadata__slum__favela_dompp_total": 1394,
- "prismadata__slum__favela_hash_id": 6476692552498676000,
- "prismadata__slum__favela_municipio": "Belo Horizonte",
- "prismadata__slum__favela_perimetro_m": 1992.69,
- "prismadata__slum__favela_uf": "Minas Gerais",
- "prismadata__slum__ilha_area_m2": 64746.69,
- "prismadata__slum__ilha_distancia_centroid_m": 1527.42,
- "prismadata__slum__ilha_distancia_m": 1369.38,
- "prismadata__slum__ilha_hash_id": -3871855200304948700,
- "prismadata__slum__ilha_perimetro_m": 1772.35,
- "prismadata__slum__ilha_tipo_geom_contenedora": "COMPLEXO"
}Endpoint para consultar a favela mais próxima a determinada coordenada geográfica.
| lat required | number (Lat) ( -90 .. 90 ) Example: lat=-19.933284645466298 Latitude do ponto de origem. |
| lng required | number (Lng) ( -180 .. 180 ) Example: lng=-43.9191946695413 Longitude do ponto de origem. |
curl "https://api.prismadata.io/v1/location/slum?lat=-19.933284645466298&lng=-43.9191946695413" \ -H "X-Apikey: ak_xxxxxxxxxxxxxxxx"
{- "prismadata__slum__complexo_area_m2": 1755169.882444958,
- "prismadata__slum__complexo_distancia_centroid_m": 847.28,
- "prismadata__slum__complexo_distancia_m": 132.96,
- "prismadata__slum__complexo_dompp_total": 13901,
- "prismadata__slum__complexo_hash_id": 6146791748692800000,
- "prismadata__slum__complexo_municipio": "Belo Horizonte",
- "prismadata__slum__complexo_perimetro_m": 10054.86267269001,
- "prismadata__slum__complexo_total_favelas": 9,
- "prismadata__slum__complexo_uf": "Minas Gerais",
- "prismadata__slum__favela_area_m2": 114306.97,
- "prismadata__slum__favela_distancia_centroid_m": 280.37,
- "prismadata__slum__favela_distancia_m": 132.96,
- "prismadata__slum__favela_dompp_total": 1394,
- "prismadata__slum__favela_hash_id": 6476692552498676000,
- "prismadata__slum__favela_municipio": "Belo Horizonte",
- "prismadata__slum__favela_perimetro_m": 1992.69,
- "prismadata__slum__favela_uf": "Minas Gerais",
- "prismadata__slum__ilha_area_m2": 64746.69,
- "prismadata__slum__ilha_distancia_centroid_m": 1527.42,
- "prismadata__slum__ilha_distancia_m": 1369.38,
- "prismadata__slum__ilha_hash_id": -3871855200304948700,
- "prismadata__slum__ilha_perimetro_m": 1772.35,
- "prismadata__slum__ilha_tipo_geom_contenedora": "COMPLEXO"
}O Geocoder é o sistema responsável por realizar a conversão de informações de uma localização (textos) em uma coordenada geográfica. Assim, ele converte um endereço para uma latitude/longitude quando opera diretamente. Pode, também, realizar a geocodificação reversa, que consiste em converter uma coordenada geográfica (latitude/longitude) para um endereço.
Maiores informações podem ser encontradas na documentação de produto. Testes manuais com o fim de se compreender melhor o dado podem ser feitos aqui.
Endpoint para se obter a latitude e longitude de um endereço.
Há duas formas de se realizar a geocodificação:
Caso o endereço completo seja fornecido, ele é quebrado nos campos internamente e se os campos forém fornecidos também, estes têm preferência sobre os campos extraídos do endereço completo. Por isso, sugere-se que, se possível, a geocodificação seja feita pelos campos individualizados e não pelo endereço completo.
Endereco Completo (string) or Endereco Completo (null) (Endereco Completo) Endereço completo a ser a ser geocodificado. Não é necessário informá-lo caso os campos que compõem o endereço sejam fornecidos separadamente | |
(Cep (Cep (string) or Cep (integer))) or Cep (null) (Cep) Example: cep=30130-165 CEP do endereço a ser geocodificado. | |
(Numero (Numero (string) or Numero (integer))) or Numero (null) (Numero) Numero do endereço a ser geocodificado | |
Tipo Logradouro (string) or Tipo Logradouro (null) (Tipo Logradouro) Tipo do logradouro a ser geocodificado.Ex: Rua, Avenida, etc. | |
Titulo Logradouro (string) or Titulo Logradouro (null) (Titulo Logradouro) Ex: Coronel, Senhor, Senhora, Professor, São, etc | |
Logradouro (string) or Logradouro (null) (Logradouro) O logradouro a ser geocodificado | |
Localidade (string) or Localidade (null) (Localidade) Localidade do endereço. Frequentemente a localidade é o Bairro do endereço | |
Municipio (string) or Municipio (null) (Municipio) Município do endereço | |
Estado (string) or Estado (null) (Estado) Unidade Federativa ou Estado do endereço |
curl "https://api.prismadata.io/v1/location/geocoder?cep=30130-165" \ -H "X-Apikey: ak_xxxxxxxxxxxxxxxx"
{- "prismadata__geocoder__cep": "30130-165",
- "prismadata__geocoder__classificao_qualidade_geocodificacao": "MEDIA",
- "prismadata__geocoder__endereco_completo": "RUA ALAGOAS, 686 - SAVASSI, BELO HORIZONTE - MG, 30130-165",
- "prismadata__geocoder__latitude": -19.93292236328125,
- "prismadata__geocoder__localidade": "SAVASSI",
- "prismadata__geocoder__logradouro": "RUA ALAGOAS",
- "prismadata__geocoder__longitude": -43.935611724853516,
- "prismadata__geocoder__municipio": "BELO HORIZONTE",
- "prismadata__geocoder__numero": 686,
- "prismadata__geocoder__score_qualidade_geocodificacao": 75,
- "prismadata__geocoder__uf": "MG"
}Realiza a geocodificação reversa de um ponto, isto é, retorna o endereço de uma latitude e longitude. Se não for encontrado um endereço próximo ao ponto, retorna OUTPUT vazio.
| lat required | number (Lat) ( -90 .. 90 ) Latitude do ponto que se deseja realizar a geocodificação reversa |
| lng required | number (Lng) ( -180 .. 180 ) Longitude do ponto que se deseja realizar a geocodificação reversa |
curl "https://api.prismadata.io/v1/location/reverse_geocoder?lat=-25.5&lng=-25.5" \ -H "X-Apikey: ak_xxxxxxxxxxxxxxxx"
{- "prismadata__reverse_geocoder__cep": "22420-008",
- "prismadata__reverse_geocoder__distancia_m": 7.02674626,
- "prismadata__reverse_geocoder__endereco_completo": "AVENIDA VIEIRA SOUTO, 516 - IPANEMA, RIO DE JANEIRO - RJ, 22420-008",
- "prismadata__reverse_geocoder__latitude_endereco": -22.986234664916992,
- "prismadata__reverse_geocoder__latitude_input": -22.98627572993613,
- "prismadata__reverse_geocoder__localidade": "IPANEMA",
- "prismadata__reverse_geocoder__logradouro": "AVENIDA VIEIRA SOUTO",
- "prismadata__reverse_geocoder__longitude_endereco": -43.2088508605957,
- "prismadata__reverse_geocoder__longitude_input": -43.208798617447684,
- "prismadata__reverse_geocoder__municipio": "RIO DE JANEIRO",
- "prismadata__reverse_geocoder__numero": 516,
- "prismadata__reverse_geocoder__uf": "RJ"
}Endpoint para geocodificacao em batch.
Recebe um dict de ate 512 enderecos indexados por chaves definidas pelo cliente e retorna as coordenadas de cada um, preservando as mesmas chaves na resposta.
curl "https://api.prismadata.io/v1/location/geocoder/batch" \ -H "X-Apikey: ak_xxxxxxxxxxxxxxxx"
{- "1": {
- "prismadata__geocoder__cep": "30130-165",
- "prismadata__geocoder__classificacao_qualidade_geocodificacao": "MUITO_ALTA",
- "prismadata__geocoder__endereco_completo": "RUA ALAGOAS, 686 - SAVASSI, BELO HORIZONTE - MG, 30130-165",
- "prismadata__geocoder__latitude": -19.93292236328125,
- "prismadata__geocoder__localidade": "SAVASSI",
- "prismadata__geocoder__logradouro": "RUA ALAGOAS",
- "prismadata__geocoder__longitude": -43.935611724853516,
- "prismadata__geocoder__municipio": "BELO HORIZONTE",
- "prismadata__geocoder__numero": 686,
- "prismadata__geocoder__score_qualidade_geocodificacao": 100,
- "prismadata__geocoder__uf": "MG"
}, - "2": {
- "prismadata__geocoder__cep": "01310-100",
- "prismadata__geocoder__classificacao_qualidade_geocodificacao": "BAIXA",
- "prismadata__geocoder__endereco_completo": "AVENIDA PAULISTA, 960 - BELA VISTA, SAO PAULO - SP, 01310-100",
- "prismadata__geocoder__latitude": -23.56524658203125,
- "prismadata__geocoder__localidade": "BELA VISTA",
- "prismadata__geocoder__logradouro": "AVENIDA PAULISTA",
- "prismadata__geocoder__longitude": -46.65198516845703,
- "prismadata__geocoder__municipio": "SAO PAULO",
- "prismadata__geocoder__numero": 960,
- "prismadata__geocoder__score_qualidade_geocodificacao": 45,
- "prismadata__geocoder__uf": "SP"
}
}Endpoint para geocodificacao reversa em batch.
Recebe um dict de ate 1024 coordenadas indexadas por chaves definidas pelo cliente e retorna o endereco mais proximo de cada uma, preservando as mesmas chaves na resposta.
curl "https://api.prismadata.io/v1/location/reverse_geocoder/batch" \ -H "X-Apikey: ak_xxxxxxxxxxxxxxxx"
{- "1": {
- "prismadata__reverse_geocoder__cep": "30140-010",
- "prismadata__reverse_geocoder__distancia_m": 48.35767446,
- "prismadata__reverse_geocoder__endereco_completo": "PRACA DA LIBERDADE, 450 - SAVASSI, BELO HORIZONTE - MG, 30140-010",
- "prismadata__reverse_geocoder__latitude_endereco": -19.93199348449707,
- "prismadata__reverse_geocoder__latitude_input": -19.932,
- "prismadata__reverse_geocoder__localidade": "SAVASSI",
- "prismadata__reverse_geocoder__logradouro": "PRACA DA LIBERDADE",
- "prismadata__reverse_geocoder__longitude_endereco": -43.937538146972656,
- "prismadata__reverse_geocoder__longitude_input": -43.938,
- "prismadata__reverse_geocoder__municipio": "BELO HORIZONTE",
- "prismadata__reverse_geocoder__numero": 450,
- "prismadata__reverse_geocoder__uf": "MG"
}, - "2": {
- "prismadata__reverse_geocoder__cep": "01332-030",
- "prismadata__reverse_geocoder__distancia_m": 44.69252378,
- "prismadata__reverse_geocoder__endereco_completo": "RUA CARLOS COMENALE, 241 - BELA VISTA, SAO PAULO - SP, 01332-030",
- "prismadata__reverse_geocoder__latitude_endereco": -23.560596466064453,
- "prismadata__reverse_geocoder__latitude_input": -23.561,
- "prismadata__reverse_geocoder__localidade": "BELA VISTA",
- "prismadata__reverse_geocoder__logradouro": "RUA CARLOS COMENALE",
- "prismadata__reverse_geocoder__longitude_endereco": -46.65599822998047,
- "prismadata__reverse_geocoder__longitude_input": -46.656,
- "prismadata__reverse_geocoder__municipio": "SAO PAULO",
- "prismadata__reverse_geocoder__numero": 241,
- "prismadata__reverse_geocoder__uf": "SP"
}
}A API de renda fornece estimativas da renda na região próxima de determinada coordenada geográfica. Veja que esta informação de renda não se refere à uma pessoa específica, mas sim a uma região em que ela mora ou se encontra em determinado momento.
Se a coordenada geográfica de entrada (latitude/longitude) não for localizada no Brasil, valores nulos serão retornados.
Maiores informações podem ser encontradas na documentação de produto:
Testes manuais com o fim de se compreender melhor o dado podem ser feitos aqui.
Endpoint para se consultar o endereço mais próximo à uma coordenada geográfica (latitude/longitude). Caso a coordenada não possua nenhum endereço próximo à vizinhança de 100 metros, valores nulos são retornados.
| lat required | number (Lat) ( -90 .. 90 ) Example: lat=-19.932378368680315 Latitude do ponto a ser estudado. |
| lng required | number (Lng) ( -180 .. 180 ) Example: lng=-43.9351245162891 Longitude do ponto a ser estudado. |
curl "https://api.prismadata.io/v1/location/query_personal_income_static?lat=-19.932378368680315&lng=-43.9351245162891" \ -H "X-Apikey: ak_xxxxxxxxxxxxxxxx"
{- "prismadata__personal_income_static__faixa_sm_min": 5,
- "prismadata__personal_income_static__faixa_sm_max": 10,
- "prismadata__personal_income_static__percentil_br": 98,
- "prismadata__personal_income_static__percentil_mun": 90,
- "prismadata__personal_income_static__percentil_uf": 99
}Endpoint para se consultar a renda na coordenada geográfica. As informações retornadas são gerados por um modelo que é uma função de densidade de probabilidade (Probability Density Function - PDF). Opcionalmente, pode-se definir um perfil detalhado do indivíduo que se deseja estimar a renda.
| lat required | number (Lat) ( -90 .. 90 ) Example: lat=-19.932378368680315 Latitude do ponto de origem. |
| lng required | number (Lng) ( -180 .. 180 ) Example: lng=-43.9351245162891 Longitude do ponto de origem |
Genero (string) or Gender (null) (Gender) Example: gender=M Gênero da pessoa que se deseja analisar a renda. [M, F, male, female] | |
Age (number) or Age (null) (Age) Example: age=50 Idade da pessoa que se deseja analisar a renda | |
AtributosBooleanos (string) or Is Responsible (null) (Is Responsible) Example: is_responsible=false Indicador se as pessoas que se deseja analisar a renda são responsáveis pelo domicílio | |
Income Compared (number) or Income Compared (null) (Income Compared) Example: income_compared=10000 Renda a ser comparada com a renda da região. | |
Date Income (string) or Date Income (null) (Date Income) Example: date_income=2025-01-25 Data a ser consultada a renda no formato YYYY-MM-DD. Somente datas após 2022-01-01 são válidas. |
curl "https://api.prismadata.io/v1/location/query_personal_income_pdf?lat=-19.932378368680315&lng=-43.9351245162891&gender=M&age=50&is_responsible=false&income_compared=10000&date_income=2025-01-25" \ -H "X-Apikey: ak_xxxxxxxxxxxxxxxx"
{- "prismadata__personal_income_pdf__qtde_pessoas": 475,
- "prismadata__personal_income_pdf__qtde_pessoas_sem_renda": 61,
- "prismadata__personal_income_pdf__renda_comparada_cdf": 69.58161423037396,
- "prismadata__personal_income_pdf__renda_comparada_pdf": 0.00004347742504677703,
- "prismadata__personal_income_pdf__renda_comparada_z_score": 0.5124048241824011,
- "prismadata__personal_income_pdf__renda_media_pessoas": 7977.094543374305,
- "prismadata__personal_income_pdf__renda_pessoas_com_renda_desvio_padrao": 8734.869682287694,
- "prismadata__personal_income_pdf__renda_pessoas_com_renda_maxima": 61487.85959498082,
- "prismadata__personal_income_pdf__renda_pessoas_com_renda_media": 9152.463546142017,
- "prismadata__personal_income_pdf__renda_pessoas_com_renda_mediana": 6781.762582549223,
- "prismadata__personal_income_pdf__renda_pessoas_com_renda_minima": 697.1449013796515,
- "prismadata__personal_income_pdf__renda_pessoas_com_renda_primeiro_quartil": 3582.7074159885547,
- "prismadata__personal_income_pdf__renda_pessoas_com_renda_qtde": 414,
- "prismadata__personal_income_pdf__renda_pessoas_com_renda_terceiro_quartil": 11412.45045466984,
- "prismadata__personal_income_pdf__renda_total": 3789119.908102795,
- "prismadata__personal_income_pdf__renda_total_m2": 95.5377576127026
}Endpoint batch para consulta de renda estática. Recebe múltiplos pontos e retorna percentis e faixa salarial para cada um.
| property name* additional property | Array of numbers (Coordinates) = 2 items Encapsula as coordenadas geográficas |
{- "point1": [
- -23.5505,
- -46.6333
], - "point2": [
- 40.7128,
- -74.006
]
}{- "SUCESSO": true,
- "EXCEPTION": "string",
- "OUTPUT": {
- "property1": {
- "prismadata__personal_income_static__faixa_sm_min": 0,
- "prismadata__personal_income_static__faixa_sm_max": 0,
- "prismadata__personal_income_static__percentil_br": 0,
- "prismadata__personal_income_static__percentil_mun": 0,
- "prismadata__personal_income_static__percentil_uf": 0
}, - "property2": {
- "prismadata__personal_income_static__faixa_sm_min": 0,
- "prismadata__personal_income_static__faixa_sm_max": 0,
- "prismadata__personal_income_static__percentil_br": 0,
- "prismadata__personal_income_static__percentil_mun": 0,
- "prismadata__personal_income_static__percentil_uf": 0
}
}
}Endpoint batch para consulta de renda via PDF (Probability Density Function). Recebe múltiplos pontos, cada um com seus próprios parâmetros demográficos.
additional property | PdfPointInput (object) or Array of CoordPair (numbers) |
{- "property1": {
- "lat": -89,
- "lng": -179,
- "date_income": "2019-08-24",
- "gender": "string",
- "age": 16,
- "is_responsible": "string",
- "income_compared": 0
}, - "property2": {
- "lat": -89,
- "lng": -179,
- "date_income": "2019-08-24",
- "gender": "string",
- "age": 16,
- "is_responsible": "string",
- "income_compared": 0
}
}{- "SUCESSO": true,
- "EXCEPTION": "string",
- "OUTPUT": {
- "property1": {
- "prismadata__personal_income_pdf__qtde_pessoas": 0,
- "prismadata__personal_income_pdf__qtde_pessoas_sem_renda": 0,
- "prismadata__personal_income_pdf__renda_comparada_cdf": 0,
- "prismadata__personal_income_pdf__renda_comparada_pdf": 0,
- "prismadata__personal_income_pdf__renda_comparada_z_score": 0,
- "prismadata__personal_income_pdf__renda_media_pessoas": 0,
- "prismadata__personal_income_pdf__renda_pessoas_com_renda_desvio_padrao": 0,
- "prismadata__personal_income_pdf__renda_pessoas_com_renda_maxima": 0,
- "prismadata__personal_income_pdf__renda_pessoas_com_renda_media": 0,
- "prismadata__personal_income_pdf__renda_pessoas_com_renda_mediana": 0,
- "prismadata__personal_income_pdf__renda_pessoas_com_renda_minima": 0,
- "prismadata__personal_income_pdf__renda_pessoas_com_renda_primeiro_quartil": 0,
- "prismadata__personal_income_pdf__renda_pessoas_com_renda_qtde": 0,
- "prismadata__personal_income_pdf__renda_pessoas_com_renda_terceiro_quartil": 0,
- "prismadata__personal_income_pdf__renda_total": 0,
- "prismadata__personal_income_pdf__renda_total_m2": 0
}, - "property2": {
- "prismadata__personal_income_pdf__qtde_pessoas": 0,
- "prismadata__personal_income_pdf__qtde_pessoas_sem_renda": 0,
- "prismadata__personal_income_pdf__renda_comparada_cdf": 0,
- "prismadata__personal_income_pdf__renda_comparada_pdf": 0,
- "prismadata__personal_income_pdf__renda_comparada_z_score": 0,
- "prismadata__personal_income_pdf__renda_media_pessoas": 0,
- "prismadata__personal_income_pdf__renda_pessoas_com_renda_desvio_padrao": 0,
- "prismadata__personal_income_pdf__renda_pessoas_com_renda_maxima": 0,
- "prismadata__personal_income_pdf__renda_pessoas_com_renda_media": 0,
- "prismadata__personal_income_pdf__renda_pessoas_com_renda_mediana": 0,
- "prismadata__personal_income_pdf__renda_pessoas_com_renda_minima": 0,
- "prismadata__personal_income_pdf__renda_pessoas_com_renda_primeiro_quartil": 0,
- "prismadata__personal_income_pdf__renda_pessoas_com_renda_qtde": 0,
- "prismadata__personal_income_pdf__renda_pessoas_com_renda_terceiro_quartil": 0,
- "prismadata__personal_income_pdf__renda_total": 0,
- "prismadata__personal_income_pdf__renda_total_m2": 0
}
}
}O validador de endereços consiste em validar um ou mais endereços com um ou mais sinais de localização (frequentemente obtidos por GPS). Os endereços são comparados com os sinais indicando a concordância ou não da localização do(s) sinal(is) com o(s) endereço(s).
Maiores informações podem ser encontradas na documentação de produto. Testes manuais com o fim de se compreender melhor o dado podem ser feitos aqui.
Realiza a comparação de um endereço com determinada coordenada geográfica para avaliar a concordância (proximidade) entre eles.
| lat required | number (Lat) ( -90 .. 90 ) Latitude do ponto que se deseja realizar a geocodificação reversa |
| lng required | number (Lng) ( -180 .. 180 ) Longitude do ponto que se deseja realizar a geocodificação reversa |
Endereco Completo (string) or Endereco Completo (null) (Endereco Completo) Endereço completo a ser geocodificado. Não é necessário informá-lo caso os campos que compõem o endereço sejam fornecidos separadamente | |
(Cep (Cep (string) or Cep (integer))) or Cep (null) (Cep) Example: cep=30130-165 CEP do endereço a ser geocodificado. | |
(Numero (Numero (string) or Numero (integer))) or Numero (null) (Numero) Numero do endereço a ser geocodificado | |
Tipo Logradouro (string) or Tipo Logradouro (null) (Tipo Logradouro) Tipo do logradouro a ser geocodificado.Ex: Rua, Avenida, etc. | |
Titulo Logradouro (string) or Titulo Logradouro (null) (Titulo Logradouro) Ex: Coronel, Senhor, Senhora, Professor, São, etc | |
Logradouro (string) or Logradouro (null) (Logradouro) O logradouro a ser geocodificado | |
Localidade (string) or Localidade (null) (Localidade) Localidade do endereço. Frequentemente a localidade é o bairro ou região do endereço. | |
Municipio (string) or Municipio (null) (Municipio) Município do endereço. | |
Estado (string) or Estado (null) (Estado) Unidade Federativa ou Estado do endereço. |
curl "https://api.prismadata.io/v1/location/compare_address?lat=-25.5&lng=-25.5&cep=30130-165" \ -H "X-Apikey: ak_xxxxxxxxxxxxxxxx"
{- "prismadata__valida_endereco_compare__classificacao_campos_endereco": "MUITO_PROXIMO",
- "prismadata__valida_endereco_compare__classificacao_cep": "PROXIMO",
- "prismadata__valida_endereco_compare__classificacao_distancia_geodesica": "IGUAL",
- "prismadata__valida_endereco_compare__classificacao_final": "MUITO_PROXIMO",
- "prismadata__valida_endereco_compare__classificacao_localidade": "IGUAL",
- "prismadata__valida_endereco_compare__classificacao_logradouro": "MUITO_DISTANTE",
- "prismadata__valida_endereco_compare__classificacao_municipio": "IGUAL",
- "prismadata__valida_endereco_compare__classificacao_numero": "PROXIMO",
- "prismadata__valida_endereco_compare__classificacao_uf": "IGUAL",
- "prismadata__valida_endereco_compare__distancia_geodesica_m": 62.926660837194,
- "prismadata__valida_endereco_compare__score_campos_endereco": 88.29072803942488,
- "prismadata__valida_endereco_compare__score_cep": 46.24072803942488,
- "prismadata__valida_endereco_compare__score_distancia_geodescia": 100,
- "prismadata__valida_endereco_compare__score_final": 94.14536401971245,
- "prismadata__valida_endereco_compare__score_localidade": 5,
- "prismadata__valida_endereco_compare__score_logradouro": 0.6,
- "prismadata__valida_endereco_compare__score_municipio": 20,
- "prismadata__valida_endereco_compare__score_numero": 6.45,
- "prismadata__valida_endereco_compare__score_uf": 10,
- "prismadata__valida_endereco_compare__sucesso_geocodificacao_direta": "True",
- "prismadata__valida_endereco_compare__sucesso_geocodificacao_reversa": "True"
}Valida uma lista de endereços com base no histórico de localização de um dispositivo. A validação indica se cada endereço da lista possui alguma relação com o dispositivo, como "MORADIA", "TRABALHO", "ATIPICO", etc.
required | Array of items (Locations) [ items = 3 items ] Lista de tuplas contendo sinais de localização. |
| enderecos required | Array of strings (Enderecos) <= 5 items Lista de endereços a serem validados |
{- "locations": [
- [
- 0,
- 0,
- 0
]
], - "enderecos": [
- "string"
]
}{- "items": [
- {
- "prismadata__valida_endereco__classificacao__atipico": 0,
- "prismadata__valida_endereco__classificacao__moradia": 83,
- "prismadata__valida_endereco__classificacao__proximidade": 100,
- "prismadata__valida_endereco__classificacao__trabalho": 83,
- "prismadata__valida_endereco__classificacao__visita_eventual": 0,
- "prismadata__valida_endereco__classificacao__visita_frequente": 7,
- "prismadata__valida_endereco__classificacao_provavel": "MORADIA",
- "prismadata__valida_endereco__endereco_validado": "Av. Artur Bernardes 216, Vila Paris - Belo Horizonte - MG",
- "prismadata__valida_endereco__geocoder__cep": "30380-752",
- "prismadata__valida_endereco__geocoder__classificao_qualidade_geocodificacao": "MUITO_ALTA",
- "prismadata__valida_endereco__geocoder__endereco_completo": "AVENIDA ARTUR BERNARDES, 216 - VILA PARIS, BELO HORIZONTE - MG, 30380-752",
- "prismadata__valida_endereco__geocoder__latitude": -19.949094772338867,
- "prismadata__valida_endereco__geocoder__localidade": "VILA PARIS",
- "prismadata__valida_endereco__geocoder__logradouro": "AVENIDA ARTUR BERNARDES",
- "prismadata__valida_endereco__geocoder__longitude": -43.9478874206543,
- "prismadata__valida_endereco__geocoder__municipio": "BELO HORIZONTE",
- "prismadata__valida_endereco__geocoder__numero": 216,
- "prismadata__valida_endereco__geocoder__score_qualidade_geocodificacao": 100,
- "prismadata__valida_endereco__geocoder__uf": "MG"
}, - {
- "prismadata__valida_endereco__classificacao__atipico": 0,
- "prismadata__valida_endereco__classificacao__moradia": 0,
- "prismadata__valida_endereco__classificacao__proximidade": 100,
- "prismadata__valida_endereco__classificacao__trabalho": 0,
- "prismadata__valida_endereco__classificacao__visita_eventual": 0,
- "prismadata__valida_endereco__classificacao__visita_frequente": 0,
- "prismadata__valida_endereco__classificacao_provavel": "PROXIMIDADE",
- "prismadata__valida_endereco__endereco_validado": "Rua São João Evangelista, 185, São Pedro - Belo Horizonte - MG",
- "prismadata__valida_endereco__geocoder__cep": "30330-152",
- "prismadata__valida_endereco__geocoder__classificao_qualidade_geocodificacao": "MUITO_ALTA",
- "prismadata__valida_endereco__geocoder__endereco_completo": "RUA SAO JOAO EVANGELISTA, 185 - SAO PEDRO, BELO HORIZONTE - MG, 30330-152",
- "prismadata__valida_endereco__geocoder__latitude": -19.947734832763672,
- "prismadata__valida_endereco__geocoder__localidade": "SAO PEDRO",
- "prismadata__valida_endereco__geocoder__logradouro": "RUA SAO JOAO EVANGELISTA",
- "prismadata__valida_endereco__geocoder__longitude": -43.937156677246094,
- "prismadata__valida_endereco__geocoder__municipio": "BELO HORIZONTE",
- "prismadata__valida_endereco__geocoder__numero": 185,
- "prismadata__valida_endereco__geocoder__score_qualidade_geocodificacao": 100,
- "prismadata__valida_endereco__geocoder__uf": "MG"
}, - {
- "prismadata__valida_endereco__classificacao__atipico": 100,
- "prismadata__valida_endereco__classificacao__moradia": 0,
- "prismadata__valida_endereco__classificacao__proximidade": 0,
- "prismadata__valida_endereco__classificacao__trabalho": 0,
- "prismadata__valida_endereco__classificacao__visita_eventual": 0,
- "prismadata__valida_endereco__classificacao__visita_frequente": 0,
- "prismadata__valida_endereco__classificacao_provavel": "ATIPICO",
- "prismadata__valida_endereco__endereco_validado": "Av. Vieira Souto, 302 - Ipanema - Rio de Janeiro - RJ",
- "prismadata__valida_endereco__geocoder__cep": "22420-004",
- "prismadata__valida_endereco__geocoder__classificao_qualidade_geocodificacao": "MEDIA",
- "prismadata__valida_endereco__geocoder__endereco_completo": "AVENIDA VIEIRA SOUTO, 284 - IPANEMA, RIO DE JANEIRO - RJ, 22420-004",
- "prismadata__valida_endereco__geocoder__latitude": -22.986597061157227,
- "prismadata__valida_endereco__geocoder__localidade": "IPANEMA",
- "prismadata__valida_endereco__geocoder__logradouro": "AVENIDA VIEIRA SOUTO",
- "prismadata__valida_endereco__geocoder__longitude": -43.201576232910156,
- "prismadata__valida_endereco__geocoder__municipio": "RIO DE JANEIRO",
- "prismadata__valida_endereco__geocoder__numero": 284,
- "prismadata__valida_endereco__geocoder__score_qualidade_geocodificacao": 50,
- "prismadata__valida_endereco__geocoder__uf": "RJ"
}, - {
- "prismadata__valida_endereco__classificacao__atipico": 0,
- "prismadata__valida_endereco__classificacao__moradia": 0,
- "prismadata__valida_endereco__classificacao__proximidade": 100,
- "prismadata__valida_endereco__classificacao__trabalho": 0,
- "prismadata__valida_endereco__classificacao__visita_eventual": 0,
- "prismadata__valida_endereco__classificacao__visita_frequente": 0,
- "prismadata__valida_endereco__classificacao_provavel": "PROXIMIDADE",
- "prismadata__valida_endereco__endereco_validado": "Av. Paulista, 1578 - Bela Vista, São Paulo - SP, 01310-200",
- "prismadata__valida_endereco__geocoder__cep": "01310-200",
- "prismadata__valida_endereco__geocoder__classificao_qualidade_geocodificacao": "MUITO_ALTA",
- "prismadata__valida_endereco__geocoder__endereco_completo": "AVENIDA PAULISTA, 1578 - BELA VISTA, SAO PAULO - SP, 01310-200",
- "prismadata__valida_endereco__geocoder__latitude": -23.562049865722656,
- "prismadata__valida_endereco__geocoder__localidade": "BELA VISTA",
- "prismadata__valida_endereco__geocoder__logradouro": "AVENIDA PAULISTA",
- "prismadata__valida_endereco__geocoder__longitude": -46.65565490722656,
- "prismadata__valida_endereco__geocoder__municipio": "SAO PAULO",
- "prismadata__valida_endereco__geocoder__numero": 1578,
- "prismadata__valida_endereco__geocoder__score_qualidade_geocodificacao": 100,
- "prismadata__valida_endereco__geocoder__uf": "SP"
}
]
}Realiza uma clusterização espacial dos pontos para identificar locais em que os sinais de localização são frequentes ou prolongados. Além disso, com as informações de timestamp classifica em diferentes graus, qual a afinidade do cluster com as seguintes classificações para o centróide do cluster:
| [0] | number |
| [1] | number |
| [2] | number |
[- [
- 0,
- 0,
- 0
]
]{- "items": [
- {
- "prismadata__cluster_historic_location__cep": "30380-752",
- "prismadata__cluster_historic_location__cluster_id": 0,
- "prismadata__cluster_historic_location__distancia_m": 12.64653078,
- "prismadata__cluster_historic_location__endereco_completo": "AVENIDA ARTUR BERNARDES, 228 - VILA PARIS, BELO HORIZONTE - MG, 30380-752",
- "prismadata__cluster_historic_location__latitude_endereco": -19.950218200683594,
- "prismadata__cluster_historic_location__latitude_input": -19.950141,
- "prismadata__cluster_historic_location__localidade": "VILA PARIS",
- "prismadata__cluster_historic_location__logradouro": "AVENIDA ARTUR BERNARDES",
- "prismadata__cluster_historic_location__longitude_endereco": -43.947635650634766,
- "prismadata__cluster_historic_location__longitude_input": -43.9477247,
- "prismadata__cluster_historic_location__moradia": 0.5853592589109377,
- "prismadata__cluster_historic_location__moradia_normalizado": 0.9687919528377141,
- "prismadata__cluster_historic_location__municipio": "BELO HORIZONTE",
- "prismadata__cluster_historic_location__numero": 228,
- "prismadata__cluster_historic_location__trabalho": 0.5158601560896914,
- "prismadata__cluster_historic_location__trabalho_normalizado": 0.9704367271420395,
- "prismadata__cluster_historic_location__uf": "MG",
- "prismadata__cluster_historic_location__visita_eventual": 0.0024057361519826295,
- "prismadata__cluster_historic_location__visita_eventual_normalizado": 0.0011620985380875505,
- "prismadata__cluster_historic_location__visita_frequente": 0.0348831742037481,
- "prismadata__cluster_historic_location__visita_frequente_normalizado": 0.08406721888423925
}, - {
- "prismadata__cluster_historic_location__cep": "30160-019",
- "prismadata__cluster_historic_location__cluster_id": 1,
- "prismadata__cluster_historic_location__distancia_m": 42.60808378,
- "prismadata__cluster_historic_location__endereco_completo": "RUA DA BAHIA, 2425 - SAVASSI, BELO HORIZONTE - MG, 30160-019",
- "prismadata__cluster_historic_location__latitude_endereco": -19.93621253967285,
- "prismadata__cluster_historic_location__latitude_input": -19.9359977,
- "prismadata__cluster_historic_location__localidade": "SAVASSI",
- "prismadata__cluster_historic_location__logradouro": "RUA DA BAHIA",
- "prismadata__cluster_historic_location__longitude_endereco": -43.940513610839844,
- "prismadata__cluster_historic_location__longitude_input": -43.9408513,
- "prismadata__cluster_historic_location__moradia": 0.013448697451330763,
- "prismadata__cluster_historic_location__moradia_normalizado": 0.022258108449909525,
- "prismadata__cluster_historic_location__municipio": "BELO HORIZONTE",
- "prismadata__cluster_historic_location__numero": 2425,
- "prismadata__cluster_historic_location__trabalho": 0.012064049133581927,
- "prismadata__cluster_historic_location__trabalho_normalizado": 0.02269490329708361,
- "prismadata__cluster_historic_location__uf": "MG",
- "prismadata__cluster_historic_location__visita_eventual": 0.5574400106335522,
- "prismadata__cluster_historic_location__visita_eventual_normalizado": 0.26927317897887126,
- "prismadata__cluster_historic_location__visita_frequente": 0.3065920058484537,
- "prismadata__cluster_historic_location__visita_frequente_normalizado": 0.7388759151697422
}, - {
- "prismadata__cluster_historic_location__cep": "06470-000",
- "prismadata__cluster_historic_location__cluster_id": 2,
- "prismadata__cluster_historic_location__distancia_m": 20.80692223,
- "prismadata__cluster_historic_location__endereco_completo": "ALAMEDA VENEZUELA, 862 - ALPHAVILLE 2, BARUERI - SP, 06470-000",
- "prismadata__cluster_historic_location__latitude_endereco": -23.492918014526367,
- "prismadata__cluster_historic_location__latitude_input": -23.4927481,
- "prismadata__cluster_historic_location__localidade": "ALPHAVILLE 2",
- "prismadata__cluster_historic_location__logradouro": "ALAMEDA VENEZUELA",
- "prismadata__cluster_historic_location__longitude_endereco": -46.861968994140625,
- "prismadata__cluster_historic_location__longitude_input": -46.8620559,
- "prismadata__cluster_historic_location__moradia": 0.004796388601523559,
- "prismadata__cluster_historic_location__moradia_normalizado": 0.007938206510107593,
- "prismadata__cluster_historic_location__municipio": "BARUERI",
- "prismadata__cluster_historic_location__numero": 862,
- "prismadata__cluster_historic_location__trabalho": 0.003000091983952338,
- "prismadata__cluster_historic_location__trabalho_normalizado": 0.0056437765383949845,
- "prismadata__cluster_historic_location__uf": "SP",
- "prismadata__cluster_historic_location__visita_eventual": 0.6489826034166849,
- "prismadata__cluster_historic_location__visita_eventual_normalizado": 0.3134931210362539,
- "prismadata__cluster_historic_location__visita_frequente": 0.04475742092528861,
- "prismadata__cluster_historic_location__visita_frequente_normalizado": 0.10786380504375039
}, - {
- "prismadata__cluster_historic_location__cep": "30140-100",
- "prismadata__cluster_historic_location__cluster_id": 3,
- "prismadata__cluster_historic_location__distancia_m": 9.39547144,
- "prismadata__cluster_historic_location__endereco_completo": "RUA CLAUDIO MANOEL, 862 - SAVASSI, BELO HORIZONTE - MG, 30140-100",
- "prismadata__cluster_historic_location__latitude_endereco": -19.933401107788086,
- "prismadata__cluster_historic_location__latitude_input": -19.933324900000002,
- "prismadata__cluster_historic_location__localidade": "SAVASSI",
- "prismadata__cluster_historic_location__logradouro": "RUA CLAUDIO MANOEL",
- "prismadata__cluster_historic_location__longitude_endereco": -43.93346405029297,
- "prismadata__cluster_historic_location__longitude_input": -43.93342455,
- "prismadata__cluster_historic_location__moradia": 0.0006113044296059438,
- "prismadata__cluster_historic_location__moradia_normalizado": 0.0010117322022686148,
- "prismadata__cluster_historic_location__municipio": "BELO HORIZONTE",
- "prismadata__cluster_historic_location__numero": 862,
- "prismadata__cluster_historic_location__trabalho": 0.0006509633550085262,
- "prismadata__cluster_historic_location__trabalho_normalizado": 0.0012245930224819308,
- "prismadata__cluster_historic_location__uf": "MG",
- "prismadata__cluster_historic_location__visita_eventual": 0.8613370214380509,
- "prismadata__cluster_historic_location__visita_eventual_normalizado": 0.41607160144678723,
- "prismadata__cluster_historic_location__visita_frequente": 0.028711234047935026,
- "prismadata__cluster_historic_location__visita_frequente_normalizado": 0.06919306090226829
}
]
}O dado de informações do setor censitário retorna, a partir de uma coordenada geográfica, as informações básicas acerca da proximidade do ponto.
Maiores informações podem ser encontradas na documentação de produto. Testes manuais com o fim de se compreender melhor o dado podem ser feitos aqui.
Busca as informações da região que o ponto se encontra
| lat required | number (Lat) ( -90 .. 90 ) Latitude do ponto de consulta |
| lng required | number (Lng) ( -180 .. 180 ) Longitude do ponto de consulta |
curl "https://api.prismadata.io/v1/location/query?lat=-25.5&lng=-25.5" \ -H "X-Apikey: ak_xxxxxxxxxxxxxxxx"
{- "prismadata__infosc__area_km2": 0.140840328651949,
- "prismadata__infosc__municipio": "Ribeirão Pires",
- "prismadata__infosc__regiao": "Sudeste",
- "prismadata__infosc__situacao": "Urbana",
- "prismadata__infosc__tipo_sc": "NAO_ESPECIAL",
- "prismadata__infosc__tipo_situacao": "AREA_URBANA_ALTA_DENSIDADE",
- "prismadata__infosc__uf": "São Paulo"
}Busca as informações dos setores censitários em lote. A cobrança desta api é feita em função do número de coordenadas contidas no lote.
| property name* additional property | Array of numbers (Coordinates) = 2 items Encapsula as coordenadas geográficas |
{- "point1": [
- -23.5505,
- -46.6333
], - "point2": [
- 40.7128,
- -74.006
]
}{- "1": {
- "prismadata__infosc__area_km2": 0.035775460654104,
- "prismadata__infosc__municipio": "São Caetano do Sul",
- "prismadata__infosc__regiao": "Sudeste",
- "prismadata__infosc__situacao": "Urbana",
- "prismadata__infosc__tipo_sc": "NAO_ESPECIAL",
- "prismadata__infosc__tipo_situacao": "AREA_URBANA_ALTA_DENSIDADE",
- "prismadata__infosc__uf": "São Paulo"
}, - "2": {
- "prismadata__infosc__area_km2": 0.217476572958429,
- "prismadata__infosc__municipio": "Armação dos Búzios",
- "prismadata__infosc__regiao": "Sudeste",
- "prismadata__infosc__situacao": "Urbana",
- "prismadata__infosc__tipo_sc": "NAO_ESPECIAL",
- "prismadata__infosc__tipo_situacao": "AREA_URBANA_ALTA_DENSIDADE",
- "prismadata__infosc__uf": "Rio de Janeiro"
}
}Os dados do sistema penitenciário avalia a proximidade de determinada coordenada geográfica à um presídio do sistema penitenciário brasileiro. Além da indicação de proximidade do sinal de localização à um presídio, também são fornecidas informações que indicam o porte do presídio e a quantidade de estelionatários cumprindo pena no local.
Maiores informações podem ser encontradas na documentação de produto. Testes manuais com o fim de se compreender melhor o dado podem ser feitos aqui.
Busca as informações de proximidade a presídios em lote. A cobrança desta api é feita em função do número de coordenadas contidas no lote.
| property name* additional property | Array of numbers (Coordinates) = 2 items Encapsula as coordenadas geográficas |
{- "point1": [
- -23.5505,
- -46.6333
], - "point2": [
- 40.7128,
- -74.006
]
}{- "1": {
- "prismadata__prison__ambito": "ESTADUAL",
- "prismadata__prison__area_m2": 9235.269698947668,
- "prismadata__prison__distancia_borda_m": 1212.36,
- "prismadata__prison__distancia_centroide_m": 1251.05,
- "prismadata__prison__indice_lotacao_feminino": 0,
- "prismadata__prison__indice_lotacao_masculino": 3.6650485436893203,
- "prismadata__prison__indice_lotacao_total": 0.2728476821192053,
- "prismadata__prison__municipio": "Belo Horizonte",
- "prismadata__prison__nome_estabelecimento": "CENTRO DE REMAN. DO SIST. PRISIONAL - GAMELEIRA",
- "prismadata__prison__percentual_estelionato_feminino": 0,
- "prismadata__prison__percentual_estelionato_masculino": 0.006622516556291391,
- "prismadata__prison__percentual_estelionato_total": 0.006622516556291391,
- "prismadata__prison__perimetro_m": 399.26833501976216,
- "prismadata__prison__ponto_dentro_presidio": false,
- "prismadata__prison__pop_feminino_total": 0,
- "prismadata__prison__pop_masculino_total": 1510,
- "prismadata__prison__tipo_estabelecimento": "PRESOS_PROVISORIOS",
- "prismadata__prison__total_terceirizacoes": 1,
- "prismadata__prison__uf": "MG"
}, - "2": {
- "prismadata__prison__ambito": "ESTADUAL",
- "prismadata__prison__area_m2": 8985.493765362538,
- "prismadata__prison__distancia_borda_m": 4167.4,
- "prismadata__prison__distancia_centroide_m": 4232.06,
- "prismadata__prison__indice_lotacao_feminino": 1.033734939759036,
- "prismadata__prison__indice_lotacao_masculino": 0,
- "prismadata__prison__indice_lotacao_total": 0.9673659673659674,
- "prismadata__prison__municipio": "Belo Horizonte",
- "prismadata__prison__nome_estabelecimento": "Complexo Penitenciário Feminino Estevão Pinto",
- "prismadata__prison__percentual_estelionato_feminino": 0.011655011655011656,
- "prismadata__prison__percentual_estelionato_masculino": 0,
- "prismadata__prison__percentual_estelionato_total": 0.011655011655011656,
- "prismadata__prison__perimetro_m": 444.5365921456703,
- "prismadata__prison__ponto_dentro_presidio": false,
- "prismadata__prison__pop_feminino_total": 429,
- "prismadata__prison__pop_masculino_total": 0,
- "prismadata__prison__tipo_estabelecimento": "REGIME_FECHADO",
- "prismadata__prison__total_terceirizacoes": 1,
- "prismadata__prison__uf": "MG"
}
}Endpoint para consultar a proximidade do ponto ao presídio mais próximo do sistema penitenciário brasileiro.
| lat required | number (Lat) ( -90 .. 90 ) Example: lat=-25.52568655357868 Latitude do ponto de consulta. |
| lng required | number (Lng) ( -180 .. 180 ) Example: lng=-54.59273323017718 Longitude do ponto de consulta. |
curl "https://api.prismadata.io/v1/location/prison?lat=-25.52568655357868&lng=-54.59273323017718" \ -H "X-Apikey: ak_xxxxxxxxxxxxxxxx"
{- "prismadata__prison__ambito": "ESTADUAL",
- "prismadata__prison__area_m2": 13732.882376760244,
- "prismadata__prison__distancia_borda_m": 1010.79,
- "prismadata__prison__distancia_centroide_m": 1076.73,
- "prismadata__prison__indice_lotacao_feminino": 0,
- "prismadata__prison__indice_lotacao_masculino": 2.0308641975308643,
- "prismadata__prison__indice_lotacao_total": 0.49240121580547114,
- "prismadata__prison__municipio": "Ponta Porã",
- "prismadata__prison__nome_estabelecimento": "Unidade Penal \"Ricardo Brandão\"",
- "prismadata__prison__percentual_estelionato_feminino": 0,
- "prismadata__prison__percentual_estelionato_masculino": 0.001519756838905775,
- "prismadata__prison__percentual_estelionato_total": 0.001519756838905775,
- "prismadata__prison__perimetro_m": 473.57341193471495,
- "prismadata__prison__ponto_dentro_presidio": false,
- "prismadata__prison__pop_feminino_total": 0,
- "prismadata__prison__pop_masculino_total": 658,
- "prismadata__prison__tipo_estabelecimento": "PRESOS_PROVISORIOS",
- "prismadata__prison__total_terceirizacoes": 5,
- "prismadata__prison__uf": "MS"
}Endpoints do API Gateway (KrakenD) que agregam múltiplas APIs de localização em uma única chamada. Permite consultar informações de favelas, renda, fronteiras, presídios e setores censitários simultaneamente.
O agregador é útil quando você precisa de múltiplas informações sobre uma mesma coordenada geográfica, reduzindo o número de requisições necessárias.
Endpoint que agrega múltiplas APIs de localização em uma única chamada.
Habilite os dados desejados através dos parâmetros booleanos:
slum=true: retorna informações de favelasinfosc=true: retorna informações do setor censitárioprison=true: retorna informações de presídiosborder=true: retorna informações de fronteiraspersonal_income_static=true: retorna renda estáticapersonal_income_pdf=true: retorna renda dinâmica (PDF)A resposta contém apenas os campos dos serviços habilitados.
| lat required | number (Lat) ( -90 .. 90 ) Example: lat=-19.932378368680315 Latitude do ponto de consulta. |
| lng required | number (Lng) ( -180 .. 180 ) Example: lng=-43.9351245162891 Longitude do ponto de consulta. |
| slum | boolean (Slum) Default: false Habilita retorno de informações de favelas (prismadata__slum__*). |
| infosc | boolean (InfoSC) Default: false Habilita retorno de informações do setor censitário (prismadata__infosc__*). |
| prison | boolean (Prison) Default: false Habilita retorno de informações de presídios (prismadata__prison__*). |
| border | boolean (Border) Default: false Habilita retorno de informações de fronteiras (prismadata__border__*). |
| personal_income_static | boolean (Personal Income Static) Default: false Habilita retorno de renda estática (prismadata__personal_income_static__*). |
| personal_income_pdf | boolean (Personal Income PDF) Default: false Habilita retorno de renda dinâmica (prismadata__personal_income_pdf__*). |
Date Income (string) or Date Income (null) (Date Income) Example: date_income=2025-01-25 Data para consulta de renda PDF (YYYY-MM-DD). Requer personal_income_pdf=true. | |
Gender (string) or Gender (null) (Gender) Example: gender=M Gênero para filtro de renda PDF (M ou F). Requer personal_income_pdf=true. | |
Age (number) or Age (null) (Age) Example: age=50 Idade para filtro de renda PDF (15-90). Requer personal_income_pdf=true. | |
Is Responsible (string) or Is Responsible (null) (Is Responsible) Indica se é responsável pelo domicílio. Requer personal_income_pdf=true. | |
Income Compared (number) or Income Compared (null) (Income Compared) Example: income_compared=10000 Renda a ser comparada com a renda da região. Requer personal_income_pdf=true. |
curl "https://api.prismadata.io/v1/location/aggregator?lat=-19.932378368680315&lng=-43.9351245162891&date_income=2025-01-25&gender=M&age=50&income_compared=10000" \ -H "X-Apikey: ak_xxxxxxxxxxxxxxxx"
{- "prismadata__slum__favela_distancia_m": 132.96,
- "prismadata__slum__favela_municipio": "Belo Horizonte",
- "prismadata__infosc__municipio": "Belo Horizonte",
- "prismadata__infosc__situacao": "Urbana",
- "prismadata__personal_income_static__faixa_sm_min": 5,
- "prismadata__personal_income_static__faixa_sm_max": 10,
- "prismadata__personal_income_static__percentil_br": 98
}Endpoint batch que agrega múltiplas APIs de localização para vários pontos em uma única chamada.
Envie um JSON com pontos no formato {"id": [lat, lng]} e habilite os
dados desejados via query parameters:
slum=true: retorna informações de favelasinfosc=true: retorna informações do setor censitárioprison=true: retorna informações de presídiosborder=true: retorna informações de fronteiraspersonal_income_static=true: retorna renda estáticapersonal_income_pdf=true: retorna renda dinâmica (PDF)Quando personal_income_pdf=true, os pontos podem opcionalmente usar o
formato de dicionário com parâmetros demográficos individuais:
{"id": {"lat": -23.55, "lng": -46.63, "gender": "M", "age": 35}}.
Pontos no formato [lat, lng] também são aceitos (sem filtros demográficos).
Os demais serviços normalizam automaticamente ambos os formatos para coordenadas.
A resposta contém um objeto com os mesmos IDs do request, cada um com os
campos prefixados por prismadata__<categoria>__.
| slum | boolean Default: false Habilita retorno de informações de favelas (prismadata__slum__*). |
| infosc | boolean Default: false Habilita retorno de informações do setor censitário (prismadata__infosc__*). |
| prison | boolean Default: false Habilita retorno de informações de presídios (prismadata__prison__*). |
| border | boolean Default: false Habilita retorno de informações de fronteiras (prismadata__border__*). |
| personal_income_static | boolean Default: false Habilita retorno de renda estática (prismadata__personal_income_static__*). |
| personal_income_pdf | boolean Default: false Habilita retorno de renda dinâmica PDF (prismadata__personal_income_pdf__*). Quando habilitado, os pontos podem usar formato de dicionário com parâmetros demográficos individuais (lat, lng, date_income, gender, age, is_responsible, income_compared). |
| property name* additional property | any |
{- "ponto_1": [
- -19.932378,
- -43.935124
], - "ponto_2": [
- -22.906847,
- -43.172897
]
}{- "ponto_1": {
- "prismadata__slum__favela_distancia_m": 132.96,
- "prismadata__slum__favela_municipio": "Belo Horizonte",
- "prismadata__infosc__municipio": "Belo Horizonte",
- "prismadata__infosc__situacao": "Urbana",
- "prismadata__personal_income_static__faixa_sm_min": 5,
- "prismadata__personal_income_static__faixa_sm_max": 10,
- "prismadata__personal_income_static__percentil_br": 98
}, - "ponto_2": {
- "prismadata__slum__favela_distancia_m": 1042.33,
- "prismadata__slum__favela_municipio": "Rio de Janeiro",
- "prismadata__infosc__municipio": "Rio de Janeiro",
- "prismadata__infosc__situacao": "Urbana",
- "prismadata__personal_income_pdf__mean": 3500,
- "prismadata__personal_income_pdf__median": 2800
}
}Endpoint que primeiro geocodifica um endereço e depois agrega múltiplas APIs de localização usando as coordenadas obtidas.
Útil quando você tem um endereço (não coordenadas) e precisa de múltiplas informações sobre essa localização.
Habilite os dados desejados através dos parâmetros booleanos (igual ao /aggregator).
Endereco Completo (string) or Endereco Completo (null) (Endereco Completo) Endereço completo a ser geocodificado. | |
(Cep (Cep (string) or Cep (integer))) or Cep (null) (Cep) Example: cep=30130-165 CEP do endereço. | |
(Numero (Numero (string) or Numero (integer))) or Numero (null) (Numero) Número do endereço. | |
Tipo Logradouro (string) or Tipo Logradouro (null) (Tipo Logradouro) Tipo do logradouro (ex: Rua, Avenida). | |
Titulo Logradouro (string) or Titulo Logradouro (null) (Titulo Logradouro) Título do logradouro (ex: Coronel, Professor). | |
Logradouro (string) or Logradouro (null) (Logradouro) Nome do logradouro. | |
Localidade (string) or Localidade (null) (Localidade) Localidade (bairro) do endereço. | |
Municipio (string) or Municipio (null) (Municipio) Município do endereço. | |
Estado (string) or Estado (null) (Estado) Estado do endereço. | |
| slum | boolean Default: false Habilita retorno de informações de favelas. |
| infosc | boolean Default: false Habilita retorno de informações do setor censitário. |
| prison | boolean Default: false Habilita retorno de informações de presídios. |
| border | boolean Default: false Habilita retorno de informações de fronteiras. |
curl "https://api.prismadata.io/v1/location/geocoder/aggregator?cep=30130-165" \ -H "X-Apikey: ak_xxxxxxxxxxxxxxxx"
{- "prismadata__geocoder__latitude": -19.93292236328125,
- "prismadata__geocoder__longitude": -43.935611724853516,
- "prismadata__geocoder__municipio": "BELO HORIZONTE",
- "prismadata__slum__favela_distancia_m": 132.96,
- "prismadata__infosc__municipio": "Belo Horizonte"
}Endpoint batch que primeiro geocodifica endereços e depois agrega múltiplas APIs de localização usando as coordenadas obtidas.
Combina o /geocoder/aggregator com processamento em lote, permitindo enviar
até 1024 endereços de uma vez.
Envie um JSON com endereços no formato {"id": {"endereco_completo": "..."}} e
habilite os dados desejados via query parameters:
slum=true: retorna informações de favelasinfosc=true: retorna informações do setor censitárioprison=true: retorna informações de presídiosborder=true: retorna informações de fronteiraspersonal_income_static=true: retorna renda estáticapersonal_income_pdf=true: retorna renda dinâmica (PDF)A resposta contém um objeto com os mesmos IDs do request, cada um com campos
prismadata__geocoder__* (resultado da geocodificação) + campos das APIs
habilitadas prefixados por prismadata__<categoria>__.
| slum | boolean Default: false Habilita retorno de informações de favelas (prismadata__slum__*). |
| infosc | boolean Default: false Habilita retorno de informações do setor censitário (prismadata__infosc__*). |
| prison | boolean Default: false Habilita retorno de informações de presídios (prismadata__prison__*). |
| border | boolean Default: false Habilita retorno de informações de fronteiras (prismadata__border__*). |
| personal_income_static | boolean Default: false Habilita retorno de renda estática (prismadata__personal_income_static__*). |
| personal_income_pdf | boolean Default: false Habilita retorno de renda dinâmica PDF (prismadata__personal_income_pdf__*). |
additional property | object |
{- "ponto_1": {
- "endereco_completo": "Av Paulista 1000, Sao Paulo, SP"
}, - "ponto_2": {
- "cep": "30130-165",
- "numero": "100",
- "logradouro": "Rua da Bahia"
}
}{- "ponto_1": {
- "prismadata__geocoder__latitude": -23.56,
- "prismadata__geocoder__longitude": -46.65,
- "prismadata__geocoder__municipio": "SAO PAULO",
- "prismadata__slum__favela_distancia_m": 132.96
}, - "ponto_2": {
- "prismadata__geocoder__latitude": -19.93,
- "prismadata__geocoder__longitude": -43.93,
- "prismadata__geocoder__municipio": "BELO HORIZONTE",
- "prismadata__slum__favela_distancia_m": 500.12
}
}Calcula rota entre pontos.
| points required | Array of strings (Points) >= 2 items Pontos no formato 'lat,lon' (minimo 2) |
| profile | string (Profile) Default: "car" Enum: "car" "foot" "bike" Perfil de roteamento |
curl "https://api.prismadata.io/v1/routing/route?points=valor" \ -H "X-Apikey: ak_xxxxxxxxxxxxxxxx"
{- "prismadata__routing_route__geometria": "LINESTRING (-43.9378 -19.9191, -43.94 -19.93, -43.9477 -19.9498)",
- "prismadata__routing_route__distancia_m": 1500.5,
- "prismadata__routing_route__subida_m": 50,
- "prismadata__routing_route__descida_m": 30,
- "prismadata__routing_route__tempo_s": 180
}Calcula multiplas rotas em batch.
required | Array of objects (Items) [ 1 .. 16 ] items Lista de rotas a calcular |
| profile | string (Profile) Default: "car" Enum: "car" "foot" "bike" Perfil de roteamento |
{- "items": [
- {
- "points": [
- [
- 0
], - [
- 0
]
]
}
], - "profile": "car"
}{- "TOTAL": 2,
- "SUCESSOS": 2,
- "FALHAS": 0,
- "RESULTADOS": [
- {
- "prismadata__routing_route__sucesso": true,
- "prismadata__routing_route__dados": {
- "prismadata__routing_route__geometria": "LINESTRING (-43.9378 -19.9191, -43.9477 -19.9498)",
- "prismadata__routing_route__distancia_m": 1500.5,
- "prismadata__routing_route__subida_m": 50,
- "prismadata__routing_route__descida_m": 30,
- "prismadata__routing_route__tempo_s": 180
}
}, - {
- "prismadata__routing_route__sucesso": true,
- "prismadata__routing_route__dados": {
- "prismadata__routing_route__geometria": "LINESTRING (-43.95 -19.92, -43.96 -19.95)",
- "prismadata__routing_route__distancia_m": 2000,
- "prismadata__routing_route__subida_m": 40,
- "prismadata__routing_route__descida_m": 25,
- "prismadata__routing_route__tempo_s": 240
}
}
]
}Calcula isocrona a partir de um ponto.
| lat required | number (Lat) Latitude do ponto central |
| lng required | number (Lng) Longitude do ponto central |
| time_limit | integer (Time Limit) [ 60 .. 7200 ] Default: 600 Limite de tempo em segundos |
| profile | string (Profile) Default: "car" Enum: "car" "foot" "bike" Perfil de roteamento |
| sentido | string (Sentido) Default: "SAINDO" Enum: "INDO" "SAINDO" SAINDO (do ponto) ou INDO (para o ponto) |
curl "https://api.prismadata.io/v1/routing/isochrone?lat=-25.5&lng=-25.5" \ -H "X-Apikey: ak_xxxxxxxxxxxxxxxx"
{- "prismadata__routing_isochrone__geometria": "POLYGON ((-43.9451043 -19.9496498, -43.94461115 -19.9496419, -43.94442885 -19.9491917, -43.9446328 -19.94891865, -43.945189150000004 -19.948811399999997, -43.945164500000004 -19.94856045, -43.94541065 -19.94774005, -43.946264299999996 -19.9471244, -43.946252900000005 -19.9469946, -43.947168649999995 -19.946969350000003, -43.94784435 -19.946944950000002, -43.948170399999995 -19.94692055, -43.9484147 -19.94660355, -43.94901205 -19.946596, -43.94911175 -19.94653495, -43.9491483 -19.94645745, -43.949202 -19.94647325, -43.9495532 -19.94705915, -43.9494535 -19.9471202, -43.949256649999995 -19.9474569, -43.94910625 -19.9476669, -43.949082950000005 -19.94770545, -43.9488786 -19.94805365, -43.9486399 -19.9484125, -43.9490493 -19.9490143, -43.9492774 -19.949322950000003, -43.9491091 -19.949637250000002, -43.94933965 -19.949893, -43.94933755 -19.95043145, -43.9491304 -19.95082245, -43.9490105 -19.951194450000003, -43.94945225 -19.9518588, -43.9491771 -19.9522937, -43.94897625 -19.9526379, -43.94911385 -19.9527755, -43.9491419 -19.95280355, -43.94933265 -19.9529459, -43.94894265 -19.95314595, -43.94890655 -19.9531764, -43.9488425 -19.953222150000002, -43.948709699999995 -19.953293000000002, -43.948685049999995 -19.95322065, -43.9484217 -19.953190900000003, -43.948363400000005 -19.95307105, -43.9482972 -19.95292135, -43.948255450000005 -19.9528635, -43.9480538 -19.9525668, -43.94752 -19.95277285, -43.9466847 -19.9522477, -43.94632905 -19.9518918, -43.945943150000005 -19.9518414, -43.945677849999996 -19.9518755, -43.945598399999994 -19.95167915, -43.94566365 -19.9513085, -43.9456223 -19.95131655, -43.94577495 -19.9510953, -43.945816300000004 -19.95108725, -43.94555630000001 -19.9507194, -43.94548195 -19.95070785, -43.94540845 -19.950728599999998, -43.9449527 -19.9508106, -43.9448027 -19.9506266, -43.944881800000005 -19.950203549999998, -43.94537495 -19.950211449999998, -43.9457438 -19.9499237, -43.94566065 -19.949542549999997, -43.9451043 -19.9496498))",
- "prismadata__routing_isochrone__limite_tempo_s": 300,
- "prismadata__routing_isochrone__perfil": "foot",
- "prismadata__routing_isochrone__sentido": "SAINDO",
- "prismadata__routing_isochrone__area_m2": 248412
}Calcula multiplas isocronas em batch.
required | Array of objects (Items) [ 1 .. 16 ] items Lista de isocronas a calcular |
| profile | string (Profile) Default: "car" Enum: "car" "foot" "bike" Perfil de roteamento |
| sentido | string (Sentido) Default: "SAINDO" Enum: "INDO" "SAINDO" SAINDO (do ponto) ou INDO (para o ponto) |
{- "items": [
- {
- "lat": 0,
- "lng": 0,
- "time_limit": 600
}
], - "profile": "car",
- "sentido": "INDO"
}{- "TOTAL": 2,
- "SUCESSOS": 2,
- "FALHAS": 0,
- "RESULTADOS": [
- {
- "prismadata__routing_isochrone__sucesso": true,
- "prismadata__routing_isochrone__dados": {
- "prismadata__routing_isochrone__geometria": "POLYGON ((-43.9378 -19.9191, -43.95 -19.9191, -43.95 -19.94, -43.9378 -19.94, -43.9378 -19.9191))",
- "prismadata__routing_isochrone__limite_tempo_s": 600,
- "prismadata__routing_isochrone__perfil": "car",
- "prismadata__routing_isochrone__sentido": "SAINDO",
- "prismadata__routing_isochrone__area_m2": 125000
}
}, - {
- "prismadata__routing_isochrone__sucesso": true,
- "prismadata__routing_isochrone__dados": {
- "prismadata__routing_isochrone__geometria": "POLYGON ((-43.96 -19.95, -43.98 -19.95, -43.98 -19.97, -43.96 -19.97, -43.96 -19.95))",
- "prismadata__routing_isochrone__limite_tempo_s": 300,
- "prismadata__routing_isochrone__perfil": "car",
- "prismadata__routing_isochrone__sentido": "SAINDO",
- "prismadata__routing_isochrone__area_m2": 80000
}
}
]
}A API de Oficios Requisitorios permite consultar informacoes sobre precatorios e RPVs (Requisicoes de Pequeno Valor) vinculados a credores identificados por CPF ou CNPJ.
A consulta pode ser feita por identificador do credor (CPF/CNPJ) ou por nome do credor (busca por similaridade utilizando trigramas).
Dois endpoints estao disponiveis:
Retorna um resumo consolidado dos creditos (precatorios e RPVs) de determinado credor, incluindo quantidades e valores estimados atualizados.
Id Credor (string) or Id Credor (null) (Id Credor) CPF ou CNPJ do credor que se deseja consultar | |
Nome Credor (string) or Nome Credor (null) (Nome Credor) Nome do credor que se deseja consultar os creditos |
curl "https://api.prismadata.io/v1/credit/precatorio_rpv/consulta_credito" \ -H "X-Apikey: ak_xxxxxxxxxxxxxxxx"
{- "prismadata__precatorio_rpv__id_credor": 24880102865,
- "prismadata__precatorio_rpv__nome_credor": "Geraldo Soares de Oliveira Junior",
- "prismadata__precatorio_rpv__tipo_id_credor": "CPF",
- "prismadata__precatorio_rpv__quantidade_creditos_precatorio": 4,
- "prismadata__precatorio_rpv__valor_estimado_creditos_precatorio": 177865.15,
- "prismadata__precatorio_rpv__quantidade_creditos_rpv": 0,
- "prismadata__precatorio_rpv__valor_estimado_creditos_rpv": 0
}Retorna a lista completa de oficios requisitorios com informacoes detalhadas de cada credito, incluindo numeros de processo, tribunal, valores e datas de expedicao.
Id Credor (string) or Id Credor (null) (Id Credor) CPF ou CNPJ do credor que se deseja consultar | |
Nome Credor (string) or Nome Credor (null) (Nome Credor) Nome do credor que se deseja consultar os creditos |
curl "https://api.prismadata.io/v1/credit/precatorio_rpv/detalha_credito" \ -H "X-Apikey: ak_xxxxxxxxxxxxxxxx"
{- "items": [
- {
- "prismadata__detalha_precatorio_rpv__id_credor": "248.801.028-65",
- "prismadata__detalha_precatorio_rpv__tipo_id_credor": "CPF",
- "prismadata__detalha_precatorio_rpv__especie_do_credito": "precatorio",
- "prismadata__detalha_precatorio_rpv__numero_precatorio_rpv": "0232618-03.2022.8.26.0500",
- "prismadata__detalha_precatorio_rpv__numero_processo_execucao": "0003793-05.2021.8.26.0068",
- "prismadata__detalha_precatorio_rpv__numero_processo_conhecimento": "1502692-58.2018.8.26.0068",
- "prismadata__detalha_precatorio_rpv__nome_credor": "Geraldo Soares de Oliveira Junior",
- "prismadata__detalha_precatorio_rpv__tribunal": "TJSP",
- "prismadata__detalha_precatorio_rpv__valor_de_face": 41558.18,
- "prismadata__detalha_precatorio_rpv__valor_estimado_atualizado": 56340.69,
- "prismadata__detalha_precatorio_rpv__percentual_credito_cedido": 0,
- "prismadata__detalha_precatorio_rpv__link_oficio": "",
- "prismadata__detalha_precatorio_rpv__data_expedicao_oficio_credito": "02/08/2022"
}, - {
- "prismadata__detalha_precatorio_rpv__id_credor": "248.801.028-65",
- "prismadata__detalha_precatorio_rpv__tipo_id_credor": "CPF",
- "prismadata__detalha_precatorio_rpv__especie_do_credito": "precatorio",
- "prismadata__detalha_precatorio_rpv__numero_precatorio_rpv": "0252135-91.2022.8.26.0500",
- "prismadata__detalha_precatorio_rpv__numero_processo_execucao": "0004773-46.2019.8.26.0318",
- "prismadata__detalha_precatorio_rpv__numero_processo_conhecimento": "1500024-77.2017.8.26.0318",
- "prismadata__detalha_precatorio_rpv__nome_credor": "Geraldo Soares de Oliveira Junior",
- "prismadata__detalha_precatorio_rpv__tribunal": "TJSP",
- "prismadata__detalha_precatorio_rpv__valor_de_face": 40047.73,
- "prismadata__detalha_precatorio_rpv__valor_estimado_atualizado": 60412.64,
- "prismadata__detalha_precatorio_rpv__percentual_credito_cedido": 0,
- "prismadata__detalha_precatorio_rpv__link_oficio": "",
- "prismadata__detalha_precatorio_rpv__data_expedicao_oficio_credito": "19/08/2022"
}
]
}