# Publish a product

`POST https://api.cademi.com.br/api/v3/products/{product_id}/publications`

Operation ID: `products.publications.create` · API v3

Starts an asynchronous publication of the product and all of its content.

Publishing also publishes the product's copies in replicated accounts. Replicated products can be published.

The response returns an operation. Track it through the URL in the `Location` header.

Required permissions: `products.publish`.

## Parameters

| Name | In | Type | Required | Description |
|---|---|---|---|---|
| `product_id` | path | string | yes |  |

## Responses

### 202

The publication was accepted for asynchronous processing. Returns the operation that tracks it.

Body: `data`: Operation.

Fields of Operation:

| Field | Type | Required | Description |
|---|---|---|---|
| `attempt` | object or null | yes |  |
| `cancellation_requested` | boolean | yes |  |
| `created_at` | string (date-time) | yes |  |
| `error` | object or null | yes |  |
| `expires_at` | string (date-time) | yes |  |
| `finished_at` | string or null (date-time) | yes |  |
| `id` | string | yes | Public ID, with the op_ prefix. |
| `items_url` | string | yes |  |
| `object` | string, one of `operation` | yes |  |
| `progress` | object | yes |  |
| `result_url` | string or null | yes |  |
| `started_at` | string or null (date-time) | yes |  |
| `status` | string, one of `queued`, `running`, `succeeded`, `partially_succeeded`, `failed`, `canceled` | yes |  |
| `type` | string | yes | Type of the operation, from a fixed set of values. |

### 401

The credential is missing, malformed, expired, or revoked.

Body: Error.

### 403

The current credentials do not have the permission required by this operation.

Body: Error.

### 404

The product was not found or is not accessible with the current credentials.

Body: Error.

### 422

The Idempotency-Key header is missing.

Body: Error.

Full schema: https://cademi.dev/openapi/v3.json
