Go client for the Updown API
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
downtimes.go Comments to make golint happy May 14, 2016


Travis CI Software License GoDoc Coverage Status

Updown Go client

This is a Go client for updown.io. Updown lets you monitor websites and online services for an affordable price.


Once you have a working Go installation locally, you can grab this package with the following command:

go get github.com/antoineaugusti/updown


Head over to the Go documentation to see available methods and models and to https://updown.io/api for the Updown API.

Creating a client

The client will be required to perform all actions against the API.

package main

import (

func main() {
    // Your API key can be retrieved at https://updown.io/settings/edit
    // You can give a custom HTTP client
    client := updown.NewClient("your-api-key", nil)

Listing all checks

result, HTTPResponse, err := client.Check.List()

Getting an Updown token for a check's alias

name := "Google"
token, err := client.Check.TokenForAlias(name)

This method returns results from a memory cache by default if it's available. The first time, a request against the API will be performed.

Getting a check by its token

token := "foo"
result, HTTPResponse, err := client.Check.Get(token)

Getting downtimes for a check

token, page := "foo", 1 // 100 results per page
result, HTTPResponse, err := client.Downtime.List(token, page)

Adding a new check

// See the struct for additional parameters
item := updown.CheckItem{URL: "https://google.fr"}
result, HTTPResponse, err := client.Check.Add(item)

Updating a check

token := "foo"
// See the struct for additional parameters
updated := updown.CheckItem{URL: "https://google.com"}
result, HTTPResponse, err := client.Check.Update(token, updated)

Removing a check

token := "foo"
result, HTTPResponse, err := client.Check.Remove(token)

Getting metrics for a check

token, group := "foo", "host"
from, to := "2016-04-01 00:00:00 +0200", "2016-04-15 00:00:00 +0200"
result, HTTPResponse, err := client.Metric.List(token, group, from, to)