> For the complete documentation index, see [llms.txt](https://docs.stellic.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.stellic.com/stellic-partner-api/programs/list-a-program-s-audits.md).

# List a program's audits

Use this endpoint to find a program's audit IDs before you read, draft, or publish one. An audit is one version of a program's requirements, often one per catalog year. You get the program and its published, draft, and under-review audits, each with `id`, `name`, and `status`. `{program_short_name}` is the program's `external_id`, matched exactly, including case.

## GET /programs/{program\_short\_name}/audits

>

```json
{"openapi":"3.0.0","info":{"title":"Stellic for Developers","version":"1.0"},"tags":[{"name":"Programs","description":"Programs in your catalog and the audits (requirement versions) attached to them. Programs are addressed by `short_name`; audits by internal numeric ID."}],"servers":[{"url":"https://{institution}.stellic.com/partnerapi/v1","variables":{"institution":{"default":"{institution}","description":"Your institution's Stellic subdomain: the part before `.stellic.com` in the URL you use to sign in. It becomes the host in every request, as in `https://{institution}.stellic.com/partnerapi/v1/...`. Replace the `{institution}` placeholder with your subdomain before sending."}}}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Personal Access Token issued by your Stellic integration partner. Send it as `Authorization: Bearer <token>` on every request. One token per institution; do not share across environments."}},"schemas":{"ProgramAuditsResponse":{"type":"object","properties":{"program":{"$ref":"#/components/schemas/ProgramSummary"},"audits":{"type":"array","description":"Published audits first, then drafts and audits under review.","items":{"$ref":"#/components/schemas/AuditSummary"}}}},"ProgramSummary":{"type":"object","description":"A program as the programs and audits endpoints return it.","properties":{"id":{"type":"integer","description":"Internal database ID of the program. Only needed where an endpoint asks for it, such as `base_program`."},"name":{"type":"string"},"external_id":{"type":"string","description":"The program's `short_name`, the identifier you use in path parameters and in your program feed. For a shared requirement program it equals `name`."},"shared_requirement":{"type":"object","description":"Present only for programs of type `shared requirement`. `id` is the value to send as `shared_requirement_id` when linking this shared requirement into an audit.","properties":{"id":{"type":"integer"}}}}},"AuditSummary":{"type":"object","properties":{"id":{"type":"integer","description":"Internal database ID of the audit. Use it on the `/audits/` endpoints."},"name":{"type":"string","description":"Audit name. A draft created from a published audit carries the published name plus a `-draft` suffix until it is published."},"status":{"type":"string","description":"One of `draft`, `review`, `published`. Other statuses exist internally but are not served.","enum":["draft","review","published"]}}},"ErrorMessage":{"type":"object","description":"Error envelope used by the programs, audits, and requirements endpoints.","properties":{"error":{"type":"string","description":"Human-readable reason. Match on it if you need to branch; the strings on each endpoint page are verbatim."}}}}},"paths":{"/programs/{program_short_name}/audits":{"get":{"tags":["Programs"],"parameters":[{"name":"program_short_name","in":"path","required":true,"description":"The program's `short_name` (the `external_id` value returned by `GET /programs/`). Matched exactly, case-sensitive.","schema":{"type":"string"}}],"responses":{"200":{"description":"The program plus its audits with status `published`, `draft`, or `review`. Published audits come first, then drafts and audits under review. Archived audits, snapshots, and orphaned drafts (a `-draft` copy whose published version no longer exists) are left out. Each audit carries only `id`, `name`, and `status`; read the tree with `GET /audits/{audit_id}`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProgramAuditsResponse"}}}},"400":{"description":"Program not found. Unknown programs return 400, not 404.\n\nCommon causes:\n- No program has this `short_name` - returns `No Program matches the given query.`","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorMessage"}}}},"401":{"description":"Missing or invalid Bearer token.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}}}}}},"403":{"description":"Your IP address isn't on the allowlist for this endpoint. Contact Stellic to add it; the response includes the `client_ip` Stellic saw. Also returned, with only `error` set to `Compliance requirements are not available via the API.`, when the program is a compliance requirement.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"message":{"type":"string"},"client_ip":{"type":"string"}}}}}}}}}}}
```

#### Notes

* **Published audits come first, then drafts and audits under review,** in no set order within each group. Pick by `status` and `name`, not position.
* **A name with `-draft` is the editable copy of a published audit,** made by [`POST /audits/{audit_id}/draft`](/stellic-partner-api/audits/get-or-create-a-draft-of-a-published-audit.md) or in Stellic. Drafts made with [`POST /programs/{program_short_name}/audits`](/stellic-partner-api/programs/create-an-audit-for-a-program.md) appear under their own names.
* **Archived audits, snapshots, and `-draft` copies whose published audit is gone aren't listed.**
* **An unknown program returns a 400,** `{"error": "No Program matches the given query."}`. A compliance requirement returns a 403 with `Compliance requirements are not available via the API.`

#### Related APIs

* [`GET /audits/{audit_id}`](/stellic-partner-api/audits/read-an-audit.md) to read an audit's requirements.
* [`POST /audits/{audit_id}/draft`](/stellic-partner-api/audits/get-or-create-a-draft-of-a-published-audit.md) to edit a published audit.
* [`POST /programs/{program_short_name}/audits`](/stellic-partner-api/programs/create-an-audit-for-a-program.md) to start a new audit version.
