---
title: "Join an opt-in challenge"
method: POST
path: "/api/rewards/challenges/{id}/join"
tags: ["Rewards"]
---

# Join an opt-in challenge

`POST /api/rewards/challenges/{id}/join`

## 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/challenges/{id}/join`
- Auth: HTTP bearer

During its teaser, or while live if it can still be finished (409 "Too late to join"). Idempotent. Days logged before joining count. 400 on an auto challenge (everyone is in). Returns the card.

## Path parameters

- `id` number, required

## Headers

- `x-timezone` string, required

## Response `201`

## Changes

- **2026-11-10** `0d22636dfcb9`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/rewritelifestyle/apis/rewrite-lifestyle-api/changes/api/rewards/challenges/:id/join/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/0d22636dfcb9?raw)
