addresso/addresso-php

Official PHP client for the Addresso UK address lookup API

Maintainers

Package info

github.com/addresso-co-uk/addresso-php

Homepage

pkg:composer/addresso/addresso-php

Statistics

Installs: 0

Dependents: 1

Suggesters: 0

Stars: 0

Open Issues: 0

dev-main 2026-02-17 14:56 UTC

This package is not auto-updated.

Last update: 2026-05-13 14:21:42 UTC


README

Official PHP client for the Addresso UK address lookup API.

  • PHP 8.1+
  • Zero dependencies (uses built-in cURL)
  • Typed data classes with full IDE autocomplete

Installation

composer require addresso/addresso-php

Quick start

use Addresso\Client;

$client = new Client('ak_your_api_key');

// Postcode lookup
$result = $client->lookupPostcode('SW1A 1AA');

foreach ($result->addresses as $address) {
    echo "{$address->buildingNumber} {$address->street}, {$address->town}\n";
}

// Address search
$result = $client->searchAddresses(['q' => '10 Downing Street']);

echo "Found {$result->count} addresses\n";

// Account info
$account = $client->account();

echo "Credits remaining: {$account->creditsBalance}\n";

API

Client

$client = new Client(string $apiKey, string $baseUrl = 'https://addresso.co.uk');

lookupPostcode(string $postcode): PostcodeLookupResult

Look up all addresses at a UK postcode.

searchAddresses(array $params): AddressSearchResult

Search for addresses by free text or structured fields. Supported params: q, postcode, town, street, building_name, building_number, organisation, limit.

account(): AccountResult

Get your account status and remaining credits.

Data classes

All results return typed readonly objects:

  • Addresspostcode, town, locality, subLocality, street, secondaryStreet, buildingNumber, buildingName, subBuilding, poBox, department, organisation, udprn, postcodeType, deliveryPointSuffix, latitude, longitude
  • PostcodeLookupResultpostcode, addresses (Address[]), creditsRemaining
  • AddressSearchResultquery, addresses (Address[]), count, creditsRemaining
  • AccountResultcompanyName, creditsBalance, earliestExpiry

Error handling

All API errors throw AddressoException which extends RuntimeException:

use Addresso\AddressoException;

try {
    $result = $client->lookupPostcode('INVALID');
} catch (AddressoException $e) {
    echo $e->getMessage();       // "Invalid postcode"
    echo $e->getStatusCode();    // 400
}

License

MIT