Skip to content

Get a product

The products.get operation: GET /api/v1/products/{id} in the REST API and the products_get tool in the MCP server.

GET/api/v1/products/{id}

Returns one product of the brand's catalog in the request's mode, archived or not: its kind, whether it is active, its entitlements and its pricing-table hints (displayOrder, highlighted). The brand's pricing table shows its active products of kind plan.

At a glance

  • REST: GET /api/v1/products/{id}
  • MCP tool: products_get
  • Operation ID: products.get
  • Scope: Brand
  • Permission: catalog:read
  • Risk tier: read
  • Dry run: Not supported
  • Idempotency: Not needed (read only)
  • Modes: Test and live
  • Authentication: API key with the catalog:read scope
  • Since: M4

Request

Path parameters

FieldTypeDescription
idprod_… ID

Query parameters

This operation takes no query parameters.

Response

200 OK with a JSON object:

FieldTypeDescription
idprod_… ID
object"product"
brandIdbrd_… ID
livemodeboolean
namestring
descriptionstring or null
taxCategoryIdone of 9 values, e.g. electronically_supplied_service, saas, ebook (all in the OpenAPI document)
kindone of standard, plan
entitlementsarray of object
entitlements[].featureKeystring
entitlements[].valueboolean or number or string
lifetimeEntitlementsbooleanA one-time purchase of the product grants its entitlements for good (spec §36.1).
displayOrderinteger or null
highlightedboolean
activeboolean
imagesarray of string
metadataobject
createdAtdate-time
updatedAtdate-time

Examples

A plan

HTTP
GET /api/v1/products/prod_01m4tx5nj8emwbyf7y9vcf47y0
Authorization: Bearer or_test_…

Response (200):

JSON
{
  "id": "prod_01m4tx5nj8emwbyf7y9vcf47y0",
  "object": "product",
  "brandId": "brd_01m4tx5nj8emwbyf7y9vcf47x4",
  "livemode": false,
  "name": "Pro",
  "description": "For growing teams.",
  "taxCategoryId": "saas",
  "kind": "plan",
  "entitlements": [
    {
      "featureKey": "seats.max",
      "value": 10
    },
    {
      "featureKey": "feature.export",
      "value": true
    }
  ],
  "lifetimeEntitlements": false,
  "displayOrder": 2,
  "highlighted": true,
  "active": true,
  "images": [],
  "metadata": {},
  "createdAt": "2026-10-13T12:00:00.000Z",
  "updatedAt": "2026-10-13T12:00:00.000Z"
}

Errors

CodeHTTP statusWhenWhat to do
resource_not_found404No product with this ID is visible to the request.Check the ID and that your credentials are scoped to the right organization, entity, brand and mode.
permission_denied403You can't see this brand's catalog.Ask an organization owner or admin for a role or scope that allows this action.

It can also return these common errors: validation_failed, api_version_unsupported, authentication_required, api_key_invalid, scope_required, dry_run_not_supported, rate_limited, internal_error.