RevKeenDocs

Create a meter price

Create a usage price for a meter with a specific pricing model (per_unit, graduated, volume, package, or percentage). A usage-based subscription has one currency; metered events attributed to it are assumed to be in that currency and are not FX-converted by RevKeen.


Related endpoints

  • GET /meters — List meters
  • POST /meters — Create a meter
  • GET /meters/{id} — Get a meter
  • PATCH /meters/{id} — Update a meter
  • GET /meters/{meterId}/prices — List meter prices
  • PATCH /meters/{meterId}/prices/{priceId} — Update a meter price
  • POST /meters/{meterId}/prices/{priceId}/deactivate — Deactivate a meter price

Common errors

  • 400 invalid_request — malformed payload or failed validation.
  • 401 unauthenticated — missing, malformed, or revoked API key.
  • 404 resource_missing — the referenced resource does not exist or is not visible to your key.

Idempotency

Pass an Idempotency-Key header (UUID v4 recommended) to make retries safe. Keys are valid for 24 hours; see the idempotency guide.

POST
/meters/{meterId}/prices
x-api-key<token>

Your RevKeen API key (powered by Unkey). Get it from Dashboard > Settings > API Keys. Use rk_sandbox_* for test mode and rk_live_* for production.

In: header

Path Parameters

meterId*string

Meter ID

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

Stuck on an error response? Ask the RevKeen assistant to explain it.
curl -X POST "https://api.revkeen.com/v2/meters/string/prices" \
  -H "x-api-key: $REVKEEN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "pricing_model": "per_unit",
    "currency": "GBP",
    "unit_amount_minor": 100,
    "unit_amount_decimal": "0.02",
    "flat_fee_minor": 0,
    "package_size": 100,
    "cost_per_unit_minor": 5,
    "name": "Full day",
    "nickname": "holiday-club-full-day",
    "description": "Full-day holiday club session",
    "tiers": [
      {
        "up_to": null,
        "unit_amount_minor": null,
        "flat_amount_minor": null
      }
    ],
    "filter_conditions": [
      {}
    ],
    "filter_priority": 10,
    "pay_in_advance": true,
    "spending_minimum_cents": 50,
    "percentage_rate_bps": 70
  }'
{
  "data": {
    "property1": null,
    "property2": null
  }
}
{
  "error": "string"
}
{
  "error": "string"
}
{
  "error": "string"
}