> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs-unsw-v6.advance-uac.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs-unsw-v6.advance-uac.com/_mcp/server.

# Configuration

Some of what you send is checked against a list your own staff maintain in the management
portal, rather than against something fixed in Advance. **There is nothing for you to call
here.** It is documented because it decides whether a value you send is accepted.

## The settings

| Setting           | What it lists                                             |
| ----------------- | --------------------------------------------------------- |
| Application type  | `DOMESTIC`, `INTERNATIONAL`, or whatever else you need    |
| Stream            | The cohort codes your admissions team uses                |
| Reference systems | The external systems a `sourceName` can name, e.g. `SITS` |

Each setting declares what kind of value it holds — a string, a number, a boolean, or a list
of either — and both the editing screen and the API work from that declaration rather than
from a hard-coded shape. Adding a fourth setting does not mean a code change.

## Only one of them is enforced here

> **Warning**
>
> **`applicationType` is validated by this API. `stream` and `sourceName` are not.**
>
> A value outside the configured application types is a `400`. A `stream` or `sourceName` that
> nobody configured is stored exactly as you sent it, including a typo.

That is worth planning around, because `stream` is not decorative — your assessment workflows
are selected by it. An application carrying a misspelt stream is not rejected; it simply
matches no workflow.

The stream and reference-system lists exist to drive the portal's own pickers, so an officer
creating an application by hand chooses from a list instead of typing. Extending that to this
API would mean refusing values you may be sending today, so it has not been done without
asking.

## Values are retired, never deleted

Once anything carries a value, removing it would leave records holding a code with nothing to
label it. Retiring one instead takes it out of the pickers and leaves history readable.

A retired value still describes the applications that already carry it. Whether this API
continues to accept it depends on the setting — for `applicationType`, a retired value is no
longer offered and no longer accepted.