SStratum APIs

Transactions API

API reference, version 1.0.0. Download the OpenAPI spec (JSON)

Authentication

All requests require an X-Stratum-Key header. Use the account key from your dashboard: checks are paid from your Stratum credit, with no plan needed.

Base URL
https://api.stratumapis.com/v1/transactions

Guide

Your first job

A transaction is one job: a letting, a sale, a finance or business client, or a screening list. You add the people and companies in it, and the property if there is one, choose the checks, see the price, then run it. Everything that ran goes onto one signed certificate.

# 1. Start a letting
curl -X POST -H "X-Stratum-Key: $KEY" -H "Content-Type: application/json" \
  "https://api.stratumapis.com/v1/transactions" -d '{ "type": "letting" }'

# 2. Add the people, the property and the checks
curl -X PATCH -H "X-Stratum-Key: $KEY" -H "Content-Type: application/json" \
  "https://api.stratumapis.com/v1/transactions/$TXN_ID" -d '{
  "parties": [
    { "partyId": "tenant-1", "role": "tenant", "kind": "individual", "name": "Jo Smith" },
    { "partyId": "landlord-1", "role": "landlord", "kind": "individual", "name": "Sam Lee" }
  ],
  "property": { "postcode": "LS1 5HN", "addressLine1": "1 Park Row" },
  "selectedCheckKeys": ["sanctions", "propertyPack"]
}'

# 3. See the price, then run it
curl -H "X-Stratum-Key: $KEY" "https://api.stratumapis.com/v1/transactions/$TXN_ID/quote"
curl -X POST -H "X-Stratum-Key: $KEY" "https://api.stratumapis.com/v1/transactions/$TXN_ID/run"

The run returns the transaction with one row in results per check and person: its status, what it cost and, for a screen, how many possible matches it found. For the detail (who matched and on which list, the EPC rating, the flood zone), open the row: GET /v1/transactions/$TXN_ID/checks/$CHECK_ID.

Roles: tenant, landlord and guarantor in a letting; buyer, seller and payer in a sale; client, director and counterparty in finance and business. Each party is an individual or a corporate (give its Companies House number as companyNumber). Your own partyId keeps a person's results attached to them when you change the list.

Checks and prices

Each check is charged per person, company or property it runs on. Once your account has run from 1,000 a month of a check (counting the job being run), everyone in that job pays the lower price. The quote shows which price applies (volumePrice) and your count so far this month (monthVolume).

sanctions
Sanctions screen: UK, UN, EU and US OFAC lists, refreshed daily
5p a person or company
2p from 1,000 a month
pepAdverseMedia
PEP and adverse media, with the sanctions screen
25p a person
15p from 1,000 a month
pscWalk
Company and owners: the Companies House record, and everyone who runs or owns it screened (up to 30 people)
£1.49 a company
79p from 1,000 a month
kyb
KYB package: company and owners, PEP on up to 4 people, the FCA register and a business risk score
£2.99 a company
propertyPack
Property risk pack: EPC and MEES, flood zone, crime, deprivation and coal mining
59p a property
35p from 1,000 a month
monitoring
Daily sanctions watch on everyone named, until the job is closed
Included

The certificate is included with every job. Creating, editing and quoting a job is free.

Credit

Checks are paid from your Stratum credit. Every reply carries your balance in pence in the X-Stratum-Credit-Balance-Pence header. If a run costs more than your balance, nothing runs and nothing is charged: the reply is HTTP 402 with neededPence, balancePence and the page to top up.

Credit top-ups open soon. To start now, email support@stratumapis.com and we will set your account up.

HTTP/1.1 402 Payment Required
X-Stratum-Credit-Balance-Pence: 31

{ "ok": false, "reason": "insufficient_credit", "neededPence": 64, "balancePence": 31,
  "message": "You do not have enough credit to run this transaction. Top up to continue.",
  "topUpPath": "https://stratumapis.com/dashboard" }

Running again

Running a job again charges only what is new, changed or failed: add a tenant and run, and only the new tenant is screened and charged. Send { "recheck": true } to run every check again, charged in full. A large job may come back with "more": true: call run again with { "continue": true } until it doesn't.

The certificate

Each run issues a signed certificate covering every check in the job, which anyone can check at stratumapis.com/verify/<hash>. It names your firm as the issuer: set the name once with PUT /v1/transactions/firm. Until you do, it shows your account's email.

Watching until completion

POST /v1/transactions/$TXN_ID/monitor re-screens everyone named in the job every day against the sanctions lists and emails you if anyone is added, until you stop it with DELETE. It is included.

Endpoints

posthttps://api.stratumapis.com/v1/transactions

Start a transaction.

type is letting, sale, finance or screening. Optional: jurisdiction (england, scotland, wales, ni), rentPence for a letting, and "preset": "kyb" with finance to open with a company and the KYB package chosen. Free.

Example request
curl -X POST -H "X-Stratum-Key: $KEY" \
  -H "Content-Type: application/json" \
  -d '{"type":"letting","jurisdiction":"england"}' \
  "https://api.stratumapis.com/v1/transactions"
Example response
{
  "txnId": "8b53c8a4-bc54-447a-acd7-f97d1f704468",
  "createdAt": "2026-10-06T22:51:00.736Z"
}
Errors
  • 400Something in the request is wrong; message says what.
  • 401401: no key, or an invalid or revoked one. 403 account_key_required: a key for one API, not your account key.
