Skip to main content

saudiaddress: A simple Python wrapper for the Saudi National Address APIs

Saudi National Address API website: https://api.address.gov.sa

Basic Usage of saudiaddress

>>> from saudiaddress.api import NationalAddress
>>> api_key = os.environ.get('NATIONAL_ADDRESS_API_KEY')
>>> na = NationalAddress(key=api_key)

Reverse geocoding of coordinates to a national address

>>> addresses = na.get_address(lat=26.318922, long=50.228043, language='E')
>>> print("address:", addresses.records[0])
address: 6418 al kurnaysh road - al kurnaish AL KHUBAR 34412 - 3618

Bulk search a list of (building number, post code, additional number)

>>> for address in na.bulk_search([(3468, 23955, 7487), (6418, 34412, 3618)], page=1).records:
>>>     print(address)
3468  - king abdullah university of science and technology THUWAL 23955 - 7487
6418 al kurnaysh road - al kurnaish AL KHUBAR 34412 - 3618

Verify a national address

>>> print("the address is", na.verify_address(6418, 34412, 3618))
the address is True

Free text search for a national address

>>> addresses = na.free_text_search('2292  - king abdullah university of science and technology')
>>> print("count:", addresses.count)
>>> address = addresses.records[0]
>>> print('lat={lat}, long={long}, city={city}, region={region}'.format(lat=address.Latitude, long=address.Longitude, city=address.City, region=address.RegionName))
count: 1
lat=22.324697064547, long=39.0942996143403, city=THUWAL, region=Makkah

Search nearest services

>>> addresses = na.nearest_poi(lat=22.32, long=39.09, radius=2)
>>> for address in addresses.records:
>>>     print('title:%s' % address.Title)
>>>     print('address:', address)
title:Samba atm
address: 3468  - king abdullah university of science and technology THUWAL 23955 - 7487
title:sabb bank
address: 7126  - king abdullah university of science and technology THUWAL 23955 - 3451

Search services based on fixed parameters

>>> addresses = na.fixed_search(city_name='THUWAL', post_code=23955, additional_number=7487)
>>> print(addresses.records[0])
3468  - king abdullah university of science and technology THUWAL 23955 - 7487

Find availability of services by providing details in free text

>>> addresses = na.poi_free_text_search('sabb atm', language='E')
>>> print('total SABB ATMs found: %d' % addresses.count)
>>> print(addresses.records)
total SABB ATMs found: 695
6897 king fahd road - al ulaya AR RIYADH 12211 - 3388
7277 king fahd road - al ulaya AR RIYADH 12212 - 3333
7411 king fahd road - al ulaya AR RIYADH 12212 - 3229
2946 al amir muhammad ibn abdul aziz branch rd - al ulaya AR RIYADH 12213 - 7929
2332 no 92 - al ulaya AR RIYADH 12214 - 9330

Get a list of regions

>>> regions = na.get_regions(language='A')
>>> for region in regions[:5]:
>>>     print(region)
Region (ID=12, Name= الباحة)
Region (ID=13, Name= الجوف)
Region (ID=9, Name= الحدود الشمالية)
Region (ID=1, Name= الرياض)
Region (ID=4, Name= القصيم)

Get a list of cities within a region

