cURL
curl --request GET \
--url https://commet.co/api/v1/customers/{id}/plan-grants \
--header 'x-api-key: <api-key>'import { Commet } from "@commet/node";
const commet = new Commet({ apiKey: "ck_xxx" });
const response = await commet.customers.listPlanGrants({ id: "cus_xxx" });from commet import Commet
commet = Commet("ck_xxx")
customers_list_plan_grants_result = commet.customers.list_plan_grants("cus_xxx")client, err := commet.New("ck_xxx")
if err != nil {
log.Fatal(err)
}
ctx := context.Background()
customersListPlanGrantsResult, err := client.Customers.ListPlanGrants(ctx, "cus_xxx")
if err != nil {
log.Fatal(err)
}import co.commet.Commet;
var commet = Commet.builder().apiKey("ck_xxx").build();
var customersListPlanGrantsResult = commet.customers().listPlanGrants("cus_xxx");use Commet\Commet;
$commet = new Commet('ck_xxx');
$customersListPlanGrantsResult = $commet->customers->listPlanGrants(id: 'cus_xxx');{
"object": "list",
"data": [
{
"id": "grant_1a2b3c4d",
"customerId": "cus_1a2b3c4d",
"subscriptionId": "sub_1a2b3c4d",
"basePlanId": "plan_1a2b3c4d",
"planId": "plan_5e6f7a8b",
"planReleaseId": "release_5e6f7a8b",
"status": "active",
"duration": "until_date",
"durationCycles": null,
"startsAt": "2026-09-07T12:00:00.000Z",
"expiresAt": "2026-10-07T12:00:00.000Z",
"reason": "Evaluate Business features",
"source": "api",
"revokedAt": null,
"createdAt": "2026-09-07T12:00:00.000Z",
"updatedAt": "2026-09-07T12:00:00.000Z",
"events": [
{
"id": "event_1a2b3c4d",
"type": "created",
"reason": "Evaluate Business features",
"source": "api",
"previousExpiresAt": null,
"expiresAt": "2026-10-07T12:00:00.000Z",
"duration": "until_date",
"durationCycles": null,
"requestedExpiresAt": "2026-10-07T12:00:00.000Z",
"createdAt": "2026-09-07T12:00:00.000Z"
}
],
"object": "plan_grant",
"livemode": false
}
],
"hasMore": 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"
}
}Customers
List plan grants
List the independent audit timeline for paid-plan access granted without checkout or payment credentials.
GET
/
customers
/
{id}
/
plan-grants
cURL
curl --request GET \
--url https://commet.co/api/v1/customers/{id}/plan-grants \
--header 'x-api-key: <api-key>'import { Commet } from "@commet/node";
const commet = new Commet({ apiKey: "ck_xxx" });
const response = await commet.customers.listPlanGrants({ id: "cus_xxx" });from commet import Commet
commet = Commet("ck_xxx")
customers_list_plan_grants_result = commet.customers.list_plan_grants("cus_xxx")client, err := commet.New("ck_xxx")
if err != nil {
log.Fatal(err)
}
ctx := context.Background()
customersListPlanGrantsResult, err := client.Customers.ListPlanGrants(ctx, "cus_xxx")
if err != nil {
log.Fatal(err)
}import co.commet.Commet;
var commet = Commet.builder().apiKey("ck_xxx").build();
var customersListPlanGrantsResult = commet.customers().listPlanGrants("cus_xxx");use Commet\Commet;
$commet = new Commet('ck_xxx');
$customersListPlanGrantsResult = $commet->customers->listPlanGrants(id: 'cus_xxx');{
"object": "list",
"data": [
{
"id": "grant_1a2b3c4d",
"customerId": "cus_1a2b3c4d",
"subscriptionId": "sub_1a2b3c4d",
"basePlanId": "plan_1a2b3c4d",
"planId": "plan_5e6f7a8b",
"planReleaseId": "release_5e6f7a8b",
"status": "active",
"duration": "until_date",
"durationCycles": null,
"startsAt": "2026-09-07T12:00:00.000Z",
"expiresAt": "2026-10-07T12:00:00.000Z",
"reason": "Evaluate Business features",
"source": "api",
"revokedAt": null,
"createdAt": "2026-09-07T12:00:00.000Z",
"updatedAt": "2026-09-07T12:00:00.000Z",
"events": [
{
"id": "event_1a2b3c4d",
"type": "created",
"reason": "Evaluate Business features",
"source": "api",
"previousExpiresAt": null,
"expiresAt": "2026-10-07T12:00:00.000Z",
"duration": "until_date",
"durationCycles": null,
"requestedExpiresAt": "2026-10-07T12:00:00.000Z",
"createdAt": "2026-09-07T12:00:00.000Z"
}
],
"object": "plan_grant",
"livemode": false
}
],
"hasMore": 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"
}
}List the independent audit timeline for paid-plan access granted without checkout or payment credentials.
Autorizaciones
Encabezados
API version used by this reference. Send this header to select this contract explicitly.
Parámetros de ruta
¿Esta página le ayudó?