API access is live!

8/14/2019
Tomislav Lombarović
We are glad to announce API access to your account - now you can manage your monitors programmatically!

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"
  • 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
  • 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
BACK TO ALL POSTS
New to UptimeChecker? try our service with all features totally free for 14 days!
New to UptimeChecker? try our service with all features totally free for 14 days!