Idiomatic clients for TypeScript and Python. Auto-generated for Go, Ruby, PHP, and .NET. Or just use the REST API. HTTP with JSON, nothing exotic.
npm install @vepler/searchimport { Vepler } from '@vepler/search'
const vepler = new Vepler({ apiKey: 'vepler_live_...' })
// Postcode lookup
const { data } = await vepler.postcodes.lookup('SW1A 2AA')
console.log(data[0].formatted) // "10 Downing Street, London, SW1A 2AA"
// Autocomplete session (suggest calls are free)
const session = vepler.autocomplete.createSession()
const suggestions = await session.suggest('10 Down')
const address = await session.retrieve(suggestions[0].id)
// Address resolution
const match = await vepler.addresses.resolve('10 downing st london')
console.log(match.confidence) // "exact"
console.log(match.match_code.street) // "matched"pip install veplerfrom vepler import Vepler
client = Vepler(api_key="vepler_live_...")
# Postcode lookup
result = client.postcodes.lookup("SW1A 2AA")
print(result.data[0].formatted) # "10 Downing Street, London, SW1A 2AA"
# Autocomplete session
session = client.autocomplete.create_session()
suggestions = session.suggest("10 Down")
address = session.retrieve(suggestions[0].id)
# Address resolution
match = client.addresses.resolve("10 downing st london")
print(match.confidence) # "exact"
print(match.match_code.street) # "matched"go get github.com/vepler/vepler-gopackage main
import (
"fmt"
vepler "github.com/vepler/vepler-go"
)
func main() {
client := vepler.New("vepler_live_...")
result, _ := client.Postcodes.Lookup("SW1A 2AA")
fmt.Println(result.Data[0].Formatted)
match, _ := client.Addresses.Resolve("10 downing st london")
fmt.Println(match.Confidence) // "exact"
}gem install veplerrequire "vepler"
client = Vepler::Client.new(api_key: "vepler_live_...")
result = client.postcodes.lookup("SW1A 2AA")
puts result.data.first.formatted
match = client.addresses.resolve("10 downing st london")
puts match.confidence # "exact"composer require vepler/search<?php
use Vepler\Client;
$client = new Client('vepler_live_...');
$result = $client->postcodes->lookup('SW1A 2AA');
echo $result->data[0]->formatted;
$match = $client->addresses->resolve('10 downing st london');
echo $match->confidence; // "exact"dotnet add package Veplerusing Vepler;
var client = new VeplerClient("vepler_live_...");
var result = await client.Postcodes.LookupAsync("SW1A 2AA");
Console.WriteLine(result.Data[0].Formatted);
var match = await client.Addresses.ResolveAsync("10 downing st london");
Console.WriteLine(match.Confidence); // "exact"Every endpoint is plain REST with JSON. Use cURL, fetch, httpx, or any HTTP client. The OpenAPI spec is published for code generation in any language.
Zero-code option
Add address autocomplete to any HTML form with two lines of code. No build tools, no frameworks.
<script src="https://cdn.vepler.com/address-capture.min.js"></script>
<script>
VeplerAddress.setup({
key: 'vepler_live_...',
fields: {
line_1: '#address-line-1',
line_2: '#address-line-2',
post_town: '#city',
postcode: '#postcode'
}
})
</script>Free API key, interactive docs, and production-grade test data.