For Developers

Build applications on the Property Data Trust Framework. Open standards, REST APIs, and JSON Schema — everything you need to integrate.

Getting Started

Core Concepts

Claims

Data in PDTF is represented as claims — statements about a property with attached provenance. Claims are immutable; updates are made by adding new claims.

Property Packs

A property pack is the collection of claims about a property. The current state is computed by combining all claims, with provenance indicating trustworthiness.

Provenance

Every claim carries provenance metadata: who made the claim, when, with what evidence, and at what trust level. This is based on the OpenID Connect 'verified claims' standard.

Subscriptions

Subscribe to property packs to receive updates when new claims are added. Webhooks notify your system of changes in real-time.

Quick Start

# Fetch current state for a property
curl -X GET \
  https://api.example.com/pdtf/v1/property-pack/{uprn}/state \
  -H "Authorization: Bearer {token}" \
  -H "Accept: application/json"
# Post a new claim
curl -X POST \
  https://api.example.com/pdtf/v1/property-pack/{uprn}/claims \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json" \
  -d '{
    "claimPath": "/propertyPack/energyEfficiency/currentEnergyRating",
    "value": "B",
    "provenance": {
      "type": "vouched",
      "vouchedBy": "did:web:example.com:users:123"
    }
  }'

API Reference

The PDTF API follows REST conventions with OpenAPI specification. All data is exchanged as JSON.

GET /property-pack/{uprn}/claims

Get Claims

Retrieve all claims for a property pack, including full provenance metadata.

GET /property-pack/{uprn}/state

Get Current State

Get the computed current state of a property pack (latest values for each attribute).

GET /property-pack/{uprn}/provenance-map

Get Provenance Map

Returns the same structure as state, but with provenance information replacing values.

POST /property-pack/{uprn}/claims

Post Claim

Add a new claim to a property pack with provenance metadata.

POST /property-pack/{uprn}/subscriptions

Subscribe

Subscribe to receive webhook notifications when claims are added.

DELETE /property-pack/{uprn}/subscriptions/{id}

Unsubscribe

Remove an existing subscription.

Property Pack Schemas

All property data follows JSON Schema definitions. The schema is versioned (currently v3.x) and designed for semantic stability.

Schema Structure

/propertyPack
  • • /materialFacts
  • • /ownership
  • • /titles
  • • /energyEfficiency
/searches
  • • /localAuthority
  • • /drainage
  • • /environmental
  • • /mining
/participants
  • • /seller
  • • /buyer
  • • /sellerConveyancer
  • • /buyerConveyancer
/legalInfo
  • • /tenure
  • • /restrictions
  • • /easements
  • • /boundaries
/transaction
  • • /offers
  • • /mortgages
  • • /completionDate
/verification
  • • /identity
  • • /aml
  • • /sourceOfFunds

PDTF v2.0

Preview

The next generation of PDTF uses W3C Verifiable Credentials and Decentralised Identifiers for cryptographic trust.

What's New in v2.0

Verifiable Credentials

W3C standard credentials with cryptographic proofs. No need to verify back with the source.

Decentralised Identifiers (DIDs)

Stable identifiers for participants with public-key binding. Example: did:web:moverly.com:users:abc

Entity Graph

Property → Title → Transaction relationships with participation credentials linking parties.

Per-Credential Access Control

termsOfUse field with confidentiality levels and role-based presentation policies.

Trust Registry

{
  "rootIssuers": {
    "HMLR": {
      "did": "did:web:hmlr.gov.uk",
      "claimPaths": ["/propertyPack/titles"]
    },
    "VoA": {
      "did": "did:web:voa.gov.uk",
      "claimPaths": ["/councilTaxBand"]
    }
  },
  "trustedProxies": {
    "tmGroup": {
      "did": "did:web:api.tmgroup.co.uk",
      "claimPaths": ["/searches"]
    },
    "moverly": {
      "did": "did:web:trust.moveready.com",
      "claimPaths": ["/propertyPack"]
    }
  }
}

The trust registry at trust.propdata.org.uk maintains the list of root issuers and trusted proxies.

Two-Phase Implementation

Phase 1 - Now

Trusted Proxies

Existing API providers (tmGroup, Moverly) wrap responses in PDTF-compliant VCs, signing with their trusted proxy keys. "Map-and-wrap" adaptors require minimal infrastructure changes.

Phase 2 - Future

Root Issuers

Primary sources (HMLR, VoA) issue PDTF-compliant VCs directly. Highest level of achievable trust with no intermediary signatures required.

Ready to Build?

Join the developer community, explore the code, and start building on PDTF.