Skip to content

Plan

The plan resource.

Base/plan
GET/plan

List plans

Retrieve a paginated list of plans. Filter, order, and select columns with PostgREST query parameters.

Query parameters

selectstring

Comma-separated columns to return. Defaults to all.

orderstring

Column to sort by, e.g. `createdAt.desc`.

limitinteger

Maximum rows to return.

offsetinteger

Rows to skip, for pagination.

GET/plan
curl --request GET \
  --url '<your-host>/plan?select=*&limit=10' \
  --header 'Authorization: Bearer <api-key>'
Response
[
  {
    "id": "abc123def456",
    "name": "Example",
    "tasksLimit": 0,
    "aiTokensLimit": 0,
    "public": true,
    "createdAt": "2026-01-01T00:00:00Z",
    "updatedAt": "2026-01-01T00:00:00Z"
  }
]
GET/plan

Retrieve a plan

Fetch a single plan by filtering on `id`.

Query parameters

idstring

Match on the plan's `id`, e.g. `eq.{id}`.

GET/plan
curl --request GET \
  --url '<your-host>/plan?id=eq.%7Bid%7D' \
  --header 'Authorization: Bearer <api-key>'
Response
{
  "id": "abc123def456",
  "name": "Example",
  "tasksLimit": 0,
  "aiTokensLimit": 0,
  "public": true,
  "createdAt": "2026-01-01T00:00:00Z",
  "updatedAt": "2026-01-01T00:00:00Z"
}
POST/plan

Create a plan

Create a new plan.

Body parameters

namestringrequired
tasksLimitnumberrequired
aiTokensLimitnumberrequired
publicbooleanrequired
POST/plan
curl --request POST \
  --url <your-host>/plan \
  --header 'Authorization: Bearer <api-key>' \
  --header 'Content-Type: application/json' \
  --header 'Prefer: return=representation' \
  --data '{"name":"Example","tasksLimit":0,"aiTokensLimit":0,"public":true}'
Response
{
  "id": "abc123def456",
  "name": "Example",
  "tasksLimit": 0,
  "aiTokensLimit": 0,
  "public": true,
  "createdAt": "2026-01-01T00:00:00Z",
  "updatedAt": "2026-01-01T00:00:00Z"
}
PATCH/plan

Update a plan

Update an existing plan, matched on `id`.

Body parameters

namestringrequired
tasksLimitnumberrequired
aiTokensLimitnumberrequired
publicbooleanrequired
PATCH/plan
curl --request PATCH \
  --url '<your-host>/plan?id=eq.%7Bid%7D' \
  --header 'Authorization: Bearer <api-key>' \
  --header 'Content-Type: application/json' \
  --header 'Prefer: return=representation' \
  --data '{"name":"Example"}'
Response
{
  "id": "abc123def456",
  "name": "Example",
  "tasksLimit": 0,
  "aiTokensLimit": 0,
  "public": true,
  "createdAt": "2026-01-01T00:00:00Z",
  "updatedAt": "2026-01-01T00:00:00Z"
}
DELETE/plan

Delete a plan

Delete a plan, matched on `id`. Returns 204 No Content.

Query parameters

idstring

The `id` of the plan to delete, e.g. `eq.{id}`.

DELETE/plan
curl --request DELETE \
  --url '<your-host>/plan?id=eq.%7Bid%7D' \
  --header 'Authorization: Bearer <api-key>'
204 No Content