Changelog
Python SDK version history. Tracks the `symagedocs` package on PyPI.
This page tracks the Python SDK. Versions correspond to sdk-vX.Y.Z git tags.
v1.0.4 Latest
May 15, 2026
Added
- Webhook management — The full webhook lifecycle is now SDK-callable: create, list, and delete webhooks via
/api/v1/webhooks; payloads are signed with HMAC for verifiability, and a per-user cap of 20 active webhooks is enforced server-side (STAX-1576). - Locked SDK dependencies —
sdk/python/poetry.lockis now committed, giving installers a fully reproducible dependency closure.
Fixed
- Parallel rendering restored — Multi-PDF-format and non-coherent bulk jobs were silently clamped to 1 worker regardless of available cores since
v1.0.2; the subprocess worker now iteratespdf_formatsand honourscoherence_mode, restoring full parallelism (STAX-1707).
v1.0.3
May 12, 2026
Changed
- Single-sourced
__version__—symagedocs.__version__now reads fromimportlib.metadatainstead of a hard-coded literal, eliminating tag/version drift (STAX-1635, STAX-1563).
v1.0.2
May 8, 2026
Added
- Idempotency + cancel on
client.generate— Generation jobs accept an idempotency key and can be cancelled mid-flight; per-request quantity cap was lifted (STAX-1600). - Typed augmentation kwargs — Augmentation knobs are surfaced as typed SDK keyword arguments, kept in sync with the backend via a drift test (STAX-1524).
- Single-bundle downloads — One bundle per job replaces per-format zips; downloads redirect to presigned S3 URLs (STAX-1414, STAX-1416).
- Always-on per-file JSON/CSV in bundles — Bundles now always include per-file JSON and CSV as foundational ground truth (STAX-1462).
- Donut ML output format — Behind the
ml-output-formats-enabledflag at the API boundary (STAX-1349).
Changed
- SDK parity with public API — Closed gaps so every documented public endpoint has a corresponding SDK method (STAX-1523);
BioTokenaccepts the currenttagpayload (STAX-1528); end-to-end ML training parity for batch flows (STAX-1520, STAX-1521, STAX-1522). - Async bundle build — Bundle assembly moved off the request path to prevent 504s on 1K-item batches (STAX-1541).
- Form catalog rename —
irs_w2_2024renamed toirs_w2_2025to match the 2025 PDF template (STAX-1479). - Validation moved server-side — Statistical validation runs in worker finalize;
/validateis no longer exposed as an OOM vector (STAX-1438).
Removed
- Legacy
/api/v1/batches/*surface — Batch operations consolidated onto/jobs. Useclient.generatewith idempotency keys instead (STAX-1600).
v1.0.1
April 24, 2026
Added
- Multi-form coherent generation — Generate multiple forms for a single coherent identity (e.g. W-2 + 1040 for the same person) via the public
/generateendpoint (STAX-1170). - Initial Batch API + presigned downloads + webhooks — Batch endpoints under user-level
sk_live_*keys with cursor pagination, presigned S3 download URLs, and HMAC-SHA256-signed webhook events (job.completed,job.failed,batch.completed,batch.exhausted). Note: the dedicated batches surface was removed in v1.0.2; useclient.generate.
v1.0.0
Released March 25, 2026
Initial public release of the symagedocs Python SDK.
Added
- Synchronous and async clients —
ClientandAsyncClientwith resource-style namespaces (forms,generate,identities,tabular,account,pricing). - Bearer authentication — User-level API keys with the
sk_live_prefix; created in the web app account portal at/account?tab=api. - Typed exceptions —
AuthenticationError,PermissionDeniedError,NotFoundError,ConflictError,InsufficientCreditsError, etc., one per HTTP status. - Automatic retry — Exponential backoff on
429and5xxresponses. - Convenience helpers —
wait()for job polling,iter_training_examples()for ML consumers,download_urls()for presigned-URL handling. - Optional
[progress]extra — Addstqdmprogress bars for long jobs.