The Credal Python library provides convenient access to the Credal API from Python.
Docs for the API endpoints available through the SDK can be found in our API Reference.
A full reference of the SDK is available here.
pip install --upgrade credalfrom credal.client import CredalApi client = CredalApi( api_key="YOUR_API_KEY", ) client.copilots.send_message( message="Is Credal SOC 2 compliant?", user_email="jack@credal.ai", )client = CredalApi( api_key="YOUR_API_KEY", base_url="https://<custom-domain>/api", )from credal.client import AsyncCredalApi client = AsyncCredalApi( api_key="YOUR_API_KEY", )All errors thrown by the SDK will be subclasses of ApiError.
import credal ... try: client.copilots.send_message(...) except credal.core.ApiError as e: # Handle all errors print(e.status_code) print(e.body)By default, requests time out after 60 seconds. You can configure this with a timeout option at the client or request level.
from credal.client import CredalApi client = CredalApi( ..., # All timeouts are 20 seconds timeout=20.0, ) # Override timeout for a specific method client.copilots.send_message(..., { timeout_in_seconds=20.0 })The SDK is instrumented with automatic retries with exponential backoff. A request will be retried as long as the request is deemed retriable and the number of retry attempts has not grown larger than the configured retry limit (default: 2).
A request is deemed retriable when any of the following HTTP status codes is returned:
Use the max_retries request option to configure this behavior.
client.copilots.send_message(..., { max_retries=1 })You can override the httpx client to customize it for your use-case. Some common use-cases include support for proxies and transports.
import httpx from credal.client import CredalApi client = CredalApi(..., http_client=httpx.Client( proxies="http://my.test.proxy.example.com", transport=httpx.HTTPTransport(local_address="0.0.0.0"), ), )