> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cuprice.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Create Project

> Create a new pricing project

Creates a new project under the authenticated user's account.

## Endpoint

```
POST /api/v1/projects
```

## Authentication

<ParamField header="Authorization" type="string" required>
  Bearer token with your API key. Requires `read_write` permission.
</ParamField>

## Body Parameters

<ParamField body="name" type="string" required>
  Project name. Maximum 100 characters.
</ParamField>

<ParamField body="description" type="string">
  Short description of the project.
</ParamField>

<ParamField body="pricingPageDescription" type="string">
  Longer description shown on the pricing page header.
</ParamField>

<ParamField body="currency" type="string" default="USD">
  Currency code for pricing (e.g. `"USD"`, `"EUR"`, `"GBP"`).
</ParamField>

## Response

Returns the full project object with status `201 Created`.

<ResponseField name="id" type="number">
  Unique project ID
</ResponseField>

<ResponseField name="name" type="string">
  Project display name
</ResponseField>

<ResponseField name="slug" type="string">
  Auto-generated URL-friendly identifier
</ResponseField>

<ResponseField name="description" type="string">
  Short project description
</ResponseField>

<ResponseField name="pricingPageDescription" type="string">
  Pricing page header description
</ResponseField>

<ResponseField name="shareId" type="string">
  Public share identifier for the embed widget
</ResponseField>

<ResponseField name="currency" type="string">
  Currency code
</ResponseField>

<ResponseField name="isActive" type="boolean">
  Whether the project is active (defaults to `true`)
</ResponseField>

<ResponseField name="createdAt" type="string">
  ISO 8601 creation timestamp
</ResponseField>

<ResponseField name="updatedAt" type="string">
  ISO 8601 last-updated timestamp
</ResponseField>

## Example

```bash theme={null}
curl -X POST https://cuprice.io/api/v1/projects \
  -H "Authorization: Bearer cpk_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "My SaaS App",
    "description": "AI-powered project management tool",
    "pricingPageDescription": "Simple, transparent pricing for teams of all sizes.",
    "currency": "USD"
  }'
```

```json theme={null}
{
  "id": 42,
  "name": "My SaaS App",
  "slug": "my-saas-app",
  "description": "AI-powered project management tool",
  "pricingPageDescription": "Simple, transparent pricing for teams of all sizes.",
  "shareId": "nTZ7axXQHU",
  "currency": "USD",
  "isActive": true,
  "createdAt": "2025-09-15T10:30:00.000Z",
  "updatedAt": "2025-09-15T10:30:00.000Z"
}
```

## Errors

| Status | Description                                   |
| ------ | --------------------------------------------- |
| `400`  | Missing `name` or name exceeds 100 characters |
| `401`  | Invalid or missing API key                    |
| `403`  | API key does not have `read_write` permission |
