Documentación Ver secciones

Nivel gratuito (DAT-FREE)

La versión del API que responde preguntas sobre la data sin entregar la data: por entidad, si existe, si está vigente, un puñado de booleanos y conteos en rangos. Nunca un nombre de tercero, un monto, una fecha, un documento.

Llave gratuita en dos minutos. Correo y contraseña; sin tarjeta. La llave dura 90 días y cualquier compra la vuelve permanente.

Crear mi llave gratuita

Para qué sirve

Con una llave gratuita obtienes el id de Panadata de una entidad y sabes qué hay detrás; los registros cuestan créditos. Alcanza para validar una regla de compuerta sobre un RUC o una cédula, pre-chequear un proveedor, priorizar una lista de 300 filas por señales o probar el JSON mientras construyes. No alcanza, a propósito, para operar una cartera.

Cuatro reglas: respuestas, no registros (todo campo es un booleano, un rango o un año); cada campo apunta a un SKU pagado (DAT-FREE es el menú, el precio está en Precios); mismo meter, mismo id en todos los niveles; y lo que hace el MCP lo hace el API, con el mismo nivel de acceso y la misma respuesta.

Los cuatro niveles

Nivel Quién Qué devuelve Límite
0. Sin llave cualquiera: cualquier sesión de Claude, Cursor o ChatGPT vía el MCP público; cualquier request HTTP a api.panadata.net sin cabecera resolve con ids enmascarados (una fila); existe, vigente, suspendida, tipo, año y el menú (codigos_con_datos) presupuesto global de 1,000 consultas/día para todo el nivel (reinicia a las 00:00 de Panamá); una entidad por llamada, sin lote
1. Llave gratuita email verificado (teléfono opcional) la ficha DAT-FREE completa: booleanos y rangos 500/mes y 30/día (1,000/mes y 100/día con dominio corporativo), lote 10; los contadores reinician a las 00:00 UTC
2. Sandbox US$95 quien paga registros completos, 95 créditos, llave permanente por saldo
3. Packs Piloto / Barrido / Programa registros a volumen, lote 100, estimador por pack

El nivel 0 da el menú pero no los booleanos: un agente sin llave aprende «Panadata tiene datos judiciales, inmobiliarios y de comercio sobre esta sociedad, constituida en 1914 y vigente». Los booleanos detrás cuestan un email confirmado. Los registros cuestan créditos.

La ficha DAT-FREE

GET /v5/entities/{id}?include=DAT-FREE cuesta 0 créditos. Ejemplo para una organización, con llave gratuita (respuesta real de producción):

{
  "id": "pa_own_4629361", "country": "panama",
  "nombre": "CERVECERÍA NACIONAL HOLDING, S.A.",
  "nivel": "DAT-FREE",
  "existe": true, "vigente": true, "suspendida": false,
  "tipo": "organizacion", "anio_constitucion": 1914,
  "directores": "10+",
  "tiene_judicial": true, "moroso_css": false, "contrata_con_estado": false,
  "en_planilla_estatal": false,
  "inmuebles": "3-9", "comercio_exterior": true, "noticias": true,
  "codigos_con_datos": ["DAT-ASSET","DAT-BIZ","DAT-BUSINESS","DAT-DOC","DAT-NEWS","DAT-REALESTATE","DAT-REGISTRY","DAT-RISK","DAT-TRADE"],
  "actualizado": "2026-09",
  "siguiente_paso": {"para_ver_los_registros": "https://platform.panadata.net/docs/precios", "tokens_dat_core": 0.66}
}

Sin llave (nivel 0) la ficha se reduce a id, country, nombre, nivel, existe, vigente, suspendida, tipo, anio_constitucion, codigos_con_datos, actualizado y siguiente_paso; los booleanos y rangos aparecen con llave gratuita. Para una persona natural la ficha es la misma menos directores, contrata_con_estado y comercio_exterior (y con vigente, suspendida y anio_constitucion en null, que son atributos de sociedad), con tiene_judicial, moroso_css, en_planilla_estatal, inmuebles y noticias como campos principales. Un booleano o un rango en null significa «no computado», no «no tiene».

