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
curl -X GET \
https://api.example.com/pdtf/v1/property-pack/{uprn}/state \
-H "Authorization: Bearer {token}" \
-H "Accept: application/json" 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.
/property-pack/{uprn}/claims Get Claims
Retrieve all claims for a property pack, including full provenance metadata.
/property-pack/{uprn}/state Get Current State
Get the computed current state of a property pack (latest values for each attribute).
/property-pack/{uprn}/provenance-map Get Provenance Map
Returns the same structure as state, but with provenance information replacing values.
/property-pack/{uprn}/claims Post Claim
Add a new claim to a property pack with provenance metadata.
/property-pack/{uprn}/subscriptions Subscribe
Subscribe to receive webhook notifications when claims are added.
/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
PreviewThe 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
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.
Root Issuers
Primary sources (HMLR, VoA) issue PDTF-compliant VCs directly. Highest level of achievable trust with no intermediary signatures required.
Integration Guides
Joining the Framework
Step-by-step guide to becoming a PDTF participant, including DID setup and agent configuration.
Legacy Integration
Patterns for connecting existing systems to PDTF using legacy gateways and bidirectional mapping.
Reference Implementation
Example code and SDK references for building PDTF-compliant applications.
Ready to Build?
Join the developer community, explore the code, and start building on PDTF.