An easy-to-use and simple Instagram package
Clone or download
Latest commit 6ccbb9b Nov 25, 2018



An easy-to-use and simple Instagram package.

use Vinkla\Instagram\Instagram;

// Create a new instagram instance.
$instagram = new Instagram('your-access-token');

// Fetch recent user media items.

// Fetch user information.

Build Status Coverage Status Total Downloads Latest Version License


Instagram is decoupled from any library sending HTTP requests (like Guzzle), instead it uses an abstraction called HTTPlug which provides the http layer used to send requests to exchange rate services. This gives you the flexibility to choose what HTTP client and PSR-7 implementation you want to use.

Read more about the benefits of this and about what different HTTP clients you may use in the HTTPlug documentation. Below is an example using Guzzle 6:

$ composer require vinkla/instagram php-http/message php-http/guzzle6-adapter


First you need to generate an access token using Pixel Union's access token generator or by creating an Instagram application.


Then create a new Vinkla\Instagram\Instagram instance with your Instagram access token.

use Vinkla\Instagram\Instagram;

$instagram = new Instagram('5937104658.5688ed0.675p84e21a0341gcb3b44b1a13d9de91');

To fetch the user's recent media items you may use the media() method.


To fetch the user information data you may use the self() method.


Note: You can only fetch a user's recent media from the given access token.

Rate Limiting

The Instagram allows you to call their API 200 times per hour. Try to cache the responses in your application.

The Instagram API uses the same rate limiting as the Graph API (200 calls per user per hour) with one exception: the /media/comments edge limits writes to 60 writes per user per hour. Please refer to the Graph API's rate limiting documentation for more information - Facebook


MIT © Vincent Klaiber