Plan

The plan resource.

Basehttps://rest.carbon.ms/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.

GEThttps://rest.carbon.ms/plan
curl --request GET \
  --url 'https://rest.carbon.ms/plan?select=*&limit=10' \
  --header 'Authorization: Bearer <api-key>'
Response
[
  {
    "id": "abc123def456",
    "name": "Example",
    "userBasedPricing": true,
    "stripePriceId": "xyz789",
    "tasksLimit": 0,
    "aiTokensLimit": 0,
    "stripeTrialPeriodDays": 0,
    "public": true
  }
]
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}`.

GEThttps://rest.carbon.ms/plan
curl --request GET \
  --url 'https://rest.carbon.ms/plan?id=eq.%7Bid%7D' \
  --header 'Authorization: Bearer <api-key>'
Response
{
  "id": "abc123def456",
  "name": "Example",
  "userBasedPricing": true,
  "stripePriceId": "xyz789",
  "tasksLimit": 0,
  "aiTokensLimit": 0,
  "stripeTrialPeriodDays": 0,
  "public": true
}
POST/plan

Create a plan

Create a new plan.

Body parameters

namestringrequired
userBasedPricingbooleanrequired
stripePriceIdstringrequired
tasksLimitnumberrequired
aiTokensLimitnumberrequired
stripeTrialPeriodDaysnumberrequired
publicbooleanrequired
POSThttps://rest.carbon.ms/plan
curl --request POST \
  --url https://rest.carbon.ms/plan \
  --header 'Authorization: Bearer <api-key>' \
  --header 'Content-Type: application/json' \
  --header 'Prefer: return=representation' \
  --data '{"name":"Example","userBasedPricing":true,"stripePriceId":"xyz789","tasksLimit":0,"aiTokensLimit":0,"stripeTrialPeriodDays":0,"public":true}'
Response
{
  "id": "abc123def456",
  "name": "Example",
  "userBasedPricing": true,
  "stripePriceId": "xyz789",
  "tasksLimit": 0,
  "aiTokensLimit": 0,
  "stripeTrialPeriodDays": 0,
  "public": true
}
PATCH/plan

Update a plan

Update an existing plan, matched on `id`.

Body parameters

namestringrequired
userBasedPricingbooleanrequired
stripePriceIdstringrequired
tasksLimitnumberrequired
aiTokensLimitnumberrequired
stripeTrialPeriodDaysnumberrequired
publicbooleanrequired
PATCHhttps://rest.carbon.ms/plan
curl --request PATCH \
  --url 'https://rest.carbon.ms/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",
  "userBasedPricing": true,
  "stripePriceId": "xyz789",
  "tasksLimit": 0,
  "aiTokensLimit": 0,
  "stripeTrialPeriodDays": 0,
  "public": true
}
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}`.

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