Skip to main content
POST
Create Project
Create a new project for your AI-powered application. Projects serve as containers for end users, API keys, and generation requests. Each developer can create multiple projects for different applications or environments.

Authentication

Requires valid JWT token with developer role.

Headers

Authorization
string
required
Bearer JWT access token obtained from login
X-User-Role
string
required
Must be set to developer
X-Developer-Key
string
required
Active developer key for authentication
Content-Type
string
required
Must be application/json

Request Body

name
string
required
Project name (3-100 characters). Should be descriptive and unique among your projects.Examples: “Production API”, “My SaaS App”, “Customer Portal”, “E-Commerce Platform”
description
string
Detailed project description (optional, max 500 characters). Describe the project’s purpose, target users, or key features.Example: “AI-powered image generation platform for e-commerce product photography”

Response

id
string
Unique UUID identifier for the newly created project
name
string
Project name as provided
description
string
Project description (null if not provided)
owner_id
string
UUID of the developer who created the project (your user ID)
is_active
boolean
Project status - always true for newly created projects
created_at
string
ISO 8601 timestamp when the project was created
updated_at
string
ISO 8601 timestamp of last update (null for new projects)

Example Request

Example Response

Next Steps After Creation

After creating a project, you should:
  1. Generate Project API Keys via Create API Key
  2. Configure Starter Kit with your project credentials
  3. Register End Users via Register endpoint
  4. Monitor Usage via Project Stats
(((REPLACE_THIS_WITH_IMAGE: cloud-api-project-setup-workflow.png: Step-by-step diagram showing project creation, API key generation, Starter Kit configuration, and user registration)))

Use Cases

Multi-Environment Setup

Create separate projects for each environment:

Multi-Product Portfolio

Manage multiple applications under one developer account:

Client Project Management

Create projects for individual clients:

Project Limits

Free tier developers can create up to 5 active projects. Upgrade to Cloud Starter or Cloud Premium for unlimited projects.

Tier Limits

TierMax ProjectsEnd Users per ProjectAPI Keys per Project
Free Starter51003
Cloud Starter2010,00010
Cloud PremiumUnlimitedUnlimitedUnlimited

Best Practices

Naming Conventions

Do:
  • Use descriptive names: “Production - E-Commerce Platform”
  • Include environment: “Staging - Mobile App”
  • Mention client/product: “Acme Corp - Customer Portal”
  • Keep names under 50 characters for display purposes
Don’t:
  • Use generic names: “Project 1”, “Test”, “New Project”
  • Include sensitive data: API keys, passwords, internal IDs
  • Use special characters that break URLs: #, ?, &

Organization Strategies

By Environment:
By Client:
By Product:

Security Considerations

  1. Principle of Least Privilege: Create separate projects for different trust levels
  2. Environment Isolation: Never share API keys between production and development
  3. Client Separation: Each client should have their own isolated project
  4. Audit Trail: Use descriptive names and descriptions for tracking
  5. Regular Cleanup: Deactivate or delete unused projects

Error Responses

Invalid Project Name (422)

Description Too Long (422)

Project Limit Reached (403)

Unauthorized (401)

Insufficient Permissions (403)

List Projects

View all your projects

Update Project

Modify project details

Create API Key

Generate project API keys

Project Stats

Monitor project usage

Cloud Admin Guide

Create via web interface

Quick Start

Complete project setup tutorial

Authorizations

Authorization
string
header
required

The access token received from the authorization server in the OAuth 2.0 flow.

Body

application/json
name
string
required
Required string length: 1 - 255
description
string | null
Maximum string length: 1000

Response

Successful Response

id
string<uuid>
required