notarum Boletín Oficial

Documentación

Lo mismo que ves acá, para que lo lea un programa o un modelo. Todo de sólo lectura, con un límite de pedidos por minuto.

Acceso

acceso abierto cualquiera puede leer sin cuenta; los tokens sirven para tener más cuota

Quien la opera decide esto: notarum es de quien lo levanta, y otra instancia puede estar configurada de otra manera. Acá no hace falta identificarse para leer; un token sirve para tener más cuota y para el MCP.

El token va en la cabecera, así:

curl -H "Authorization: Bearer TU_TOKEN"   https://notarum.go.websiteonline.org/v1/ediciones/primera/2026-09-05

Cuotas

Son pedidos por minuto. Se cuentan por separado según de dónde vengan: mirar el sitio no te gasta la cuota de la API, y los intentos de entrada tienen la suya. Cada respuesta trae X-RateLimit-Limit y X-RateLimit-Remaining; al pasarse, un 429 con Retry-After.

quiénpor minuto
sin identificarse60
con token o sesión600
quien administra6000
el lector web600
intentos de entrada10

API

Base /v1. Las fechas van en AAAA-MM-DD y las respuestas son JSON en UTF-8. Cada respuesta trae ETag: si lo mandás de vuelta en If-None-Match, recibís un 304 sin cuerpo. Una edición pasada se declara inmutable por un año, porque no cambia nunca.

ediciones

Sumarios por sección y fecha

GET /v1/ediciones/{seccion}

Resúmenes de un rango de fechas

Devuelve un resumen por día (sin avisos) para las ediciones que ya están en la caché local. Las que todavía no se bajaron se listan en `faltantes`: se llenan con `notarum rellenar`, porque la API no baja un año entero adentro de un pedido HTTP. El tope del rango son 366 días.

parámetrodóndetipo
seccion obligatorio path string
primerasegundatercera
desde obligatorio query string (date)
hasta obligatorio query string (date)
curl https://notarum.go.websiteonline.org/v1/ediciones/primera?desde=2026-09-01&hasta=2026-09-30
200 Los resúmenes disponibles400 502
GET /v1/ediciones/{seccion}/{fecha}

Edición de una sección en una fecha

El sumario completo de ese día. Si ese día no hubo edición devuelve 404 con `sin_edicion: true`, que no es una falla.

parámetrodóndetipo
seccion obligatorio path string
primerasegundatercera
fecha obligatorio path string (date)
rubro query string Filtra por nombre de rubro; acepta el nombre exacto o un prefijo, sin distinguir mayúsculas.
curl https://notarum.go.websiteonline.org/v1/ediciones/primera/2026-09-01
200 La edición400 404 Ese día no hubo edición502

avisos

Textos completos y anexos

GET /v1/anexos/{seccion}/{nro}/{id}/{fecha}

El PDF de un anexo

Devuelve el archivo tal como lo publica el Boletín. La ruta es la que viene en el campo `url` de cada anexo del detalle; admite el sufijo `.pdf` en la fecha.

parámetrodóndetipo
seccion obligatorio path string
primerasegundatercera
nro obligatorio path string
id obligatorio path string
fecha obligatorio path string
curl https://notarum.go.websiteonline.org/v1/anexos/primera/12/7756488/20260901.pdf
200 El PDF400 502
GET /v1/avisos/{seccion}/{id}/{fecha}

Un aviso con su texto completo

parámetrodóndetipo
seccion obligatorio path string
primerasegundatercera
id obligatorio path string El id del aviso. En la primera sección es numérico; en la segunda y la tercera puede ser alfanumérico (por ejemplo A1522579).
fecha obligatorio path string (date)
curl https://notarum.go.websiteonline.org/v1/avisos/primera/346633/2026-09-01
200 El aviso400 404 502
GET /v1/buscar

Búsqueda por texto y fecha

Busca avisos por texto y fecha. Con el motor de almacenamiento sqlite hay un índice local: `fuente=indice` busca sobre él sin pedirle nada al Boletín (más rápido, sin tope de rango); `fuente=sitio` siempre consulta la búsqueda avanzada del Boletín; `fuente=auto` (por defecto) usa el índice cuando tiene historia del rango y si no va al sitio. La respuesta dice cuál se usó.

parámetrodóndetipo
seccion obligatorio query string
primerasegundatercera
texto query string
desde obligatorio query string (date)
hasta obligatorio query string (date)
rubro query string
pagina query integer · por defecto 1
fuente query string · por defecto auto De dónde traer los resultados.
autoindicesitio
limite query integer · por defecto 5 Resultados por página; sólo con fuente indice.
todas query boolean · por defecto false Exigir todas las palabras; sólo con fuente sitio.
curl https://notarum.go.websiteonline.org/v1/buscar?seccion=primera&desde=2026-09-01&hasta=2026-09-03
200 Los resultados400 502

