Credit costsFAQApp
Developers

PropertyPredator API v1

Run PropertyPredator's appraisal engines and Legal-Pack reader from your own server, with your own API keys, and see every request and credit it used.

Status: open. Every signed-in account gets the free Sandbox tier. The Developer and Developer Pro add-ons add volume and the metered Legal-Pack endpoint, on any plan. Predator Business includes a small allowance.

Version 1 covers the calculation engines and the Legal-Pack reader listed on this page. It does not include property data, comparables, ownership, maps, planning or other website tools; the website's own browser endpoints are not part of this API.

Your API keys

Checking your account…

Plans and prices

The API is priced separately from the app plans. Prices below are loaded from the same configuration checkout charges, in GBP, VAT as applicable at checkout. Annual billing is twelve months for the price of nine.

Sandbox

£0
  • 1,000 calculation requests a month
  • 10 requests a minute
  • 1 active key
  • No metered endpoints
  • Any signed-in account

Developer

£49 / month
£441 a year
  • 25,000 calculation requests a month
  • 60 requests a minute per key
  • 5 active keys
  • Legal-Pack reviews, with 60 lookup credits a month included for API use
  • Email support, two working days

Developer Pro

£149 / month
£1,341 a year
  • 150,000 calculation requests a month
  • 180 requests a minute per key
  • 15 active keys
  • Legal-Pack reviews, with 300 lookup credits a month included for API use
  • Email support, next working day
  • First access to data endpoints as source rights are secured

Enterprise

From £499 / month
  • Custom request, key and credit allowances
  • Contract, named contact and agreed support terms
  • Data endpoints where source rights permit
  • Invoiced

Predator Business members have an included allowance without the add-on: 5,000 calculation requests a month, 30 a minute, 2 active keys, and Legal-Pack reviews charged to the plan's own lookup credits. Apex and other plans use the Sandbox tier unless they add Developer or Developer Pro.

Business includes up to 50 standard Legal-Pack AI review attempts and a £25 monthly supplier-cost budget, shared across the app and API. Whichever limit is reached first applies. Failed AI attempts and retries count; an idempotent API replay does not start a new review. Limits reset on the 1st of each month (UTC). Standard reviews must fit a conservative 50p supplier-cost reservation and complete-reading limits; larger packs need a separate quote before AI processing. Successful reviews still use 3 lookup credits; refunded lookup credits do not erase supplier costs.

Billing, cancellation and refunds

Getting started

  1. Sign in with any PropertyPredator account and create a key above. Give it only the scopes it needs. The Sandbox tier is free; add Developer or Developer Pro when you need volume or the Legal-Pack endpoint.
  2. Copy the key when it is shown. We store only a one-way fingerprint of it, so it cannot be shown again; if you lose it, revoke it and create another.
  3. Keep the key on your server, in a secret store or environment variable. Never put it in browser code, mobile apps or a public repository.
  4. Check it works:
curl https://propertypredator.com/api/v1/account \
  -H "Authorization: Bearer $PP_API_KEY"

The response shows your plan, the key's scopes, your current lookup-credit allowance and the limits below.

Authentication

Send the key in the Authorization header on every request: Authorization: Bearer ppk_…. API keys work only on /api/v1; browser sign-in tokens do not work there, and API keys do not work anywhere else.

ScopeAllows
appraisalsThe appraisal, offer, scenario and international appraisal endpoints.
legal_packLegal-Pack reviews, which use lookup credits.
usageReading credit usage and the request log.

Any valid key can call /account and /countries. Active keys per account: Sandbox 1, Business allowance 2, Developer 5, Developer Pro 15.

When a key stops working: when you revoke it, or when the account's sign-in security is reset (for example a password reset or account recovery) — create a new key afterwards. If the add-on lapses, keys keep working on the Sandbox tier and metered requests answer 403 addon_required.

Endpoints

Base URL https://propertypredator.com/api/v1. Requests and responses are JSON unless stated. Money is in the currency of the inputs you send; rates and percentages are decimals (0.25 means 25%). Responses may gain new fields, so ignore fields you do not use.

Account

GET/account

Plan, this key's id, prefix and scopes, your lookup-credit allowance, credit costs and rate limits.

UK appraisal scope: appraisalsno credits

POST/appraisals

The same appraisal engine and BUY / BUY-IF / PASS verdict as the app. Body: strategy, inputs and, for flips, finance_mode (cash or mortgaged).

