The definitive source of the best
JavaScript libraries, frameworks, and plugins.

  • ×


    A simple Instagram javascript plugin
    Filed under 

    • 🔾63%Overall
    • 3,495
    • 23 days
    • 🕩862
    • 👥3


    Build Status npm version

    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.

    Hosted Alternative

    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.

    Check out Behold


    Setting up Instafeed is pretty straight-forward - there are 3 main steps.

    1. Create a Facebook app linked to Instagram, and add yourself as a test user. See Managing User Tokens.
    2. Create an access token and provide it to an Instagram Token service
    3. Add the instafeed.js script to your web page and provide some simple options. See Basic Usage
    <script type="text/javascript" src="path/to/instafeed.min.js"></script>

    Note: Instafeed.js is also compatible with require.js and commonJS exports

    Basic Usage

    <div id="instafeed"></div>
    <script type="text/javascript">
        var feed = new Instafeed({
          accessToken: 'your-token'

    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.


    • A Facebook developer account, and an Instagram account with some media posted to it.
    • A Facebook app linked to your Instagram account, and a token generated through that app.
    • A service to keep your access token fresh


    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="{{link}}"><img title="{{caption}}" src="{{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.



    Show All