Pointify Travel — Python Client
Official Python SDK for the Pointify Travel API. Typed, async-friendly, pydantic-validated.
Install
pip install pointify
Requires Python 3.10+.
Quickstart
from pointify import PointifyClient
client = PointifyClient(api_key="pt_live_...")
results = client.search_flights(
origin="LAX",
destination="NRT",
departure_date="2026-10-15",
cabin_class="business",
)
for deal in results.deals:
first = deal.segments[0]
print(f"{first.carrier} {first.flight_number}: ${deal.price_cash}")
Async
import asyncio
from pointify import AsyncPointifyClient
async def main():
async with AsyncPointifyClient(api_key="pt_live_...") as client:
return await client.optimize_points(
origin="JFK",
destination="LHR",
departure_date="2026-10-15",
programs=["chase_ur", "amex_mr"],
)
print(asyncio.run(main()))
Endpoints
| Method | Purpose |
|---|---|
search_flights |
Aggregated flight search (Duffel + scraper + awards) |
search_calendar |
Lowest fares across a date range |
get_prediction |
Buy / wait / neutral signal |
get_hidden_city |
Hidden-city ticketing opportunities |
get_geo_pricing |
Compare fares across geographic markets |
optimize_points |
Best transfer-partner routing |
create_api_key / list_api_keys / revoke_api_key |
Key management |
Errors
Every non-2xx response raises pointify.PointifyApiError:
from pointify import PointifyClient, PointifyApiError
try:
client.search_flights(origin="XYZ", destination="NRT", departure_date="2026-10-15")
except PointifyApiError as err:
print(err.status, err.body)
Get an API key
Sign in at pointifytravels.com/developers and generate a live key. Free tier: 1,000 requests/day.
Metadata
Release files for pointify 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| pointify-0.1.0.tar.gz | 7.2 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pointify-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 14.6 kB
Release files / pointify-0.1.0.tar.gz
| Download URL | pointify-0.1.0.tar.gz |
|---|---|
| Size | 7.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0f55b2f38f4c16ab3dcb89f4982adf3297367590133378576d1719167a768e71
|
|
BLAKE2b-256 checksum How to use checksums |
892cbd5b5e2f19c2c95dbd6208015cd83e3982ac967e8393aaf35fa509f33fe6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.4
|
Release files / pointify-0.1.0-py3-none-any.whl
| Download URL | pointify-0.1.0-py3-none-any.whl |
|---|---|
| Size | 7.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
50d4a333345446949d6b0489e01812c3be84d7f3794e5f4f5019f09e228db4a4
|
|
BLAKE2b-256 checksum How to use checksums |
5b4434a3db7eb71fd76fd383180242127124fbbc9ed14f48d4b502a88561fdc9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.4
|
Security for pointify 0.1.0
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.