gethttps://api.stratumapis.com/v1/transactions

Your transactions, newest first.

Example request
curl -H "X-Stratum-Key: $KEY" \
  "https://api.stratumapis.com/v1/transactions"
Example response
{
  "transactions": [
    {
      "customerId": "user_your_account",
      "txnId": "8b53c8a4-bc54-447a-acd7-f97d1f704468",
      "brand": "stratum",
      "type": "letting",
      "status": "complete",
      "createdAt": "2026-10-06T22:51:00.736Z",
      "updatedAt": "2026-10-06T22:51:12.795Z",
      "jurisdiction": "england",
      "reference": {
        "matterRef": "LET-0042"
      },
      "parties": [
        {
          "kind": "individual",
          "name": "Jo Proof-Tenant",
          "partyId": "tenant-1",
          "role": "tenant"
        },
        {
          "kind": "individual",
          "name": "Sam Proof-Landlord",
          "partyId": "landlord-1",
          "role": "landlord"
        }
      ],
      "property": {
        "addressLine1": "1 Park Row",
        "postcode": "LS1 5HN"
      },
      "selectedCheckKeys": [
        "sanctions",
        "propertyPack"
      ],
      "results": [
        {
          "checkId": "b09476da-5240-41e0",
          "checkKey": "sanctions",
          "costPence": 5,
          "findings": {
            "sanctions": 0
          },
          "inputKey": "sanctions-screening|jo proof-tenant||||",
          "partyId": "tenant-1",
          "ranAt": "2026-10-06T22:51:01.045Z",
          "status": "success"
        },
        {
          "checkId": "fe610b1b-a257-40cf",
          "checkKey": "sanctions",
          "costPence": 5,
          "findings": {
            "sanctions": 0
          },
          "inputKey": "sanctions-screening|sam proof-landlord||||",
          "partyId": "landlord-1",
          "ranAt": "2026-10-06T22:51:02.282Z",
          "status": "success"
        },
        {
          "checkId": "a38140e3-489b-4b08",
          "checkKey": "propertyPack",
          "costPence": 59,
          "detail": "Postcode, crime & flood",
          "inputKey": "postcode-intelligence|ls1 5hn||||",
          "ranAt": "2026-10-06T22:51:02.415Z",
          "status": "success"
        },
        {
          "checkId": "9d37932e-66c8-45ae",
          "checkKey": "propertyPack",
          "costPence": 0,
          "detail": "EPC certificate",
          "inputKey": "epc-energy|ls1 5hn||||1 park row",
          "ranAt": "2026-10-06T22:51:11.839Z",
          "status": "success"
        }
      ],
      "certHash": "d7ee0894793d051928a6",
      "certUrl": "/transactions/8b53c8a4-bc54-447a-acd7-f97d1f704468/certificate",
      "cert": {
        "checksSummary": [
          {
            "label": "Sanctions screening",
            "status": "Complete"
          },
          {
            "label": "Property risk pack",
            "status": "Complete"
          }
        ],
        "firmName": "Proof Lettings Ltd",
        "fullHash": "d7ee0894793d051928a6684511ab7b3f8ade983093ac6a6abb9f9b997ee48fdf",
        "generatedAt": "2026-10-06T22:51:12.782Z",
        "hashPrefix": "d7ee0894793d051928a6",
        "listVersions": {
          "epcQueriedAt": "2026-10-06",
          "postcodeQueriedAt": "2026-10-06",
          "sanctions": "screened 2026-10-06"
        },
        "reference": "LET-0042",
        "summaryVerdict": "PASS"
      },
      "chargedPence": 69
    }
  ]
}
Errors
  • 401401: no key, or an invalid or revoked one. 403 account_key_required: a key for one API, not your account key.
gethttps://api.stratumapis.com/v1/transactions/{id}

One transaction: its people, checks, results, certificate and watch.

Each row of results is one check on one party (or the property): status, costPence, ranAt and, for screens, findings (how many possible matches). Open a row with GET /v1/transactions/{id}/checks/{checkId} for the detail.

Parameters
  • idrequiredin pathThe txnId from creating the transaction.
Example request
curl -H "X-Stratum-Key: $KEY" \
  "https://api.stratumapis.com/v1/transactions/8b53c8a4-bc54-447a-acd7-f97d1f704468"
