Tuxa - UK Property Licensing Checker
v1

Tuxa API

Programmatic access to UK property rental licensing data. Check whether any UK address falls within a selective or additional licensing scheme, directly from your application or CRM.

REST APIJSON responsesCredit-based1 credit per lookupOS Places geocoding

Quick Start

You can make your first API call in under two minutes. Follow these three steps:

1

Create an account and sign in

Sign in to Tuxa using the button in the top-right corner. New accounts receive 3 free credits to get started.

2

Generate an API key

Scroll to Manage Your API Keys below and click New API Key. Copy the key immediately — it is only shown once.

Store your API key securely. Never expose it in client-side JavaScript or commit it to source control.
3

Make your first lookup

Send a POST /lookup request with any UK address. The API returns the licensing status, applicable schemes, and the property's UPRN.

bash
curl -X POST https://tuxa.co.uk/api/v1/lookup \
  -H "Authorization: Bearer tuxa_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{"address": "14 Coldharbour Lane, London SE5 9NR"}'

Authentication

All API requests must include your API key in the Authorization header using the Bearer scheme. API keys begin with tuxa_.

http
Authorization: Bearer tuxa_your_api_key_here

API keys are tied to your Tuxa account and deduct from your credit balance. Keep your key secret and never expose it in client-side code.

Pricing and Credits

The Tuxa API uses a credit-based pricing model. Each successful POST /lookup request deducts one credit from your balance. New accounts receive 10 free trial credits on sign-up. Credits never expire.

PackageAPI CallsPricePer call
Free TrialOn sign-up10FreeFree
100 API Calls100£10.0010p
500 API Calls500£45.009p
1,000 API Calls1,000£80.008p
EnterpriseCustomContact us£0.15+

Enterprise contracts include volume discounts, SLA guarantees, and dedicated support. Contact [email protected] to discuss your requirements.

Interactive Playground

Try a live lookup directly in your browser. Enter any UK address and your API key to see the full response.

Sign in to auto-populate your API key.

Base URL

All API endpoints are relative to the following base URL:

url
https://tuxa.co.uk/api/v1

POST /lookup

Check whether a UK property address falls within a selective or additional licensing scheme. Provide an address string, a UPRN, or precise coordinates. Deducts 1 credit per successful request.

Request body

FieldTypeRequiredDescription
addressstringConditionalFull UK property address. Required if uprn and coordinates are not provided. Including the full postcode significantly improves geocoding accuracy.
uprnstringConditionalUnique Property Reference Number. When provided, geocoding is resolved directly via OS Places with zero ambiguity — the fastest and most precise resolution path. Recommended for CRM integrations that store UPRNs.
latitudenumberConditionalWGS84 latitude. Required together with longitude if address and UPRN are not provided.
longitudenumberConditionalWGS84 longitude. Required together with latitude if address and UPRN are not provided.
Tip for CRM integrations: If your system stores UPRNs, pass the UPRN directly — it bypasses address parsing entirely and gives property-level accuracy (~1–5 m) via the OS Places API. If you only have an address string, always include the full postcode for best results.

Example requests

bash
curl -X POST https://tuxa.co.uk/api/v1/lookup \
  -H "Authorization: Bearer tuxa_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{"address": "14 Coldharbour Lane, London SE5 9NR"}'

Example response

json
{
  "address": "14 Coldharbour Lane, London SE5 9NR",
  "coordinates": {
    "latitude": 51.4675,
    "longitude": -0.0922
  },
  "council": {
    "id": 42,
    "name": "London Borough of Southwark",
    "code": "southwark"
  },
  "licensing": {
    "requiresLicense": true,
    "licenseType": "selective",
    "schemes": [
      {
        "id": 87,
        "name": "Southwark Selective Licensing Scheme",
        "type": "Selective",
        "startDate": "2023-04-01",
        "endDate": "2028-03-31",
        "description": "Borough-wide selective licensing scheme.",
        "moreInfoUrl": "https://www.southwark.gov.uk/housing/private-sector-housing/licensing"
      }
    ]
  },
  "geocoding": {
    "source": "os_places",
    "uprn": "100021892955"
  },
  "meta": {
    "creditsRemaining": 49,
    "checkedAt": "2026-03-26T14:22:01.000Z"
  }
}

Response fields

FieldDescription
licensing.requiresLicenseBoolean — whether a licence is required for this property
licensing.licenseType"none", "selective", "additional", or "both"
licensing.schemesArray of applicable licensing scheme objects
council.nameName of the local authority the property falls within
geocoding.sourceWhich provider resolved the coordinates: "os_places", "cache", "postcodes_io", "google", or "passthrough"
geocoding.uprnUPRN of the matched property (when resolved via OS Places)
meta.creditsRemainingYour remaining credit balance after this request
meta.checkedAtISO 8601 timestamp of when the check was performed

Licence type values

ValueMeaning
noneNo licensing scheme applies to this property
selectiveThe property falls within a selective licensing area
additionalThe property falls within an additional (HMO) licensing area
bothThe property falls within both selective and additional licensing areas

GET /credits

Returns the current credit balance for the authenticated API key. Does not deduct any credits.

Example request

bash
curl https://tuxa.co.uk/api/v1/credits \
  -H "Authorization: Bearer tuxa_your_api_key_here"

Example response

json
{
  "creditsRemaining": 49
}

Error Handling

The API uses standard HTTP status codes. All error responses include an error field and a human-readable message.

StatusErrorDescription
400Bad RequestMissing required fields. Provide either address, UPRN, or coordinates.
401UnauthorisedMissing, invalid, or revoked API key.
402payment_requiredYour credit balance is zero. The response includes topUpUrl and docsUrl for easy recovery.
404Council Not FoundThe coordinates do not correspond to a known local authority in England or Wales.
422Geocoding FailedThe address could not be geocoded. Check the address includes a valid UK postcode and try again.
429Too Many RequestsRate limit exceeded. Maximum 60 requests per minute per API key.
500Internal Server ErrorAn unexpected error occurred. Please try again or contact support.

Error response format

json
{
  "error": "payment_required",
  "message": "You have no API credits remaining. Top up to continue making lookups.",
  "creditsRemaining": 0,
  "topUpUrl": "https://tuxa.co.uk/credits",
  "docsUrl": "https://tuxa.co.uk/api-docs#pricing"
}

Code Examples

javascript
const response = await fetch('https://tuxa.co.uk/api/v1/lookup', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer tuxa_your_api_key_here',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    address: '14 Coldharbour Lane, London SE5 9NR',
  }),
});

const data = await response.json();

if (data.licensing.requiresLicense) {
  console.log(`Licence required: ${data.licensing.licenseType}`);
  data.licensing.schemes.forEach(scheme => {
    console.log(`  - ${scheme.name} (${scheme.type})`);
  });
} else {
  console.log('No licensing scheme applies to this property.');
}
console.log(`Credits remaining: ${data.meta.creditsRemaining}`);

Manage Your API Keys

Create and revoke API keys from your account below. Each key is shown in full only once at creation time — store it securely in your application's environment variables.

API Keys
Keys are linked to your account credit balance. Revoking a key immediately invalidates it.