Ionhour Docs

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://api.ionhour.com/api

Three API surfaces

Ionhour exposes three programmatic surfaces, each with its own credential. Pick the right one before you write any code:

SurfaceBase pathCredentialBuilt for
Integration API/api/v1ionh_ API keyThird-party services, CI/CD, machine-to-machine — incidents, status pages, deployments, maintenance windows
MCP/api/mcpionh_ API keyAI assistants — broad tool surface over checks, jobs, projects, and more
Dashboard REST APIall other /api/*OAuth session tokenThe Ionhour dashboard itself, and custom UIs built on the OAuth flow

ionh_ API keys authenticate only the Integration API and MCP. The dashboard REST endpoints documented in this section require an OAuth session token and reject API keys. If you are integrating an external product or pipeline, start at Integrations.

Quick Start

Verify an API key against the Integration API:

curl -H "Authorization: Bearer ionh_your_api_key" \
  https://api.ionhour.com/api/v1/whoami

The signal ping endpoint requires no authentication at all:

curl https://signal.ionhour.com/api/signals/ping/CHECK_TOKEN

See Authentication for creating keys, OAuth token flows, and which credential each endpoint accepts.

API Sections

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 CodeMeaning
400Validation error or bad request
401Missing or invalid authentication
403Insufficient permissions or CSRF mismatch
404Resource not found
409Conflict (e.g., duplicate resource)
429Rate limit exceeded