Example response
{
  "transaction": {
    "customerId": "user_your_account",
    "txnId": "8b53c8a4-bc54-447a-acd7-f97d1f704468",
    "brand": "stratum",
    "type": "letting",
    "status": "complete",
    "createdAt": "2026-10-06T22:51:00.736Z",
    "updatedAt": "2026-10-06T22:51:12.795Z",
    "jurisdiction": "england",
    "reference": {
      "matterRef": "LET-0042"
    },
    "parties": [
      {
        "kind": "individual",
        "name": "Jo Proof-Tenant",
        "partyId": "tenant-1",
        "role": "tenant"
      },
      {
        "kind": "individual",
        "name": "Sam Proof-Landlord",
        "partyId": "landlord-1",
        "role": "landlord"
      }
    ],
    "property": {
      "addressLine1": "1 Park Row",
      "postcode": "LS1 5HN"
    },
    "selectedCheckKeys": [
      "sanctions",
      "propertyPack"
    ],
    "results": [
      {
        "checkId": "b09476da-5240-41e0",
        "checkKey": "sanctions",
        "costPence": 5,
        "findings": {
          "sanctions": 0
        },
        "inputKey": "sanctions-screening|jo proof-tenant||||",
        "partyId": "tenant-1",
        "ranAt": "2026-10-06T22:51:01.045Z",
        "status": "success"
      },
      {
        "checkId": "fe610b1b-a257-40cf",
        "checkKey": "sanctions",
        "costPence": 5,
        "findings": {
          "sanctions": 0
        },
        "inputKey": "sanctions-screening|sam proof-landlord||||",
        "partyId": "landlord-1",
        "ranAt": "2026-10-06T22:51:02.282Z",
        "status": "success"
      },
      {
        "checkId": "a38140e3-489b-4b08",
        "checkKey": "propertyPack",
        "costPence": 59,
        "detail": "Postcode, crime & flood",
        "inputKey": "postcode-intelligence|ls1 5hn||||",
        "ranAt": "2026-10-06T22:51:02.415Z",
        "status": "success"
      },
      {
        "checkId": "9d37932e-66c8-45ae",
        "checkKey": "propertyPack",
        "costPence": 0,
        "detail": "EPC certificate",
        "inputKey": "epc-energy|ls1 5hn||||1 park row",
        "ranAt": "2026-10-06T22:51:11.839Z",
        "status": "success"
      }
    ],
    "certHash": "d7ee0894793d051928a6",
    "certUrl": "/transactions/8b53c8a4-bc54-447a-acd7-f97d1f704468/certificate",
    "cert": {
      "checksSummary": [
        {
          "label": "Sanctions screening",
          "status": "Complete"
        },
        {
          "label": "Property risk pack",
          "status": "Complete"
        }
      ],
      "firmName": "Proof Lettings Ltd",
      "fullHash": "d7ee0894793d051928a6684511ab7b3f8ade983093ac6a6abb9f9b997ee48fdf",
      "generatedAt": "2026-10-06T22:51:12.782Z",
      "hashPrefix": "d7ee0894793d051928a6",
      "listVersions": {
        "epcQueriedAt": "2026-10-06",
        "postcodeQueriedAt": "2026-10-06",
        "sanctions": "screened 2026-10-06"
      },
      "reference": "LET-0042",
      "summaryVerdict": "PASS"
    },
    "chargedPence": 69
  }
}
Errors
  • 404No such transaction (or check) on your account.
patchhttps://api.stratumapis.com/v1/transactions/{id}

Set the people, the property, your reference and the checks.

parties: each with your own partyId, a role (tenant, landlord, guarantor; buyer, seller, payer; client, director, counterparty), a kind (individual or corporate), a name, and for a company its companyNumber; optional dob (YYYY-MM-DD) and nationality (ISO alpha-2) sharpen a screen. property: postcode, addressLine1. reference: matterRef, notes. selectedCheckKeys: see the guide above; a check not sold on Stratum is refused by name (400 not_offered). Sending parties replaces the list. Free.

Parameters
  • idrequiredin pathThe txnId from creating the transaction.
Example request
curl -X PATCH -H "X-Stratum-Key: $KEY" \
  -H "Content-Type: application/json" \
  -d '{"parties":[{"partyId":"tenant-1","role":"tenant","kind":"individual","name":"Jo Proof-Tenant"},{"partyId":"landlord-1","role":"landlord","kind":"individual","name":"Sam Proof-Landlord"}],"property":{"postcode":"LS1 5HN","addressLine1":"1 Park Row"},"reference":{"matterRef":"LET-0042"},"selectedCheckKeys":["sanctions","propertyPack"]}' \
  "https://api.stratumapis.com/v1/transactions/8b53c8a4-bc54-447a-acd7-f97d1f704468"
Example response
{
  "transaction": {
    "customerId": "user_your_account",
    "txnId": "8b53c8a4-bc54-447a-acd7-f97d1f704468",
    "brand": "stratum",
    "type": "letting",
    "status": "draft",
    "createdAt": "2026-10-06T22:51:00.736Z",
    "updatedAt": "2026-10-06T22:51:00.840Z",
    "jurisdiction": "england",
    "reference": {
      "matterRef": "LET-0042"
    },
    "parties": [
      {
        "partyId": "tenant-1",
        "role": "tenant",
        "kind": "individual",
        "name": "Jo Proof-Tenant"
      },
      {
        "partyId": "landlord-1",
        "role": "landlord",
        "kind": "individual",
        "name": "Sam Proof-Landlord"
      }
    ],
    "property": {
      "postcode": "LS1 5HN",
      "addressLine1": "1 Park Row"
    },
    "selectedCheckKeys": [
      "sanctions",
      "propertyPack"
    ],
    "results": []
  }
}
Errors
  • 400Something in the request is wrong; message says what.
  • 404No such transaction (or check) on your account.
gethttps://api.stratumapis.com/v1/transactions/{id}/quote

What a run will cost, at your prices, and your balance.

Assumes every chosen check runs; a run again charges only new, changed and failed checks. monthVolume is your account's checks of each kind this month; a line at the lower price carries "volumePrice": true. Free.

Parameters
  • idrequiredin pathThe txnId from creating the transaction.
