Direct ingest

Report errors over plain HTTP

No SDK for your platform? Report errors by POSTing JSON straight to the ingestion endpoint. Every errorgap SDK is a thin wrapper over this one request.

Frameworks any languagePackage no SDK requiredAgent guide ↗
Store your credentials

Store your credentials

Keep the three values in your app's environment:

sh
ERRORGAP_API_KEY=flk_...
ERRORGAP_ENDPOINT=https://your-endpoint
ERRORGAP_PROJECT_SLUG=your-project
Report an error

Report an error

POST to {ERRORGAP_ENDPOINT}/api/projects/{ERRORGAP_PROJECT_SLUG}/notices with the header x-errorgap-project-key: {ERRORGAP_API_KEY} and a JSON body. Only errors (each with type and message) is required:

json
{
  "errors": [
    {
      "type": "RuntimeError",
      "message": "something went wrong",
      "backtrace": [
        { "file": "src/handler", "line": 42, "function": "handle" }
      ]
    }
  ],
  "context": { "environment": "production" }
}

context.environment sets the environment shown in errorgap. Wire this into your platform's global exception hook so unhandled errors report automatically. The full contract is in the ingestion API reference.

Verify

Verify the connection

Confirm your key and endpoint reach errorgap before wiring anything else — send one event straight to the ingestion API:

bash
curl -sS -X POST "$ERRORGAP_ENDPOINT/api/projects/$ERRORGAP_PROJECT_SLUG/notices" \
  -H "content-type: application/json" \
  -H "x-errorgap-project-key: $ERRORGAP_API_KEY" \
  -d '{"errors":[{"type":"ErrorgapInstallTest","message":"Errorgap install verification"}]}'

A 201 with a group_id means ingestion works (202 = received but sampled; 401 = wrong key). Then trigger the test error above through the SDK. Your onboarding screen's Verify step checks the stack off automatically once the first event lands — it polls every three seconds.

Next: the full ingestion API, or browse every SDK.