Error handling

Your account and developer keys are rate limited.

To prevent abuse of server side resources, we have to impose rate limits.

Thus, it is possible that your request may not succeed if you exceed your rate limit.

In the rare case that the service is scaling out, it is also possible you might encounter timeouts.

Therefore, it is always advisable to handle errors with appropriate logic to retry requests.

from opencv.fr.api_error import APIError, APIDataValidationError
import time

num_retries = 3
for i in range(num_retries):
    try:
        # Your code
    except APIError as ex:
        # Check if rate limit was exceeded
        if ex.retry_after:
            # Rate limit was exceeded, you could sleep
            # for the suggested time and retry the request
            time.sleep(ex.retry_after)
            continue
        break
    except APIDataValidationError:
        # You are sending us incorrect data
        # log your data, and fix your code
        break
    except Exception:
        # Some other problem occurred,
        # log the error, and retry
        pass