Hoy la ficha no trae score ni pep_local: entran cuando exista el Operating Score calibrado 0–100 y la bandera PEP a nivel de entidad. Los booleanos y rangos se calculan sobre los mismos contadores que DAT-CORE ya carga; codigos_con_datos es la lista de códigos del catálogo que devolverían registros para esa entidad (nunca incluye DAT-ALL).

Campo Forma SKU pagado detrás
existe, vigente, suspendida booleanos DAT-CORE
tipo persona / organizacion / fundacion DAT-CORE
anio_constitucion año (solo el año) DAT-CORE
directores rango 0 / 1-2 / 3-9 / 10+ DAT-CORE (nombres y cargos)
tiene_judicial booleano DAT-RISK (expedientes judiciales; o su átomo cuando exista)
moroso_css booleano DAT-RISK (morosos CSS; o su átomo cuando exista)
contrata_con_estado booleano DAT-PROC (licitaciones) / DAT-CGR (Contraloría)
en_planilla_estatal booleano DAT-PAYROLL
inmuebles rango 0 / 1-2 / 3-9 / 10+ DAT-REALESTATE
comercio_exterior booleano DAT-TRADE
noticias booleano DAT-NEWS
codigos_con_datos lista de códigos DAT que devolverían datos cada uno
actualizado mes/año del índice (YYYY-MM) — (el dato en vivo se pide con POST /v5/entities/{id}/update)

Los códigos de la tabla son los del catálogo vigente. Los créditos de cada SKU están en Precios y en vivo en GET https://api.panadata.net/v5/catalog (gratis).

Límites

Límite Valor Por qué
Nivel 0, por llamada una entidad por llamada: resolve de una fila y una ficha por request; el lote, las búsquedas y los sub-recursos exigen llave (403 public_tier_locked) suficiente para que un agente responda una pregunta; insuficiente para una lista
Nivel 0, global 1,000 consultas/día para todo el nivel (HTTP directo + MCP público); se reinicia a las 00:00 America/Panama (UTC−5); 429 public_budget_exhausted con reset_at y enlace a la llave gratuita al agotarse el techo lo elegimos nosotros; conservador hasta ver tráfico real
Entidades por mes (nivel 1) 500 por cuenta verificada (cada fila de resolve, cada ficha DAT-FREE o CHK-BIN y cada id de /entities/batch cuentan juntos; dry_run no cuenta); se reinicia el día 1 a las 00:00 UTC una muestra de 300 filas o 10 al día en micro-producción caben; una cartera no
Con dominio corporativo verificado 1,000 premia al comprador probable sin regalar volumen
Por día (nivel 1) 30 (100 con dominio corporativo); se reinicia a las 00:00 UTC; el 429 free_tier_limit llega solo si la llamada no cabe (used + filas > limit) y trae used, remaining, requested, reset_at (ISO 8601) y Retry-After que los 500 no se gasten en una tarde sobre una lista
Tasa 1 request/segundo con ráfaga de 5 (plan de uso del API Gateway; 429 sin cuerpo JSON) una muestra de 300 tarda cinco minutos; molesto, pero gratis
Lote (resolve/batch) 10 filas sin with_presence (400 free_tier_batch_rows por encima) el batch grande es para packs
Vigencia de la llave 90 días sin compra (401 key_expired al vencer); cualquier compra (Sandbox US$95 en adelante) la vuelve permanente evita llaves zombis y cuentas fábrica
Verificación email confirmado, sin dominios de correo temporal; teléfono opcional, una cuenta gratuita por teléfono frena el sharding de cuentas
Estimador (resolve/batch con with_presence: true) solo agregados (summary + summary.presence, sin results[]); 5,000 filas/mes gratis, hasta 100 filas por llamada; no cobra ni cuenta contra los 30/día y 500/mes; más, por Ventas (402 estimator_rows_exhausted) no devuelve dato por entidad; es la herramienta para cotizar un barrido: cuántas filas resuelven y qué códigos tienen datos

