Every example assumes a signed-in session; how to get one is in Authentication
GET /_x/query/public-status
No session Permission: public MCP tool: publicStatus
Public status of notificado.co: status (operational | maintenance | degraded | partial_outage | major_outage), the incidents still open, one entry per America/Bogota day for the last 30 days with the worst impact that day, and every incident in that window with its public updates (Spanish, optional English). Instants are UTC.
Parameters of publicStatus Name In Type Required _firstQuery integer 1–10000page size; present, the response is the page envelope rather than the bare rows (1 to 10000) No _afterQuery stringthe endCursor a previous page answered; needs _first No
curl Copy curl 'https://www.notificado.co/_x/query/public-status' TypeScript Copy const response = await fetch('https://www.notificado.co/_x/query/public-status' );
const result = await response.json();Example response 200 Copy [
null
]Errors
400 X_INPUT_INVALID or X_CURSOR_INVALID 403 policy denied GET /_x/query/recipient-page
No session Permission: public
recipientPage
Parameters of recipientPage Name In Type Required recipientTokenQuery string 1–64Yes _firstQuery integer 1–10000page size; present, the response is the page envelope rather than the bare rows (1 to 10000) No _afterQuery stringthe endCursor a previous page answered; needs _first No
curl Copy curl 'https://www.notificado.co/_x/query/recipient-page?recipientToken=<recipientToken>' TypeScript Copy const response = await fetch('https://www.notificado.co/_x/query/recipient-page?recipientToken=<recipientToken>' );
const result = await response.json();Example response 200 Copy [
null
]Errors
400 X_INPUT_INVALID or X_CURSOR_INVALID 403 policy denied GET /_x/query/verify-constancia
No session Permission: public MCP tool: verifyConstancia
Public check of a Notificado constancia: pass the verification code printed under its QR ("code") or the SHA-256 of the PDF file ("pdfSha256"). Returns one row: authentic, issuedAt (UTC and Bogotá), delivery status, the signed PDF's SHA-256, version, latestVersion and superseded. Never returns message content or recipient data; an unknown code or hash returns authentic=false with every other field null.
Parameters of verifyConstancia Name In Type Required codeQuery string 1–32No pdfSha256Query stringNo _firstQuery integer 1–10000page size; present, the response is the page envelope rather than the bare rows (1 to 10000) No _afterQuery stringthe endCursor a previous page answered; needs _first No
curl Copy curl 'https://www.notificado.co/_x/query/verify-constancia' TypeScript Copy const response = await fetch('https://www.notificado.co/_x/query/verify-constancia' );
const result = await response.json();Example response 200 Copy [
null
]Errors
400 X_INPUT_INVALID or X_CURSOR_INVALID 403 policy denied POST /api/data-subject-requests/file
No session Permission: public
fileDataSubjectRequest
Parameters of fileDataSubjectRequest Name In Type Required captchaTokenBody string 0–4096No cf-turnstile-responseBody string 0–4096No documentNumberBody string 3–40Yes documentTypeBody "cc" | "ce" | "pasaporte" | "nit" | "otro"Yes emailBody string (email)Yes fullNameBody string 2–200Yes h-captcha-responseBody string 0–4096No kindBody "consulta" | "reclamo" | "actualizacion" | "supresion"Yes localeBody string 0–16No messageBody string 10–5000Yes phoneBody string 0–40No relatedToBody string 0–300No subjectBody "recipient" | "account"Yes websiteBody string 0–500No
curl Copy curl -X POST 'https://www.notificado.co/api/data-subject-requests/file' \
-H 'content-type: application/json' \
-d '{
"documentNumber": "<documentNumber>",
"documentType": "cc",
"email": "<email>",
"fullName": "<fullName>",
"kind": "consulta",
"message": "<message>",
"subject": "recipient"
}' TypeScript Copy const response = await fetch('https://www.notificado.co/api/data-subject-requests/file' , {
method : 'POST' ,
headers : { 'content-type' : 'application/json' },
body : JSON.stringify({
"documentNumber" : "<documentNumber>" ,
"documentType" : "cc" ,
"email" : "<email>" ,
"fullName" : "<fullName>" ,
"kind" : "consulta" ,
"message" : "<message>" ,
"subject" : "recipient"
}),
});
const result = await response.json();Example response 200 Copy {
"dueAt": "2026-09-25T15:00:00Z",
"reference": "<reference>"
}Errors
400 X_INPUT_INVALID 403 policy denied 422 X_BODY_INVALID POST /api/downloads/record
No session Permission: public
recordDownload
Parameters of recordDownload Name In Type Required linkTokenBody stringYes recipientTokenBody stringYes
curl Copy curl -X POST 'https://www.notificado.co/api/downloads/record' \
-H 'content-type: application/json' \
-d '{"linkToken":"<linkToken>","recipientToken":"<recipientToken>"}' TypeScript Copy const response = await fetch('https://www.notificado.co/api/downloads/record' , {
method : 'POST' ,
headers : { 'content-type' : 'application/json' },
body : JSON.stringify({
"linkToken" : "<linkToken>" ,
"recipientToken" : "<recipientToken>"
}),
});
const result = await response.json();Example response 200 Copy {
"bytes": 0,
"contentBase64": "<contentBase64>",
"contentType": "<contentType>",
"eventId": "<eventId>",
"filename": "<filename>",
"sha256": "<sha256>"
}Errors
400 X_INPUT_INVALID 403 policy denied 422 X_BODY_INVALID POST /api/healths/invoke
No session Permission: public MCP tool: health
Readiness of this process
curl Copy curl -X POST 'https://www.notificado.co/api/healths/invoke' \
-H 'content-type: application/json' \
-d '{}' TypeScript Copy const response = await fetch('https://www.notificado.co/api/healths/invoke' , {
method : 'POST' ,
headers : { 'content-type' : 'application/json' },
body : JSON.stringify({}),
});
const result = await response.json();Example response 200 Copy {
"ok": true,
"role": "<role>"
}Errors
400 X_INPUT_INVALID 403 policy denied 422 X_BODY_INVALID POST /api/inbound-replies/ingest
No session Permission: public
ingestInboundReply
curl Copy curl -X POST 'https://www.notificado.co/api/inbound-replies/ingest' \
-H 'content-type: application/json' \
-d '"<body>"' TypeScript Copy const response = await fetch('https://www.notificado.co/api/inbound-replies/ingest' , {
method : 'POST' ,
headers : { 'content-type' : 'application/json' },
body : JSON.stringify("<body>" ),
});
const result = await response.json();Example response 200 Copy {
"messageId": "<messageId>",
"outcome": "<outcome>",
"type": "<type>"
}Errors
400 X_INPUT_INVALID 403 policy denied 422 X_BODY_INVALID POST /api/pixels/record
No session Permission: public
recordPixel
Parameters of recordPixel Name In Type Required recipientTokenBody stringYes
curl Copy curl -X POST 'https://www.notificado.co/api/pixels/record' \
-H 'content-type: application/json' \
-d '{"recipientToken":"<recipientToken>"}' TypeScript Copy const response = await fetch('https://www.notificado.co/api/pixels/record' , {
method : 'POST' ,
headers : { 'content-type' : 'application/json' },
body : JSON.stringify({
"recipientToken" : "<recipientToken>"
}),
});
const result = await response.json();Example response 200 Copy {
"eventId": "<eventId>"
}Errors
400 X_INPUT_INVALID 403 policy denied 422 X_BODY_INVALID POST /api/receipts/acknowledge
No session Permission: public
acknowledgeReceipt
Parameters of acknowledgeReceipt Name In Type Required recipientTokenBody string 1–64Yes
curl Copy curl -X POST 'https://www.notificado.co/api/receipts/acknowledge' \
-H 'content-type: application/json' \
-d '{"recipientToken":"<recipientToken>"}' TypeScript Copy const response = await fetch('https://www.notificado.co/api/receipts/acknowledge' , {
method : 'POST' ,
headers : { 'content-type' : 'application/json' },
body : JSON.stringify({
"recipientToken" : "<recipientToken>"
}),
});
const result = await response.json();Example response 200 Copy {
"acknowledgedAt": "<acknowledgedAt>",
"created": true,
"eventId": "<eventId>",
"ok": true
}Errors
400 X_INPUT_INVALID 403 policy denied 422 X_BODY_INVALID POST /api/ses-events/ingest
No session Permission: public
ingestSesEvent
curl Copy curl -X POST 'https://www.notificado.co/api/ses-events/ingest' \
-H 'content-type: application/json' \
-d '"<body>"' TypeScript Copy const response = await fetch('https://www.notificado.co/api/ses-events/ingest' , {
method : 'POST' ,
headers : { 'content-type' : 'application/json' },
body : JSON.stringify("<body>" ),
});
const result = await response.json();Example response 200 Copy {
"messageId": "<messageId>",
"outcome": "<outcome>",
"type": "<type>"
}Errors
400 X_INPUT_INVALID 403 policy denied 422 X_BODY_INVALID POST /api/webhooks/wompi
No session Permission: public
wompiWebhook
Parameters of wompiWebhook Name In Type Required environmentBody string 1–20No eventBody string 1–80Yes sent_atBody string 1–40No
curl Copy curl -X POST 'https://www.notificado.co/api/webhooks/wompi' \
-H 'content-type: application/json' \
-d '{"event":"<event>"}' TypeScript Copy const response = await fetch('https://www.notificado.co/api/webhooks/wompi' , {
method : 'POST' ,
headers : { 'content-type' : 'application/json' },
body : JSON.stringify({
"event" : "<event>"
}),
});
const result = await response.json();Example response 200 Copy {
"eventKey": "<eventKey>",
"outcome": "queued"
}Errors
400 X_INPUT_INVALID 403 policy denied 422 X_BODY_INVALID