---
title: "List unlocked properties"
method: GET
path: "/v1/unlocks"
tags: ["Unlocks and reports"]
---

# List unlocked properties

`GET /v1/unlocks`

## Request

- Base URL: `https://app.propcode.com.au/api`
- URL: `https://app.propcode.com.au/api/v1/unlocks`
- Auth: HTTP bearer

The properties your team has unlocked, newest first, as PropCode's report history lists them: what each is unlocked as, who unlocked it and when, and its Rapid Planning Reports with their ids and share links. How to find a property or a report again without its id. Filter by address or title id, by what it was unlocked as, or to the properties the key's owner unlocked (mine). Test keys list nothing. Free.

## Query parameters

- `address` string
- `product` 'pro' | 'cdc' | 'rpr'
- `mine` boolean
- `page` integer
- `limit` integer

## Response `200`

Your team's unlocked properties, a page at a time.

- UnlockedPropertyList
  - `object` 'list', required
  - `data` UnlockedProperty[], required
    - `object` 'unlocked_property', required
    - `property` object, required
      - `title` string, required
      - `jurisdiction` string, required
      - `address` string, required
    - `products` string[], required: What your team holds it as: pro, core, or what a plan from before Core and Pro opened it with: cdc, cdc_preview (its CDC answers) or rpr.
    - `unlockedAt` string, required: When your team last unlocked something new on it (ISO 8601): the latest of its products’ first unlocks.
    - `unlockedBy` string, required: Who made that unlock: their email.
    - `shareUrl` string: Its Pro report's share link, where your team holds Pro on it in NSW: anyone who has it can read the report, without signing in.
    - `rprs` object[], required: Its Rapid Planning Reports, newest first.
      - `id` string, required: The report's id, for GET /v1/reports/rpr/{id}.
      - `reportType` 'multiple_land_uses' | 'single_land_use' | 'subdivision', required
      - `landUse` string: The land use's name, for single_land_use.
      - `createdAt` string, required: When it was first generated (ISO 8601).
      - `status` 'generating' | 'ready' | 'failed', required: generating, ready or failed. GET /v1/reports/rpr/{id} says whether a ready one is incomplete.
      - `generatedAt` string: When its latest generation finished (ISO 8601); absent while it generates, or when it failed.
      - `createdBy` string, required: Who generated it: their email.
      - `shareUrl` string, required: Its share link: anyone who has it can read the report, without signing in.
  - `page` number, required
  - `limit` number, required
  - `total` number, required: How many properties match, across every page.

## Other responses

- `400`: The request isn’t valid. Codes: `key_in_url`, `invalid_parameter`.
- `401`: No valid key. Codes: `missing_api_key`, `invalid_api_key`.
- `403`: This key can’t ask that. Codes: `key_owner_left`.
- `429`: Over a limit: retry after Retry-After. Codes: `rate_limited`, `sandbox_daily_limit`.
- `500`: Our error. Codes: `internal_error`.

---

[API](https://skmtc.dev/propcode/apis/propcode-api.md) - [All operations](https://skmtc.dev/propcode/apis/propcode-api/llms.txt) - [OpenAPI document](https://skmtc.dev/propcode/apis/propcode-api/revisions/f393cce32349?raw)
