Golang library for accessing the Asana API
Go Makefile
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.



Build Status GoDoc Coverage Status

Go library for accessing the Asana API.

Note: go-asana is currently in development, so its API may have slightly breaking changes if we find better ways of doing things.


import "github.com/tambet/go-asana/asana"

Create a new Asana client instance, then use provided methods on the client to access the API. For example, to list all workspaces:

client := asana.NewClient(nil)
workspaces, err := client.ListWorkspaces()


The go-asana library does not directly handle authentication. Instead, when creating a new client, pass an http.Client that can handle authentication for you. The easiest way to do this is using the goauth2 library, but you can always use any other library that provides an http.Client. If you have an OAuth2 access token, you can use it with the goauth2 using:

t := &oauth.Transport{
  Token: &oauth.Token{AccessToken: "... your access token ..."},

client := asana.NewClient(t.Client())

// List all projects for the authenticated user
projects, err := client.ListProjects(opt)

See the goauth2 docs for complete instructions on using that library.