---
title: "Unlock a property"
method: POST
path: "/v1/unlocks"
tags: ["Unlocks and reports"]
---

# Unlock a property

`POST /v1/unlocks`

## Request

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

Unlocks a property for your team, as unlocking it in PropCode does, by its title id: look the address up with GET /v1/properties first, so a credit is never spent on the wrong match. creditType picks the credit: pro (the default) gives the Pro report (currently NSW CDC only) and the Rapid Planning Report (outside NSW, the Rapid Planning Report alone), spending Max's daily allowance first, then your Property Packs; cdc and rpr spend the credits of a plan from before Core and Pro, for the CDC report (NSW) or the Rapid Planning Report. It spends one credit, and only spendCredit: true lets it. A property your team has already unlocked costs nothing. Test keys unlock the samples without spending.

## Request body

- object: Unlock one property for your team by its title id, spending one credit of the type you choose.
  - `title` string, required: The title id, from GET /v1/properties. Look the address up first, so a credit is never spent on the wrong match.
  - `jurisdiction` string: The state: nsw (the default), vic, act or tas. Complying development answers are NSW only.
  - `creditType` 'pro' | 'cdc' | 'rpr': The credit to spend, from GET /v1/credits. pro (the default): the Pro report (currently NSW CDC only) and the Rapid Planning Report. cdc: the CDC report, with a CDC report credit from a plan from before Core and Pro. rpr: the Rapid Planning Report, with a Rapid Planning Report credit from such a plan.
  - `spendCredit` unknown, required

## Response `200`

The property, unlocked.

- Unlock: A property your team has unlocked.
  - `object` 'unlock', required
  - `property` object, required
    - `title` string, required
    - `jurisdiction` string, required
  - `product` 'pro' | 'cdc' | 'rpr', required: What the team holds the property as: the creditType spent.
  - `spent` boolean, required: Whether this request spent a credit: false when your team had already unlocked the property, and for a sample property's CDC report, which is free.
  - `paidWith` 'daily_allowance' | 'pack': What a Pro credit came from, when one was spent: Max's daily allowance or a pack.
  - `sample` unknown
  - `shareUrl` string: On a Pro unlock in NSW, the Pro report's share link: anyone who has it can read the report, without signing in. Elsewhere, share the Rapid Planning Report's own.
  - `credits` Credits, required: What your team has to unlock properties with, by credit type.
    - `object` 'credits', required
    - `pro` object, required: Pro credits from Property Packs, shared by your team.
      - `remaining` integer, required: Pro credits left in your team's Property Packs.
    - `dailyAllowance` object, nullable, required: Max Pro's unlocks for today, shared by your team's seats and spent before any pack; null without Max.
      - `limit` integer, required: Today's unlocks: 20 for each Max seat.
      - `used` integer, required: Unlocks used today.
      - `remaining` integer, required: Unlocks left today.
      - `resetsAt` string, required: When the allowance starts again in full: the next midnight in Sydney (ISO 8601).
    - `cdc` object, required: CDC report credits from a plan from before Core and Pro: each unlocks a property's CDC report (creditType cdc).
      - `remaining` integer, required: CDC report credits left; 0 when your team has none.
    - `rpr` object, required: Rapid Planning Report credits from a plan from before Core and Pro: each unlocks a property's Rapid Planning Report (creditType rpr).
      - `remaining` integer, required: Rapid Planning Report credits left; 0 when your team has none.
    - `choices` PurchaseChoice[]: When your team has nothing to unlock a property with, and you're its owner or an admin: what you can buy in PropCode, with links.
      - `name` string, required: What it buys: "Just this property" or "Property Pack".
      - `price` string: Its price with GST, from PropCode's live catalog: e.g. A$82.50, or from A$27.50 a property for a pack. Left out when the catalog can't be read.
      - `url` string, required: PropCode's checkout, opened on this choice. The person buys there; an agent never buys.
    - `note` string: When your team has nothing to unlock a property with: who buys credits, in a sentence or two to pass on to the person.

## Other responses

- `400`: The request isn’t valid. Codes: `key_in_url`, `invalid_parameter`, `not_eligible`.
- `401`: No valid key. Codes: `missing_api_key`, `invalid_api_key`.
- `402`: Billing stops this answer. Codes: `no_credits`, `max_daily_limit`.
- `403`: This key can’t ask that. Codes: `sandbox_title_only`, `key_owner_left`.
- `404`: Not found. Codes: `title_not_found`.
- `429`: Over a limit: retry after Retry-After. Codes: `rate_limited`, `sandbox_daily_limit`.
- `500`: Our error. Codes: `internal_error`, `unlock_failed`.

---

[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)
