Skip to content

Getting started with ZeroErrors

By the end you have sent an error report and watched it show up as an issue in the dashboard.

ZeroErrors uses the same key as ZeroVault, so you only need the sign-in and API Keys steps: sign in at dash.zeroapps.dev, open API Keys in the sidebar, and click Create. Copy the key when it is shown (it is shown once). The full walkthrough is in ZeroVault getting started, but you can skip the project and secret steps.

Terminal window
export ZEROVAULT_API_KEY=zv_your_key_here

POST a report to the ingest endpoint:

Terminal window
curl -sS -X POST https://api.zeroapps.dev/errors/v1/errors \
-H "authorization: Bearer $ZEROVAULT_API_KEY" \
-H "content-type: application/json" \
-d '{"project":"docs-demo","message":"Hello from getting-started","level":"info"}'

You get back 202 and the issue it landed in:

{"issueId":"f0dc012e-0b66-4dd2-a4af-2eee08198f1f","isNew":true}

isNew is true the first time and false for later reports that group into the same issue. Send the same command a few more times and you will see the same issueId come back with isNew: false.

Open dash.zeroapps.dev/errors, filter by docs-demo, and you will see one issue titled Hello from getting-started with the count of reports you sent. Open it to see the individual events, and click Resolve when you are done.

The body of a report:

Field Required Notes
project yes 1–200 characters. Groups and labels the issue.
message yes 1–10000 characters. Its first line becomes the issue title.
stack no Up to 50000 characters. Its first at … frame helps group the issue.
level no error, warning, or info. Defaults to error.
context no Any JSON object of extra data.
  • 401 {"error":"Invalid API key"}: the key is missing or wrong.
  • 400 {"error":"Invalid error report"}: the body is malformed or missing a required field (checked only once the key is valid).
  • 429 with a Retry-After header: you are being rate-limited; wait and retry.