strategyRequired inputsCommon optional inputs (default)
brrpurchase_price, value_after_refurb, expected_monthly_rentconstruction_costs, legal_fees, stamp_duty, deposit_rate (0.25), btl_rate_pa (0.0525), refi_ltv (0.75), lettings_agent_pct (0.12)
flippurchase_price, sale_valuetime_months (12), construction_costs, holding_monthly, conveyancing, agent_pct, stamp_duty
hmopurchase_price, gross_room_income_pcmvalue_after_refurb, running_costs_pcm, management_pct (0.12), voids_pct (0.08)
r2rroom_income_pcm, rent_to_landlord_pcmrunning_costs_pcm, setup_costs, term_years (3)
conversionpurchase_price and a GDV basisgdv_method (comparable) with saleable_area and sale_per_sqft, or manual_gdv; construction_costs
ground_upland and a GDV basisas conversion, plus target_margin (0.20)

Stamp duty: send your own stamp_duty figure. If you leave it out, the app's existing estimate is applied from nation, additional_property and first_time_buyer; that estimate is not tax advice.

curl https://propertypredator.com/api/v1/appraisals \
  -H "Authorization: Bearer $PP_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"strategy":"brr","inputs":{"purchase_price":150000,"value_after_refurb":210000,
       "expected_monthly_rent":1200,"construction_costs":25000,"legal_fees":1500,"stamp_duty":4500}}'
{"strategy":"brr","result":{"stamp_duty":4500,"refinance_release":157500.0,
  "after_refurb":{"money_left_in":23500.0,"net_monthly_return":366.9375,"ROCE":0.187…},
  "verdict":{"stamp":"BUY","label":"Strong","score":4,"max":4,"checks":[…]}, …}}

Maximum offer scope: appraisalsno credits

POST/appraisals/offer

Back-calculates the most you can pay for a flip and still meet the return thresholds. Body: inputs (needs sale_value), optional finance_mode, and optional thresholds min_return, min_profit_cash, min_profit, min_roci (the app's defaults apply if omitted).

curl https://propertypredator.com/api/v1/appraisals/offer \
  -H "Authorization: Bearer $PP_API_KEY" -H "Content-Type: application/json" \
  -d '{"inputs":{"sale_value":250000,"construction_costs":30000,"time_months":6,"legal_fees":1500,"stamp_duty":3000}}'
# {"result":{"max_offer":173833.33,"first_offer":156450.0,"second_offer":165141.67,"feasible":true}}

Downside scenarios scope: appraisalsno credits

POST/appraisals/scenarios

Base versus stressed results for brr or flip. inputs must include nation (england, wales, scotland or northern_ireland) and only fields used by that strategy. stress needs all four: exit_value_down_pct, rent_down_pct, works_up_pct, time_up_pct (percentages as whole numbers).

curl https://propertypredator.com/api/v1/appraisals/scenarios \
  -H "Authorization: Bearer $PP_API_KEY" -H "Content-Type: application/json" \
  -d '{"strategy":"flip","inputs":{"purchase_price":160000,"sale_value":250000,"construction_costs":30000,
       "time_months":6,"stamp_duty":3000,"nation":"england"},
       "stress":{"exit_value_down_pct":10,"rent_down_pct":0,"works_up_pct":15,"time_up_pct":25}}'

Countries and international appraisal scope: appraisalsno credits

GET/countries
POST/international/appraisals

/countries lists the eight appraisal profiles with currency, area unit and strategies (hold, flip, brr). The appraisal uses only the figures you send: no automatic currency conversion, local tax calculation or market data. Missing targets are listed in missing_inputs and the verdict stays HOLD.

curl https://propertypredator.com/api/v1/international/appraisals \
  -H "Authorization: Bearer $PP_API_KEY" -H "Content-Type: application/json" \
  -d '{"country_code":"FR","strategy":"hold","inputs":{"purchase_price":200000,"acquisition_costs":15000,
       "refurb_cost":10000,"loan_fees":1500,"finance_mode":"interest_only","loan_amount":140000,
       "annual_rate":0.04,"rent_amount":1100,"rent_period":"monthly","vacancy_pct":0.05,
       "management_pct":0.08,"maintenance_annual":900,"property_tax_annual":1200,"insurance_annual":400,
       "hoa_annual":0,"other_costs_annual":0,"target_cashflow_monthly":250,"target_coc_pct":0.04}}'
# {"result":{"currency_code":"EUR","metrics":{"cashflow_monthly":286.4,"dscr":1.61,…},"verdict":{…},…}}

Legal-Pack review scope: legal_packuses creditsDeveloper, Pro or Business

POST/legal-pack/reviews

