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.