Example request
curl -H "X-Stratum-Key: $KEY" \
  "https://api.stratumapis.com/v1/transactions/8b53c8a4-bc54-447a-acd7-f97d1f704468/quote"
Example response
{
  "ok": true,
  "lineItems": [
    {
      "checkKey": "sanctions",
      "label": "Sanctions screening",
      "qty": 2,
      "unitPence": 5,
      "subtotalPence": 10,
      "priced": true
    },
    {
      "checkKey": "propertyPack",
      "label": "Property risk pack",
      "qty": 1,
      "unitPence": 59,
      "subtotalPence": 59,
      "priced": true
    }
  ],
  "totalPence": 69,
  "fromPence": 5,
  "certIncluded": true,
  "currency": "GBP",
  "balancePence": 100,
  "monthVolume": {}
}
Errors
  • 404No such transaction (or check) on your account.
posthttps://api.stratumapis.com/v1/transactions/{id}/run

Run the chosen checks, charge them from your credit, and issue the certificate.

Body optional: { "recheck": true } runs every check again, charged; { "continue": true } runs the next part when a reply said "more": true. A check that fails is not charged. With too little credit nothing runs: HTTP 402.

Parameters
  • idrequiredin pathThe txnId from creating the transaction.
Example request
curl -X POST -H "X-Stratum-Key: $KEY" \
  -H "Content-Type: application/json" \
  -d '{}' \
  "https://api.stratumapis.com/v1/transactions/8b53c8a4-bc54-447a-acd7-f97d1f704468/run"
Example response
{
  "ok": true,
  "status": "completed",
  "totalChargedPence": 69,
  "reusedCount": 0,
  "balanceAfterPence": 31,
  "watchFailed": [],
  "certHash": "d7ee0894793d051928a6",
  "transaction": {
    "customerId": "user_your_account",
    "txnId": "8b53c8a4-bc54-447a-acd7-f97d1f704468",
    "brand": "stratum",
    "type": "letting",
    "status": "complete",
    "createdAt": "2026-10-06T22:51:00.736Z",
    "updatedAt": "2026-10-06T22:51:12.795Z",
    "jurisdiction": "england",
    "reference": {
      "matterRef": "LET-0042"
    },
    "parties": [
      {
        "kind": "individual",
        "name": "Jo Proof-Tenant",
        "partyId": "tenant-1",
        "role": "tenant"
      },
      {
        "kind": "individual",
        "name": "Sam Proof-Landlord",
        "partyId": "landlord-1",
        "role": "landlord"
      }
    ],
    "property": {
      "addressLine1": "1 Park Row",
      "postcode": "LS1 5HN"
    },
    "selectedCheckKeys": [
      "sanctions",
      "propertyPack"
    ],
    "results": [
      {
        "checkKey": "sanctions",
        "partyId": "tenant-1",
        "checkId": "b09476da-5240-41e0",
        "status": "success",
        "costPence": 5,
        "ranAt": "2026-10-06T22:51:01.045Z",
        "inputKey": "sanctions-screening|jo proof-tenant||||",
        "findings": {
          "sanctions": 0
        }
      },
      {
        "checkKey": "sanctions",
        "partyId": "landlord-1",
        "checkId": "fe610b1b-a257-40cf",
        "status": "success",
        "costPence": 5,
        "ranAt": "2026-10-06T22:51:02.282Z",
        "inputKey": "sanctions-screening|sam proof-landlord||||",
        "findings": {
          "sanctions": 0
        }
      },
      {
        "checkKey": "propertyPack",
        "checkId": "a38140e3-489b-4b08",
        "status": "success",
        "costPence": 59,
        "ranAt": "2026-10-06T22:51:02.415Z",
        "inputKey": "postcode-intelligence|ls1 5hn||||",
        "detail": "Postcode, crime & flood"
      },
      {
        "checkKey": "propertyPack",
        "checkId": "9d37932e-66c8-45ae",
        "status": "success",
        "costPence": 0,
        "ranAt": "2026-10-06T22:51:11.839Z",
        "inputKey": "epc-energy|ls1 5hn||||1 park row",
        "detail": "EPC certificate"
      }
    ],
    "certHash": "d7ee0894793d051928a6",
    "certUrl": "/transactions/8b53c8a4-bc54-447a-acd7-f97d1f704468/certificate",
    "cert": {
      "hashPrefix": "d7ee0894793d051928a6",
      "fullHash": "d7ee0894793d051928a6684511ab7b3f8ade983093ac6a6abb9f9b997ee48fdf",
      "generatedAt": "2026-10-06T22:51:12.782Z",
      "summaryVerdict": "PASS",
      "firmName": "Proof Lettings Ltd",
      "listVersions": {
        "epcQueriedAt": "2026-10-06",
        "postcodeQueriedAt": "2026-10-06",
        "sanctions": "screened 2026-10-06"
      },
      "checksSummary": [
        {
          "label": "Sanctions screening",
          "status": "Complete"
        },
        {
          "label": "Property risk pack",
          "status": "Complete"
        }
      ],
      "reference": "LET-0042"
    },
    "chargedPence": 69
  }
}
Errors
  • 402Not enough credit: nothing ran, nothing was charged. neededPence, balancePence, topUpPath.
  • 404No such transaction (or check) on your account.
gethttps://api.stratumapis.com/v1/transactions/{id}/checks/{checkId}

