Go library for accessing Instagram REST and Search APIs
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
.gitignore Init. Jul 3, 2013
LICENSE.md Init. Jul 3, 2013
README.md Added drone and coveralls badges. Nov 4, 2014
go-github-LICENSE.md Init. Jul 3, 2013



go-instagram is Go library for accessing Instagram REST and Search APIs.

Documentation: http://godoc.org/github.com/gedex/go-instagram/instagram

Build Status: Build Status Build Status Coverage Status

Basic Usage

Access different parts of the Instagram API using the various services on a Instagram Client:

// You can optionally pass your own HTTP's client, otherwise pass it with nil.
client := instagram.NewClient(nil)

You can then optionally set ClientID, ClientSecret and AccessToken:

client.ClientID = "8f2c0ad697ea4094beb2b1753b7cde9c"

With client object set, you can communicate with Instagram endpoints:

// Gets the most recent media published by a user with id "3"
media, next, err := client.Users.RecentMedia("3", nil)

Set optional parameters for an API method by passing an Parameters object.

// Gets user's feed.
opt := &instagram.Parameters{Count: 3}
media, next, err := client.Users.RecentMedia("3", opt)

Please see examples/example.go for a complete example.

Data Retrieval

The methods which return slice in first return value will return three values (data, pagination, and error). Here's an example of retrieving popular media:

media, next, err := client.Media.Popular()
if err != nil {
	fmt.Fprintf(os.Stderr, "Error: %v\n", err)
for _, m := range media {
	fmt.Printf("ID: %v, Type: %v\n", m.ID, m.Type)
if next.NextURL != "" {
	fmt.Println("Next URL", next.NextURL)

If a single type is returned in first return value, then only two values returned. Here's an example of retrieving user's information:

user, err := client.Users.Get("3")
if err != nil {
	fmt.Fprintf(os.Stderr, "Error: %v\n", err)
fmt.Println("Username", user.Username)



This library is distributed under the BSD-style license found in the LICENSE file.