We always want to keep our service as simple and as usable as possible! So we added a tiny API layer to help you manage your account! It offers a few simple endpoints you can use to integrate your UptimeChecker monitoring with other services.
Authentication
Authentication is done using Bearer Token. You can found it in your Dashboard under Account settings.
You can change it anytime from the Dashboard, just click the reload button, next to your token.
You must send an authorization token with each request, as an HTTP Header, header name is Authorization and value Bearer YOUR_API_KEY
For example, if your token is: sample_token_123 your request must contain:
Authorization: Bearer sample_token_123
API endpoint
API base URL is https://www.uptimechecker.io/api/v1/Types
Monitor
- id [integer] - unique monitor ID
- monitorType [string] - type of monitor: "WEB_SOCKET", "HTTP", "PING"
- endpoint [string] - monitored endpoint
- timeout [integer] - request timeout, in ms, when checking the monitor, must be greater than or equal 500 and less then or equal 10000
- minDowntimeDuration [integer] - time in seconds that monitor must be down to send the alert
- checkInterval [integer] - how often, in minutes, we should check the monitor, allowed values are: 1, 2, 5, 10, 15, 30, 60, 180
- active [boolean] - define if the monitor is active or paused
-
advanced[object] - advanced response check options
-
For HTTP monitors:
- httpResponseValue [string] - value to look for in the received response
- checkResponseType [string] - how to check the value: "EXACT","CONTAINS", "NOT_CONTAINS"
-
For WEB_SOCKET monitors:
- webSocketMessageValue [string] - message to send after connection is opened
- webSocketResponseValue [string] - value to look for in the received response message
- checkResponseType [string] - how to check the value: "EXACT","CONTAINS", "NOT_CONTAINS"
-
For HTTP monitors:
- contacts [list[int]] - id list of alarm contacts enabled for the monitor
Alarm contact
- id [integer] - unique alarm contact ID
- name [string] - contact friendly name
- type [string] - type of contact: "sms", "email", "slack-webhook"
-
contactData [string] - contact destination
-
For SMS contacts:
- phone number to send alarms to
-
For email contacts:
- email address to send alarms to
-
For slack-webhook contacts:
- web hook address to post alarms to
-
For SMS contacts:
- created [string] - contact creation date and time in ISO 8609 format
- isVerified [boolean] - contact verification status
API Endpoints, detailed explanation follows later
- GET /account-overview - lists account details for your account
- GET /monitors - lists all monitors managed by your account
- GET /monitor/{monitorId} - lists deatils for specified monitor
- GET /contacts - lists all alarm contacts managed by your account
- GET /contact/{contactId} - list deatils for specified contact
- POST /monitor - creates a new monitor
- POST /monitor/{monitorId} - updates an existing monitor
- POST /monitor/{monitorId}/delete - deletes an existing monitor
GET /account-overview
ARGS: none
RETURNS: JSON object with account details:
- onlineMonitorsCount [integer] - number of online monitors
- offlineMonitorsCount [integer] - number of offline monitors
- usedMonitorsCount [integer] - number of active monitors (online + offline count, not including paused monitors)
- allowedonitorsCount [integer] - number of monitors your current subscription plan supports
- sentSMSAlarmsCount [integer] - number of SMS alerts sent during this month
- allowedSMSCount [integer] - number of SMS alerts your current subscription plan supports
- alarmContactsCount [integer] - number of alarm contacts in your account
GET /monitors
ARGS: none
RETURNS: JSON list with short info for all monitors
Each node is JSON object with the following properties
- id [integer] - unique monitor ID - use it to query monitor details
- monitorType [string] - type of monitor: "WEB_SOCKET", "HTTP", "PING"
- endpoint [string] - monitored endpoint
- active [boolean] - if the monitor si active or paused
GET /monitor/{monitorId}
ARGS:
- monitorId [integer] - monitor to query for
RETURNS: JSON object with monitor details, please see Monitor Type
GET /contacts
ARGS: none
RETURNS: JSON list with short info for all alarm contacts
Each node is JSON object with the following properties
- id [integer] - unique alarm contact ID
- name [string] - contact friendly name
- type [string] - type of contact: "sms", "email", "slack-webhook"
GET /contact/{contactId}
- contactId [integer] - contact to query for
RETURNS: JSON object with contact details, please see Contact Type
POST /monitor
ARGS:
- Monitor [Monitor] - monitor object to create, sent as JSON object in the request body, please see Monitor Type
RETURNS: JSON object monitor creation status
When sending monitor data, id should be null, or field can be omitted altogether
Return object properties
- success [boolean] - boolean - is monitor successfully created
- id [integer] - unique monitor ID - if the monitor is crated (success is true)
- message [string] - error message if success is false
POST /monitor/{monitorId}
ARGS:
- monitorId [integer] - id of monitor to update
- Monitor [Monitor] - monitor data to update, sent as JSON object in the request body, please see Monitor Type
RETURNS: JSON object monitor update status
When sending monitor data, id should be null, or field can be omitted altogether
Return object properties
- success [boolean] - boolean - is monitor successfully updated
- id [integer] - unique monitor ID
- message [string] - error message if success is false
POST /monitor/{monitorId}/delete
ARGS:
- monitorId [integer] - id of monitor to delete
RETURNS: JSON object monitor deletion status
When sending monitor data, id should be null, or field can be omitted altogether
Return object properties
- success [boolean] - boolean - is monitor successfully deleted
- message [string]- error message if success is false