UGCLabUGCLab

Projects

List and manage projects in your UGCLab workspace

List projects in your workspace.

Base URL

https://api.ugclab.app/api/v1

List Projects

Get a paginated list of all projects in your workspace.

GET /projects

Query Parameters

ParameterTypeDefaultDescription
limitnumber50Number of items per page (max 100)
cursorstring-Cursor for pagination (from previous response)

Response

{
  "data": {
    "items": [
      {
        "id": "clxyz123...",
        "name": "Summer Campaign",
        "folder": {
          "id": "clfolder123...",
          "name": "Marketing"
        },
        "ugcCount": 15,
        "createdAt": "2025-01-15T10:30:00.000Z",
        "updatedAt": "2025-01-20T14:45:00.000Z"
      }
    ],
    "pagination": {
      "hasMore": true,
      "nextCursor": "clxyz456...",
      "limit": 50
    }
  },
  "meta": {
    "requestId": "req_abc123def456",
    "timestamp": "2025-01-15T10:30:00.000Z"
  }
}

Response Fields

FieldTypeDescription
idstringUnique project ID (use this in UGC creation requests)
namestringProject name
folderobjectParent folder information (can be null)
folder.idstringFolder ID
folder.namestringFolder name
ugcCountnumberNumber of UGC items in this project
createdAtstringISO 8601 creation timestamp
updatedAtstringISO 8601 last update timestamp

Examples

curl -X GET "https://api.ugclab.app/api/v1/projects?limit=20" \
  -H "Authorization: Bearer ugc_your_api_key"
const response = await fetch('https://api.ugclab.app/api/v1/projects?limit=20', {
  headers: {
    'Authorization': 'Bearer ugc_your_api_key',
  },
});

const data = await response.json();

for (const project of data.data.items) {
  console.log(`${project.name} (${project.ugcCount} UGCs)`);
}

// Handle pagination
if (data.data.pagination.hasMore) {
  const nextPage = await fetch(
    `https://api.ugclab.app/api/v1/projects?cursor=${data.data.pagination.nextCursor}`,
    { headers: { 'Authorization': 'Bearer ugc_your_api_key' } }
  );
}
import requests

response = requests.get(
    'https://api.ugclab.app/api/v1/projects',
    headers={'Authorization': 'Bearer ugc_your_api_key'},
    params={'limit': 20}
)

data = response.json()

for project in data['data']['items']:
    print(f"{project['name']} ({project['ugcCount']} UGCs)")

# Handle pagination
if data['data']['pagination']['hasMore']:
    next_response = requests.get(
        'https://api.ugclab.app/api/v1/projects',
        headers={'Authorization': 'Bearer ugc_your_api_key'},
        params={'cursor': data['data']['pagination']['nextCursor']}
    )

Error Codes

CodeHTTP StatusDescription
RATE_LIMIT_EXCEEDED429Too many requests
INTERNAL_ERROR500Internal server error

See Authentication for authentication-related errors.

On this page