The full answer behind one result row.

Who a screen matched and on which list, the EPC rating, the flood zone: result is the answer as the data source gave it (the same as the single APIs; result.checkId is the data source reference, kept on the certificate). Free.

Parameters
  • idrequiredin pathThe txnId from creating the transaction.
  • checkIdrequiredin pathA checkId from the transaction's results.
Example request
curl -H "X-Stratum-Key: $KEY" \
  "https://api.stratumapis.com/v1/transactions/8b53c8a4-bc54-447a-acd7-f97d1f704468/checks/b09476da-5240-41e0"
Example response: A sanctions screen
{
  "ok": true,
  "checkId": "b09476da-5240-41e0",
  "checkKey": "sanctions",
  "partyId": "tenant-1",
  "status": "success",
  "ranAt": "2026-10-06T22:51:01.045Z",
  "costPence": 5,
  "source": "sanctions-screening",
  "input": "Jo Proof-Tenant",
  "result": {
    "checkId": "chk_41f1a051-3af2-4784-8cdb-cf7825c39e2c",
    "screenedAt": "2026-10-06T22:51:01.726Z",
    "query": "Jo Proof-Tenant",
    "count": 0,
    "matches": [],
    "screenedWith": {
      "type": "any",
      "minScore": 0.7
    },
    "listsScreened": [
      "UK Sanctions List (FCDO) (updated 2026-10-06)",
      "UN Security Council Consolidated Sanctions List (updated 2026-10-06)",
      "EU Consolidated Financial Sanctions List (updated 2026-10-06)",
      "US OFAC Sanctions Lists (SDN and non-SDN) (updated 2026-10-06)"
    ],
    "screenProvenance": "Screened against: UK Sanctions List (FCDO), UN Security Council Consolidated Sanctions List, EU Consolidated Financial Sanctions List and US OFAC Sanctions Lists (SDN and non-SDN).",
    "listsSnapshotAt": "2026-10-06T04:00:47.663Z"
  }
}
Example response: The property risk pack (postcode, crime and flood part)
{
  "ok": true,
  "checkId": "a38140e3-489b-4b08",
  "checkKey": "propertyPack",
  "detail": "Postcode, crime & flood",
  "status": "success",
  "ranAt": "2026-10-06T22:51:02.415Z",
  "costPence": 59,
  "source": "postcode-intelligence",
  "input": "LS1 5HN",
  "result": {
    "postcode": "LS1 5HN",
    "latitude": 53.797146,
    "longitude": -1.546845,
    "localAuthority": "Leeds",
    "constituency": "Leeds Central and Headingley",
    "lsoaCode": "E01033010",
    "outcode": "LS1",
    "crime": {
      "monthsObserved": 1,
      "totalCount": 1521,
      "byCategory": {
        "anti-social-behaviour": 149,
        "bicycle-theft": 18,
        "burglary": 54,
        "criminal-damage-arson": 77,
        "drugs": 64,
        "other-theft": 116,
        "possession-of-weapons": 10,
        "public-order": 100,
        "robbery": 42,
        "shoplifting": 327,
        "theft-from-the-person": 36,
        "vehicle-crime": 91,
        "violent-crime": 416,
        "other-crime": 21
      },
      "nearbyCount": 1521,
      "monthQueried": "2026-08",
      "rating": {
        "areaMonthlyCount": 1521,
        "ukReferenceMonthlyCount": 80,
        "ratio": 19.01,
        "rating": "E",
        "interpretation": "Recorded crimes are 1901% of the typical UK residential level. Significantly above average; common for city-centre or transport-hub 1-mile areas. Review the per-category breakdown for context.",
        "methodology": "Compared to a typical UK residential 1-mile area. Does not density-adjust; city-centre postcodes will rate E even if safe for their setting."
      }
    },
    "flood": {
      "riverAndSea": "low",
      "floodZone": "1",
      "floodZoneSource": null,
      "historicalEventCount": 0,
      "nearestStation": "Batley Carlinghow",
      "currentWarning": null,
      "recommendation": "Flood Zone 1 at this postcode's centre: a low probability of flooding from rivers or the sea (under 0.1% a year). For the exact address, use the government's \"Check your long term flood risk\" service.",
      "postcodeArea": "LS",
      "source": "ea-flood-zones"
    },
    "radon": {
      "band": "unknown",
      "percentageAboveActionLevel": null,
      "testRecommended": null,
      "postcodeArea": "LS",
      "source": "not-checked",
      "screened": false,
      "recommendation": "Not checked: we don't hold radon data for individual postcodes yet. The UKHSA radon map shows the risk for an address: ukradon.org."
    },
    "coalMining": {
      "band": "low",
      "matchedPolygonIds": [
        "9577"
      ],
      "recommendation": "At the postcode centre this is in the coal mining reporting area (the coalfield), outside its high-risk areas. Lenders and the Law Society expect a CON29M coal mining report for a property in the coalfield. The exact address can be checked on the Mining Remediation Authority's map (https://datamine-cauk.hub.arcgis.com/).",
      "screened": true,
      "source": "Mining Remediation Authority",
      "checkedAt": "2026-10-06T22:51:03.460Z"
    },
    "knotweed": {
      "band": "unknown",
      "postcodeArea": "LS",
      "source": "not-checked",
      "screened": false,
      "recommendation": "Not checked: we don't hold Japanese knotweed data yet. Rely on the seller's answer in the property information form (TA6) and look for it when viewing.",
      "disclaimer": "Knotweed band is proxy-derived from INNS / iRecord public sightings aggregated to postcode-area resolution. It is NOT a property-level survey. A buyer should still rely on the seller's TA6 disclosure + a chartered surveyor's field check before exchange."
    },
    "contaminatedLand": {
      "band": "unknown",
      "contaminatedLandRecords": [],
      "landfill": {
        "band": "unknown",
        "approxNearbyCount": null,
        "sites": [],
        "postcodeArea": "LS",
        "source": "not-checked",
        "screened": false,
        "recommendation": "Not checked: we don't hold the Environment Agency landfill register yet. An environmental search before exchange covers it."
      },
      "laAdapterAvailable": false,
      "localAuthority": "Leeds",
      "screened": false,
      "recommendation": "Not checked: we don't hold council contaminated-land registers or the Environment Agency landfill register yet. An environmental search before exchange covers both.",
      "disclaimer": "Contaminated-land register coverage is partial; only Local Authorities with a wired adapter are queried. EA landfill data is national. A \"low/none\" verdict from this lookup is NOT a guarantee that the property is uncontaminated; commission a full EA Environmental Search through a chartered surveyor before exchange."
    },
    "deprivation": {
      "lsoaCode": "E01033010",
      "outOf": 33755,
      "source": "English Indices of Deprivation 2025 (MHCLG, published 30 October 2025)",
      "decile": 3,
      "rank": 9101,
      "incomeDecile": 10,
      "employmentDecile": 10
    },
    "retrievedAt": "2026-10-06T22:51:11.642Z"
  }
}
Errors
  • 404No such transaction (or check) on your account.
