Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Travis CI Software License GoDoc Coverage Status

Updown Go client

This is a Go client for 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


Head over to the Go documentation to see available methods and models and to 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
    // 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: ""}
result, HTTPResponse, err := client.Check.Add(item)

Updating a check

token := "foo"
// See the struct for additional parameters
updated := updown.CheckItem{URL: ""}
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)