Runtime Log
Fetch the running app's live stdout/stderr as plain text. This is the app's OWN output while it runs — distinct from the build log, which is the output of the build. Reach for it when a deploy reached status = ready (it built and started) but the app then crashes, crash-loops, or returns 500s at runtime — a panic, a bad connection string, or a missing env var read at boot.
Applies to managed, fullstack, WordPress, and serverless-function apps. A static app is served straight from the edge with no running process, so it has no runtime logs (the response is a short note and X-Runtime-Status: none).
Query parameters
tail integer
Return only the last N lines (default ~200, max 2000).
previous 0 | 1
When
1, return the previous (terminated/crashed) instance's logs instead of the current pod's. Use it when the current pod has just restarted and its fresh logs are empty.Response
Content-Type text/plain
The running pod's raw output (capped).
X-Runtime-Status header
The instance state:
running, pending, failed, none (no running instance / static app), unavailable (runtime logs not enabled in this region), or error.X-Runtime-Pod header
The name of the pod the logs were read from, when one was found.
Errors
404
Application not found or belongs to another account.
Request
curl -i \
"https://api.ngris.com/v1/applications/a1b2c3d4-…/runtime-logs?tail=200" \
-H "X-API-KEY: <your_api_key>"
Response — 200 OK
X-Runtime-Status: running
X-Runtime-Pod: app-7-86c67c457-2n5kd
Content-Type: text/plain; charset=utf-8
2026/08/27 09:03:29 [ngris-kanban] database connected and migrations applied
2026/08/27 09:03:29 [ngris-kanban] listening on :8080