SDK Migration Guide for Python
This comprehensive guide helps you transition from the previous Python SDK to the new Apideck-Unify SDK.
Key Changes
- Package Name and Installation
Now you will have to import apideck_unify:
from apideck_unify import Apideck
- Method Naming Changes
# Old SDK
from apideck.api import crm_api
api_instance = crm_api.CrmApi(api_client)
response = api_instance.contacts_all(
raw=False,
consumer_id="test-consumer",
app_id="app-id",
service_id="salesforce"
)
# New SDK
from apideck_unify import Apideck
client = Apideck(
api_key="your-api-key",
app_id="app-id",
consumer_id="test-consumer"
)
response = client.crm.contacts.list()
- Response Structure
The new SDK wraps all responses in a typed response object that includes both the API response and HTTP metadata:
# Old SDK
response = api_instance.contacts_all()
print(response.data[0].id)
# New SDK
## Access data payload
result = client.crm.contacts.list()
print(result.get_contacts_response.data[0].id)
# Access HTTP metadata
print(result.http_meta.status_code)
print(result.http_meta.headers)
- Method Naming Convention Changes
| Old Method | New Method |
|------------|------------|
| contacts_all | contacts.list |
| contacts_add | contacts.create |
| contacts_one | contacts.get |
| contacts_update | contacts.update |
| contacts_delete | contacts.delete |
...
- Configuration and Authentication
# Old SDK
import apideck
from apideck.api import crm_api
configuration = apideck.Configuration()
configuration.api_key['apiKey'] = 'YOUR_API_KEY'
configuration.api_key_prefix['apiKey'] = 'Bearer'
with apideck.ApiClient(configuration) as api_client:
api_instance = crm_api.CrmApi(api_client)
# New SDK
from apideck_unify import Apideck
client = Apideck(
api_key="your-api-key",
app_id="your-app-id",
consumer_id="test-consumer"
)
- Error Handling
# Old SDK
try:
response = api_instance.contacts_all()
except apideck.ApiException as e:
print("Exception when calling CrmApi->contacts_all: %s\n" % e)
# New SDK
from apideck_unify import Apideck, models
try:
result = client.crm.contacts.list()
except models.BadRequestResponse as e:
# handle e.data: models.BadRequestResponseData
raise(e)
except models.UnauthorizedResponse as e:
# handle e.data: models.UnauthorizedResponseData
raise(e)
except models.ApiError as e:
raise(e)
For more information about error handling, please check our documentation
Breaking Changes
- Package name has changed from
apideck
toapideck-unify
- All API method names have been restructured for consistency
- Configuration and client initialization has been simplified
- Response structure now includes typed response wrappers and HTTP metadata
- Error handling has been improved with specific error types
- Some property names in request/response objects may have changed to follow Python naming conventions
Need help?
If you encounter any issues during migration:
- Checkout out our documentation
- Open an issue on our GitHub repository
- Contact our support at
support@apideck.com