---
title: "Price an arbitrary keyword count"
method: GET
path: "/keywords/billing-preview"
tags: ["Keywords"]
---

# Price an arbitrary keyword count

`GET /keywords/billing-preview`

## Request

- Base URL: `https://ai.redreplier.com/ai-app/api/v1`
- URL: `https://ai.redreplier.com/ai-app/api/v1/keywords/billing-preview`
- Auth: HTTP bearer

Which plan a given number of active keywords lands on, and what changing to it costs now.

## Query parameters

- `desiredKeywordCount` integer, required

## Headers

- `X-Workspace-Id` string

## Response `200`

Billing preview

- KeywordBillingPreview
  - `currentPlanName` string, nullable
  - `currentMonthlyPrice` number
  - `targetPlanName` string, nullable
  - `targetMonthlyPrice` number
  - `targetKeywords` integer: Active keywords the target plan allows.
  - `immediateCharge` number: Prorated amount charged now, 0 unless this is an upgrade.
  - `isUpgrade` boolean
  - `isDowngrade` boolean
  - `requiresImmediatePayment` boolean

## Other responses

- `400`: Validation error
- `401`: Missing, invalid, expired or revoked API key or access token. `code: token_issuer_lost_access` means the member who created the API key was deactivated or lost access to the workspace: ask a workspace admin for a new key
- `403`: The credentials are valid but cannot be used here. `code: permission_denied`: the workspace role behind the API key or OAuth sign-in lacks `redreplier.write`; `role`, `keyRole` and `issuerRole` say which role fell short. `code: subscription_required`: the organization plan does not include API access. `code: workspace_access_denied`: `X-Workspace-Id` names a workspace the caller cannot reach, or an API key was sent to a workspace other than its own
- `429`: Rate limit exceeded

---

[API](https://skmtc.dev/redreplier/apis/redreplier-public-api.md) · [All operations](https://skmtc.dev/redreplier/apis/redreplier-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/redreplier/apis/redreplier-public-api/revisions/4388cca3045e?raw)
