Skip to main content
POST /api/user-challenges/accept Requires authentication.
Authorization
string
required
Bearer token obtained from /api/auth/login or /api/auth/signup. Format: Bearer <token>.
Only one active challenge is allowed at a time. Attempting to accept a new challenge while one is already active returns a 400 error. Complete or abandon your current challenge before starting a new one.

Request body

templateId
number
required
The numeric ID of the challenge template to accept.

Example

curl --request POST \
  --url http://localhost:3000/api/user-challenges/accept \
  --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' \
  --header 'Content-Type: application/json' \
  --data '{
    "templateId": 3
  }'

Response

201 Created Returns the newly created user challenge object with status ACTIVE.
id
number
required
Unique numeric identifier for this user challenge.
user_id
string
required
UUID of the authenticated user who accepted the challenge.
template_id
number
required
ID of the challenge template this challenge is based on.
status
string
required
Current status of the challenge. Always ACTIVE on creation.
start_date
string
required
ISO 8601 timestamp of when the challenge was started.
completed_at
string
ISO 8601 timestamp of when the challenge was completed. null for active challenges.
notes
string
Progress notes for the challenge. null if no notes have been added.
created_at
string
required
ISO 8601 timestamp of when the record was created.
updated_at
string
required
ISO 8601 timestamp of the last update to this record.
Example response
{
  "id": 14,
  "user_id": "a3f2c1d0-89b4-4e7a-b6f5-1234567890ab",
  "template_id": 3,
  "status": "ACTIVE",
  "start_date": "2026-03-17T09:00:00.000Z",
  "completed_at": null,
  "notes": null,
  "created_at": "2026-03-17T09:00:00.000Z",
  "updated_at": "2026-03-17T09:00:00.000Z"
}

Errors

StatusDescription
400The user already has an active challenge. Message: "Você já possui um desafio ativo".
401Missing, invalid, or expired token.
404No challenge template found with the given templateId.

Build docs developers (and LLMs) love