Skip to main content

PlanNexus Python SDK

Official Python client for the PlanNexus planning data API — access live planning applications from 100+ UK local authorities through one consistent interface.

Install

pip install plannexus

Requires Python 3.10+. Depends only on httpx.

Usage

Synchronous

from plannexus import PlanNexus

with PlanNexus(api_key="pn_live_...") as client:
    # Full-text + structured search
    result = client.applications.search(q="extension", postcode="SW1", per_page=10)
    for app in result["data"]:
        print(app["reference"], "-", app["address"])

    # Nearby (radius in metres)
    nearby = client.applications.nearby(lat=51.509, lng=-0.118, radius=500)

    # Single record with full detail
    full = client.applications.get(app["id"])

    # One structured property due-diligence dossier (uprn / lat+lng / postcode)
    dossier = client.dossier(postcode="SW1A 1AA")

Asynchronous

import asyncio
from plannexus import AsyncPlanNexus

async def main():
    async with AsyncPlanNexus(api_key="pn_live_...") as client:
        result = await client.applications.search(postcode="SW1")
        print(f"Matched {result['meta']['total']} applications")

asyncio.run(main())

Rate limits & retries

The client automatically retries 429 Too Many Requests up to 3 times, honouring the Retry-After header when present. After retries are exhausted a RateLimitError is raised with the .retry_after attribute.

from plannexus import PlanNexus, RateLimitError

try:
    client.applications.search(...)
except RateLimitError as e:
    print(f"Still rate-limited; hint was {e.retry_after}s")

Error handling

Any non-2xx (other than handled 429s) raises PlanNexusError with .status_code, .detail, and .body populated from the response.

Links

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

plannexus-0.2.0.tar.gz (6.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

plannexus-0.2.0-py3-none-any.whl (5.5 kB view details)

Uploaded Python 3

File details

Details for the file plannexus-0.2.0.tar.gz.

File metadata

  • Download URL: plannexus-0.2.0.tar.gz
  • Upload date:
  • Size: 6.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.32 {"installer":{"name":"uv","version":"0.11.32","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for plannexus-0.2.0.tar.gz
Algorithm Hash digest
SHA256 22092e8458216ca2d641db25e10c1bf6a6070459e97dbc59c89713d835c23f2a
MD5 c8cb2cd1c9ad6596f595fcba2924730f
BLAKE2b-256 dfc273931d0deff3c78ab866828bcb028d023d267e94148ec51697bdb6672536

See more details on using hashes here.

File details

Details for the file plannexus-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: plannexus-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 5.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.32 {"installer":{"name":"uv","version":"0.11.32","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for plannexus-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0d4378765e2d54ded1a144622a7fac381ab3184821c5a51c8f5e24507d79d6e3
MD5 8de74db87f394289908a8eb2c95c7501
BLAKE2b-256 4ba9beb53d4d1336a24c73562936dfe251a39ed0393e3f9fb6882878908d13d7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page