Python client for the Unstract LLM-powered structured data extraction platform
Project description
unstract-python-client
Python client for the Unstract LLM-powered structured data extraction platform
Installation
You can install the Unstract Python Client using pip:
pip install unstract-client
Usage
First, import the APIDeploymentsClient from the client module:
from unstract.api_deployments.client import APIDeploymentsClient
Then, create an instance of the APIDeploymentsClient:
client = APIDeploymentsClient(api_url="url", api_key="your_api_key")
Note: Pass the raw API key without the
"Bearer "prefix — the client adds it automatically.
Now, you can use the client to interact with the Unstract API deployments API:
try:
adc = APIDeploymentsClient(
api_url=os.getenv("UNSTRACT_API_URL"),
api_key=os.getenv("UNSTRACT_API_DEPLOYMENT_KEY"),
api_timeout=10,
logging_level="DEBUG",
include_metadata=False # optional
)
# Replace files with pdfs
response = adc.structure_file(
["<files>"]
)
print(response)
if response["pending"]:
while True:
p_response = adc.check_execution_status(
response["status_check_api_endpoint"]
)
print(p_response)
if not p_response["pending"]:
break
print("Sleeping and checking again in 5 seconds..")
time.sleep(5)
except APIDeploymentsClientException as e:
print(e)
Parameter Details
api_url: The URL of the Unstract API deployment.
api_key: Your raw API key. Do not include the "Bearer " prefix — the client adds it automatically.
api_timeout: Set a timeout for API requests, e.g., api_timeout=10.
logging_level: Set logging verbosity (e.g., "DEBUG").
include_metadata: If set to True, the response will include additional metadata (cost, tokens consumed and context) for each call made by the Prompt Studio exported tool.
Retry Configuration
The client includes built-in exponential backoff retry with the following behavior:
- Async mode (
api_timeout=0): POST requests are retried on transient failures (5xx, 429) and connection errors, since the server returns immediately after queuing. - Sync mode (
api_timeout > 0, the default): POST requests are not retried, because the server blocks during processing — a failure may mean the request was processed but the response was lost. - Status polling (
check_execution_status): GET requests are always retried, as they are idempotent.
Retries are enabled by default and can be customized:
client = APIDeploymentsClient(
api_url="url",
api_key="your_api_key",
max_retries=4, # Max retry attempts (default: 4, set to 0 to disable)
initial_delay=2.0, # Initial delay in seconds (default: 2.0)
max_delay=60.0, # Maximum delay cap in seconds (default: 60.0)
backoff_factor=2.0, # Multiplier per retry (default: 2.0)
)
| Parameter | Default | Description |
|---|---|---|
max_retries |
4 |
Maximum number of retry attempts. Set to 0 to disable retries. |
initial_delay |
2.0 |
Initial delay in seconds before the first retry. |
max_delay |
60.0 |
Maximum delay cap in seconds between retries. |
backoff_factor |
2.0 |
Multiplier applied to the delay for each subsequent retry. |
The retry logic uses exponential backoff with full jitter and respects the Retry-After header on 429 responses.
Questions and Feedback
On Slack, join great conversations around LLMs, their ecosystem and leveraging them to automate the previously unautomatable!
Unstract Cloud: Signup and Try!
Unstract developer documentation: Learn more about Unstract and its API.
Project details
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 unstract_client-1.2.0.tar.gz.
File metadata
- Download URL: unstract_client-1.2.0.tar.gz
- Upload date:
- Size: 54.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b15cebe7d111f5c8f0987fae820716b33841b510dd40d8cc5680fb8699b8eaa7
|
|
| MD5 |
be3c5900a43e3980f1fe3509850ee814
|
|
| BLAKE2b-256 |
09ea907221e48b47a4549c1d968740613f8821e622ca03b6ef0d7ee054f2d3ca
|
File details
Details for the file unstract_client-1.2.0-py3-none-any.whl.
File metadata
- Download URL: unstract_client-1.2.0-py3-none-any.whl
- Upload date:
- Size: 9.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e20d930ae8b73cf5e8d26c4eba15685ce3b88cf3a50643e83f5ca541f4a9e347
|
|
| MD5 |
0d5509c73e6beb50601eca5e217bf210
|
|
| BLAKE2b-256 |
9e2e8b29be65b020e04193614139b61db20717610f1c8bbfb073264c25d1a9b7
|