GraphQL · ¿Quiénes se parecen a mi cliente?
Prospección
Listas de empresas por tamaño, rubro, régimen y comuna de su casa matriz, sin escribir un nombre, y cuántas son antes de pedirlas. Los ejemplos de abajo son la petición y la respuesta real de cada operación, no una aproximación.
Lo que descuenta cada operación es lo mismo por REST, SOAP, GraphQL y MCP —pagas por el dato, no por el protocolo—; la tabla completa está en Empezar.
POST /graphql
Empresas por lo que son
prospeccion descuenta como /v1/prospeccion: una consulta por empresa que tu cuenta no haya recibido en este ciclo, y la página vacía una. Va sola y una sola vez en su query; nuevas dice cuántas descontaron y consultas_cobradas, lo que costó.
Una por empresa nueva en el ciclo; la página vacía, una.
{
prospeccion(
categoria: ["grande"], rubro: ["B"]
comuna: "13101", trabajadores_minimo: 10000
) {
empresas {
rut razon_social trabajadores
tramo_ventas { codigo categoria }
casa_matriz { comuna { nombre } }
}
nuevas
pagina_siguiente
}
}
# consulta.graphql = el bloque de arriba (jq lo empaqueta)
curl -s -i https://api.datario.cl/graphql \
-H "Authorization: Bearer dtr_TU_KEY" \
-H "Content-Type: application/json" \
--data "{\"query\": $(jq -Rs . consulta.graphql)}"
import requests
query = open("consulta.graphql").read()
r = requests.post(
"https://api.datario.cl/graphql",
json={"query": query},
headers={"Authorization": "Bearer dtr_TU_KEY"},
timeout=10,
)
cuerpo = r.json()
for e in cuerpo.get("errors", []):
print(e["extensions"]["code"], e["message"])
print(cuerpo.get("data"))
consumo = cuerpo["extensions"]["consumo"]
print(consumo["consultas_cobradas"], "cobradas")
import { readFileSync } from "node:fs";
const query = readFileSync("consulta.graphql", "utf8");
const r = await fetch("https://api.datario.cl/graphql", {
method: "POST",
headers: {
"Authorization": "Bearer dtr_TU_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({ query }),
});
const cuerpo = await r.json();
for (const e of cuerpo.errors ?? []) {
console.error(e.extensions.code, e.message);
}
console.log(cuerpo.data);
console.log(cuerpo.extensions.consumo);
La respuesta, con su consumo
{
"data": {
"prospeccion": {
"empresas": [
{
"rut": "61704000-K",
"razon_social": "CORP NACIONAL DEL COBRE DE CHILE",
"trabajadores": 16946,
"tramo_ventas": {
"codigo": 13,
"categoria": "Gran empresa"
},
"casa_matriz": {
"comuna": {
"nombre": "Santiago"
}
}
}
],
"nuevas": 1,
"pagina_siguiente": null
}
},
"extensions": {
"consumo": {
"consultas_cobradas": 1,
"ruts_resueltos": 0,
"paginas_busqueda": 0,
"plan_restante": 99999,
"saldo_restante": 0,
"por_operacion": {
"prospeccion": 1
}
}
}
}
POST /graphql
Cuántas empresas calzan
prospeccion_conteo no descuenta y sirve en cualquier plan, como /v1/prospeccion/conteo: con los mismos filtros dice cuántas empresas calzan y cómo se reparten por tamaño, región y rubro, sin listarlas.
Nunca descuenta.
{
prospeccion_conteo(
categoria: ["grande"], rubro: ["B"]
comuna: "13101", trabajadores_minimo: 10000
) {
total
por_region { nombre empresas }
}
}
# consulta.graphql = el bloque de arriba (jq lo empaqueta)
curl -s -i https://api.datario.cl/graphql \
-H "Authorization: Bearer dtr_TU_KEY" \
-H "Content-Type: application/json" \
--data "{\"query\": $(jq -Rs . consulta.graphql)}"
import requests
query = open("consulta.graphql").read()
r = requests.post(
"https://api.datario.cl/graphql",
json={"query": query},
headers={"Authorization": "Bearer dtr_TU_KEY"},
timeout=10,
)
cuerpo = r.json()
for e in cuerpo.get("errors", []):
print(e["extensions"]["code"], e["message"])
print(cuerpo.get("data"))
consumo = cuerpo["extensions"]["consumo"]
print(consumo["consultas_cobradas"], "cobradas")
import { readFileSync } from "node:fs";
const query = readFileSync("consulta.graphql", "utf8");
const r = await fetch("https://api.datario.cl/graphql", {
method: "POST",
headers: {
"Authorization": "Bearer dtr_TU_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({ query }),
});
const cuerpo = await r.json();
for (const e of cuerpo.errors ?? []) {
console.error(e.extensions.code, e.message);
}
console.log(cuerpo.data);
console.log(cuerpo.extensions.consumo);
La respuesta, con su consumo
{
"data": {
"prospeccion_conteo": {
"total": 1,
"por_region": [
{
"nombre": "Región Metropolitana de Santiago",
"empresas": 1
}
]
}
},
"extensions": {
"consumo": {
"consultas_cobradas": 0,
"ruts_resueltos": 0,
"paginas_busqueda": 0,
"plan_restante": null,
"saldo_restante": null,
"por_operacion": {}
}
}
}
Probar en la consola Este producto por REST Este producto por SOAP Este producto por MCP Qué es Prospección