# tys.garments.publish()

> Publish a complete draft (same checks as Studio; 422 lists what is missing).

Source: https://docs.tryyoursize.com/reference/python/garments-publish/

*Method* · `tryyoursize`

Publish a complete draft (same checks as Studio; 422 lists what is missing).

```python
def publish(garment_id: str, *, idempotency_key: Optional[str] = None) -> GarmentVersion
```

## Parameters

- **`garment_id`** (`str`, required): The draft's ID.
- **`idempotency_key`** (`Optional[str]`, optional, default `None`)

## Returns

`GarmentVersion`: The published version.

## Errors

`InvalidRequestError` (422); `err.issues` lists what is missing.

## Example

**Python**

```python
try:
    tys.garments.publish(draft["id"])
except tryyoursize.InvalidRequestError as err:
    print(err.issues)  # what is missing
```

**Node.js**

```ts
try {
  await tys.garments.publish(draft.id);
} catch (err) {
  if (err instanceof InvalidRequestError) console.log(err.issues); // what is missing
}
```

**cURL**

```bash
curl -X POST https://api.tryyoursize.com/v1/garments/<garment_id>/publish \
  -H "Authorization: Bearer $TRYYOURSIZE_SECRET_KEY" \
  -H "TYS-Version: 2026-10-25"
```

## See also

- [garments.publish (HTTP API)](https://docs.tryyoursize.com/api/reference/operations/publishcataloggarment.md)
