---
title: "Get billing status"
method: GET
path: "/billing/status"
tags: ["Billing"]
---

# Get billing status

`GET /billing/status`

## Request

- Base URL: `https://app.openpo.st/api/v1`
- URL: `https://app.openpo.st/api/v1/billing/status`
- Auth: one of:
  - HTTP bearer
  - API key in cookie `openpost_session`

## Query parameters

- `workspace_id` string: Workspace ID
- `organization_id` string: Organization ID

## Response `200`

OK

- BillingStatusResponse
  - `$schema` string, uri: A URL to the JSON Schema for this object.
  - `access_restricted` boolean, required: Whether failed payment currently restricts paid-plan access
  - `billing_contact_email` string: Billing contact email from the latest Paddle customer snapshot
  - `can_manage_billing` boolean, required: Whether the current user may manage organization billing
  - `cancel_at_period_end` boolean, required: Whether the subscription cancels at period end
  - `current_period_end` string: Current billing period end
  - `limits` object: Entitlement limits from the local subscription snapshot
  - `organization_id` string, required: Organization ID
  - `past_due_since` string: Canonical Paddle time when the current past-due state began
  - `period_start` string: UTC month start for the usage counters
  - `plan_id` string: Plan ID
  - `provider` string: Billing provider
  - `provider_costs` ProviderCostSummary[], nullable, required: Confirmed hosted provider-cost estimates and unresolved reservations, separate from the product subscription
    - `budget_microusd` integer, required: Configured monthly safety limit covering confirmed cost and reservations
    - `cost_microusd` integer, required: Confirmed estimated provider cost in millionths of the currency unit
    - `currency` string, required: ISO 4217 estimate currency
    - `event_count` integer, required: Number of confirmed successful provider request estimates
    - `operations` ProviderCostOperationSummary[], nullable, required: Operation-level confirmed and reserved breakdown
      - `cost_microusd` integer, required: Confirmed estimated provider cost in millionths of the currency unit
      - `event_count` integer, required: Number of confirmed successful request estimates
      - `operation` string, required: Metered provider operation
      - `reserved_cost_microusd` integer, required: Reserved provider exposure in millionths of the currency unit
      - `reserved_event_count` integer, required: Number of in-flight or ambiguous request reservations
      - `reserved_units` integer, required: Reserved provider operation units not counted as confirmed billed usage
      - `units` integer, required: Confirmed estimated billed operation units
    - `period_start` string, required: UTC month start
    - `pricing_source_url` string, required: Provider pricing source used by this estimate
    - `provider` string, required: Provider key
    - `reserved_cost_microusd` integer, required: Reserved provider exposure in millionths of the currency unit
    - `reserved_event_count` integer, required: Number of in-flight or ambiguous provider request reservations
    - `reserved_units` integer, required: Reserved provider units not counted as confirmed billed usage
    - `units` integer, required: Confirmed estimated billed provider operation units
  - `status` string: Subscription status from the latest Paddle snapshot
  - `usage` object: Current-month product usage counters for a mirrored subscription
  - `workspace_id` string, required: Workspace ID

## Other responses

- `400`: Bad Request
- `403`: Forbidden
- `422`: Unprocessable Entity
- `500`: Internal Server Error

---

[API](https://skmtc.dev/openpo/apis/openpost-api.md) · [All operations](https://skmtc.dev/openpo/apis/openpost-api/llms.txt) · [OpenAPI document](https://skmtc.dev/openpo/apis/openpost-api/revisions/67d3964458a7?raw)