posthttps://api.stratumapis.com/v1/transactions/{id}/monitor

Watch everyone named, daily, until the job is closed.

Each person is re-screened daily against the sanctions lists; you are emailed if one is added. Included.

Parameters
  • idrequiredin pathThe txnId from creating the transaction.
Example request
curl -X POST -H "X-Stratum-Key: $KEY" \
  "https://api.stratumapis.com/v1/transactions/8b53c8a4-bc54-447a-acd7-f97d1f704468/monitor"
Example response
{
  "ok": true,
  "failed": [],
  "transaction": {
    "customerId": "user_your_account",
    "txnId": "8b53c8a4-bc54-447a-acd7-f97d1f704468",
    "brand": "stratum",
    "type": "letting",
    "status": "complete",
    "createdAt": "2026-10-06T22:51:00.736Z",
    "updatedAt": "2026-10-06T22:51:31.729Z",
    "jurisdiction": "england",
    "reference": {
      "matterRef": "LET-0042"
    },
    "parties": [
      {
        "kind": "individual",
        "name": "Jo Proof-Tenant",
        "partyId": "tenant-1",
        "role": "tenant"
      },
      {
        "kind": "individual",
        "name": "Sam Proof-Landlord",
        "partyId": "landlord-1",
        "role": "landlord"
      }
    ],
    "property": {
      "addressLine1": "1 Park Row",
      "postcode": "LS1 5HN"
    },
    "selectedCheckKeys": [
      "sanctions",
      "propertyPack",
      "monitoring"
    ],
    "results": [
      {
        "checkId": "b09476da-5240-41e0",
        "checkKey": "sanctions",
        "costPence": 5,
        "findings": {
          "sanctions": 0
        },
        "inputKey": "sanctions-screening|jo proof-tenant||||",
        "partyId": "tenant-1",
        "ranAt": "2026-10-06T22:51:01.045Z",
        "status": "success"
      },
      {
        "checkId": "fe610b1b-a257-40cf",
        "checkKey": "sanctions",
        "costPence": 5,
        "findings": {
          "sanctions": 0
        },
        "inputKey": "sanctions-screening|sam proof-landlord||||",
        "partyId": "landlord-1",
        "ranAt": "2026-10-06T22:51:02.282Z",
        "status": "success"
      },
      {
        "checkId": "a38140e3-489b-4b08",
        "checkKey": "propertyPack",
        "costPence": 59,
        "detail": "Postcode, crime & flood",
        "inputKey": "postcode-intelligence|ls1 5hn||||",
        "ranAt": "2026-10-06T22:51:02.415Z",
        "status": "success"
      },
      {
        "checkId": "9d37932e-66c8-45ae",
        "checkKey": "propertyPack",
        "costPence": 0,
        "detail": "EPC certificate",
        "inputKey": "epc-energy|ls1 5hn||||1 park row",
        "ranAt": "2026-10-06T22:51:11.839Z",
        "status": "success"
      }
    ],
    "certHash": "1044460adfdeb75df882",
    "certUrl": "/transactions/8b53c8a4-bc54-447a-acd7-f97d1f704468/certificate",
    "cert": {
      "hashPrefix": "1044460adfdeb75df882",
      "fullHash": "1044460adfdeb75df8828cac937bb65320c83b9051e789f5c0251a7b306756ed",
      "generatedAt": "2026-10-06T22:51:31.718Z",
      "summaryVerdict": "PASS",
      "firmName": "Proof Lettings Ltd",
      "listVersions": {
        "epcQueriedAt": "2026-10-06",
        "postcodeQueriedAt": "2026-10-06",
        "sanctions": "screened 2026-10-06"
      },
      "checksSummary": [
        {
          "label": "Sanctions screening",
          "status": "Complete"
        },
        {
          "label": "Property risk pack",
          "status": "Complete"
        }
      ],
      "reference": "LET-0042"
    },
    "monitoring": {
      "enabled": true,
      "entityIds": [],
      "entries": [
        {
          "partyId": "tenant-1",
          "entityId": "ent_6f4982d4-d95b-4053-8b42-00faa732bde5",
          "name": "Jo Proof-Tenant"
        },
        {
          "partyId": "landlord-1",
          "entityId": "ent_ae6df2d0-ec94-4779-9de6-823ee2fa206c",
          "name": "Sam Proof-Landlord"
        }
      ],
      "startedAt": "2026-10-06T22:51:31.547Z",
      "until": "2026-11-17",
      "extendedWeeks": 0,
      "chargedPence": 0
    },
    "chargedPence": 69
  }
}
Errors
  • 404No such transaction (or check) on your account.
