Skip to main content

API Overview

Get started with the Creation Rights REST API. Covers authentication, endpoints, and conventions.

Base URL

All API requests are made to:

https://api.creationrights.com/v1

The API uses HTTPS exclusively. HTTP requests are redirected.

Authentication

Authenticate using a Bearer token in the Authorization header:

curl -H "Authorization: Bearer YOUR_API_KEY" \
  https://api.creationrights.com/v1/projects

Getting an API Key

  1. Go to Settings → API Keys
  2. Click Create Key
  3. Give the key a name and select permission scopes
  4. Copy the key. It's only shown once

API keys inherit the permissions of the user who created them, scoped further by the selected permissions.

Request Format

  • Content-Type: application/json for request bodies
  • Method: Standard REST verbs: GET, POST, PUT, PATCH, DELETE
  • Pagination: Cursor-based using cursor and limit query parameters
  • Filtering: Field-specific query parameters (e.g., ?status=active)

Example: Create a Project

curl -X POST https://api.creationrights.com/v1/projects \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Summer Campaign",
    "description": "Assets for the summer 2026 campaign",
    "visibility": "private"
  }'

Response Format

All responses follow a consistent envelope:

{
  "data": { ... },
  "meta": {
    "request_id": "req_abc123",
    "timestamp": "2026-04-08T12:00:00Z"
  }
}

List Responses

List endpoints return paginated results:

{
  "data": [ ... ],
  "meta": {
    "total": 142,
    "cursor": "eyJpZCI6MTAwfQ",
    "has_more": true
  }
}

Pass cursor to the next request to get the next page.

Error Handling

Errors return an appropriate HTTP status code with a structured body:

{
  "error": {
    "code": "validation_error",
    "message": "The 'name' field is required.",
    "details": [
      { "field": "name", "issue": "required" }
    ]
  }
}

Common Status Codes

CodeMeaning
200Success
201Created
400Bad request. Check the error details
401Unauthorized. Invalid or missing API key
403Forbidden. Insufficient permissions
404Not found
429Rate limited. See Retry-After header
500Internal server error

Rate Limiting

Rate limits vary by plan. See Plans & Limits for details.

Rate limit headers are included in every response:

X-RateLimit-Limit: 300
X-RateLimit-Remaining: 298
X-RateLimit-Reset: 1712563200

Core Endpoints

Projects

MethodEndpointDescription
GET/projectsList all projects
POST/projectsCreate a project
GET/projects/:idGet a project
PATCH/projects/:idUpdate a project
DELETE/projects/:idDelete a project

Assets

MethodEndpointDescription
GET/assetsList assets
POST/assetsUpload an asset
GET/assets/:idGet asset details
PATCH/assets/:idUpdate asset metadata
DELETE/assets/:idDelete an asset

Agents

MethodEndpointDescription
GET/agentsList available agents
POST/agents/runRun an agent
GET/agents/runs/:idGet execution status

Workflows

MethodEndpointDescription
GET/workflowsList workflows
POST/workflowsCreate a workflow
POST/workflows/:id/runTrigger a workflow
GET/workflows/runs/:idGet run status

SDKs

Official SDKs are available for:

  • JavaScript/TypeScript: npm install @creationrights/sdk
  • Python: pip install creationrights

Both SDKs provide typed interfaces for all API endpoints, handle authentication, and manage pagination automatically.

Webhooks

Creation Rights can send HTTP callbacks when events occur. Configure webhooks in Settings → Webhooks.

Supported events include:

  • asset.created, asset.updated, asset.deleted
  • project.created, project.updated
  • workflow.completed, workflow.failed
  • agent.completed, agent.failed
  • talent.cleared, talent.flagged

Each webhook payload includes the event type, timestamp, and relevant data.