catalogo

Calendario, secciones y rubros

GET /v1/calendario/{anio}/{seccion}

Días con edición de un año

parámetrodóndetipo
anio obligatorio path integer
seccion obligatorio path string
primerasegundatercera
curl https://notarum.go.websiteonline.org/v1/calendario/2026/primera
200 El calendario del año400 502
GET /v1/rubros/{seccion}

Catálogo de rubros de una sección

parámetrodóndetipo
seccion obligatorio path string
primerasegundatercera
curl https://notarum.go.websiteonline.org/v1/rubros/primera
200 Los rubros400 502
GET /v1/secciones

Secciones publicables

curl https://notarum.go.websiteonline.org/v1/secciones
200 Las secciones que esta API sabe leer

servicio

Estado del servicio

GET /v1/openapi.json

Este contrato

curl https://notarum.go.websiteonline.org/v1/openapi.json
200 El contrato
GET /v1/salud

Estado del servicio

curl https://notarum.go.websiteonline.org/v1/salud
200 El estado

provincial

Normativa de las 24 provincias: leyes, decretos, códigos y constituciones. Sale de la Base SAIJ del Ministerio de Justicia, que es lo que el Boletín Oficial de la Nación no publica.

GET /v1/provincial

Buscar normativa provincial

Busca en las 81 mil normas de las 24 provincias. Sin filtros devuelve todo el catálogo paginado, de la más nueva a la más vieja. Cuando hay texto, primero va lo que se llama así y después lo que lo menciona de paso.

parámetrodóndetipo
texto query string Palabras a buscar en el título y las materias. No hace falta poner los acentos; todas las palabras tienen que estar.
provincia query string Nombre, código INDEC o prefijo. Sin esto busca en las 24.
tipo query string Ley, Decreto Ley, Constitución Provincial… La lista está en /v1/provincial/tipos.
desde query integer Año de sanción más viejo.
hasta query integer Año de sanción más nuevo.
vigentes query string Con 1 deja fuera lo derogado, lo caduco y las modificatorias.
pagina query integer · por defecto 1
limite query integer · por defecto 3
curl https://notarum.go.websiteonline.org/v1/provincial
200 Las normas que cumplen.400 Una provincia que no existe, o un año mal escrito.503 Esta instancia todavía no bajó el catálogo provincial.
GET /v1/provincial/provincias

Las 24 jurisdicciones

Devuelve las provincias con su código INDEC y cuántas normas hay guardadas de cada una.

curl https://notarum.go.websiteonline.org/v1/provincial/provincias
200 Las jurisdicciones.
GET /v1/provincial/tipos

Tipos de norma provincial

Devuelve los tipos que trae el catálogo, del más frecuente al menos. Sirve para saber por qué valor filtrar.

curl https://notarum.go.websiteonline.org/v1/provincial/tipos
200 Los tipos.
GET /v1/provincial/{id}

Una norma provincial

Trae una norma por su identificador de SAIJ.

parámetrodóndetipo
id obligatorio path string Identificador de SAIJ, como LPB1000000.
curl https://notarum.go.websiteonline.org/v1/provincial/LPB1000000
200 La norma, con el enlace a su ficha en SAIJ.404 No hay una norma con ese identificador.503 Esta instancia todavía no bajó el catálogo provincial.

Las formas que devuelve

