Skip to main content

A simple Python wrapper for the Saudi National Address APIs.

Project description

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

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

saudiaddress-0.1.4.tar.gz (9.4 kB view details)

Uploaded Source

Built Distribution

saudiaddress-0.1.4-py2.py3-none-any.whl (9.3 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file saudiaddress-0.1.4.tar.gz.

File metadata

  • Download URL: saudiaddress-0.1.4.tar.gz
  • Upload date:
  • Size: 9.4 kB
  • Tags: Source
  • Uploaded using 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

File hashes

Hashes for saudiaddress-0.1.4.tar.gz
Algorithm Hash digest
SHA256 9c8af9436956a806bc4e5ab083d4e165d2b943124ce7f8800d8a303997fc0cbc
MD5 8b4b9a616bdea29d94716816382472e9
BLAKE2b-256 66e453b13ae3b2f6161989394e2aaddc9d62b01ca087dd3cce58c4de1a541e5f

See more details on using hashes here.

File details

Details for the file saudiaddress-0.1.4-py2.py3-none-any.whl.

File metadata

  • Download URL: saudiaddress-0.1.4-py2.py3-none-any.whl
  • Upload date:
  • Size: 9.3 kB
  • Tags: Python 2, Python 3
  • Uploaded using 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

File hashes

Hashes for saudiaddress-0.1.4-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 b94fbbbefa598b220df19f2c604fa74a0e3f58122bcf32feaf13f2aed49f5363
MD5 9aadf2b7e0baee7259612bffc6defae3
BLAKE2b-256 5f306e60be112dbfd51536730bf1c91d854ace9c19f4f4a437911beb9b768261

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page