Skip to content

Get the pricing table

The products.pricing_table operation: GET /api/v1/public/{brandSlug}/pricing_table in the REST API and the products_pricing_table tool in the MCP server.

GET/api/v1/public/{brandSlug}/pricing_table

Returns the brand's pricing table: its active products of kind: plan, in display order, with their active prices and the features each plan grants (by name). Use it to render plans on your own site; it needs no API key and is rate-limited per IP address.

Only what customers may see is included: no nicknames, metadata or internal fields. Archived products and prices are left out.

At a glance

  • REST: GET /api/v1/public/{brandSlug}/pricing_table
  • MCP tool: products_pricing_table
  • Operation ID: products.pricing_table
  • Scope: Brand
  • Permission: catalog:read
  • Risk tier: read
  • Dry run: Not supported
  • Idempotency: Not needed (read only)
  • Modes: Test and live
  • Authentication: None (a public endpoint, rate-limited per IP address)
  • Since: M4

Request

Path parameters

FieldTypeDescription
brandSlugstringThe brand's slug, e.g. acme-app.

Query parameters

This operation takes no query parameters.

Response

200 OK with a JSON object:

FieldTypeDescription
object"pricing_table"
brandobject
brand.idbrd_… ID
brand.slugstring
brand.namestring
livemodeboolean
productsarray of object
products[].idprod_… ID
products[].namestring
products[].descriptionstring or null
products[].imagesarray of string
products[].highlightedboolean
products[].displayOrderinteger or null
products[].featuresarray of objectWhat the plan grants, with each feature's name.
products[].features[].keystring
products[].features[].namestring
products[].features[].typeone of boolean, limit, enum
products[].features[].valueboolean or number or string
products[].pricesarray of object
products[].prices[].idprice_… ID
products[].prices[].lookupKeystring or null
products[].prices[].typeone of one_time, recurring, credit_pack
products[].prices[].currencystring
products[].prices[].taxBehaviorone of inclusive, exclusive
products[].prices[].amountmoney or nullFixed one-time or credit-pack amount.
products[].prices[].customAmountobject or nullThe range a buyer may choose from (custom-amount prices).
products[].prices[].creditPackobject or null
products[].prices[].recurringobject or null

Examples

Acme App's plans

HTTP
GET /api/v1/public/acme-app/pricing_table

Response (200):

JSON
{
  "object": "pricing_table",
  "brand": {
    "id": "brd_01m4tx5nj8emwbyf7y9vcf47x4",
    "slug": "acme-app",
    "name": "Acme App"
  },
  "livemode": true,
  "products": [
    {
      "id": "prod_01m4tx5nj8emwbyf7y9vcf47y0",
      "name": "Pro",
      "description": "For growing teams.",
      "images": [],
      "highlighted": true,
      "displayOrder": 2,
      "features": [
        {
          "key": "seats.max",
          "name": "Seats",
          "type": "limit",
          "value": 10
        },
        {
          "key": "feature.export",
          "name": "Export",
          "type": "boolean",
          "value": true
        }
      ],
      "prices": [
        {
          "id": "price_01m4tx5nj8emwbyf7y9vcf47y2",
          "lookupKey": "pro_monthly",
          "type": "recurring",
          "currency": "EUR",
          "taxBehavior": "inclusive",
          "amount": null,
          "customAmount": null,
          "creditPack": null,
          "recurring": {
            "interval": "month",
            "intervalCount": 1,
            "usageType": "licensed",
            "billingScheme": "tiered",
            "unitAmount": null,
            "tiersMode": "graduated",
            "tiers": [
              {
                "upTo": 10,
                "unitAmountMicros": "12000000",
                "flatAmount": null
              },
              {
                "upTo": "inf",
                "unitAmountMicros": "9000000",
                "flatAmount": null
              }
            ],
            "trialDays": 14,
            "includedCredits": null,
            "metered": null
          }
        }
      ]
    }
  ]
}

Errors

CodeHTTP statusWhenWhat to do
resource_not_found404No brand with this slug is visible to the request.Check the ID and that your credentials are scoped to the right organization, entity, brand and mode.

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