Skip to main content

API Overview

The Sentro REST API gives you programmatic access to everything in the platform -- monitors, incidents, alerts, status pages, heartbeats, and more.

Base URL​

https://api.sentro.dev/v1

All endpoints require HTTPS. HTTP requests are rejected.

Authentication​

Every request must include your API key in the Authorization header:

Authorization: Bearer sentro_sk_live_your_key_here

API keys are created in the dashboard under Settings > API Keys. See API Keys for details on access levels, expiration, and security best practices.

Response format​

All responses are JSON. Successful responses wrap data in a data field. List endpoints include a meta object with pagination info.

Single resource​

{
"data": {
"id": "cly1abc2d0001abcdef012345",
"name": "Production API",
"status": "ACTIVE"
}
}

List response​

{
"data": [
{ "id": "cly1abc2d0001abcdef012345", "name": "Production API" }
],
"meta": {
"total": 42,
"limit": 50,
"offset": 0
}
}

Error response​

{
"error": {
"code": "NOT_FOUND",
"message": "Monitor with id 'cly_invalid' not found"
}
}

Error codes​

HTTP StatusCodeDescription
400VALIDATION_ERRORRequest body or parameters failed validation.
401AUTHENTICATION_ERRORMissing, invalid, expired, or revoked API key.
402PLAN_LIMITFeature requires a higher plan.
403AUTHORIZATION_ERRORAPI key lacks permission for this action.
404NOT_FOUNDRequested resource does not exist.
409CONFLICTResource conflict (e.g., duplicate name).
429RATE_LIMITRate limit exceeded. Check the Retry-After header.
500INTERNAL_ERRORUnexpected server error.

Rate limiting​

Rate limits are enforced per API key and vary by plan:

PlanRead (GET)Write (POST/PATCH/DELETE)
Free60 req/minRead-only (no writes)
Starter120 req/min30 req/min
Pro300 req/min30 req/min
Max1,000 req/min100 req/min

When the limit is exceeded, the API returns 429 with a Retry-After header indicating how many seconds to wait.

Pagination​

List endpoints accept limit and offset query parameters:

  • limit -- Number of items to return (default: 50, max: 200).
  • offset -- Number of items to skip.

The meta.total field in the response tells you the total number of items available.

Next steps​