API Reference
IonHour REST API documentation.
The IonHour API lets you programmatically manage checks, view incidents, and integrate monitoring into your CI/CD pipelines.
Base URL: https://app.failsignal.com/api
Quick Start
Most API requests require a Bearer token. See Authentication for details on obtaining tokens and using API keys.
curl -H "Authorization: Bearer YOUR_TOKEN" \
https://app.failsignal.com/api/checks
The signal ping endpoint is the exception — it requires no authentication:
curl https://app.failsignal.com/api/signals/ping/CHECK_TOKEN
API Sections
- Authentication — API keys, token-based auth, rate limits, and CSRF protection.
- Checks — Create, list, update, pause, and delete checks. Includes outbound check configuration.
- Incidents — List and filter incidents, acknowledge, add notes, and view event timelines.
- Signals — Send heartbeat pings, query signal history, and subscribe to real-time updates via SSE.
- MCP Integration — Connect AI assistants to IonHour using the Model Context Protocol.
Response Format
Paginated Lists
All list endpoints return paginated responses:
{
"items": [],
"total": 0,
"page": 1,
"itemCount": 0,
"pageCount": 0,
"limit": 20
}
Single Resources
Single resource endpoints return the entity directly (no wrapper object).
Errors
Error responses follow a standard format:
{
"statusCode": 400,
"message": "Validation failed",
"error": "Bad Request"
}
| Status Code | Meaning |
|---|---|
400 | Validation error or bad request |
401 | Missing or invalid authentication |
403 | Insufficient permissions or CSRF mismatch |
404 | Resource not found |
409 | Conflict (e.g., duplicate resource) |
429 | Rate limit exceeded |