---
title: "Give a user points (admins and coaches)"
method: POST
path: "/api/rewards/admin/users/{userId}/points"
tags: ["Rewards (admin)"]
---

# Give a user points (admins and coaches)

`POST /api/rewards/admin/users/{userId}/points`

## Request

- Base URL: `https://api.rewritelifestyle.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.rewritelifestyle.ai/api/rewards/admin/users/{userId}/points`
- Auth: HTTP bearer

Adds 1–5000 points to a client, member or lead in the rewards rollout. They land on the user's next app open as `credited_now` ("+500 · reason") and count toward levels, so a level crossed brings its prize. Gifts only add — points can never be taken back. Send a fresh `request_id` per submit: the same one again returns `gifted: false` and gives nothing.

## Path parameters

- `userId` number, required

## Request body

- GiftPointsDto
  - `amount` number, required: Points per user, 1–5000.
  - `reason` string, required: Shown to the user in the app when the points land.
  - `note` string: Internal only — kept in the activity log, never shown to the user.
  - `request_id` string: A fresh UUID per submit. Sending the same one again (a double click, a retry) never gives the points twice. Omit and every call is a new gift.

## Response `201`

## Changes

- **2026-10-29** `d553d8e5a671`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/rewritelifestyle/apis/rewrite-lifestyle-api/changes/api/rewards/admin/users/:userId/points/post.md)

---

[API](https://skmtc.dev/rewritelifestyle/apis/rewrite-lifestyle-api.md) - [All operations](https://skmtc.dev/rewritelifestyle/apis/rewrite-lifestyle-api/llms.txt) - [OpenAPI document](https://skmtc.dev/rewritelifestyle/apis/rewrite-lifestyle-api/revisions/28695827f27a?raw)
