---
title: "Create a program category. Roles: admin."
method: POST
path: "/api/program-categories"
tags: ["Programs"]
---

# Create a program category. Roles: admin.

`POST /api/program-categories`

## Request body

- ProgramCategoryCreateRequest
  - `name` string, required
  - `description` string
  - `required` boolean
  - `downgradePolicyCode` 'NEVER' | 'DURING_RENEWAL' | 'ALWAYS_NO_REFUND' | 'ALWAYS_REFUND' | 'ALWAYS_REFUND_LESS_FEES', required
  - `membershipId` integer, required
  - `typeCode` 'CERTIFICATION' | 'CHALLENGE' | 'MEMBERSHIP' | 'PASS', required
  - `tierBehaviorCode` 'NONE' | 'REPLACE_ON_ENROLL' | 'REPLACE_ON_COMPLETION', required

## Response `200`

OK

- ProgramCategoryResponse
  - `success` boolean
  - `error` string
  - `programCategory` ProgramCategoryCore
    - `audit` Audit
      - `createdTime` string, date-time
      - `modifiedTime` string, date-time
      - `modifiedBy` string
    - `alternateLocales` object
      - `empty` boolean
    - `programCategoryId` integer
    - `membershipId` integer
    - `typeCode` 'CERTIFICATION' | 'CHALLENGE' | 'MEMBERSHIP' | 'PASS'
    - `name` string
    - `description` string
    - `required` boolean
    - `tierBehaviorCode` 'NONE' | 'REPLACE_ON_ENROLL' | 'REPLACE_ON_COMPLETION'
    - `downgradePolicyCode` 'NEVER' | 'DURING_RENEWAL' | 'ALWAYS_NO_REFUND' | 'ALWAYS_REFUND' | 'ALWAYS_REFUND_LESS_FEES'
    - `locale` string

## Other responses

- `400` — Bad request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not found
- `500` — Internal server error

## Changes

- **2026-09-02** `870f28ba2607` — 5 info
  - added the optional property `error/errorId` to the response with the `400` status
  - added the optional property `error/errorId` to the response with the `401` status
  - added the optional property `error/errorId` to the response with the `403` status
  - added the optional property `error/errorId` to the response with the `404` status
  - …1 more

[Change history](https://skmtc.dev/mobilecoach/apis/untitled-api/changes/api/program-categories/post.md)

---

[API](https://skmtc.dev/mobilecoach/apis/untitled-api.md) · [All operations](https://skmtc.dev/mobilecoach/apis/untitled-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/mobilecoach/untitled-api/revisions/870f28ba2607/schema)