Anexo
id siempre string
nombre siempre string
numero siempre string
url siempre string Ruta en esta API para bajar el PDF.
Aviso
fecha siempre string (date)
id siempre string
norma string
organismo siempre string
referencia string
repetido siempre boolean El aviso viene de un rubro "ANTERIOR": ya se publicó en una edición previa.
rubro siempre string
seccion siempre string
primerasegundatercera
sintesis string
suplemento siempre boolean El aviso salió en el suplemento de ese día.
tiene_anexos siempre boolean
url siempre string (uri) El aviso en el sitio oficial.
Busqueda
avisos siempre lista de Aviso
dias_con_edicion integer Días del rango que tuvieron edición. Si es mayor que dias_indexados, el índice vio menos de lo que hay.
dias_indexados integer Días del rango que están en el índice local.
fuente siempre string De dónde salieron los resultados. El índice local busca en el sumario y, para los avisos cuyo texto ya se bajó, también en el cuerpo; la búsqueda del Boletín busca en el texto completo pero pagina de a 100 y no informa totales.
indicesitio
hay_mas siempre boolean
pagina siempre integer
total siempre integer Con fuente indice, el total de avisos que coinciden. Con fuente sitio, cuántos vinieron en esta página: el Boletín no informa un total, y por eso hay que mirar hay_mas.
Calendario
anio siempre integer
con_suplemento lista de string (date)
fechas siempre lista de string (date)
seccion siempre string
Detalle
fecha siempre string (date)
id siempre string
norma string
organismo siempre string
referencia string
repetido siempre boolean El aviso viene de un rubro "ANTERIOR": ya se publicó en una edición previa.
rubro siempre string
seccion siempre string
primerasegundatercera
sintesis string
suplemento siempre boolean El aviso salió en el suplemento de ese día.
tiene_anexos siempre boolean
url siempre string (uri) El aviso en el sitio oficial.
anexos siempre lista de Anexo
fecha_publicacion string (date) La fecha impresa al pie del aviso.
html siempre string El cuerpo en HTML saneado: sin estilos ni scripts, con las tablas conservadas.
texto siempre string El cuerpo en texto plano, párrafos separados por línea en blanco.
Edicion
avisos siempre lista de Aviso
cantidad siempre integer
con_suplemento boolean
fecha siempre string (date)
por_rubro siempre object
seccion siempre string
primerasegundatercera
Error
detalle string
error siempre string
origen siempre string De quién es la culpa: del Boletín Oficial, de notarum, o de cómo se armó el pedido.
sitionotarumpedido
sin_edicion boolean Ese día no hubo edición.
NormaProvincial — Una norma provincial. notarum guarda sus datos y el enlace a SAIJ, no su texto: SAIJ lo publica para pocas de las 81 mil.
digesto string
estado string Lo que SAIJ dice de su vigencia, con sus palabras.
fecha string (date) Fecha de sanción.
id siempre string Identificador de SAIJ, del estilo LPB1000000. Es la clave.
materias string Los términos con que SAIJ la clasifica. Vienen separados por guiones, aunque no siempre: 63.984 de las 81.281 con sumario los usan.
nombre string El nombre con el que se la conoce.
numero string Texto y no número: hay normas sin numerar.
provincia siempre string
provincia_id siempre string Código INDEC de la jurisdicción.
publicada string (date) Fecha de publicación en el boletín de la provincia.
tipo siempre string
titulo string De qué trata, en una línea.
ProvinciaConNormas
id string Código INDEC.
nombre string
normas integer Cuántas hay guardadas de esta jurisdicción.
prefijo string Con el que empiezan sus identificadores en SAIJ.
Rango
desde siempre string (date)
ediciones siempre lista de Resumen
faltantes siempre lista de string (date) Días con edición que todavía no están en la caché local.
hasta siempre string (date)
seccion siempre string
ResultadoBusqueda
avisos siempre lista de Aviso
cantidad siempre integer
hay_mas siempre boolean
pagina siempre integer
ResultadoProvincial
hay_mas boolean Si hay más de las que entran en esta página.
normas lista de NormaProvincial
pagina integer
total integer Cuántas cumplen los criterios, más allá de esta página.
Resumen
cantidad siempre integer
con_suplemento boolean
fecha siempre string (date)
por_rubro siempre object
seccion siempre string
Rubro
id siempre string
nombre siempre string
Salud
cache siempre object
en_pie_desde siempre string (date-time)
ok siempre boolean
sitio siempre object
sitio_responde siempre boolean
ultima_lectura string (date-time)
version string

MCP

Para que un modelo consulte el Boletín como una herramienta más. Habla JSON-RPC 2.0 en POST https://notarum.go.websiteonline.org/mcp, y el mismo binario también lo habla por entrada estándar, para un cliente local:

{
  "mcpServers": {
    "notarum": {
      "command": "notarum",
      "args": ["mcp", "--almacen", "sqlite", "--db", "/ruta/notarum.db"]
    }
  }
}

Estas son las herramientas, tal como las recibe el modelo:

tool edicion Edición de un día

Devuelve el sumario del Boletín Oficial para una sección y una fecha: cuántos avisos hubo, cómo se reparten por rubro, y la lista con organismo, norma y síntesis de cada uno. Es el punto de partida para cualquier consulta sobre un día. Si ese día no hubo edición lo dice; no todos los días hay.

argumentotipo
seccion obligatorio string primera: decretos, resoluciones y disposiciones. segunda: sociedades, edictos y sucesiones. tercera: licitaciones y contrataciones.
primerasegundatercera
fecha string Día a consultar, en AAAA-MM-DD. Si se omite, hoy.
limite integer · por defecto 40 Cuántos avisos traer. Una edición puede tener cientos.
rubro string Filtra por rubro, por nombre exacto o por su comienzo. Por ejemplo DECRETOS.
tool aviso Texto completo de un aviso

