Unofficial Python SDK for the Assured Platform API
Project description
Assured Platform API — Unofficial Python SDK
An unofficial, modern, async-first Python SDK wrapping the Assured Platform API. This library provides fully typed Pydantic models, automatic semantic pagination, and robust file handling designed to streamline interactions with Assured's complex backend.
Features
- Async First: Built on
httpxto support highly concurrent workflows seamlessly. - Type Safety: Thoroughly documented Pydantic v2 classes represent the massive web of API payloads.
- Auto-Pagination: Helper methods to pull data incrementally or extract directly into
pandas.DataFrames. - Session Bridge: A custom JWT authentication layer to shim missing capabilities for undocumented storage and encryption endpoints.
Setup & Installation
The package manages dependencies using standard Python environments (uv, hatch, or pip). The primary configuration is driven via environment variables.
Prerequisites
Create a .env file in your root directory based on the .env.example:
ASSURED_BASE_URL=https://demo-backend.withassured.com
ASSURED_API_KEY=your-api-key-here
ASSURED_USER=your-email@example.com
ASSURED_PASS=your-password
[!NOTE] The API Key handles 95% of requests. However, certain undocumented endpoints like file uploading and SSN encryption require explicit user credentials (
ASSURED_USERandASSURED_PASS) to acquire an internal JWT session token. The client handles fetching and caching this JWT automatically.
Quickstart
import asyncio
from assured import AssuredClient
async def run():
# Automatically loads configuration from your `.env` file using pydantic-settings
async with AssuredClient() as client:
# 1. Standard API Key usage: List all providers into a DataFrame
providers_df = await client.providers.list_df()
print(providers_df[["full_name", "npi", "email"]])
# 2. Extract provider details
detail = await client.credentialing.get_request("some-uuid")
provider_profile_id = detail.provider_id
# 3. Use undocumented JWT bridging: Upload and associate a document seamlessly!
# The client recognizes this requires a JWT, fetches one leveraging your User credentials,
# posts the multipart payload to S3, and links it into the provider profile.
contract_bytes = b"..."
document = await client.provider_profile.upload_and_associate_document(
provider_id=provider_profile_id,
file_content=contract_bytes,
filename="contract.pdf",
document_name="IHCP Rendering Provider Agreement",
document_type="Individual Provider Agreement",
)
# 4. Generate short-lived presigned URLs for assets
secure_link = await client.files.presign_url(document.document_url)
print(f"Download the document at: {secure_link}")
if __name__ == "__main__":
asyncio.run(run())
Structure & Architecture
The domains mirror Assured's core logical groupings:
client.users: Managing internal roles.client.providers: Listing, fetching context, and inviting user providers.client.provider_profile: Encompasses deep profiles ranging from demographics to DEAs to Gap Histories.client.credentialing: Operations wrapping verification tasks.client.files: Storage abstraction logic.
Known Discrepancies
The Assured API contains numerous behaviors that diverge from documented OpenAPI specs. To see the specific differences this SDK automatically handles under-the-hood (like Encrypted SSNs and S3 Bucket paths), check out the API Divergence Document.
Project details
Release history Release notifications | RSS feed
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 assured_py-0.1.0a0.tar.gz.
File metadata
- Download URL: assured_py-0.1.0a0.tar.gz
- Upload date:
- Size: 73.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
15f30dceb3b531bffbad6d0514aafb3ab6d64de0ec8eab9ab8d7fb040904acf0
|
|
| MD5 |
fd6316e21a95ff9c4a462257bd4c6cbb
|
|
| BLAKE2b-256 |
fa95edd5b85cd5d9af552c6f6b39bbe14d97f7636b0451c8d746b8e20d66791d
|
Provenance
The following attestation bundles were made for assured_py-0.1.0a0.tar.gz:
Publisher:
release.yml on jhaisley/assured-py
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
assured_py-0.1.0a0.tar.gz -
Subject digest:
15f30dceb3b531bffbad6d0514aafb3ab6d64de0ec8eab9ab8d7fb040904acf0 - Sigstore transparency entry: 1300632864
- Sigstore integration time:
-
Permalink:
jhaisley/assured-py@2e4679963812d3cdce1be095cb4bc07040333af1 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/jhaisley
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@2e4679963812d3cdce1be095cb4bc07040333af1 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file assured_py-0.1.0a0-py3-none-any.whl.
File metadata
- Download URL: assured_py-0.1.0a0-py3-none-any.whl
- Upload date:
- Size: 31.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5051bdeb941bace99f8d9fdf5c4e9cc0110dc23949252d9e98d940fe7543b91b
|
|
| MD5 |
8d96a6996350b4723879d63c84ec11b8
|
|
| BLAKE2b-256 |
5b486c388537bf3622765a96e9ab08c251ef92c1eaacfbf9917339daa2edc683
|
Provenance
The following attestation bundles were made for assured_py-0.1.0a0-py3-none-any.whl:
Publisher:
release.yml on jhaisley/assured-py
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
assured_py-0.1.0a0-py3-none-any.whl -
Subject digest:
5051bdeb941bace99f8d9fdf5c4e9cc0110dc23949252d9e98d940fe7543b91b - Sigstore transparency entry: 1300632959
- Sigstore integration time:
-
Permalink:
jhaisley/assured-py@2e4679963812d3cdce1be095cb4bc07040333af1 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/jhaisley
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@2e4679963812d3cdce1be095cb4bc07040333af1 -
Trigger Event:
workflow_dispatch
-
Statement type: