Instafeed.js is a simple way to display your Instagram photos on your website.
Version 2 of Instafeed.js is now available, powered by the new Instagram Basic Display API.
For help upgrading from v1, see the v2 migration guide.
When I originally wrote Instafeed.js in 2012, I wanted to create an easy way to quickly add your Instagram photos to your website. I like to think I was able to do that, in large part thanks to the public API Instagram had at the time.
Unfortunately, Facebook has made this process a lot more complex than it used to be. The largest problem is that managing API tokens now requires a server-side component, which I can’t provide through Instafeed.js alone.
If you're looking for a turnkey solution that manages tokens for you, or you need more advanced features like hashtag feeds, I recommend looking at Behold. It's a paid service, but it has a free tier that will work for smaller projects.
Setting up Instafeed is pretty straight-forward - there are 3 main steps.
<script type="text/javascript" src="https://github.com/stevenschobert/instafeed.js/raw/master/path/to/instafeed.min.js"></script>
Note: Instafeed.js is also compatible with require.js and commonJS exports
<div id="instafeed"></div>
<script type="text/javascript">
var feed = new Instafeed({
accessToken: 'your-token'
});
feed.run();
</script>
Instafeed will automatically look for a <div id="instafeed"></div>
and fill it with linked thumbnails. Of course, you can easily change this behavior using standard options. Also check out the advanced options for some advanced ways of customizing Instafeed.js.
Here are some of the most commonly used options:
Key | Default Value | Valid types | Description |
---|---|---|---|
accessToken |
null |
String, Function | Required. The Instagram access token, either as a string, or a function which returns a string |
debug |
false |
Boolean | Set to true to display debugging information |
filter |
null |
Function | A function used to exclude images from your results. The function will be given the image data as an argument, and expects the function to return a boolean. |
limit |
null |
Number | Display a maximum of this many posts |
sort |
null |
Function | A custom function to sort the media, rather than the default 'most recent' sorting |
target |
'instafeed' |
String, DOM Element | Either the ID or the DOM element itself where you want to add the images. |
template |
'<a href="https://github.com/stevenschobert/instafeed.js/blob/master/{{link}}"><img title="{{caption}}" src="https://github.com/stevenschobert/instafeed.js/raw/master/{{image}}" /></a>' |
String | A mustache template used to produce HTML for the document. |
transform |
null |
Function | A function used to transform the image data before it is rendered. |
See Options in the wiki for the complete reference.
The easiest way to control the way Instafeed.js looks on your website is to use the template option. You can write your own HTML markup and it will be used for every image that Instafeed.js fetches. See Templating.
See CHANGELOG.md.