# tys.garments.publish()

> Publishes a complete draft.

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

*Method* · `@tryyoursize/node`

Publishes a complete draft. Key scope: `garments:publish`.

```ts
publish(id: string, options?: RequestOptions): Promise<GarmentVersion>
```

## Parameters

- **`id`** (`string`, required): The draft's ID.
- **`options`** (`RequestOptions`, optional)

## Returns

`Promise<GarmentVersion>`: The published version. Shoppers get sizes for it from now on.

## Errors

`InvalidRequestError` (422) with `issues` listing what is missing.

## Example

**Node.js**

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

**Python**

```python
try:
    tys.garments.publish(draft["id"])
except tryyoursize.InvalidRequestError as err:
    print(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)
