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.1.tar.gz (59.2 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.1-py3-none-any.whl (48.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: addok-1.3.1.tar.gz
  • Upload date:
  • Size: 59.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.14.0rc3

File hashes

Hashes for addok-1.3.1.tar.gz
Algorithm Hash digest
SHA256 44d2808c45114609149cc121345ec2e749a489e6fc818ce70195c0565a0bbff4
MD5 fe3fce079dc4bd0c5012f5390ab332da
BLAKE2b-256 28f3b21f49362e0ae4547629bb93f0693d1cf04c38d4cf5d1198049e28818d66

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for addok-1.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 308381841c3f5f4a291bf4370c2448e8bec37e573974c9fdd0be6bba29d1f86f
MD5 f5808abd77759ed1a7bcaf57984cb0ec
BLAKE2b-256 796217aa7b0ff376dcc4a7f7f9690ee18d7929882693b1ce53f9f3e775833852

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