This project implements a Go client library for the Hipchat API (API version 2 is not supported).

Pull requests are welcome as the API is limited to only a few calls right now.

API documentation can be found on godoc.org.

Star this or get at me on the Twitters if you end up using this since this is pretty early stage and I may make breaking changes to the API. – @andybons



go get github.com/andybons/hipchat

Example usage:

package main

import (

func main() {
	c := hipchat.NewClient("<PUT YOUR AUTH TOKEN HERE>")
	req := hipchat.MessageRequest{
		RoomId:        "Rat Man's Den",
		From:          "GLaDOS",
		Message:       "Bad news: Combustible lemons failed.",
		Color:         hipchat.ColorPurple,
		MessageFormat: hipchat.FormatText,
		Notify:        true,

	if err := c.PostMessage(req); err != nil {
		log.Printf("Expected no error, but got %q", err)

Setting a custom HipChat Server:

c := hipchat.NewClient("<AUTH TOKEN>")
c.BaseURL = "https://your.host.name/v1"

Use customized proxy settings In case you need to use transport other than http.DefaultTransport:

c := hipchat.NewClient("<AUTH TOKEN>")

proxyURL, err := url.Parse("<PROXY_URL:PROXY_PORT>")
if err != nil {
	log.Fatalf("Expected no error, but got %q", err)
c.Transport = &http.Transport{Proxy: http.ProxyURL(proxyURL)}