self-contained contacts API for searching through VCF for contact records
Project description
contactlookup
Self hosted contacts API for searching through a VCF file for contact records
Installation
Using pip:
pip install contactlookup
Using poetry:
poetry add contactlookup
Using pipenv:
pipenv install contactlookup
Quick Start
As a script:
contactlookup --help
contactlookup # Start the API server, and serve the contacts in the accompanying contacts.vcf file
contactlookup -f /path/to/contacts.vcf # Start the API server, and serve the contacts in the VCF file
As a module:
python -m contactlookup --help
Examples
Start and stop the API server
contactlookup -f /path/to/contacts.vcf # API is now running
Kill the server with Ctrl+C
Search for contacts
You can search for contacts by first name, phone number, or email address. The search is case-insensitive. Partial matches are not yet supported.
Search using web browser
Open your web browser and navigate to http://localhost:8000/docs
to see the API documentation.
Search using curl
Search by email
curl -X 'GET' \
'http://localhost:8000/contacts/email/jeffnewman@example.net' \
-H 'accept: application/json'
Search by phone number
curl -X 'GET' \
'http://localhost:8000/contacts/phone/+993-547-8840782' \
-H 'accept: application/json'
The use of +
, -
, .
, and ()
in the phone number is optional.
Response:
{
"contacts": [
{
"id": 1,
"first_name": "KRISTEN",
"last_name": "PEREZ",
"other_names": null,
"company": "Crescendo Associates",
"title": null,
"nickname": "NICKNAME",
"birthday": "1966-08-19",
"phone_numbers": [
{
"id": null,
"number": "7194259182505",
"contact_id": 1,
"type": null
},
{
"id": null,
"number": "9935478840782",
"contact_id": 1,
"type": null
}
],
"addresses": [
{
"id": null,
"street": "36346 Hall Stream",
"city": "CHRISTOPHERSTAD",
"state": "CA",
"postal_code": "73297",
"contact_id": 1,
"type": null,
"country": "USA"
},
{
"id": null,
"street": "196 Purple Sage Cres",
"city": "WINNIPEG",
"state": "MB",
"postal_code": "R3X 1V7",
"contact_id": 1,
"type": null,
"country": "CA"
}
],
"emails": [
{
"id": null,
"email": "jacksonkimberly@example.net",
"type": null,
"contact_id": 1
}
]
}
]
}
Search by first name
curl -X 'GET' \
'http://localhost:8000/contacts/fname/jeff' \
-H 'accept: application/json'
Results are returned in JSON format:
{
"contacts": [
{
"id": 3,
"first_name": "JEFF",
"last_name": "",
"other_names": null,
"company": "Viagenie",
"title": null,
"nickname": null,
"birthday": "1949-01-29",
"phone_numbers": [
{
"id": null,
"number": "3632144414254",
"contact_id": 3,
"type": null
}
],
"addresses": [
{
"id": null,
"street": "2360 Bean Tunnel",
"city": "SOUTH JAMES",
"state": "DC",
"postal_code": "96916",
"contact_id": 3,
"type": null,
"country": "MONTSERRAT"
},
{
"id": null,
"street": "26767 Khan Dam",
"city": "EAST MARISAMOUTH",
"state": "MA",
"postal_code": "26701",
"contact_id": 3,
"type": null,
"country": "BRAZIL"
},
{
"id": null,
"street": "63932 Natasha Fords",
"city": "DEBRAVIEW",
"state": "VT",
"postal_code": "22957",
"contact_id": 3,
"type": null,
"country": "NAMIBIA"
}
],
"emails": [
{
"id": null,
"email": "allentaylor@example.net",
"type": null,
"contact_id": 3
},
{
"id": null,
"email": "daniel03@example.net",
"type": null,
"contact_id": 3
},
{
"id": null,
"email": "martinezveronica@example.net",
"type": null,
"contact_id": 3
}
]
},
{
"id": 4,
"first_name": "JEFF",
"last_name": "NEWMAN",
"other_names": null,
"company": "Hollywood",
"title": null,
"nickname": null,
"birthday": "1955-03-29",
"phone_numbers": [
{
"id": null,
"number": "161555531122",
"contact_id": 4,
"type": null
}
],
"addresses": [
{
"id": null,
"street": "123 Hollywood St",
"city": "BEVERLEY-HILLS",
"state": "CA",
"postal_code": "22957",
"contact_id": 4,
"type": null,
"country": "USA"
}
],
"emails": [
{
"id": null,
"email": "jeffnewman@example.net",
"type": null,
"contact_id": 4
}
]
}
]
}
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
Built Distribution
File details
Details for the file contactlookup-1.0.5.tar.gz
.
File metadata
- Download URL: contactlookup-1.0.5.tar.gz
- Upload date:
- Size: 26.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9ed8e6f02995b1e2bf3383533145b40869c58adfe31866702f45f30a3abb17fe |
|
MD5 | ba8cd702b2ad87ae3748ca2c555dcb5e |
|
BLAKE2b-256 | 2e1d1ced4c9f5dd6b78bbec3507ee00831d8a8fa8d194d4ea9c06202aa92c394 |
File details
Details for the file contactlookup-1.0.5-py3-none-any.whl
.
File metadata
- Download URL: contactlookup-1.0.5-py3-none-any.whl
- Upload date:
- Size: 26.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8535117f5b1d30bb8cf1da98db21b09ef044d00dbba8ef90ab287d1259090110 |
|
MD5 | d1bc1dc76cf1a1d5712d3412abfb3727 |
|
BLAKE2b-256 | 4a6b0027e3f01dafa2234e30042ec32a94e33f4cff6cfdf3d3b436c765a60b0c |