Estimador. Con llave gratuita POST /v5/resolve/batch con with_presence: true devuelve solo agregados: {country, count, estimator: true, summary{rows, resolved_exact, ambiguous, unresolved, invalid, homonyms_p50/p90/max, presence{DAT-…: n}}, note}, sin results[], sin ids ni candidatos. Hasta 100 filas por llamada; las filas válidas descuentan de la cuota del estimador (5,000/mes, 402 estimator_rows_exhausted al agotarse), nunca de los 30/día ni de los 500/mes. Sirve para cotizar un barrido: cuántas filas resuelven y qué códigos tienen datos. La resolución fila por fila es el resolve/batch pagado, o el gratuito sin with_presence (10 filas, dentro del cupo). Con llave pagada la misma llamada devuelve results[] por fila más summary.presence.

Cabeceras y cupo. Toda respuesta del nivel 1 (2xx y 429) trae X-Panadata-Tier: free, X-Panadata-Free-Remaining-Today y X-Panadata-Free-Remaining-Month (el estimador suma X-Panadata-Free-Estimator-Rows-Remaining). El 429 free_tier_limit llega solo cuando used + filas > limit y dice used, remaining y requested (un lote de 7 sí pasa con 23/30) junto con reset_at y una cabecera Retry-After en segundos. Un identificador con formato irreconocible sale como outcome: invalid en el lote (no cuenta ni cobra) y como 400 invalid_identifier en POST /v5/resolve, que además acepta top (1..10).

Zonas horarias. Los contadores del nivel 1 (30 o 100/día, 500 o 1,000/mes, estimador) se cortan por día y mes UTC; el reset_at de los 429 es la próxima medianoche o el próximo día 1 en UTC. El presupuesto global del nivel 0 se corta a medianoche de Panamá (America/Panama, UTC−5, sin horario de verano). Son dos calendarios distintos: a las 03:00Z del día 22 el nivel 1 ya está en su día 22 y el nivel 0 sigue en su día 21.

dry_run=1 es gratis en los tres niveles. Sin llave, con llave gratuita o con saldo, cualquier ruta cobrable con ?dry_run=1 devuelve {dry_run, would_charge, product_codes, credits} para cualquier código pedido (también los pagados), sin cobrar y sin consumir contadores ni presupuesto: una llave gratuita puede cotizar ?include=DAT-ALL&dry_run=1 antes de cargar créditos. El candado free_tier_code_locked aplica solo a la llamada real. En el detalle, ?inline_limit=1..100 (default 10) acota las listas de cada sección para cualquier llave; DAT-FREE no lleva listas, así que no le afecta.

El dry_run de una llave gratuita cotiza en entidades, no en créditos. Esa llave nunca paga, así que su cotización trae would_charge: "0" y credits: 0, más un bloque free_tier con lo que la llamada real le haría al cupo. Leer los contadores no los incrementa: cotizar nunca cuenta. Las cifras de primer nivel son las del período del presupuesto y month trae las del mes:

  • budget: daily (el cupo de 30/día y 500/mes, o 100 y 1,000 con dominio corporativo) o estimator (resolve/batch con with_presence, que descuenta filas del estimador, 5,000/mes, y no toca el cupo diario).
  • counts_as: cuántas entidades o filas contaría la llamada real (las filas inválidas cuentan 0). period, used, limit y remaining dan el estado del período.
  • would_exceed: true cuando el día o el mes no alcanzan, exactamente cuando la llamada real recibiría el 429. En ese caso llegan también exceeded_period, would_status (429, o 402 para el estimador), code y reset_at.
  • locked: true con locked_codes: el código pedido está fuera del nivel gratuito. La cotización conserva el precio en créditos (lo que costaría con saldo) y la llamada real sería 403 free_tier_code_locked, sin contar nada.
  • Si los contadores no se pueden leer, used, remaining y would_exceed vienen en null; la respuesta sigue siendo 200. El dry_run también trae las cabeceras X-Panadata-Free-Remaining-Today y X-Panadata-Free-Remaining-Month.

Ejemplo ilustrativo: un POST /v5/resolve/batch?dry_run=1 de 8 filas con 23 de 30 entidades usadas hoy.

