Vepler logo

SDKs & Libraries

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.

TS

TypeScript

@vepler/search

Full docs
Install
npm install @vepler/search
index.ts
import { 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"
PY

Python

vepler

Full docs
Install
pip install vepler
main.py
from 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

Go

github.com/vepler/vepler-go

Full docs
Install
go get github.com/vepler/vepler-go
main.go
package 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"
}
RB

Ruby

vepler

Full docs
Install
gem install vepler
app.rb
require "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"
PHP

PHP

vepler/search

Full docs
Install
composer require vepler/search
index.php
<?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"
C#

.NET

Vepler

Full docs
Install
dotnet add package Vepler
Program.cs
using 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"

Prefer raw HTTP?

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

Drop-in address capture widget

Add address autocomplete to any HTML form with two lines of code. No build tools, no frameworks.

index.html
<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>

Start integrating now

Free API key, interactive docs, and production-grade test data.