>>> cities = na.get_cities(region_id=1)
>>> for city in cities[:5]:
>>>     print(city)
City (ID=3, Name=AR RIYADH)
City (ID=828, Name=AD DIR'IYAH)
City (ID=669, Name=AD DUWADIMI)
City (ID=1061, Name=AL KHARJ)
City (ID=24, Name=AL MAJMA'AH)

Get a list of districts in a city

>>> districts = na.get_districts(city_id=3)
>>> for district in districts[:5]:
>>>     print(district)
District (ID=10100003130, Name=ad dar al baida)
District (ID=10100003039, Name=ad difa)
District (ID=10100003007, Name=ad dirah)
District (ID=10100003116, Name=ad dubiyah)
District (ID=10100003076, Name=ad duraihimiyah)

Get a list of service categories

>>> categories = na.get_categories()
>>> for category in categories[:5]:
>>>     print(category)
Category (ID=101, Name=Auto Services)
Category (ID=122, Name=CivilDefense)
Category (ID=102, Name=Commercial)
Category (ID=103, Name=Cultural Sites)
Category (ID=104, Name=Diplomatic)

Get a list of sub-service categories

>>> sub_categories = na.get_subcategories(service_category_id=101)
>>> for sub_category in sub_categories[:5]:
>>>     print(sub_category)
Sub-Category (ID=10101, Name=Auto Agency)
Sub-Category (ID=10102, Name=Auto Service Station)
Sub-Category (ID=10103, Name=Auto Showroom)
Sub-Category (ID=10104, Name=Auto Spare Parts)
Sub-Category (ID=10105, Name=Auto Workshop)

Fina all ATMs in district ‘ad dirah’ in Riyadh city

>>> services = na.poi_fixed_search('atm', district_name='ad dirah', city_name='AR RIYADH', page=1)
>>> print("total:", services.count)
>>> for service in services.records:
>>>     print(service.Title, service)
total: 19
al rajhi atm 7221  - ad dirah AR RIYADH 12633 - 3262
albilad atm 7272 al batha - ad dirah AR RIYADH 12633 - 3394
albilad atm 2778 al imam muhammad ibn saud ibn muqrin - ad dirah AR RIYADH 12634 - 6823
albilad atm 2760 tariq ibn ziyad - ad dirah AR RIYADH 12634 - 6287
alinma atm 2577 al imam muhammad ibn saud ibn muqrin - ad dirah AR RIYADH 12634 - 6681
alinma atm 2591 al imam turki ibn abdullah ibn muhammad - ad dirah AR RIYADH 12634 - 6883
alinma atm 6774 ash shaikh muhammad ibn abdul wahab - ad dirah AR RIYADH 12634 - 2938
anb atm 6645  - ad dirah AR RIYADH 12634 - 2856
atm _ national commercial bank 6487 al muqaybirah - ad dirah AR RIYADH 12634 - 2821
riyadh atm 7172 al batha - ad dirah AR RIYADH 12633 - 3386

Installation

$ pip install saudiaddress

Metadata

Release files for saudiaddress 0.1.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for saudiaddress 0.1.4
File Size Uploaded Provenance Actions
saudiaddress-0.1.4.tar.gz 9.4 kB Without provenance Details for saudiaddress-0.1.4.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for saudiaddress 0.1.4
File Interpreter ABI Platform Actions
saudiaddress-0.1.4-py2.py3-none-any.whl Python 3, Python 2 none any Details for saudiaddress-0.1.4-py2.py3-none-any.whl

Total release size: 18.7 kB

Release files / saudiaddress-0.1.4.tar.gz

Download URL saudiaddress-0.1.4.tar.gz
Size 9.4 kB
Tags Source
SHA-256 checksum
How to use checksums
9c8af9436956a806bc4e5ab083d4e165d2b943124ce7f8800d8a303997fc0cbc
BLAKE2b-256 checksum
How to use checksums
66e453b13ae3b2f6161989394e2aaddc9d62b01ca087dd3cce58c4de1a541e5f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.0.0 requests-toolbelt/0.9.1 tqdm/4.30.0 CPython/3.7.0

Release files / saudiaddress-0.1.4-py2.py3-none-any.whl

Download URL saudiaddress-0.1.4-py2.py3-none-any.whl
Size 9.3 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
b94fbbbefa598b220df19f2c604fa74a0e3f58122bcf32feaf13f2aed49f5363
BLAKE2b-256 checksum
How to use checksums
5f306e60be112dbfd51536730bf1c91d854ace9c19f4f4a437911beb9b768261
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.0.0 requests-toolbelt/0.9.1 tqdm/4.30.0 CPython/3.7.0

Security for saudiaddress 0.1.4

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page