⚡ 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
API Docs
Full API reference
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/scene-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/scene-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/scene-packs/${params.id}`, {
    headers: { Authorization: `Bearer ${process.env.SCENESKU_API_KEY}` },
  });
  const pack = await res.json();
  // ...render product detail
}

API Reference

Full docs ↗
GET
/v1/scene-packs

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

GET
/v1/scene-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 ↗