Get rate card

OpenAPI contract

Method
GET
Path
/api/v1/billing/rate-card
Security
jwtBearer (bearer)
Response status
200 400 401 403 429 500
Request and response schemas
JSON
{
  "requestBody": {},
  "responses": {
    "200": {
      "description": "Rate card",
      "content": {
        "application/json": {
          "$ref": "#/components/schemas/RateCardResponse"
        }
      }
    },
    "400": {
      "description": "Invalid request",
      "content": {
        "application/json": {
          "$ref": "#/components/schemas/RequestError"
        }
      }
    },
    "401": {
      "description": "Authentication required or invalid",
      "content": {
        "application/json": {
          "$ref": "#/components/schemas/SecurityError"
        }
      }
    },
    "403": {
      "description": "Authenticated but not permitted",
      "content": {
        "application/json": {
          "$ref": "#/components/schemas/SecurityError"
        }
      }
    },
    "429": {
      "description": "Rate limit exceeded",
      "content": {
        "application/json": {
          "$ref": "#/components/schemas/SecurityError"
        }
      }
    },
    "500": {
      "description": "Unexpected server error",
      "content": {
        "application/json": {
          "$ref": "#/components/schemas/ApiError"
        }
      }
    }
  }
}

GET /api/v1/billing/rate-card is JWT-only. It returns the flat baseNcu cost applied to every build, the per-method, per-platform, and per-input-MB rates (ncuPerMethod, ncuPerPlatform, ncuPerInputMb), the per-feature featureCosts list keyed by feature code, and the active plans matrix ordered by price.

Each plan row carries its monthly NCU grant, price, currency, concurrency and platform limits, retention hours, rollover multiplier, watermark flag, and whether it is purchasable. The rate card mirrors the same cost model used to quote and charge builds, so client pricing UI never needs to hardcode NCU rates.

http
GET /api/v1/billing/rate-card
Authorization: Bearer <access token>