# Releases

> Group shipped issues into releases.

A release bundles one or more issues that shipped together. Linking an issue to a release automatically transitions it to `released`.

## GET /releases

```bash
curl "https://app.getresolved.ai/api/v1/releases?product_id=prd_123" \
  -H "Authorization: Bearer gr_..."
```

**Query parameters**

- `product_id`
- `limit` — default 50, max 200
- `offset` — default 0

## POST /releases

```bash
curl https://app.getresolved.ai/api/v1/releases \
  -H "Authorization: Bearer gr_..." \
  -H "Content-Type: application/json" \
  -d '{
    "product_id": "prd_123",
    "title": "v2.4 — Search & filters",
    "version": "2.4.0",
    "issue_ids": ["GET-005", "GET-009", "GET-012"]
  }'
```

**Body**

- `product_id` (required)
- `title` (required)
- `description` (optional)
- `version` (optional)
- `issue_ids` (optional) — UUIDs or shortcodes; matching issues are transitioned to `released`

## GET /releases/{id}

Returns the release with its linked issues.

```bash
curl https://app.getresolved.ai/api/v1/releases/rel_123 \
  -H "Authorization: Bearer gr_..."
```

