PropCodeAPI docs

Errors

Every error is JSON: { "error": { type, code, message, requestId, docUrl } }. The type sets the HTTP status; the code says exactly what went wrong, and its docUrl links to its row here. Quote the requestId if you contact us.

CodeStatusWhat happenedWhat to do
invalid_parameter400A parameter is missing or not valid. param names it.Correct that parameter. The reference lists each endpoint’s parameters.
invalid_request400The request couldn’t be read, for example a body that isn’t JSON.Send JSON with Content-Type: application/json, as the reference shows.
key_in_url400An API key was sent in the URL, where logs and proxies can keep it.Send keys only in the Authorization header. Revoke that key and make another.
invalid_address400The address can’t be searched, for example without a street number.Send a full street address, or search by title.
not_eligible400The property's CDC report can't be unlocked with a CDC report credit yet: PropCode can't determine a fact its verdicts depend on.Unlock it in PropCode, where you can enter the fact, or unlock it with creditType pro.
passage_too_broad400That passage is the whole document (its top level), which this endpoint doesn’t return.Ask for a passage a report cites, by its contentUrl, or read the document in the Library.
missing_api_key401No API key was sent.Send Authorization: Bearer pc_test_… or pc_live_…
invalid_api_key401The key is unknown or has been revoked.Check the key, or make a new one in Integrations & API › Keys.
authentication401The request couldn’t be authenticated. message says why.Send Authorization: Bearer with a key from Integrations & API › Keys.
billing_inactive402A live key was used while its organisation’s API billing isn’t active.Add a card, or update it, in Integrations & API › Billing & limits.
spend_cap_reached402Checking a new property would pass the organisation’s monthly spend cap. Caps start at $0.Raise the cap in Integrations & API › Billing & limits. Properties already checked this month still answer.
billing402Billing stops this request. message says why.Check Integrations & API › Billing & limits.
no_credits402Unlocking the property needs a credit of the type you chose, and your team has none left.GET /v1/credits lists what your team has. For Pro, an admin buys a single property or a Property Pack in PropCode, which can refill when it runs out: for them, choices lists both, with links.
max_daily_limit402Max's daily allowance is used up for today, and your team has no pack credits to fall back on.Wait until dailyAllowance.resetsAt in GET /v1/credits (midnight in Sydney), adjust your Max seats for more each day, or have an admin buy a Property Pack.
not_unlocked403Your team hasn't unlocked this property as Pro.POST /v1/unlocks with spendCredit: true unlocks it for one credit. With no credits, an admin of your team buys Pro in PropCode: for them, choices lists what they can buy, with links. The sample properties need no unlock for their Pro report.
key_owner_left403Unlocks and reports act as the person who made the key, and they have left your team.Make a new key in Integrations & API.
account_not_set_up403You signed in to PropCode from an AI app, but your PropCode account isn't set up yet.Open PropCode in your browser once, then connect again.
account_other_sign_in403You signed in from an AI app with an email that already has a PropCode account, which signs in another way, such as Google.Disconnect PropCode in the AI app and connect again, signing in the way the message says.
account_email_unverified403You signed in from an AI app with an email address that isn't verified yet, and PropCode can't set up an account for this sign-in until it is.Verify your email address with the link PropCode emailed you, then disconnect PropCode in the AI app and connect again.
live_key_required403Test keys can’t generate Rapid Planning Reports.Make a live key in PropCode, under Integrations & API › Keys (anyone in your team can), unlock the property with it, then generate the report.
sandbox_title_only403A test key asked about a property outside the sample properties. sandboxTitles lists them.Use one of the sample properties, whose Pro reports are free, or a live key: anyone in your team can make one in PropCode, under Integrations & API › Keys. With a live key, searches and property lookups are free, and a property’s Pro report and Rapid Planning Report need an unlock, which spends one of your team’s credits.
permission403This key can’t make that request. message says why.Check which key you sent: test keys answer only for the sample properties.
title_not_found404No property has that title reference.Check the title, or search by address with GET /v1/properties.
address_not_found404No property matches that address.Check the address, or search by title.
not_found404There’s no endpoint at that path.Check the path against the reference: every endpoint starts /api/v1/.
citation_not_found404The Library has no passage at that document, version, file and passage id.Use a citation’s contentUrl as a report gives it. A report generated again may cite a newer version.
ambiguous_address409The address matches more than one property. candidates lists them.Ask again by title, using one of the candidates.
invalid_fact_overrides422A fact in factOverrides is unknown, can’t be overridden (where the property is: its zone, LEP or maps), or its value is the wrong kind.GET /v1/facts lists the facts and the values each takes.
unsupported_jurisdiction422That state isn’t covered yet.Use nsw, vic, act or tas. Complying development (the planning report, codes and summaries) is nsw only.
rate_limited429The organisation’s keys sent more requests a second than its limit.Wait the Retry-After seconds, then retry. Billing & limits shows the limits.
feedback_limit_reached429The organisation has sent its most feedback for the day.Retry when Retry-After says. It resets at midnight UTC.
too_many_concurrent429The organisation already has its most properties being worked out at once: Pro reports, or summaries.Wait for a request to finish, then retry.
daily_property_limit429The organisation has checked, or looked up, its most new properties for the day.Retry after midnight UTC (Retry-After says when). Properties already checked or looked up in the period still answer.
daily_search_limit429Address searches are used up for the day: the organisation’s live keys have made their most, or the allowance all organisations share is spent.Retry when Retry-After says, or search by point or ask by title, which aren’t limited this way.
daily_citation_limit429The organisation’s live keys have read their most different cited passages for the day.Retry when Retry-After says. Passages already read today still answer. Contact us if you need more.
amalgamation_limit429New multi-lot titles are used up for the hour: the organisation’s live keys have made their most, or all organisations’ together have.Retry when Retry-After says, or ask for titles that already exist.
sandbox_daily_limit429The organisation’s test keys have used their requests for the day.Retry after midnight UTC, or use a live key.
unlock_failed500Your credit was spent, but unlocking the property didn’t finish.Contact us with the requestId: we’ll finish the unlock or return the credit.
internal_error500Something went wrong on our side.Retry. If it keeps happening, contact us with the requestId.
account_setup_failed503PropCode couldn't finish making your account at your first sign-in from an AI app.Try again in a minute.
overloaded503PropCode is busy.Retry in a few seconds.
engine_busy503PropCode is busy.Wait the Retry-After seconds, then retry.