Error handling
When you use the Apify client, it automatically extracts all relevant data from the endpoint and returns it in the expected format. Date strings, for instance, are seamlessly converted to Python datetime.datetime objects. If an error occurs, the client raises an ApifyApiError. This exception wraps the raw JSON errors returned by the API and provides additional context, making it easier to debug any issues that arise.
- Async client
- Sync client
import asyncio
from apify_client import ApifyClientAsync
from apify_client.errors import ApifyApiError
TOKEN = 'MY-APIFY-TOKEN'
async def main() -> None:
apify_client = ApifyClientAsync(TOKEN)
try:
# Try to list items from a non-existing dataset.
dataset_client = apify_client.dataset('non-existing-dataset-id')
dataset_items = (await dataset_client.list_items()).items
except ApifyApiError as err:
# The client raises ApifyApiError for API errors.
print(f'API error: {err}')
if __name__ == '__main__':
asyncio.run(main())
from apify_client import ApifyClient
from apify_client.errors import ApifyApiError
TOKEN = 'MY-APIFY-TOKEN'
def main() -> None:
apify_client = ApifyClient(TOKEN)
try:
# Try to list items from a non-existing dataset.
dataset_client = apify_client.dataset('non-existing-dataset-id')
dataset_items = dataset_client.list_items().items
except ApifyApiError as err:
# The client raises ApifyApiError for API errors.
print(f'API error: {err}')
if __name__ == '__main__':
main()