---
title: "The add-ons this project can have, what each costs, and which are on (any member)"
method: GET
path: "/v1/projects/{project_id}/addons"
tags: ["billing"]
---

# The add-ons this project can have, what each costs, and which are on (any member)

`GET /v1/projects/{project_id}/addons`

## Request

- Base URL: `https://api.wavehouse.cloud`
- URL: `https://api.wavehouse.cloud/v1/projects/{project_id}/addons`
- Auth: one of:
  - API key in cookie `whc_session`
  - HTTP bearer
  - API key in header `X-API-Key`

Each add-on is bought per project and billed to the org: one line on its subscription per add-on, at the number of its projects that have it on. `monthly_price_micros` is charged whether or not the add-on is used; what flows through it is metered like anything else.

## Path parameters

- `project_id` string, required

## Query parameters

- `limit` integer: page size; 0 or absent means 50
- `cursor` string: next_cursor from the previous page; absent for the first page

## Response `200`

OK

- ProjectAddonPage
  - `data` ProjectAddonView[], required
    - `addon_id` string, required
    - `currency` string, required: ISO 4217
    - `enabled` boolean, required
    - `enabled_at` string, date-time: absent while off
    - `monthly_price_micros` integer, required: per project with it on, billed to the org
    - `name` string, required
  - `next_cursor` string, nullable, required: pass as cursor to fetch the next page; null on the last page

## Other responses

- `429`: Rate limited, per client IP, API key or org; a client IP is also refused on every route for a while after repeated authentication failures. A limited operation carries RateLimit-Policy and RateLimit on every response; wait Retry-After seconds before retrying.
- `default`: Error

---

[API](https://skmtc.dev/wavehouse/apis/wavehouse-cloud-api.md) · [All operations](https://skmtc.dev/wavehouse/apis/wavehouse-cloud-api/llms.txt) · [OpenAPI document](https://skmtc.dev/wavehouse/apis/wavehouse-cloud-api/revisions/adea029bf505?raw)