AI red-flag triage of a legal pack PDF you are entitled to share, using the same reader as the app. Needs the Developer or Developer Pro add-on, or a Predator Business plan; Sandbox keys answer 403 addon_required. Upload it as multipart form field file, up to 30 MB. An Idempotency-Key header is required. The response's review holds the summary, tenure, flags by severity, searches to order and a page-by-page reading-coverage note; charge shows the credits used.

curl https://propertypredator.com/api/v1/legal-pack/reviews \
  -H "Authorization: Bearer $PP_API_KEY" \
  -H "Idempotency-Key: pack-14-high-street-v1" \
  -F "file=@legal-pack.pdf;type=application/pdf"
# {"review":{"verdict":"REVIEW NEEDED","summary":"…","flags":[…],"coverage":{…}},
#  "charge":{"credits":3,"reservation_id":"…"}}

This is triage to direct your solicitor's attention, not legal advice, and pages it could not read are listed rather than ignored.

Usage and request log scope: usage

GET/usage?limit=50&offset=0
GET/requests?limit=50&offset=0

/usage lists lookup-credit charges on the account from the app and the API, with the tool, whether it was refunded, and for API charges the key prefix. /requests lists API requests made with any of the account's keys. Both page with limit (up to 100) and offset.

Credits, costs and limits

RequestCost
Account, countries, usage, requestsNo credits
UK appraisal, offer, scenarios, international appraisalNo credits
Legal-Pack review3 lookup credits, the same as in the app

Metered API requests draw on your account's monthly lookup allowance and banked top-ups, the same pot the app uses. Developer adds 60 and Developer Pro adds 300 lookup credits a month to that allowance for API requests only; the app does not see them. Credits are reserved before the AI read starts and returned automatically if the read fails, so a failed review costs nothing. See lookup-credit costs for the wider catalogue.

LimitSandboxBusiness allowanceDeveloperDeveloper Pro
Calculation requests a month (per account; every authenticated request counts; 429 monthly_limit_reached)1,0005,00025,000150,000
Requests a minute per key (429 rate_limited with Retry-After)103060180
Active keys12515
Shared Business Legal-Pack allowance (app + API)—50 standard attempts and £25 supplier-cost budget/month, whichever firstBusiness accounts retain the shared limit with any add-on
Metered endpointsNoYes, plan creditsYes, +60 creditsYes, +300 credits
Fixed limitValue
Legal-Pack reviews per account30 a UTC day through the API; replays of a completed request do not count
JSON body32,000 bytes
Legal-Pack PDF30 MB

Retries and idempotency

Calculation endpoints have no side effects and charge nothing, so they are safe to retry.

Legal-Pack reviews charge credits, so each needs an Idempotency-Key header: 8–100 letters, numbers or - _ . :, unique per review. Keys are scoped to your account.

Errors

Every v1 error has the same shape, and every response carries an X-Request-Id header.

{"error":{"code":"insufficient_scope","message":"This key does not have the 'appraisals' scope.",
          "status":403,"request_id":"req_3f2a9c…"}}
StatuscodeMeaning
400idempotency_key_required, invalid_idempotency_keyA credit-charging request needs a valid Idempotency-Key.
401invalid_api_keyMissing, malformed, revoked or no-longer-valid key.
403addon_required, insufficient_scopeA metered endpoint on the Sandbox tier, or the key lacks the scope.
404not_foundNo such v1 endpoint or method.
409request_in_progressThe same Idempotency-Key is still being processed.
413 / 415payload_too_large, unsupported_media_typeBody too large, not JSON, or not a PDF.
422invalid_request, invalid_json, missing_input, invalid_input, idempotency_key_reusedFix the request; details.fields lists field problems where known. Unreadable packs use the reader's code, such as scanned_or_empty or bad_pdf.
429rate_limited, monthly_limit_reached, daily_limit_reached, insufficient_creditsSlow down, upgrade the tier or wait for the month, wait for the daily reset, or add credits; details shows the allowance.
500 / 502 / 503internal_error, ai_failed, ai_off, unavailableOur side or the AI reader failed; nothing is charged. Retry later and quote the request id if it persists.

Coverage and restrictions

Usage visibility and what we record

For each API request we record the key's prefix, the endpoint, method, status, error code, duration, credits and the credit reservation id, for 90 days. We do not record the key itself, request bodies, query strings, uploaded files or responses in that log. The response to a completed Legal-Pack review is kept for 24 hours only so a retry can be replayed, then deleted. Charges also appear in your account's credit history with the tool and key prefix.

Support

Email support@propertypredator.com with the request_id from the error or the X-Request-Id header, the endpoint and the time. Never send your API key; we will never ask for it.