---
title: "Admin Grant Credits"
method: POST
path: "/api/v1/admin/clients/{client_id}/credits/grant"
tags: ["admin"]
---

# Admin Grant Credits

`POST /api/v1/admin/clients/{client_id}/credits/grant`

## Request

- Base URL: `https://api.nudgelink.co` (the document declares no server; this is the origin it was published from)
- URL: `https://api.nudgelink.co/api/v1/admin/clients/{client_id}/credits/grant`
- Auth: HTTP bearer

Grant N credits to a client and log a BillingEvent + AuditLog row.

Idempotency: if ``Idempotency-Key`` header is present and a prior grant
exists with the same key for this client, return the prior result
without re-applying. Without an idempotency key, double-clicks WILL
double-grant — the UI must always send one.

## Path parameters

- `client_id` string, uuid, required

## Headers

- `Idempotency-Key` string, nullable

## Request body

- GrantCreditsRequest
  - `amount` integer, required: positive number of credits
  - `reason` string, required

## Response `200`

Successful Response

- GrantCreditsResponse
  - `client_id` string, uuid, required
  - `new_balance` integer, required
  - `billing_event_id` string, uuid, required
  - `granted_amount` integer, required

## Other responses

- `422`: Validation Error

---

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