Las operaciones marcadas /v1 se autentican con un token de agente; las demás, con una sesión del panel. Cómo funcionan ambas está en Autenticación
GET /_x/query/closure-impact
Miembro de la firma Permiso: deadline:write
closureImpact
Parámetros de closureImpact Nombre Dónde Tipo Obligatorio courtIdConsulta stringNo endsOnConsulta stringSí startsOnConsulta stringSí _firstConsulta integer 1–500page size; present, the response is the page envelope rather than the bare rows (1 to 500) No _afterConsulta stringthe nextCursor a previous page answered; needs _first No
curl Copiar curl 'https://www.notificado.co/_x/query/closure-impact?endsOn=<endsOn>&startsOn=<startsOn>' \
-b cookies.txtTypeScript Copiar const response = await fetch('https://www.notificado.co/_x/query/closure-impact?endsOn=<endsOn>&startsOn=<startsOn>' , {
headers : { cookie : sessionCookie },
});
const result = await response.json();Ejemplo de respuesta 200 Copiar [
null
]Errores
400 X_INPUT_INVALID or X_CURSOR_INVALID 401 X_UNAUTHENTICATED — no credential, or one that did not resolve 403 policy denied 429 X_RATE_LIMITED — retry after Retry-After seconds GET /_x/query/list-closure-courts
Miembro de la firma Permiso: deadline:read
listClosureCourts
Parámetros de listClosureCourts Nombre Dónde Tipo Obligatorio limitConsulta integer 1–500No orgIdConsulta string (uuid)Sí _firstConsulta integer 1–500page size; present, the response is the page envelope rather than the bare rows (1 to 500) No _afterConsulta stringthe nextCursor a previous page answered; needs _first No
curl Copiar curl 'https://www.notificado.co/_x/query/list-closure-courts?orgId=<orgId>' \
-b cookies.txtTypeScript Copiar const response = await fetch('https://www.notificado.co/_x/query/list-closure-courts?orgId=<orgId>' , {
headers : { cookie : sessionCookie },
});
const result = await response.json();Ejemplo de respuesta 200 Copiar [
null
]Errores
400 X_INPUT_INVALID or X_CURSOR_INVALID 401 X_UNAUTHENTICATED — no credential, or one that did not resolve 403 policy denied 429 X_RATE_LIMITED — retry after Retry-After seconds GET /v1/list-court-closures
Miembro de la firma Permiso: deadline:read /v1 · token Bearer Herramienta MCP: listCourtClosures
The firm's recorded court closures that terms skip. Recording one is a person's act in the panel.
Parámetros de listCourtClosures Nombre Dónde Tipo Obligatorio limitConsulta integer 1–500No orgIdConsulta string (uuid)Sí _firstConsulta integer 1–500page size; present, the response is the page envelope rather than the bare rows (1 to 500) No _afterConsulta stringthe nextCursor a previous page answered; needs _first No
curl Copiar curl 'https://www.notificado.co/v1/list-court-closures?orgId=<orgId>' \
-H "authorization: Bearer $NOTIFICADO_TOKEN" TypeScript Copiar const response = await fetch('https://www.notificado.co/v1/list-court-closures?orgId=<orgId>' , {
headers : { authorization : `Bearer ${token}` },
});
const result = await response.json();Ejemplo de respuesta 200 Copiar [
null
]Errores
400 X_INPUT_INVALID or X_CURSOR_INVALID 401 X_UNAUTHENTICATED — no credential, or one that did not resolve 403 policy denied 429 X_RATE_LIMITED — retry after Retry-After seconds GET /v1/list-deadlines
Miembro de la firma Permiso: deadline:read /v1 · token Bearer Herramienta MCP: listDeadlines
Computed terms per recipient (Bogotá dates). An ESTIMATE: the judge decides. blocked_bounce = not notified.
Parámetros de listDeadlines Nombre Dónde Tipo Obligatorio afterConsulta string (uuid)No caseIdConsulta string (uuid)No cursorConsulta string (uuid)No fromConsulta stringNo limitConsulta integer 1–500No notificationIdConsulta string (uuid)No orgIdConsulta string (uuid)Sí statusConsulta "computed" | "blocked_bounce"No toConsulta stringNo _firstConsulta integer 1–500page size; present, the response is the page envelope rather than the bare rows (1 to 500) No _afterConsulta stringthe nextCursor a previous page answered; needs _first No
curl Copiar curl 'https://www.notificado.co/v1/list-deadlines?orgId=<orgId>' \
-H "authorization: Bearer $NOTIFICADO_TOKEN" TypeScript Copiar const response = await fetch('https://www.notificado.co/v1/list-deadlines?orgId=<orgId>' , {
headers : { authorization : `Bearer ${token}` },
});
const result = await response.json();Ejemplo de respuesta 200 Copiar [
{
"calendarVersion": "<calendarVersion>",
"caseId": "<caseId>",
"computedAt": "<computedAt>",
"conservative": {
"sendWindowVersion": "<sendWindowVersion>",
"surtidaAt": "<surtidaAt>",
"surtidaOn": "<surtidaOn>",
"termEndsAt": "<termEndsAt>",
"termEndsOn": "<termEndsOn>",
"termStartsAt": "<termStartsAt>",
"termStartsOn": "<termStartsOn>"
},
"disclaimerKey": "<disclaimerKey>",
"id": "<id>",
"inputsSha256": "<inputsSha256>",
"notificationId": "<notificationId>",
"orgId": "<orgId>",
"radicado": "<radicado>",
"recipientId": "<recipientId>",
"recipientName": "<recipientName>",
"sentAt": "<sentAt>",
"status": "computed",
"surtidaAt": "<surtidaAt>",
"surtidaOn": "<surtidaOn>",
"termDays": 1,
"termDaysAssumed": true,
"termEndsAt": "<termEndsAt>",
"termEndsOn": "<termEndsOn>",
"termStartsAt": "<termStartsAt>",
"termStartsOn": "<termStartsOn>",
"vacanciaCountsForSurtida": true
}
]Errores
400 X_INPUT_INVALID or X_CURSOR_INVALID 401 X_UNAUTHENTICATED — no credential, or one that did not resolve 403 policy denied 429 X_RATE_LIMITED — retry after Retry-After seconds GET /_x/query/upcoming-deadlines
Miembro de la firma Permiso: deadline:read Herramienta MCP: upcomingDeadlines
The caller's firm's next vencimientos (Ley 2213 art. 8), from today in America/Bogota on, soonest first — ONE row per case and recipient address (the soonest; laterTerms counts the other upcoming terms of the same pair). Each row carries notificationId, caseId, radicado, recipientName and surtidaOn / termStartsOn / termEndsOn (YYYY-MM-DD, Bogotá). For every term use listDeadlines. The dates are an ESTIMATE — always tell the user the judge decides. Read-only.
Parámetros de upcomingDeadlines Nombre Dónde Tipo Obligatorio limitConsulta integer 1–100No orgIdConsulta string (uuid)Sí _firstConsulta integer 1–500page size; present, the response is the page envelope rather than the bare rows (1 to 500) No _afterConsulta stringthe nextCursor a previous page answered; needs _first No
curl Copiar curl 'https://www.notificado.co/_x/query/upcoming-deadlines?orgId=<orgId>' \
-b cookies.txtTypeScript Copiar const response = await fetch('https://www.notificado.co/_x/query/upcoming-deadlines?orgId=<orgId>' , {
headers : { cookie : sessionCookie },
});
const result = await response.json();Ejemplo de respuesta 200 Copiar [
null
]Errores
400 X_INPUT_INVALID or X_CURSOR_INVALID 401 X_UNAUTHENTICATED — no credential, or one that did not resolve 403 policy denied 429 X_RATE_LIMITED — retry after Retry-After seconds POST /api/list-global-closures
Miembro de la firma Permiso: deadline:write
listGlobalClosures
Parámetros de listGlobalClosures Nombre Dónde Tipo Obligatorio limitCuerpo integer 1–500No yearCuerpo integer 2000–2100No
curl Copiar curl -X POST 'https://www.notificado.co/api/list-global-closures' \
-b cookies.txt \
-H 'origin: https://www.notificado.co' \
-H 'content-type: application/json' \
-d '{}' TypeScript Copiar const response = await fetch('https://www.notificado.co/api/list-global-closures' , {
method : 'POST' ,
headers : { 'content-type' : 'application/json' , origin : 'https://www.notificado.co' , cookie : sessionCookie },
body : JSON.stringify({}),
});
const result = await response.json();Ejemplo de respuesta 200 Copiar {
"rows": [
{
"courtId": "<courtId>",
"createdAt": "2026-09-25T15:00:00Z",
"createdBy": "<createdBy>",
"createdByEmail": "<createdByEmail>",
"endsOn": "<endsOn>",
"id": "<id>",
"kind": "<kind>",
"reason": "<reason>",
"seeded": true,
"sourceUrl": "<sourceUrl>",
"startsOn": "<startsOn>",
"withdrawReason": "<withdrawReason>",
"withdrawnAt": "2026-09-25T15:00:00Z",
"withdrawnBy": "<withdrawnBy>",
"withdrawnByEmail": "<withdrawnByEmail>"
}
]
}Errores
400 X_INPUT_INVALID 401 X_UNAUTHENTICATED — no credential, or one that did not resolve 403 policy denied 422 X_BODY_INVALID 429 X_RATE_LIMITED — retry after Retry-After seconds POST /api/set-court-closure
Miembro de la firma Permiso: deadline:write
setCourtClosure
Parámetros de setCourtClosure Nombre Dónde Tipo Obligatorio codeCuerpo string 1–64No courtIdCuerpo stringNo endsOnCuerpo stringSí globalCuerpo booleanNo kindCuerpo "cierre_extraordinario" | "vacancia_colectiva" | "semana_santa"No reasonCuerpo string 0–500No sourceUrlCuerpo string 0–2048No startsOnCuerpo stringSí
curl Copiar curl -X POST 'https://www.notificado.co/api/set-court-closure' \
-b cookies.txt \
-H 'origin: https://www.notificado.co' \
-H 'content-type: application/json' \
-d '{"endsOn":"<endsOn>","startsOn":"<startsOn>"}' TypeScript Copiar const response = await fetch('https://www.notificado.co/api/set-court-closure' , {
method : 'POST' ,
headers : { 'content-type' : 'application/json' , origin : 'https://www.notificado.co' , cookie : sessionCookie },
body : JSON.stringify({
"endsOn" : "<endsOn>" ,
"startsOn" : "<startsOn>"
}),
});
const result = await response.json();Ejemplo de respuesta 200 Copiar {
"courtId": "<courtId>",
"endsOn": "<endsOn>",
"global": true,
"id": "<id>",
"kind": "<kind>",
"recomputing": -9007199254740991,
"startsOn": "<startsOn>"
}Errores
400 X_INPUT_INVALID 401 X_UNAUTHENTICATED — no credential, or one that did not resolve 403 policy denied 422 X_BODY_INVALID 429 X_RATE_LIMITED — retry after Retry-After seconds POST /api/withdraw-global-closure
Miembro de la firma Permiso: deadline:write
withdrawGlobalClosure
Parámetros de withdrawGlobalClosure Nombre Dónde Tipo Obligatorio closureIdCuerpo string (uuid)Sí codeCuerpo string 1–64No reasonCuerpo string 0–500Sí
curl Copiar curl -X POST 'https://www.notificado.co/api/withdraw-global-closure' \
-b cookies.txt \
-H 'origin: https://www.notificado.co' \
-H 'content-type: application/json' \
-d '{"closureId":"<closureId>","reason":"<reason>"}' TypeScript Copiar const response = await fetch('https://www.notificado.co/api/withdraw-global-closure' , {
method : 'POST' ,
headers : { 'content-type' : 'application/json' , origin : 'https://www.notificado.co' , cookie : sessionCookie },
body : JSON.stringify({
"closureId" : "<closureId>" ,
"reason" : "<reason>"
}),
});
const result = await response.json();Ejemplo de respuesta 200 Copiar {
"courtId": "<courtId>",
"endsOn": "<endsOn>",
"id": "<id>",
"kind": "<kind>",
"recomputing": -9007199254740991,
"startsOn": "<startsOn>",
"withdrawnAt": "2026-09-25T15:00:00Z"
}Errores
400 X_INPUT_INVALID 401 X_UNAUTHENTICATED — no credential, or one that did not resolve 403 policy denied 422 X_BODY_INVALID 429 X_RATE_LIMITED — retry after Retry-After seconds