Your Instagram feed.
Clean JSON or drop-in widget.

Token rotation, API maintenance, and Meta's next policy change stay on our side.

๐Ÿ‡ต๐Ÿ‡น ๐ŸŒŠ ๐ƒ๐ž๐ณ๐š๐ฌ๐ฌ๐ž๐ญ๐ž ๐š๐ง๐จ๐ฌ ๐๐ž ๐œ๐š๐ฆ๐ข๐ง๐ก๐š๐๐š๐ฌ ๐๐ž ๐๐จ๐ฆ๐ข๐ง๐ ๐จ.

Este fim de semana, a @viaalgarviana๐—ฃ๐—ฎ๐˜‚๐—น๐—ผ ๐—ผ๐—ป ๐—š๐—ฒ๐—ฟ๐—บ๐—ฎ๐—ป ๐—ง๐—ฉ ๐Ÿ‡ฉ๐Ÿ‡ช๐Ÿ“บ 
Our owner and lead guide ๐—ฃ๐—ฎ๐˜‚๐—น๐—ผ ๐—ฃ๐—ฎ๐—น๐—ต๐—ผ๐˜๐—ฎ joined German TV presenter Every year in November, the sun comes back for a few days:
we call it ๐˜๐˜ฆ๐˜ณรฃ๐˜ฐ ๐˜ฅ๐˜ฆ ๐˜šรฃ๐˜ฐ ๐˜”๐˜ข๐˜ณ๐˜ต๐˜ช๐˜ฏ๐˜ฉ๐˜ฐ. โ˜€๏ธ

Itโ€™s a Portugal smells different in November. ๐Ÿ
The streets fill with smoke from roasted chestnuts, and every corner feels likโ€œSustainableโ€ isnโ€™t a fancy word we add to brochures, itโ€™s a daily commitment.

For us, itโ€™s in the partnerships we nurtThereโ€™s a quieter side of Portugal that doesnโ€™t make it to the postcards. Between cliffs and cork forests, the Alentejo

What's included

Everything you need.
Nothing you don't.

Full API access on every tier. No feature gating, no dashboard lock-in.

JSON API

Your feed as clean JSON. Fetch it in any framework, build your own component.

Drop-in widget

One script tag. Renders a styled feed with no configuration required.

Token rotation

Instagram access tokens rotate automatically. You never touch one.

Real-time sync

New posts appear within an hour of publishing. No manual refresh.

Multi-client dashboard

Manage feeds for all your client sites from a single login.

Built by a developer

Joana Parente uses FeedFusion on her own client sites. This is a tool she maintains and actively depends on.

Get started

Three lines of logic.
One API call. Your Instagram feed, anywhere.

Pick your framework. The output is the same JSON on every tab.

app/instagram-feed/page.tsx
import Image from "next/image";

type Post = {
  id: string;
  mediaUrl: string;
  thumbnailUrl: string | null;
  permalink: string;
  caption: string;
  mediaType: "IMAGE" | "VIDEO" | "CAROUSEL_ALBUM";
};

async function getFeed() {
  const res = await fetch(
    "https://api.feedfusion.dev/v1/feed/feed_abc123",
    {
      headers: { Authorization: "Bearer ff_live_abc123" },
      next: { revalidate: 3600 },
    }
  );
  if (!res.ok) throw new Error("Failed to fetch feed");
  return res.json() as Promise<{ data: Post[] }>;
}

export default async function InstagramFeed() {
  const { data: posts } = await getFeed();

  return (
    <section className="grid grid-cols-2 gap-4 sm:grid-cols-3 lg:grid-cols-4">
      {posts.map((post) => (
        <a
          key={post.id}
          href={post.permalink}
          target="_blank"
          rel="noopener noreferrer"
          className="group relative aspect-square overflow-hidden rounded-lg"
        >
          <Image
            src={post.thumbnailUrl ?? post.mediaUrl}
            alt={post.caption?.slice(0, 120) ?? "Instagram post"}
            fill
            className="object-cover transition-transform group-hover:scale-105"
            sizes="(max-width: 640px) 50vw, (max-width: 1024px) 33vw, 25vw"
          />
        </a>
      ))}
    </section>
  );
}

Use cases

Built for how developers actually work

Coming soon

For agencies and freelancers

One Agency account covers every client site you manage. Unlimited feeds, no per-client billing, no "Powered by FeedFusion" badge on anyone's site.

Coming soon

For hospitality and tourism

Hotels, restaurants, and tour operators post to Instagram every day. FeedFusion keeps that content live on their website automatically โ€” no staff action required.

Start building for free.

One feed, full API access, no credit card.