> 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.

# Get an application's status, data and qualifications

GET https://unsw-v6-dev.advance-uac.com/institution-api/institution/applications/{id}

The application as it currently stands: its intake status, the assessment workflow's status
once one is running, the qualifications recorded against it, and the snapshot those
qualifications were captured into.

`status` is the INTAKE status and takes five values:

* `RECEIVED` — stored, waiting to be picked up for assessment. `workflowStatus` is null.
* `READY` — you have told us the supporting documents are adequate. Advisory: an
  assessment can be started without it.
* `PROCESSING` — an assessment has been started. `workflowStatus` says where it has got to.
* `WITHDRAWN` — withdrawn, and not reversible. Reinstating means a new application.
* `FAILED` — intake could not be completed. `statusDetail` says why.

`qualifications` is what we hold, in the field names you sent — see
GET /institution/qualification-types for what each type may carry. For the credit decision,
read GET /institution/applications/\{id}/outcome.

404 if the id is unknown or belongs to another institution.

Reference: https://docs-unsw-v6.advance-uac.com/unsw-advance-institution-api/applications/get-an-applications-status-data-and-qualifications

## Authentication

- `Authorization` header (bearer token, required) — Paste a Keycloak access token (no "Bearer " prefix)

## Servers

- `https://unsw-v6-dev.advance-uac.com/institution-api` (Dev, default)
- `https://unsw-v6-test.advance-uac.com/institution-api` (Test)

## Request

### Path parameters

- `id` (string, required)

## Response

### 200

The application as it currently stands.

- `id` (string, optional)
- `applicantId` (string, optional)
- `programCode` (string, optional)
- `year` (integer, optional)
- `stream` (string, optional)
- `intakeCode` (string, optional) — Your own code for the intake the applicant is starting, e.g. "5269" for Term 3 2026. Optional, but worth sending: our officers work applications in intake order, and one with no intake cannot be prioritised against the rest. Send the code rather than the name. These are YOUR term codes, loaded from the intake schedule you supply us, so a code you use is a code we hold; one we do not recognise is refused with a 400 naming it.
- `intake` (string, optional) — The intake's name, e.g. "Term 3 2026". Null when no intake is set.
- `status` (string, optional) — Application status: RECEIVED, READY, PROCESSING, WITHDRAWN or FAILED.
- `statusDetail` (string, optional) — Failure detail when status is FAILED; null otherwise.
- `workflowStatus` (string, optional) — Assessment workflow status once processed (e.g. DECIDED, CREDIT_TEAM_REVIEW); null while RECEIVED.
- `qualifications` (list of QualificationView, optional)
- `sourceName` (string, optional) — The system this record was fed from, in your own vocabulary. Free text, and required whenever you send a sourceRef.
- `sourceRef` (string, optional) — Your own unique id for this application, e.g. an application number. Unique per `sourceName`.
- `sources` (list of ApplicationSourceReference, optional) — Your own references for this record, one per system you keep it in. A person or an application known by a different id in SITS than elsewhere carries both. Optional. `sourceName` and `sourceRef` still work exactly as before and count as the FIRST entry here, so nothing you have already built needs to change. Send both forms and they are combined, with duplicates collapsed. Order matters: the first entry is the one echoed back as `sourceRef`, and the one shown in lists and in the change feed.
- `specialisations` (list of ApplicationSpecialisation, optional) — The specialisations this application is for, in the order they were chosen. Empty when there are none.
- `submittedAt` (datetime, optional)
- `updatedAt` (datetime, optional)

## Errors

### 404 Not Found Error

No such resource for this institution.

- `status` (integer, optional) — Repeats the HTTP status code.
- `error` (string, optional) — What went wrong, in a form safe to show a developer.

## Types

### QualificationView

A qualification as stored.

- `id` (string, optional)
- `type` (string, optional) — tertiary | subject | work_experience.
- `parentId` (string, optional) — The qualification this one sits under — a subject's degree. Null for a top-level qualification.
- `data` (map from string to any, optional) — The type-specific fields, consolidated across every source that has reported this qualification.
- `documentCount` (integer, optional) — How many supporting documents are attached, so you can tell at a glance whether evidence has been uploaded. Counts confirmed uploads only; list them with GET /institution/qualifications/\{id}/documents.

