v49

latestOpenAPI 3.1.0raw.githubusercontent.com2026-07-081445491.8 MB
Price

Evaluate price

[NOTE] It is recommended to use the /v1/prices/evaluate which offers further functionality, such as multiple prices, inline price definitions, and querying over preview events.

This endpoint is used to evaluate the output of a price for a given customer and time range. It enables filtering and grouping the output using computed properties, supporting the following workflows:

  1. Showing detailed usage and costs to the end customer.
  2. Auditing subtotals on invoice line items.

For these workflows, the expressiveness of computed properties in both the filters and grouping is critical. For example, if you'd like to show your customer their usage grouped by hour and another property, you can do so with the following grouping_keys: ["hour_floor_timestamp_millis(timestamp_millis)", "my_property"]. If you'd like to examine a customer's usage for a specific property value, you can do so with the following filter: my_property = 'foo' AND my_other_property = 'bar'.

By default, the start of the time range must be no more than 100 days ago and the length of the results must be no greater than 1000. Note that this is a POST endpoint rather than a GET endpoint because it employs a JSON body rather than query parameters.

post/prices/{price_id}/evaluate

Path parameters

price_idstring required

Request body

customer_idstring nullable

The ID of the customer to which this evaluation is scoped.

external_customer_idstring nullable

The external customer ID of the customer to which this evaluation is scoped.

timeframe_startstring date-time required

The inclusive lower bound for event timestamps

timeframe_endstring date-time required

The exclusive upper bound for event timestamps

filterstring nullable

A boolean computed property used to filter the underlying billable metric

grouping_keysstring[]

Properties (or computed properties) used to group the underlying billable metric

metric_parameter_overridesobject nullable

Optional overrides for parameterized billable metric parameters. If the metric has parameter definitions and no overrides are provided, defaults will be used.

Example request

{
  "filter": "my_numeric_property > 100 AND my_other_property = 'bar'",
  "grouping_keys": [
    "case when my_event_type = 'foo' then true else false end"
  ]
}

Response

OK