deletehttps://api.stratumapis.com/v1/transactions/{id}/monitor

Stop watching.

Parameters
  • idrequiredin pathThe txnId from creating the transaction.
Example request
curl -X DELETE -H "X-Stratum-Key: $KEY" \
  "https://api.stratumapis.com/v1/transactions/8b53c8a4-bc54-447a-acd7-f97d1f704468/monitor"
Example response
{
  "ok": true,
  "failed": [],
  "transaction": {
    "customerId": "user_your_account",
    "txnId": "8b53c8a4-bc54-447a-acd7-f97d1f704468",
    "brand": "stratum",
    "type": "letting",
    "status": "complete",
    "createdAt": "2026-10-06T22:51:00.736Z",
    "updatedAt": "2026-10-06T22:51:31.905Z",
    "jurisdiction": "england",
    "reference": {
      "matterRef": "LET-0042"
    },
    "parties": [
      {
        "kind": "individual",
        "name": "Jo Proof-Tenant",
        "partyId": "tenant-1",
        "role": "tenant"
      },
      {
        "kind": "individual",
        "name": "Sam Proof-Landlord",
        "partyId": "landlord-1",
        "role": "landlord"
      }
    ],
    "property": {
      "addressLine1": "1 Park Row",
      "postcode": "LS1 5HN"
    },
    "selectedCheckKeys": [
      "sanctions",
      "propertyPack",
      "monitoring"
    ],
    "results": [
      {
        "checkId": "b09476da-5240-41e0",
        "checkKey": "sanctions",
        "costPence": 5,
        "findings": {
          "sanctions": 0
        },
        "inputKey": "sanctions-screening|jo proof-tenant||||",
        "partyId": "tenant-1",
        "ranAt": "2026-10-06T22:51:01.045Z",
        "status": "success"
      },
      {
        "checkId": "fe610b1b-a257-40cf",
        "checkKey": "sanctions",
        "costPence": 5,
        "findings": {
          "sanctions": 0
        },
        "inputKey": "sanctions-screening|sam proof-landlord||||",
        "partyId": "landlord-1",
        "ranAt": "2026-10-06T22:51:02.282Z",
        "status": "success"
      },
      {
        "checkId": "a38140e3-489b-4b08",
        "checkKey": "propertyPack",
        "costPence": 59,
        "detail": "Postcode, crime & flood",
        "inputKey": "postcode-intelligence|ls1 5hn||||",
        "ranAt": "2026-10-06T22:51:02.415Z",
        "status": "success"
      },
      {
        "checkId": "9d37932e-66c8-45ae",
        "checkKey": "propertyPack",
        "costPence": 0,
        "detail": "EPC certificate",
        "inputKey": "epc-energy|ls1 5hn||||1 park row",
        "ranAt": "2026-10-06T22:51:11.839Z",
        "status": "success"
      }
    ],
    "certHash": "4ca9ca13a1aeeb80bc90",
    "certUrl": "/transactions/8b53c8a4-bc54-447a-acd7-f97d1f704468/certificate",
    "cert": {
      "hashPrefix": "4ca9ca13a1aeeb80bc90",
      "fullHash": "4ca9ca13a1aeeb80bc90f069c52b9b61937d2d2688b92c37c166c37ce93c1f43",
      "generatedAt": "2026-10-06T22:51:31.897Z",
      "summaryVerdict": "PASS",
      "firmName": "Proof Lettings Ltd",
      "listVersions": {
        "epcQueriedAt": "2026-10-06",
        "postcodeQueriedAt": "2026-10-06",
        "sanctions": "screened 2026-10-06"
      },
      "checksSummary": [
        {
          "label": "Sanctions screening",
          "status": "Complete"
        },
        {
          "label": "Property risk pack",
          "status": "Complete"
        }
      ],
      "reference": "LET-0042"
    },
    "monitoring": {
      "chargedPence": 0,
      "enabled": false,
      "entityIds": [],
      "entries": [
        {
          "entityId": "ent_6f4982d4-d95b-4053-8b42-00faa732bde5",
          "name": "Jo Proof-Tenant",
          "partyId": "tenant-1"
        },
        {
          "entityId": "ent_ae6df2d0-ec94-4779-9de6-823ee2fa206c",
          "name": "Sam Proof-Landlord",
          "partyId": "landlord-1"
        }
      ],
      "extendedWeeks": 0,
      "startedAt": "2026-10-06T22:51:31.547Z",
      "until": "2026-11-17",
      "stoppedAt": "2026-10-06T22:51:31.892Z"
    },
    "chargedPence": 69
  }
}
Errors
  • 404No such transaction (or check) on your account.
