Skip to main content

Search engine for address. Only address.

Project description

🏠 Addok

A blazing fast address search engine. Made for addresses, optimized for addresses, nothing but addresses.

Addok is a powerful geocoding engine that indexes your address data and exposes it through a clean HTTP API. Built with performance in mind, it handles typos, autocomplete, and filters with ease.

PyPi version Coverage Status

Requirements: Python 3.9–3.14 • Redis 7.2–8.0


✨ Features

  • 🚀 Fast: Handles thousands of requests per second
  • 🔍 Smart search: Fuzzy matching, typo-tolerant, autocomplete
  • 🌍 Geocoding & Reverse geocoding: From text to coordinates and back
  • 📦 Batch processing: Import and geocode CSV files
  • 🔌 Extensible: Plugin system for custom needs
  • 🎯 Filtered search: Query by postcode, city, region, or custom filters
  • 🗺️ Geographic bias: Prioritize results near a location
  • 🛠️ Debug shell: Interactive shell for testing and debugging
  • 📊 GeoJSON output: Standard compliant API responses

🎬 Quick Example

Once installed and your data imported, searching for an address is as simple as:

curl "http://localhost:7878/search/?q=baker+street+221b"
{
  "type": "FeatureCollection",
  "features": [
    {
      "type": "Feature",
      "geometry": {
        "type": "Point",
        "coordinates": [-0.158434, 51.523767]
      },
      "properties": {
        "label": "221B Baker Street, London NW1 6XE",
        "score": 0.95,
        "housenumber": "221B",
        "street": "Baker Street",
        "postcode": "NW1 6XE",
        "city": "London"
      }
    }
  ]
}

🚀 Getting Started

Installation

pip install addok

Import your data

addok batch your_addresses.ndjson
addok ngrams

Start the server

addok serve

Your API is now running at http://localhost:7878 🎉

Check out the full documentation for detailed instructions, configuration options, and advanced features.


🔌 Plugins

Extend Addok with plugins for your specific needs:

Discover all plugins


🌟 Production Ready

Addok powers the official French national address database with:

  • 26+ million addresses indexed
  • ~2000 searches/second throughput
  • ~15 minutes full import time

👉 See it in action with the French address database demo


💡 Learn More


📄 License

Addok is released under the MIT License. Free to use, modify, and distribute.

Project details


Download files

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

Source Distribution

addok-1.3.2.tar.gz (61.8 kB view details)

Uploaded Source

Built Distribution

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

addok-1.3.2-py3-none-any.whl (49.9 kB view details)

Uploaded Python 3

File details

Details for the file addok-1.3.2.tar.gz.

File metadata

  • Download URL: addok-1.3.2.tar.gz
  • Upload date:
  • Size: 61.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for addok-1.3.2.tar.gz
Algorithm Hash digest
SHA256 a4fcaa222763958c3312086ba9a32414ec654a4776176cc0521f7a0a500acd01
MD5 be8d1e1b5193613bfa96e1a95299a910
BLAKE2b-256 2150339807ace229ade4468c9f5aa705bfd46e3cbefd344af3a8a74a39c341df

See more details on using hashes here.

File details

Details for the file addok-1.3.2-py3-none-any.whl.

File metadata

  • Download URL: addok-1.3.2-py3-none-any.whl
  • Upload date:
  • Size: 49.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for addok-1.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 2043229367f3a9706a2997b64e2ccb984caa39082f5070d4c454fbdb545bb22f
MD5 f62568ac7e1594f1f778c73293989a4c
BLAKE2b-256 f1e4ec227958344f3d1c429d0ebd7f991f2bad00b98ee6f5e5cb2c61b2910630

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 Pingdom Monitoring Sentry Error logging StatusPage Status page