Errors Endpoint

Ingestion reference for the errors endpoint.

POST /ingest/v1/errors

Report a new error to Checkend. The error will be grouped with similar errors based on its fingerprint.

Request Headers

Header Value
Content-Type application/json
Checkend-Ingestion-Key Your app's ingestion key

Request Body

JSON Schema
{
  "error_class": "string (required)",
  "error_message": "string (required)",
  "backtrace": ["string"],
  "context": {},
  "request": {
    "url": "string",
    "method": "string",
    "params": {},
    "headers": {}
  },
  "user_info": {
    "id": "string",
    "email": "string",
    "name": "string"
  },
  "fingerprint": "string"
}

Example Request

cURL
curl -X POST https://checkend.example.com/ingest/v1/errors \
  -H "Content-Type: application/json" \
  -H "Checkend-Ingestion-Key: ck_live_abc123" \
  -d '{
    "error_class": "NoMethodError",
    "error_message": "undefined method foo for nil:NilClass",
    "backtrace": [
      "app/models/user.rb:42:in validate_email",
      "app/controllers/users_controller.rb:15:in create"
    ],
    "context": {
      "rails_env": "production"
    }
  }'

Response

Success (201 Created)

Response
{
  "id": "notice_abc123",
  "problem_id": "prob_xyz789",
  "created_at": "2024-01-15T10:30:00Z"
}

Error (422 Unprocessable Entity)

Response
{
  "errors": {
    "error_class": ["can't be blank"],
    "error_message": ["can't be blank"]
  }
}

Response Codes

Status Description
201 Error created successfully
401 Invalid or missing ingestion key
422 Validation error (missing required fields)
500 Internal server error

Rate Limiting

Currently, there are no rate limits on the ingestion API. However, we recommend implementing client-side rate limiting to avoid overwhelming your Checkend instance during error spikes.