Official Python SDK for Tourist eSIM Partner API
Project description
Tourist eSIM Python SDK
Official Python SDK for Tourist eSIM Partner API. Enable easy integration for resellers and partners to manage eSIM plans, orders, and customer data.
Features
- 🔐 OAuth 2.0 Authentication - Secure Client Credentials flow with automatic token refresh
- 🚀 Auto-Retry Logic - Exponential backoff with 3 retry attempts on connection failures
- 📦 Type-Supported - Full type hints throughout the SDK
- 💾 Token Caching - In-memory token cache to reduce OAuth requests
- ⚡ Pythonic API - Clean, intuitive API design following Python conventions
- 🔄 Pagination Support - Built-in pagination for catalog queries
- 🎯 Exception Hierarchy - Specific exceptions for different error scenarios
Requirements
- Python 3.8+
- requests >= 2.28.0
Testing
Run the included test script to verify SDK functionality:
python3 test_sdk.py
This runs basic tests for SDK import, instantiation, structure, and resource modules without making actual API calls.
Installation
pip install touristesim-python-sdk
Quick Start
from touristesim import TouristEsim
sdk = TouristEsim('your-client-id', 'your-client-secret')
# Fetch all plans
plans = sdk.plans().get()
for plan in plans:
print(f"{plan.get('name')} - {plan.get('price')} {plan.get('currency')}")
API Usage
Plans
# Get all plans with filters
plans = sdk.plans().get({
'country': 'US',
'type': 'global',
'per_page': 50,
'sort_by': 'price'
})
# Get single plan
plan = sdk.plans().find(123)
# Get plans by country
us_plans = sdk.plans().by_country('US')
# Get global plans
global_plans = sdk.plans().global_plans()
# Validate plan
validation = sdk.plans().validate(123, 5)
Countries
# Get all countries
countries = sdk.countries().all()
# Find by code
usa = sdk.countries().find('US')
# Search countries
asian = sdk.countries().search('china')
# Featured countries
featured = sdk.countries().featured()
Orders
# Create order
order = sdk.orders().create({
'plan_id': 123,
'quantity': 2,
'customer_email': 'customer@example.com'
})
# Get orders
orders = sdk.orders().all()
# Get single order
order = sdk.orders().find(456)
# Cancel order
sdk.orders().cancel(456)
eSIMs
# Get eSIMs
esims = sdk.esims().all()
# Find eSIM
esim = sdk.esims().find('8955001000000000000')
# Check usage
usage = sdk.esims().usage('8955001000000000000')
# Get topup packages
packages = sdk.esims().topup_packages('8955001000000000000')
# Purchase topup
sdk.esims().topup('8955001000000000000', 789)
# Send setup email
sdk.esims().send_email('8955001000000000000', 'user@example.com')
Error Handling
from touristesim.exceptions import (
AuthenticationException,
ValidationException,
RateLimitException,
ResourceNotFoundException
)
try:
plan = sdk.plans().find(999)
except AuthenticationException as e:
print('Auth failed:', e)
except ValidationException as e:
print('Validation errors:', e.get_errors())
except RateLimitException as e:
print('Rate limited. Retry after:', e.get_retry_after(), 'seconds')
except ResourceNotFoundException as e:
print('Not found:', e)
API Documentation
For complete API documentation, visit:
- API Docs: https://docs.touristesim.net/
- SDK Guides: https://docs.touristesim.net/sdks/guides
- Partner Dashboard: https://partners.touristesim.net
Support
For issues or questions:
- Technical Support: tech@touristesim.net
- GitHub Issues: https://github.com/touristesim/touristesim-python-sdk/issues
- Dashboard: https://partners.touristesim.net
License
MIT - see LICENSE file
Project details
Release history Release notifications | RSS feed
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file touristesim_python_sdk-1.0.0.tar.gz.
File metadata
- Download URL: touristesim_python_sdk-1.0.0.tar.gz
- Upload date:
- Size: 13.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e75febfc8d451a1454510f867c7f59912c0da86ee98692bde3f37b523c9a501e
|
|
| MD5 |
34ce27d07ae2a6d50e072f7b87bba146
|
|
| BLAKE2b-256 |
3cd6c180df661418cb3c3682cf673b576883008d02c6f931b45a48372581f2d4
|
File details
Details for the file touristesim_python_sdk-1.0.0-py3-none-any.whl.
File metadata
- Download URL: touristesim_python_sdk-1.0.0-py3-none-any.whl
- Upload date:
- Size: 14.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f4e351eb6a7130f0e963c8b1294d25f2ad2b427a6995d5ccb2d4ed343b4f38e0
|
|
| MD5 |
2003c3457070eb63cfb10c60c5a75287
|
|
| BLAKE2b-256 |
7a03978026f40fb9e9d28f40ae2132e9aa4d73923100588cc98805c8ca86c0d0
|