Every path below is relative to this URL. Requests and responses are JSON.
Authentication
Send an API key as a bearer token in the Authorization header on every request.
API key in format cm_ followed by 64 hex characters. Pass as Authorization: Bearer cm_xxx.
To create a key:
Sign in to the Chainitor app and open API Keys in the sidebar.
Select Create New Key, give the key a name you will recognise, such as "CI pipeline", and select Create Key.
Copy the key from the dialog. It is shown only once; if you lose it, revoke it on the same page and create another.
A key acts within one organization and works while that organization has an active subscription or trial.
Check it with GET /auth/me:
401Authentication required — provide a valid API key or session · Error
POST/monitors
Create a new monitor
Creates a new blockchain monitor. The config object shape depends on the type field. Refer to the config schemas for each monitor type. Returns 403 when the monitor limit is reached, or when the monitor type reads every block (function_call, failed_transaction, transaction_value) and the chain is a fast one (Arbitrum, Arbitrum Sepolia, Robinhood), which requires the Pro plan (plans below Pro are refused).
401Authentication required — provide a valid API key or session · Error
403Not allowed: monitor limit reached, or a block-scan monitor type (function_call, failed_transaction, transaction_value) on a plan below Pro (block-scan types are Pro-only on every chain). The message names the monitor type and chain. · Error
GET/monitors/{id}
Get a single monitor
Returns a monitor by ID, including its config, channels, and recent alerts.
Re-enables a disabled monitor. Its next run is scheduled based on its interval. Safe monitors are rejected with 400 if the organization has no Safe API key or the monitor no longer fits its Safe API quota. Block-scan monitors (function_call, failed_transaction, transaction_value) cannot be re-enabled on plans below Pro and are rejected with 403; monitors that are already enabled are left alone.
Alerts generated when monitor thresholds are breached
GET/alerts
List all alerts for the organization
Returns alerts across all monitors in the organization. Filter by monitor_id to see alerts for a specific monitor, or by type. meta.pagination.stats carries org-wide counts per alert type, independent of the filters.
Parameters
Name
In
Type
Description
monitor_id
query
string (uuid)
Filter by monitor ID
status
query
string
Filter by alert status
type
query
string
Filter by alert type. An unknown value returns 400. critical: a breach. recovery: the monitor is healthy again; it closes the preceding critical. info (added October 2026): an event worth knowing that is neither, for example a Safe proposal or signature; it never closes anything. Integrations that switch on critical/recovery must handle or ignore info. One of: critical, recovery, info.
page
query
integer
Page number Default 1.
limit
query
integer
Items per page Default 50. Range … to 100.
Responses
200Paginated list of alerts · data: array of Alert, meta: object
Organization settings, integrations, and monitor groups
GET/organization
Get current organization
Returns the organization the API key is scoped to.
Responses
200Organization details
GET/organization/integrations
Get integration settings
Returns integration configuration (e.g., Safe API key presence). Secrets are never exposed.
Responses
200Integration settings (redacted)
PATCH/organization/integrations
Update integration settings
A Safe API key is checked with Safe before it is saved. A key Safe does not recognise is refused with 400 and not saved. If Safe cannot be reached, the key is saved unverified.
Shape depends on type. See documentation for each monitor type.
channelIds *
array of string (uuid)
At least 1 item.
UpdateMonitorRequest
Field
Type
Description
name
string
Length 1 to 255.
intervalMinutes
integer
Range 1 to 1440.
config
object
channelIds
array of string (uuid)
group
string, nullable
Length 0 to 100.
Alert
Field
Type
Description
id
string (uuid)
monitorId
string (uuid)
type
string
critical: a breach. recovery: the monitor is healthy again; it closes the preceding critical. info (added October 2026): an event worth knowing that is neither, for example a Safe proposal or signature; it never closes anything. Integrations that switch on critical/recovery must handle or ignore info. One of: critical, recovery, info.
status
string
message
string
details
object
createdAt
string (date-time)
AlertStats
Org-wide alert counts. total in the pagination block counts every type, including info.
Field
Type
Description
critical
integer
recovery
integer
info
integer
emailsSent
integer
WebhookAlertPayload
Field
Type
Description
alertId *
string
monitorId *
string
monitorName *
string
alertType *
string
critical: a breach. recovery: the monitor is healthy again; it closes the preceding critical. info (added October 2026): an event worth knowing that is neither, for example a Safe proposal or signature; it never closes anything. Integrations that switch on critical/recovery must handle or ignore info. One of: critical, recovery, info.
severity *
string
critical for critical alerts; info for recovery and info alerts. One of: critical, warning, info.
timestamp *
string (date-time)
monitor *
object
results
array of object
metadata *
object
Channel
Field
Type
Description
id
string (uuid)
name
string
type
string
One of: slack, telegram, email, webhook, pagerduty.
isEnabled
boolean
isVerified
boolean
isDefault
boolean
createdAt
string (date-time)
CreateChannelRequest
Field
Type
Description
name *
string
Length 1 to 255.
type *
string
One of: slack, telegram, email, webhook, pagerduty.
config *
object
Shape depends on type.
UpdateChannelRequest
Field
Type
Description
name
string
Length 0 to 255.
config
object
AddressBookEntry
Field
Type
Description
id
string (uuid)
label
string
address
string
organizationId
string (uuid)
createdAt
string (date-time)
updatedAt
string (date-time)
CreateAddressRequest
Field
Type
Description
label *
string
address *
string
Ethereum address (EIP-55)
UpdateAddressRequest
Field
Type
Description
label
string
address
string
ApiKey
API key metadata. The key hash is never returned.
Field
Type
Description
id
string (uuid)
name
string
keyPrefix
string
First 11 characters for identification
scopes
array of string
lastUsedAt
string (date-time), nullable
expiresAt
string (date-time), nullable
isActive
boolean
createdAt
string (date-time)
ApiKeyCreated
Field
Type
Description
data
object
CreateApiKeyRequest
Field
Type
Description
name *
string
Human-readable label, e.g. "CI Pipeline" Length 1 to 100.