{"dry_run": true, "would_charge": "0", "credits": 0, "product_codes": ["DAT-RESOLVE"],
 "free_tier": {"budget": "daily", "counts_as": 8, "period": "day", "used": 23, "limit": 30, "remaining": 7,
   "month": {"used": 141, "limit": 500, "remaining": 359},
   "would_exceed": true, "exceeded_period": "day", "would_status": 429, "code": "free_tier_limit",
   "reset_at": "2026-09-24T00:00:00+00:00", "upgrade_url": "https://platform.panadata.net/facturacion"}}

Cuando se agota: 429 con code: free_tier_limit (nivel 1: period, limit, used, remaining, requested + Retry-After) o code: public_budget_exhausted (nivel 0), ambos con reset_at y upgrade_url (con llave, la página de compra https://platform.panadata.net/facturacion; sin llave, esta misma página, https://platform.panadata.net/docs/dat-free); cuando se pide un código fuera del nivel: 403 con code: free_tier_code_locked, locked_codes y free_tier_codes; una llave vencida: 401 con code: key_expired. El MCP lee esos campos y muestra el paso siguiente en vez de un error. Los cuerpos completos están en la guía de Errores.

Sin llave: el mismo request por API y por MCP

Las dos operaciones del nivel 0 responden en https://api.panadata.net sin cabecera de autenticación (platform.panadata.net es este portal, no el API). Cada tool del MCP tiene su ruta HTTP y devuelve lo mismo; si un día una tool solo existe en el MCP, es un bug. Para conectar un agente sin llave:

claude mcp add --transport http panadata https://mcp.panadata.net/mcp

1. Resolver una entidad

API — POST /v5/resolve

curl -X POST 'https://api.panadata.net/v5/resolve' \
  --header 'Content-Type: application/json' \
  --data '{"name": "Cerveceria Nacional"}'

MCP — tool resolve_entity

resolve_entity({"name": "Cerveceria Nacional"})

Candidatos con nombre, tipo, identificador enmascarado (8-***-2264, 155***-2-2016), confidence, matched_on y exact_homonyms; una fila por llamada. Con llave gratuita, además resolve/batch hasta 10 filas; con saldo, el identificador completo y lote de 100.

2. Leer la ficha DAT-FREE

API — GET /v5/entities/{id}

curl 'https://api.panadata.net/v5/entities/pa_own_4629361?include=DAT-FREE'

MCP — tool get_entity

get_entity({"id": "pa_own_4629361", "include": ["DAT-FREE"]})

Sin llave: existe, vigente, suspendida, tipo, año, menú, actualizado y siguiente_paso, con las cabeceras X-Panadata-Tier: public y X-Panadata-Public-Budget-Remaining. Con llave gratuita (Authorization: Bearer pk_…): la ficha completa de arriba; sin include la ficha DAT-FREE es la respuesta por defecto de una llave sin saldo. Con saldo: los códigos que el menú anuncia.

Qué no devuelve, aunque nos cueste poco

  • Nombres de terceros. Ni directores, ni dueños, ni acreedores, ni contrapartes. Solo el nombre de la entidad resuelta.
  • Montos. Ni valores de propiedades, ni salarios, ni valores de contratos.
  • Fechas más allá del año de constitución y del mes de actualización.
  • Conteos exactos. «Tiene 4 propiedades» es un hecho sobre una persona; «tiene 3–9» es una señal.
  • Identificadores completos en resolve.
  • Búsquedas. Ningún endpoint que devuelva una lista de entidades a partir de criterios. Siguen pagados.
  • Activos por id. pa_finca_, pa_ph_, pa_nave_, pa_marca_, pa_imp_…: propietarios, titulares y montos son registros (403 free_tier_code_locked). pa_gov_ sigue abierto.
  • Listas internacionales (DAT-SCREEN), documentos, dockets, OCR, dato en vivo, red de control, historial.

Cuando necesites los registros

La ficha dice qué hay; leerlo cuesta créditos. El Sandbox de US$95 da el JSON completo y una llave permanente; los packs, volumen y lote de 100. Ver precios.