# Craftwork Products Catalog API

Public, read-only access to product cards published in the Craftwork catalog.

## Endpoint

```http
GET https://craftwork.design/api/products/catalog
```

No authentication is required.

## Query parameters

| Parameter       | Type                            | Default    | Description                           |
| --------------- | ------------------------------- | ---------- | ------------------------------------- |
| `offset`        | integer                         | `0`        | Number of products to skip.           |
| `limit`         | integer                         | `30`       | Maximum number of products to return. |
| `sortByPrice`   | `free`, `paid`, `paid_free`     | `free`     | Filter products by price.             |
| `sortByUpdated` | `trending`, `popular`, `recent` | `trending` | Select the catalog ordering.          |

## Example

```bash
curl "https://craftwork.design/api/products/catalog?limit=20&offset=0&sortByPrice=paid_free&sortByUpdated=recent"
```

## Response

Successful requests return JSON with a `products` array, the total matching product count, and a
`hasMore` pagination flag. Product cards contain public marketplace metadata and preview URLs; they
do not grant access to protected downloads.

The machine-readable OpenAPI description is available at
[`/.well-known/openapi/products.json`](https://craftwork.design/.well-known/openapi/products.json).
