MAKEUGC PLATFORM API · DOCS V2
Projects
List your projects and reuse a store project to keep API-generated assets organized.
Workflow
- List projects and copy an id, or find/create a store project by name.
- Pass project_id to generation endpoints that support it.
Example IDs and media URLs are placeholders. Replace them with values from your account and accessible media files.
List projects #
/projects
List projects belonging to your account.
Parameters
No request parameters.
Request example
curl --fail-with-body --max-time 120 -X GET "https://app.makeugc.ai/api/platform/projects" \
-H "X-Api-Key: $MAKEUGC_API_KEY"
// 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);
# 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
{
"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 #
/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: |
Request example
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"
}'
// 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);
# 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
{
"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 #
/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 --fail-with-body --max-time 120 -X GET "https://app.makeugc.ai/api/platform/enterprise/projects" \
-H "X-Api-Key: $MAKEUGC_API_KEY"
// 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);
# 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
{
"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.