Devuelve un aviso entero: su texto completo en texto plano y la lista de anexos con la URL para bajar cada PDF. El id y la fecha salen de la herramienta edicion o de buscar.

argumentotipo
fecha obligatorio string Fecha de publicación del aviso, en AAAA-MM-DD.
id obligatorio string Identificador del aviso. En la primera sección es numérico; en la segunda y la tercera puede ser alfanumérico, como A1522579.
seccion obligatorio string primera: decretos, resoluciones y disposiciones. segunda: sociedades, edictos y sucesiones. tercera: licitaciones y contrataciones.
primerasegundatercera
tool buscar Buscar avisos

Busca avisos por texto dentro de un rango de fechas. Sirve para preguntas del tipo qué se publicó sobre un tema, o si un organismo dictó algo en un período. Devuelve el sumario de cada aviso; para leer el texto hay que pedir el aviso.

argumentotipo
desde obligatorio string Comienzo del rango, en AAAA-MM-DD.
hasta obligatorio string Fin del rango, en AAAA-MM-DD.
seccion obligatorio string primera: decretos, resoluciones y disposiciones. segunda: sociedades, edictos y sucesiones. tercera: licitaciones y contrataciones.
primerasegundatercera
limite integer · por defecto 50
pagina integer · por defecto 1
rubro string Restringe a un rubro.
texto string Palabras a buscar. No hace falta poner los acentos.
tool calendario Días con edición

Devuelve qué días de un año tuvieron edición de una sección, y cuáles tuvieron suplemento. Conviene mirarlo antes de recorrer un rango de fechas: los feriados no tienen edición.

argumentotipo
seccion obligatorio string primera: decretos, resoluciones y disposiciones. segunda: sociedades, edictos y sucesiones. tercera: licitaciones y contrataciones.
primerasegundatercera
anio integer Año a consultar. Si se omite, el corriente.
tool rubros Catálogo de rubros

Devuelve los rubros con los que se clasifican los avisos de una sección. Sirve para saber por qué valor filtrar en edicion o en buscar.

argumentotipo
seccion obligatorio string primera: decretos, resoluciones y disposiciones. segunda: sociedades, edictos y sucesiones. tercera: licitaciones y contrataciones.
primerasegundatercera
tool estado Estado del servicio

Dice qué día es hoy en Argentina, si esta instancia tiene índice local de búsqueda y cuánta historia tiene guardada. Útil para saber qué se puede responder sin depender del sitio del Boletín.

tool provincial_buscar Buscar normativa provincial

Busca leyes, decretos, códigos y constituciones de las 24 provincias, que el Boletín Oficial de la Nación no publica. Es la Base SAIJ del Ministerio de Justicia: 81 mil normas desde 1855. Devuelve los datos de cada norma y el enlace a su ficha; el texto completo casi nunca está publicado, así que no lo esperes de acá.

argumentotipo
desde integer Año de sanción más viejo.
hasta integer Año de sanción más nuevo.
limite integer · por defecto 30
pagina integer · por defecto 1
provincia string Nombre de la provincia, o su código INDEC. Sin esto busca en las 24 jurisdicciones.
texto string Palabras a buscar en el título y las materias. No hace falta poner los acentos. Todas las palabras tienen que estar.
tipo string Tipo de norma: "Ley", "Decreto Ley", "Constitución Provincial", "Código Procesal Penal"… La lista está en provincial_tipos. Para encontrar la constitución de una provincia conviene filtrar por tipo en vez de buscarla por texto.
vigentes boolean · por defecto false Deja fuera lo derogado, lo caduco y las modificatorias.
tool provincial_norma Una norma provincial

Trae una norma provincial por su identificador de SAIJ, del estilo LPB1000000. Los identificadores salen de provincial_buscar.

argumentotipo
id obligatorio string Identificador de SAIJ, como LPB1000000.
tool provincial_tipos Provincias y tipos de norma

Devuelve las 24 jurisdicciones con cuántas normas hay de cada una, y los tipos de norma que existen. Conviene mirarlo antes de filtrar, para usar los valores tal como están escritos.

Para probarlo de una:

curl -X POST https://notarum.go.websiteonline.org/mcp \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

Errores

Todo error viene como JSON y dice de quién es la culpa, para que sepas a quién mirar antes de empezar a buscar.

{ "error": "el Boletín Oficial no devolvió lo esperado", "origen": "sitio" }
sitioel Boletín Oficial no contestó o cambió de forma
notarumfalló algo de este servicio
pedidoel pedido está mal armado

Un día sin edición devuelve 404 con "sin_edicion": true. No es una falla: es un feriado.