---
title: "Get credit balance and plan"
method: GET
path: "/api/v1/credits"
tags: ["Account"]
---

# Get credit balance and plan

`GET /api/v1/credits`

## Request

- Base URL: `https://beyourcover.com`
- URL: `https://beyourcover.com/api/v1/credits`
- Auth: HTTP bearer

Current credit balances (monthly + overage), plan tier, and concurrency limit for the authenticated subscription. `marketing_kits` lists the books whose marketing kit is open this period and the included renders (print wrap, audiobook cover, text-free cover) each still has.

## Response `200`

Credit and plan summary.

- CreditSummary
  - `tier` string, required: Plan tier (e.g. `starter`, `growth`, `scale`).
  - `credits_remaining` integer, required: Unused monthly credits.
  - `credits_monthly` integer, required: Monthly allowance at renewal.
  - `overage_credits` integer, required: Purchased overage credits.
  - `total_available` integer, required: credits_remaining + overage_credits.
  - `concurrent_limit` integer, required: Max queued/processing jobs at once.
  - `is_active` boolean, required
  - `billing_url` string, uri, required: Where a human can manage the plan / top up.
  - `marketing_kits` MarketingKitMeter, required: The marketing-kit book meter. Opening a book's marketing kit in the app spends one kit of the plan's allowance for the billing period and includes one print wrap, one audiobook cover and one text-free cover for that book: the first `POST /api/v1/wraps`, `audiobook-cover` and `remove-text` on it cost 0 credits. Display only: the render decides the price when it runs.
    - `period_key` string, required: The billing period, `YYYY-MM`.
    - `kits_left` integer, nullable, required: Marketing kits the plan can still open this period. Null when the plan has no kit allowance.
    - `kits_total` integer, nullable, required
    - `kits_used` integer, nullable, required: Kits of the plan's allowance spent this period (`books_used`, the number the Enterprise dashboard shows). It can be lower than the length of `books`: a book opened earlier under the same `period_key` and a paid extra book are in `books` but spend no kit.
    - `books` object[], nullable, required: Every book with a marketing kit under this `period_key`, newest first, including paid extra books and books opened earlier in the same key. Null when the meter could not be read: assume no included renders.
      - `bookId` string, uuid, required
      - `title` string, nullable, required
      - `included_formats_left` string[], required: Included renders this book still has. Empty when all are used or the kit expired.

## Other responses

- `401`: Missing/malformed API key, unknown or inactive key, or inactive subscription detected during credit checks. `code`: `unauthorized`.
- `403`: The API key is valid but its owner has no active enterprise subscription. `code`: `forbidden`.
- `404`: The subscription row disappeared between auth and lookup. `code`: `subscription_not_found`.
- `500`: Server error. `code` is `internal_error`.

---

[API](https://skmtc.dev/beyourcover/apis/beyourcover-partner-api.md) · [All operations](https://skmtc.dev/beyourcover/apis/beyourcover-partner-api/llms.txt) · [OpenAPI document](https://skmtc.dev/beyourcover/apis/beyourcover-partner-api/revisions/82ad2c7c8ede?raw)
