---
title: "Add an assignment. It is not issued to anyone until a coach issues it. Logged."
method: POST
path: "/api/admin/assignments/catalog"
tags: ["Admin — Assignments"]
---

# Add an assignment. It is not issued to anyone until a coach issues it. Logged.

`POST /api/admin/assignments/catalog`

## 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/admin/assignments/catalog`
- Auth: HTTP bearer

## Request body

- CatalogItemDto
  - `code` string
  - `title` string
  - `instructions` string
  - `programTypes` string[]: Empty means every program
  - `steps` AssignmentStepDto[]
    - `label` string, required
    - `mode` 'auto' | 'client' | 'coach' | 'client_or_coach', required
    - `autoSignal` 'group_photo' | 'group_message' | 'diary_entry' | 'coach_dm', nullable: Required for `auto`; on `client` it pre-ticks
    - `allowsUpload` boolean
    - `routesToCoach` boolean: Completing it opens a work item for the named coach (ASG-06)
  - `sortOrder` number
  - `isActive` boolean

## Response `201`

## Changes

- **2026-10-19** `0c72870a5acb`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/rewritelifestyle/apis/rewrite-lifestyle-api/changes/api/admin/assignments/catalog/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)