### ApplicationSourceReference

One of your own references for this record: the system it came from, and its id there.

- `sourceName` (string, optional) — The system this record was fed from, in your own vocabulary. Free text, and required whenever you send a sourceRef.
- `sourceRef` (string, optional) — Your own unique id for this application, e.g. an application number. Unique per `sourceName`.

### ApplicationSpecialisation

One specialisation an application is for. `code` and `year` are what the application recorded; `name` and `type` are the catalogue's own words and are null if the catalogue no longer holds that specialisation.

- `code` (string, optional)
- `year` (integer, optional) — Handbook year, the application's own year.
- `name` (string, optional)
- `type` (string, optional) — Major, Minor, Honours, Specialisation or Research.

## Examples

### Received, not yet assessed

**Response**

```json
{
  "id": "9c1f4d3e-6b2a-4f18-9c77-2b5a1e0d8f42",
  "applicantId": "5e8b2a71-3c94-4d06-8f21-9a7c4e1b3d50",
  "programCode": "3778",
  "year": 2026,
  "stream": "DOMESTIC_FP",
  "status": "RECEIVED",
  "qualifications": [
    {
      "id": "b71c9e35-8f24-4a17-9d60-3e5b8c1a7f92",
      "type": "tertiary",
      "data": {
        "code": "C09067",
        "completedYear": 2024,
        "institution": "University of Technology Sydney",
        "name": "Bachelor of Computer Science"
      },
      "documentCount": 1
    },
    {
      "id": "e04a7d18-5b63-4c29-8710-f2a9c6e5b384",
      "type": "subject",
      "parentId": "b71c9e35-8f24-4a17-9d60-3e5b8c1a7f92",
      "data": {
        "code": "31251",
        "grade": "DN",
        "level": "undergraduate",
        "name": "Data Structures and Algorithms"
      },
      "documentCount": 0
    }
  ],
  "sourceName": "SITS",
  "sourceRef": "APP-2026-00123",
  "submittedAt": "2026-08-24T09:02:11.400+10:00",
  "updatedAt": "2026-08-24T09:02:11.400+10:00"
}
```

**SDK Code**

```python Received, not yet assessed
import requests

url = "https://unsw-v6-dev.advance-uac.com/institution-api/institution/applications/id"

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers)

print(response.json())
```

```javascript Received, not yet assessed
const url = 'https://unsw-v6-dev.advance-uac.com/institution-api/institution/applications/id';
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Received, not yet assessed
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://unsw-v6-dev.advance-uac.com/institution-api/institution/applications/id"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("Authorization", "Bearer <token>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Received, not yet assessed
require 'uri'
require 'net/http'

url = URI("https://unsw-v6-dev.advance-uac.com/institution-api/institution/applications/id")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
```

```java Received, not yet assessed
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://unsw-v6-dev.advance-uac.com/institution-api/institution/applications/id")
  .header("Authorization", "Bearer <token>")
  .asString();
```

```php Received, not yet assessed
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://unsw-v6-dev.advance-uac.com/institution-api/institution/applications/id', [
  'headers' => [
    'Authorization' => 'Bearer <token>',
  ],
]);

echo $response->getBody();
```

```csharp Received, not yet assessed
using RestSharp;

var client = new RestClient("https://unsw-v6-dev.advance-uac.com/institution-api/institution/applications/id");
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "Bearer <token>");
IRestResponse response = client.Execute(request);
```

```swift Received, not yet assessed
import Foundation

let headers = ["Authorization": "Bearer <token>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://unsw-v6-dev.advance-uac.com/institution-api/institution/applications/id")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```

### Processed

**Response**

