---
title: "Get programs (localized) by org. Roles: admin."
method: GET
path: "/api/memberships/{membershipId}/certs"
tags: ["Programs", "Organizations"]
---

# Get programs (localized) by org. Roles: admin.

`GET /api/memberships/{membershipId}/certs`

## Path parameters

- `membershipId` integer, required

## Query parameters

- `typeCode` 'CERTIFICATION' | 'CHALLENGE' | 'MEMBERSHIP' | 'PASS'
- `locale` string

## Response `200`

OK

- CertsResponse
  - `success` boolean
  - `error` string
  - `certs` CertCore[]
    - `audit` Audit
      - `createdTime` string, date-time
      - `modifiedTime` string, date-time
      - `modifiedBy` string
    - `alternateLocales` object
      - `empty` boolean
    - `certId` integer
    - `membershipId` integer
    - `typeCode` 'CERTIFICATION' | 'CHALLENGE' | 'MEMBERSHIP' | 'PASS'
    - `name` string
    - `shortDescription` string
    - `description` string
    - `external` boolean
    - `required` boolean
    - `audienceId` integer
    - `externalPluginId` integer
    - `externalId` string
    - `externalReferenceId` string
    - `allowAdminEnroll` boolean
    - `allowSelfEnroll` boolean
    - `autoEnrollEnabled` boolean
    - `autoRenewalEnabled` boolean
    - `isOpen` boolean
    - `unlisted` boolean
    - `credits` number
    - `pointsRequired` number, float
    - `renewalPointsRequired` number, float
    - `completionStrategy` 'ALL_PREREQ_COMPLETE' | 'ANY_PREREQ_COMPLETE' | 'EARNED_REQUIRED_POINTS'
    - `renewalStrategy` 'ALL_PREREQ_COMPLETE' | 'ANY_PREREQ_COMPLETE' | 'EARNED_REQUIRED_POINTS'
    - `certificateUuid` string, uuid
    - `certificatesEnabled` boolean
    - `enrollmentNotificationsEnabled` boolean
    - `completionNotificationsEnabled` boolean
    - `imageUuid` string, uuid
    - `openDate` string, date
    - `closeDate` string, date
    - `termIntervalCode` 'DAY' | 'WEEK' | 'MONTH' | 'YEAR'
    - `termIntervalCount` integer
    - `termStartCode` 'EARN' | 'ENROLL' | 'FIRST_EARN' | 'FIRST_ENROLL' | 'ANCHOR'
    - `expireReminderDays` integer
    - `earlyRenewalDays` integer
    - `renewalGracePeriodDays` integer
    - `renewalAnchorDate` string, date
    - `emailCompletionBody` string
    - `tier` integer
    - `benefitTypeCode` 'PHYSICAL' | 'VIRTUAL' | 'HYBRID'
    - `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
    - `memberCert` MemberCertCore
      - `audit` Audit
        - `createdTime` string, date-time
        - `modifiedTime` string, date-time
        - `modifiedBy` string
      - `token` string, uuid
      - `enrollDate` string, date
      - `firstEnrollDate` string, date
      - `startDate` string, date
      - `earnDate` string, date
      - `firstEarnDate` string, date
      - `renewalEligibleDate` string, date
      - `expireDate` string, date
      - `failDate` string, date
      - `endDate` string, date
      - `creditsEarned` number
      - `pointsEarned` number, float
      - `status` 'NOT_STARTED' | 'IN_PROGRESS' | 'COMPLETED' | 'FAILED' | 'EXPIRED'
      - `externalEnrollmentId` string
      - `renewable` boolean
      - `expiresSoon` boolean
    - `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/memberships/:membershipId/certs/get.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)
