ping
Tells whether the server is up.
- Route:
POST /api/v2/system/ping, andGETas well - Category:
system - Authentication: none, the route is public
- Answer: a single JSON envelope
Ping answers as soon as the server runs, without touching the data, which makes it the route for liveness and readiness probes and for load balancers, see Logging and Monitoring. It needs no API token and ignores one that is sent, so it does not tell whether a token is valid; verify-token does. For the state of the database itself, ask health.
Request#
The route takes no body, and ignores one that is sent. Besides POST, it answers GET, which load balancers and probes send:
curl \
-X POST \
http://localhost:3000/api/v2/system/ping
Answer#
The answer is a single envelope of the type event, which holds a CloudEvent of the type io.eventsourcingdb.api.ping-received. Its data holds a message, which is always the same.
The request above is answered with:
{
"type": "event",
"data": {
"specversion": "1.0",
"id": "01a180c6-b266-70ee-bf1f-ab2d018a02e4",
"source": "https://www.eventsourcingdb.io",
"type": "io.eventsourcingdb.api.ping-received",
"subject": "/api/v2/system/ping",
"time": "2026-10-28T04:31:07.878046Z",
"datacontenttype": "application/json",
"data": {
"message": "My God, it's full of stars."
}
}
}
Status Codes#
The server answers with a status code other than 200 where it cannot take the request at all, as described in Errors:
429: Too many requests were sent; the answer says when to try again. The route counts against the limit per client only, not against the global one, see Rate Limiting.500: The server failed unexpectedly.503: The server is shutting down.