Skip to content
Developers
API docs / Features

MAKEUGC PLATFORM API · DOCS V2

Projects

List your projects and reuse a store project to keep API-generated assets organized.

Workflow

  1. List projects and copy an id, or find/create a store project by name.
  2. Pass project_id to generation endpoints that support it.
Both list endpoints return non-deleted projects owned by your API-key account, most recently updated first. They do not currently accept pagination parameters.
POST /projects finds or creates a shop project in the Shopify App folder; it is not a general project update endpoint.

Example IDs and media URLs are placeholders. Replace them with values from your account and accessible media files.

List projects #

GET /projects

List projects belonging to your account.

Parameters

No request parameters.

Request example

cURL
curl --fail-with-body --max-time 120 -X GET "https://app.makeugc.ai/api/platform/projects" \
  -H "X-Api-Key: $MAKEUGC_API_KEY"
JavaScript
// Run on your server with Node.js 20+.
const apiKey = process.env.MAKEUGC_API_KEY;
if (!apiKey) throw new Error("Set MAKEUGC_API_KEY first");

const response = await fetch("https://app.makeugc.ai/api/platform/projects", {
  method: "GET",
  headers: {
    "X-Api-Key": apiKey,
  },
  signal: AbortSignal.timeout(120000),
});
const text = await response.text();
if (!response.ok) {
  throw new Error(`HTTP ${response.status}: ${text} (request ${response.headers.get("x-request-id")})`);
}
const result = JSON.parse(text);
console.log(result);
Python
# Install the requests package before running.
import os
import requests

response = requests.get(
    "https://app.makeugc.ai/api/platform/projects",
    headers={"X-Api-Key": os.environ["MAKEUGC_API_KEY"]},
    timeout=120,
)
if not response.ok:
    raise RuntimeError(f"HTTP {response.status_code}: {response.text} "
                       f"(request {response.headers.get('x-request-id')})")
print(response.json())

200 response example

JSON response
{
  "status": true,
  "total": 1,
  "projects": [
    {
      "id": "project_123",
      "name": "My project",
      "folderId": null,
      "createdAt": "2026-10-13T00:00:00.000Z",
      "updatedAt": "2026-10-13T00:00:00.000Z"
    }
  ]
}

All requests require X-Api-Key. See errors & retries for unsuccessful responses.

Find or create a store project #

POST /projects

Reuse a project with the supplied store name or create one when needed.

Request body

Parameter Description
name
string
Required
Store project name, typically a shop domain. Whitespace is trimmed.

Allowed: 1–256 characters

Request example

cURL
curl --fail-with-body --max-time 120 -X POST "https://app.makeugc.ai/api/platform/projects" \
  -H "X-Api-Key: $MAKEUGC_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "name": "store.myshopify.com"
}'
JavaScript
// Run on your server with Node.js 20+.
const apiKey = process.env.MAKEUGC_API_KEY;
if (!apiKey) throw new Error("Set MAKEUGC_API_KEY first");

const response = await fetch("https://app.makeugc.ai/api/platform/projects", {
  method: "POST",
  headers: {
    "X-Api-Key": apiKey,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
  "name": "store.myshopify.com"
}),
  signal: AbortSignal.timeout(120000),
});
const text = await response.text();
if (!response.ok) {
  throw new Error(`HTTP ${response.status}: ${text} (request ${response.headers.get("x-request-id")})`);
}
const result = JSON.parse(text);
console.log(result);
Python
# Install the requests package before running.
import os
import requests

payload = {
    "name": "store.myshopify.com"
}

response = requests.post(
    "https://app.makeugc.ai/api/platform/projects",
    headers={"X-Api-Key": os.environ["MAKEUGC_API_KEY"]},
    json=payload,
    timeout=120,
)
if not response.ok:
    raise RuntimeError(f"HTTP {response.status_code}: {response.text} "
                       f"(request {response.headers.get('x-request-id')})")
print(response.json())

200 response example

JSON response
{
  "status": true,
  "data": {
    "id": "project_123",
    "name": "store.myshopify.com",
    "created_at": "2026-10-13T00:00:00.000Z",
    "updated_at": "2026-10-13T00:00:00.000Z"
  }
}

All requests require X-Api-Key. See errors & retries for unsuccessful responses.

List projects for model generation #

GET /enterprise/projects

Alternate project list used with the model API. Notice that this response has no outer status field.

Parameters

No request parameters.

Request example

cURL
curl --fail-with-body --max-time 120 -X GET "https://app.makeugc.ai/api/platform/enterprise/projects" \
  -H "X-Api-Key: $MAKEUGC_API_KEY"
JavaScript
// Run on your server with Node.js 20+.
const apiKey = process.env.MAKEUGC_API_KEY;
if (!apiKey) throw new Error("Set MAKEUGC_API_KEY first");

const response = await fetch("https://app.makeugc.ai/api/platform/enterprise/projects", {
  method: "GET",
  headers: {
    "X-Api-Key": apiKey,
  },
  signal: AbortSignal.timeout(120000),
});
const text = await response.text();
if (!response.ok) {
  throw new Error(`HTTP ${response.status}: ${text} (request ${response.headers.get("x-request-id")})`);
}
const result = JSON.parse(text);
console.log(result);
Python
# Install the requests package before running.
import os
import requests

response = requests.get(
    "https://app.makeugc.ai/api/platform/enterprise/projects",
    headers={"X-Api-Key": os.environ["MAKEUGC_API_KEY"]},
    timeout=120,
)
if not response.ok:
    raise RuntimeError(f"HTTP {response.status_code}: {response.text} "
                       f"(request {response.headers.get('x-request-id')})")
print(response.json())

200 response example

JSON response
{
  "total": 1,
  "projects": [
    {
      "id": "project_123",
      "name": "My project",
      "folderId": null,
      "createdAt": "2026-10-13T00:00:00.000Z",
      "updatedAt": "2026-10-13T00:00:00.000Z"
    }
  ]
}

All requests require X-Api-Key. See errors & retries for unsuccessful responses.