gethttps://api.stratumapis.com/v1/transactions/{id}/results.csv

The results as a spreadsheet (CSV).

Parameters
  • idrequiredin pathThe txnId from creating the transaction.
Example request
curl -H "X-Stratum-Key: $KEY" \
  "https://api.stratumapis.com/v1/transactions/8b53c8a4-bc54-447a-acd7-f97d1f704468/results.csv"
Errors
  • 404No such transaction (or check) on your account.
gethttps://api.stratumapis.com/v1/transactions/company-lookup

A company's name and the people its check would screen, before you add it.

From Companies House only, so you can show the price of PEP on its directors and owners first. Free.

Parameters
  • numberrequiredin queryCompanies House number.
Example request
curl -H "X-Stratum-Key: $KEY" \
  "https://api.stratumapis.com/v1/transactions/company-lookup?number=00445790"
Example response
{
  "ok": true,
  "companyNumber": "00445790",
  "companyName": "TESCO PLC",
  "companyStatus": "active",
  "people": [
    {
      "name": "Christopher Jon Taylor",
      "roles": [
        "Secretary"
      ],
      "individual": true,
      "idStatus": "no ID verification details on the register"
    },
    {
      "name": "Melissa Bethell",
      "roles": [
        "Director"
      ],
      "individual": true,
      "dateOfBirth": {
        "month": 9,
        "year": 1974
      },
      "idStatus": "ID verified 29 Jul 2025"
    },
    {
      "name": "Bertrand Jean Francois Bodson",
      "roles": [
        "Director"
      ],
      "individual": true,
      "dateOfBirth": {
        "month": 6,
        "year": 1975
      },
      "idStatus": "no ID verification details on the register"
    },
    {
      "name": "Carolyn Julie Fairbairn",
      "roles": [
        "Director"
      ],
      "individual": true,
      "dateOfBirth": {
        "month": 12,
        "year": 1960
      },
      "idStatus": "no ID verification details on the register"
    },
    {
      "name": "Stewart Charles Gilliland",
      "roles": [
        "Director"
      ],
      "individual": true,
      "dateOfBirth": {
        "month": 2,
        "year": 1957
      },
      "idStatus": "no ID verification details on the register"
    },
    {
      "name": "Christopher John Kennedy",
      "roles": [
        "Director"
      ],
      "individual": true,
      "dateOfBirth": {
        "month": 1,
        "year": 1964
      },
      "idStatus": "ID verified 5 Sept 2025"
    },
    {
      "name": "Gerard Martin Murphy",
      "roles": [
        "Director"
      ],
      "individual": true,
      "dateOfBirth": {
        "month": 11,
        "year": 1955
      },
      "idStatus": "no ID verification details on the register"
    },
    {
      "name": "Ken Murphy",
      "roles": [
        "Director"
      ],
      "individual": true,
      "dateOfBirth": {
        "month": 9,
        "year": 1966
      },
      "idStatus": "no ID verification details on the register"
    },
    {
      "name": "Imran Nawaz",
      "roles": [
        "Director"
      ],
      "individual": true,
      "dateOfBirth": {
        "month": 9,
        "year": 1973
      },
      "idStatus": "no ID verification details on the register"
    },
    {
      "name": "Caroline Louise Silver",
      "roles": [
        "Director"
      ],
      "individual": true,
      "dateOfBirth": {
        "month": 12,
        "year": 1962
      },
      "idStatus": "no ID verification details on the register"
    },
    {
      "name": "Karen Tracy Whitworth",
      "roles": [
        "Director"
      ],
      "individual": true,
      "dateOfBirth": {
        "month": 8,
        "year": 1969
      },
      "idStatus": "ID verified 25 Jul 2025"
    }
  ],
  "notScreened": 0,
  "ownersUnavailable": false
}
Errors
  • 400Something in the request is wrong; message says what.
gethttps://api.stratumapis.com/v1/transactions/firm

The firm name printed on your certificates.

Example request
curl -H "X-Stratum-Key: $KEY" \
  "https://api.stratumapis.com/v1/transactions/firm"
Example response
{
  "ok": true,
  "firmName": null,
  "firmAddress": null,
  "certificateIssuer": "Stratum APIs customer"
}
puthttps://api.stratumapis.com/v1/transactions/firm

Set the firm name (and address) printed on your certificates.

firmName and firmAddress, up to 200 characters each; "" clears one, a field left out is unchanged.

Example request
curl -X PUT -H "X-Stratum-Key: $KEY" \
  -H "Content-Type: application/json" \
  -d '{"firmName":"Proof Lettings Ltd","firmAddress":"1 Park Row, Leeds LS1 5HN"}' \
  "https://api.stratumapis.com/v1/transactions/firm"
Example response
{
  "ok": true,
  "firmName": "Proof Lettings Ltd",
  "firmAddress": "1 Park Row, Leeds LS1 5HN",
  "certificateIssuer": "Proof Lettings Ltd"
}
Errors
  • 400Not text, or nothing sent.