⚡ SceneSKU API · v1

Developer Documentation

Stop building demos with "Product 1" and Lorem Ipsum. SceneSKU provides AI-generated, category-specific scene packs — realistic product titles, descriptions, pricing, tags, and professional lifestyle images — ready for your Next.js project in minutes.

Get API Key
Sign up for free
Browse Packs
See live demo
View on GitHub
This demo's source

Why SceneSKU?

Every e-commerce developer faces the same friction: client demos look unprofessional with placeholder data, and sourcing real product content is time-consuming, legally ambiguous, and category-inconsistent.


Quick Start

Get your API key from scenesku.com and add it to your environment.

.env.local

# .env.local
SCENESKU_API_KEY=your_api_key_here

Fetch products in a Server Component

// app/products/page.tsx — Next.js 15 Server Component
import type { ScenePacksResponse } from "@/lib/types";

export const revalidate = 3600; // ISR: revalidate hourly

export default async function ProductsPage() {
  const res = await fetch(
    "https://api.scenesku.com/v1/packs?category=womens-fashion&per_page=12",
    {
      headers: {
        Authorization: `Bearer ${process.env.SCENESKU_API_KEY}`,
        "Content-Type": "application/json",
      },
      next: { revalidate: 3600 },
    }
  );

  if (!res.ok) throw new Error("SceneSKU API error: " + res.status);

  const { data }: ScenePacksResponse = await res.json();

  return (
    <div className="grid grid-cols-4 gap-4">
      {data.map((pack) => (
        <article key={pack.id}>
          <img
            src={pack.images[0]?.watermark_url}
            alt={`${pack.product_data.product_title} — SceneSKU mock image`}
          />
          <h2>{pack.product_data.product_title}</h2>
          <p>{pack.product_data.price}</p>
        </article>
      ))}
    </div>
  );
}

Static generation with generateStaticParams

// app/products/[id]/page.tsx — SSG with generateStaticParams
export async function generateStaticParams() {
  const res = await fetch("https://api.scenesku.com/v1/packs?per_page=100", {
    headers: { Authorization: `Bearer ${process.env.SCENESKU_API_KEY}` },
  });
  const { data } = await res.json();
  return data.map((pack: { id: string }) => ({ id: pack.id }));
}

export default async function ProductPage({ params }: { params: { id: string } }) {
  const res = await fetch(`https://api.scenesku.com/v1/packs/${params.id}`, {
    headers: { Authorization: `Bearer ${process.env.SCENESKU_API_KEY}` },
  });
  const pack = await res.json();
  // ...render product detail
}

API Reference

GET
/v1/packs

List scene packs. Supports ?category=<slug>, ?page=<n>, ?per_page=<n>.

GET
/v1/packs/:id

Fetch a single pack with full image set and product data.

GET
/v1/categories

List all available category slugs.


Ready to build?

Create a free account on SceneSKU and get your first scene pack in under 2 minutes. No credit card required.

Get Started on SceneSKU ↗