cURL
curl --request GET \
--url https://commet.co/api/v1/plans/{id} \
--header 'x-api-key: <api-key>'import { Commet } from "@commet/node";
const commet = new Commet({ apiKey: "ck_xxx" });
const plan = await commet.plans.get({ id: "pln_xxx" });from commet import Commet
commet = Commet("ck_xxx")
plan = commet.plans.get("pln_xxx")client, err := commet.New("ck_xxx")
if err != nil {
log.Fatal(err)
}
ctx := context.Background()
plan, err := client.Plans.Get(ctx, "pln_xxx")
if err != nil {
log.Fatal(err)
}import co.commet.Commet;
var commet = Commet.builder().apiKey("ck_xxx").build();
var plan = commet.plans().get("pln_xxx");use Commet\Commet;
$commet = new Commet('ck_xxx');
$plan = $commet->plans->get(id: 'pln_xxx');{
"id": "plan_1a2b3c4d",
"name": "Pro",
"code": "pro",
"description": "For growing API products",
"consumptionModel": "metered",
"isPublic": true,
"isDefault": false,
"isFree": false,
"blockOnExhaustion": true,
"sortOrder": 0,
"planGroupId": "group_1a2b3c4d",
"metadata": {},
"createdAt": "2026-09-07T12:00:00.000Z",
"updatedAt": "2026-09-07T12:00:00.000Z",
"features": [
{
"code": "api_calls",
"name": "API Calls",
"type": "usage",
"unitName": "calls",
"enabled": true,
"includedAmount": 1000,
"unlimited": false,
"overage": {
"enabled": false,
"model": null,
"unitPrice": null
},
"regionalPrices": []
}
],
"prices": [
{
"id": "price_1a2b3c4d",
"billingInterval": "monthly",
"price": 2000,
"isDefault": true,
"trialDays": 0,
"includedBalance": null,
"includedCredits": null,
"offerId": null,
"inheritsFromPriceId": null,
"metadata": {},
"marketPrices": [],
"regionalPrices": []
}
],
"exchangeRates": [],
"object": "plan",
"livemode": false
}{
"error": {
"type": "validation_error",
"code": "validation_error",
"message": "The request contains an invalid parameter.",
"doc_url": "https://commet.co/docs/api-reference/2026-08-27/errors/validation_error.md"
}
}{
"error": {
"type": "authentication_error",
"code": "unauthorized",
"message": "A valid API key is required.",
"doc_url": "https://commet.co/docs/api-reference/2026-08-27/errors/unauthorized.md"
}
}{
"error": {
"type": "authentication_error",
"code": "forbidden",
"message": "You do not have permission to perform this operation.",
"doc_url": "https://commet.co/docs/api-reference/2026-08-27/errors/forbidden.md"
}
}{
"error": {
"type": "not_found_error",
"code": "not_found",
"message": "The requested resource was not found.",
"doc_url": "https://commet.co/docs/api-reference/2026-08-27/errors/not_found.md"
}
}{
"error": {
"type": "rate_limit_error",
"code": "rate_limited",
"message": "Too many requests. Retry after the interval specified in the Retry-After header.",
"doc_url": "https://commet.co/docs/api-reference/2026-08-27/errors/rate_limited.md"
}
}{
"error": {
"type": "internal_error",
"code": "internal_error",
"message": "An unexpected error occurred while processing the request.",
"doc_url": "https://commet.co/docs/api-reference/2026-08-27/errors/internal_error.md"
}
}Plans
Get plan
Get a plan with public price IDs and their automatic introductory offer IDs.
GET
/
plans
/
{id}
cURL
curl --request GET \
--url https://commet.co/api/v1/plans/{id} \
--header 'x-api-key: <api-key>'import { Commet } from "@commet/node";
const commet = new Commet({ apiKey: "ck_xxx" });
const plan = await commet.plans.get({ id: "pln_xxx" });from commet import Commet
commet = Commet("ck_xxx")
plan = commet.plans.get("pln_xxx")client, err := commet.New("ck_xxx")
if err != nil {
log.Fatal(err)
}
ctx := context.Background()
plan, err := client.Plans.Get(ctx, "pln_xxx")
if err != nil {
log.Fatal(err)
}import co.commet.Commet;
var commet = Commet.builder().apiKey("ck_xxx").build();
var plan = commet.plans().get("pln_xxx");use Commet\Commet;
$commet = new Commet('ck_xxx');
$plan = $commet->plans->get(id: 'pln_xxx');{
"id": "plan_1a2b3c4d",
"name": "Pro",
"code": "pro",
"description": "For growing API products",
"consumptionModel": "metered",
"isPublic": true,
"isDefault": false,
"isFree": false,
"blockOnExhaustion": true,
"sortOrder": 0,
"planGroupId": "group_1a2b3c4d",
"metadata": {},
"createdAt": "2026-09-07T12:00:00.000Z",
"updatedAt": "2026-09-07T12:00:00.000Z",
"features": [
{
"code": "api_calls",
"name": "API Calls",
"type": "usage",
"unitName": "calls",
"enabled": true,
"includedAmount": 1000,
"unlimited": false,
"overage": {
"enabled": false,
"model": null,
"unitPrice": null
},
"regionalPrices": []
}
],
"prices": [
{
"id": "price_1a2b3c4d",
"billingInterval": "monthly",
"price": 2000,
"isDefault": true,
"trialDays": 0,
"includedBalance": null,
"includedCredits": null,
"offerId": null,
"inheritsFromPriceId": null,
"metadata": {},
"marketPrices": [],
"regionalPrices": []
}
],
"exchangeRates": [],
"object": "plan",
"livemode": false
}{
"error": {
"type": "validation_error",
"code": "validation_error",
"message": "The request contains an invalid parameter.",
"doc_url": "https://commet.co/docs/api-reference/2026-08-27/errors/validation_error.md"
}
}{
"error": {
"type": "authentication_error",
"code": "unauthorized",
"message": "A valid API key is required.",
"doc_url": "https://commet.co/docs/api-reference/2026-08-27/errors/unauthorized.md"
}
}{
"error": {
"type": "authentication_error",
"code": "forbidden",
"message": "You do not have permission to perform this operation.",
"doc_url": "https://commet.co/docs/api-reference/2026-08-27/errors/forbidden.md"
}
}{
"error": {
"type": "not_found_error",
"code": "not_found",
"message": "The requested resource was not found.",
"doc_url": "https://commet.co/docs/api-reference/2026-08-27/errors/not_found.md"
}
}{
"error": {
"type": "rate_limit_error",
"code": "rate_limited",
"message": "Too many requests. Retry after the interval specified in the Retry-After header.",
"doc_url": "https://commet.co/docs/api-reference/2026-08-27/errors/rate_limited.md"
}
}{
"error": {
"type": "internal_error",
"code": "internal_error",
"message": "An unexpected error occurred while processing the request.",
"doc_url": "https://commet.co/docs/api-reference/2026-08-27/errors/internal_error.md"
}
}Get a plan with public price IDs and their automatic introductory offer IDs.
Authorizations
Headers
API version used by this reference. Send this header to select this contract explicitly.
Path Parameters
Response
Success
Available options:
metered, credits, balance Required range:
-9007199254740991 <= x <= 9007199254740991Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Allowed value:
"plan"Was this page helpful?