```json
{
  "id": "9c1f4d3e-6b2a-4f18-9c77-2b5a1e0d8f42",
  "applicantId": "5e8b2a71-3c94-4d06-8f21-9a7c4e1b3d50",
  "programCode": "3778",
  "year": 2026,
  "stream": "DOMESTIC_FP",
  "status": "PROCESSING",
  "workflowStatus": "DECIDED",
  "qualifications": [
    {
      "id": "b71c9e35-8f24-4a17-9d60-3e5b8c1a7f92",
      "type": "tertiary",
      "data": {
        "code": "C09067",
        "completedYear": 2024,
        "institution": "University of Technology Sydney",
        "name": "Bachelor of Computer Science"
      },
      "documentCount": 1
    }
  ],
  "sourceName": "SITS",
  "sourceRef": "APP-2026-00123",
  "submittedAt": "2026-08-24T09:02:11.400+10:00",
  "updatedAt": "2026-08-25T14:02:47.500+10:00"
}
```

**SDK Code**

```python Processed
import requests

url = "https://unsw-v6-dev.advance-uac.com/institution-api/institution/applications/id"

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers)

print(response.json())
```

```javascript Processed
const url = 'https://unsw-v6-dev.advance-uac.com/institution-api/institution/applications/id';
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Processed
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://unsw-v6-dev.advance-uac.com/institution-api/institution/applications/id"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("Authorization", "Bearer <token>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Processed
require 'uri'
require 'net/http'

url = URI("https://unsw-v6-dev.advance-uac.com/institution-api/institution/applications/id")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
```

```java Processed
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://unsw-v6-dev.advance-uac.com/institution-api/institution/applications/id")
  .header("Authorization", "Bearer <token>")
  .asString();
```

```php Processed
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://unsw-v6-dev.advance-uac.com/institution-api/institution/applications/id', [
  'headers' => [
    'Authorization' => 'Bearer <token>',
  ],
]);

echo $response->getBody();
```

```csharp Processed
using RestSharp;

var client = new RestClient("https://unsw-v6-dev.advance-uac.com/institution-api/institution/applications/id");
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "Bearer <token>");
IRestResponse response = client.Execute(request);
```

```swift Processed
import Foundation

let headers = ["Authorization": "Bearer <token>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://unsw-v6-dev.advance-uac.com/institution-api/institution/applications/id")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```

### Failed

**Response**

```json
{
  "id": "9c1f4d3e-6b2a-4f18-9c77-2b5a1e0d8f42",
  "applicantId": "5e8b2a71-3c94-4d06-8f21-9a7c4e1b3d50",
  "programCode": "3778",
  "year": 2026,
  "stream": "DOMESTIC_FP",
  "status": "FAILED",
  "statusDetail": "No workflow configured for program 3778 (2026, DOMESTIC_FP)",
  "qualifications": [],
  "sourceName": "SITS",
  "sourceRef": "APP-2026-00123",
  "submittedAt": "2026-08-24T09:02:11.400+10:00",
  "updatedAt": "2026-08-24T09:02:12.118+10:00"
}
```

**SDK Code**

```python Failed
import requests

url = "https://unsw-v6-dev.advance-uac.com/institution-api/institution/applications/id"

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers)

print(response.json())
```

```javascript Failed
const url = 'https://unsw-v6-dev.advance-uac.com/institution-api/institution/applications/id';
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Failed
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://unsw-v6-dev.advance-uac.com/institution-api/institution/applications/id"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("Authorization", "Bearer <token>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Failed
require 'uri'
require 'net/http'

url = URI("https://unsw-v6-dev.advance-uac.com/institution-api/institution/applications/id")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
```

```java Failed
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://unsw-v6-dev.advance-uac.com/institution-api/institution/applications/id")
  .header("Authorization", "Bearer <token>")
  .asString();
```

```php Failed
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://unsw-v6-dev.advance-uac.com/institution-api/institution/applications/id', [
  'headers' => [
    'Authorization' => 'Bearer <token>',
  ],
]);

echo $response->getBody();
```

```csharp Failed
using RestSharp;

var client = new RestClient("https://unsw-v6-dev.advance-uac.com/institution-api/institution/applications/id");
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "Bearer <token>");
IRestResponse response = client.Execute(request);
```

```swift Failed
import Foundation

let headers = ["Authorization": "Bearer <token>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://unsw-v6-dev.advance-uac.com/institution-api/institution/applications/id")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```