Skip to main content

SDK Changelog

2026-10-27​

Highlights​

  • Record category statistics support paging and category-code filtering, including large category trees.

Python SDK​

  • record_stats(case_id, page=0, size=50, q="4.12") returns a category page and global record totals. The CLI accepts --page, --size, and --q.

Java SDK​

  • Generated getCaseRecordStats(caseId, page, size, q) calls expose the optional paging parameters and response metadata.

Migration Notes​

  • Deploy the updated API to use paging. Omit options in the Python helper for the complete response; generated Java calls pass null for all three optional parameters to request the complete response.

2026-10-10 10:30 UTC​

Highlights​

  • SDK usability improvements for common document processing flows.

Python SDK​

  • Python SDK improvements focused on easier day-to-day usage.

Java SDK​

  • No Java SDK user-facing updates in this commit.

Migration Notes​

  • No breaking SDK changes in this update.

2026-09-23 13:31 UTC​

Highlights​

  • Contract-analysis results show scoped effective values alongside their original values and supporting evidence.

Python SDK​

  • Trial expectations can assert effective attributes for a selected contract item.

Java SDK​

  • Generated trial expectation models expose optional expected effective attributes.

Migration Notes​

  • Existing trial expectations remain valid; add expectedEffectiveAttributes when a trial must verify an override or an unaffected value.

2026-09-23 13:00 UTC​

Highlights​

  • Multi-document package limits distinguish captured members from expected-missing and excluded document metadata.

Python SDK​

  • Run helpers allow up to 32 captured members plus separately bounded completeness metadata.

Java SDK​

  • Typed synchronous and asynchronous run helpers accept generated package-request models while preserving the legacy single-document helpers.

Migration Notes​

  • Existing calls remain compatible. Expected-missing criterion IDs must exist in the captured profile; exclusions do not consume captured-member slots.

2026-09-23 10:30 UTC​

Highlights​

  • Contract-analysis runs can now use a bounded package of selected documents with explicit unavailable and excluded members.

Python SDK​

  • Python run creation and the CLI accept multi-document package members, expected missing documents, and exclusions.

Java SDK​

  • Generated Java run requests include package-member and package-completeness fields.

Migration Notes​

  • Existing single-document run calls remain supported; package members must include the anchor and packages are limited to 32 documents and 32 MiB of captured sources.

2026-09-03 16:36 UTC​

Highlights​

  • Added an optional per-request reasoning effort override for model processing.
  • Both Python and Java SDKs accept a new reasoningEffort / reasoning_effort parameter on document processing calls.
  • The new parameter is sent with requests as reasoningEffort when provided.
  • This change is fully optional and preserves existing defaults when not supplied.

Python SDK​

  • New optional parameter reasoning_effort added to document processing methods.
  • Pass reasoning_effort as a string (for example: "low") to override per-request model reasoning effort.
  • When provided, the SDK includes reasoningEffort in the outgoing request payload.
  • Leaving reasoning_effort unset preserves previous behavior and defaults.

Java SDK​

  • ProcessOptions now accepts a reasoningEffort value via Builder.reasoningEffort(...).
  • DocuDevsClient includes reasoningEffort from ProcessOptions in processing requests when set.
  • Provide the reasoningEffort string (for example: "low") to override per-request model reasoning effort.
  • Not setting reasoningEffort keeps existing defaults and behavior unchanged.

Migration Notes​

  • You do not need to change existing calls; reasoning effort is optional and defaults remain the same.
  • To enable per-request reasoning effort, pass reasoning_effort (Python) or set reasoningEffort on ProcessOptions (Java).
  • The request payload key for this setting is reasoningEffort; ensure any custom request consumers expect that field.

2026-09-02 15:17 UTC​

Highlights​

  • Operation status responses now preserve an explicit null runtime status instead of failing during Python SDK deserialization.

Python SDK​

  • OperationInfo, InternalOperationStatusResponse, and ProcessingJob safely round-trip nullable operation status values.

Java SDK​

  • No Java SDK changes are required for this compatibility fix.

Migration Notes​

  • No application changes are required.

2026-09-02 12:02 UTC​

Highlights​

  • Contract-analysis status responses now include the current stage, document and chunk progress, and warning count.

Python SDK​

  • Operation status models now expose contract-analysis runtime progress and status-version data.

Java SDK​

  • Generated operation status models expose the same contract-analysis runtime progress fields.

Migration Notes​

  • No breaking SDK changes are required; all new status fields are optional.

2026-08-30​

Knowledge-base profile summaries​

  • Knowledge-base list and lookup responses now include optional, bounded profileType, profileStatus, and positive publishedRevision summary fields when an organization-scoped active profile is available.
  • The agent uses these summaries to route document evaluation to the contract-analysis operation only for an active published profile. The API selects the revision and source set; profile artifacts, draft content, and source identifiers are not returned, and agent tools do not publish or edit profiles.

2026-08-26 17:46 UTC​

Highlights​

  • New verify endpoint for LLM providers added to the Python SDK.
  • Model credential create and delete endpoints now return richer, typed error/response objects.
  • Model credential resource IDs are accepted as strings for delete operations in the Python SDK.
  • New and updated model and error DTOs added to represent credential status, validation, and delete conflicts.

Python SDK​

  • Added /llm/providers/{id}/verify endpoint functions for synchronous and async verification calls.
  • Create model credential responses may now return either a ModelCredentialDto or a ModelCredentialErrorResponse.
  • Delete model credential operation now treats successful delete with 204 No Content and may return ModelCredentialDeleteConflict on conflict.
  • Delete model credential ID parameter is now accepted as a string.

Java SDK​

  • Java DTOs are validated to keep secret inputs write-only on create/update requests.

Migration Notes​

  • If you handle create_model_credential responses, update your code to accept either a successful ModelCredentialDto or a ModelCredentialErrorResponse and branch accordingly.
  • Update delete_model_credential handlers to accept 204 No Content as success and to handle ModelCredentialDeleteConflict when a 409 conflict is returned.
  • When calling the delete model credential function in Python, pass the credential ID as a string.
  • If you relied on any previously undocumented status codes or response shapes, review the new typed results for create and delete operations and adjust error handling.

2026-08-21 06:59 UTC​

Highlights​

  • Clarifies where to edit manual client files and how they are synchronized with generated packages.

Python SDK​

  • Generate API code using the repository-root docudevs.yaml file.
  • Use the provided Makefile to copy manual sources into the generated docudevs/ package and to synchronize generated and manual files.

Java SDK​

  • No Java SDK user-facing updates in this commit.

Migration Notes​

  • If you maintain manual client files, ensure you edit the root-level sources and then run the Makefile to propagate them into the packaged/generated module.

2026-06-11 12:35 UTC​

Highlights​

  • SDK usability improvements for common document processing flows.

Python SDK​

  • submit_pdf_acroform_operation no longer accepts CommonForms-related parameters (use_commonforms, commonforms_model, commonforms_fast, commonforms_confidence).
  • submit_and_wait_for_pdf_acroform_operation no longer accepts CommonForms-related parameters.

Java SDK​

  • No Java SDK user-facing updates in this commit.

Migration Notes​

  • If your code passed CommonForms-related keyword arguments to submit_pdf_acroform_operation or submit_and_wait_for_pdf_acroform_operation, remove those arguments and rely on the remaining public parameters.
  • Expectation: PDF acroform submissions should continue to work using the remaining public parameters (min_confidence, max_fields_per_page, force_ocr, etc.).
  • If you relied on toggling CommonForms behavior via the public Python SDK methods, please contact support for recommended alternatives or configuration options.

2026-06-04 05:24 UTC​

Highlights​

  • Added first-class support for a new pdf-acroform operation to generate fillable PDFs from completed jobs.
  • CLI gained a new operations command pdf-acroform to submit and retrieve AcroForm PDFs.
  • Client now exposes methods to submit pdf-acroform operations and to download generated AcroForm PDFs.

Python SDK​

  • New async method submit_pdf_acroform_operation(...) to submit a pdf-acroform operation for an existing job.
  • New async method get_pdf_acroform(operation_job_guid, save_to=None) to download the generated AcroForm PDF and optionally save it to disk.
  • New PdfAcroFormOperationResult dataclass representing operation metadata and PDF bytes.
  • Client method validates inputs: page_range must use 1-based positive integers, confidences must be between 0 and 1, and max_fields_per_page must be >= 1.

Java SDK​

  • No Java SDK user-facing updates in this commit.

Migration Notes​

  • Adjust any code that constructs page ranges to use 1-based page numbers and ensure values are positive integers.
  • Pass valid confidence values in the 0..1 range for min_confidence and commonforms_confidence to avoid validation errors.
  • When using custom parameters for pdf-acroform operations, fieldNameStyle defaults to source_snake_case and OCR mode defaults to PREMIUM unless overridden.

2026-06-01 15:00 UTC​

Highlights​

  • Added Python SDK and CLI helpers for the pdf-acroform operation.

Python SDK​

  • New submit_pdf_acroform_operation, submit_and_wait_for_pdf_acroform_operation, and get_pdf_acroform helpers.
  • Operation custom parameters now preserve booleans, numbers, and lists instead of coercing every value to a string.

CLI​

  • New docudevs operations pdf-acroform command for submitting the operation and saving the generated fillable PDF.

2026-06-01 13:00 UTC​

Highlights​

  • New submission portals and related APIs added to the Python SDK.
  • Added APIs for extracting and retrieving AcroForm metadata and usage events in the Python SDK.

Python SDK​

  • New submission portals endpoints: create, update, delete, get by slug, get portal, list portals, get default for configuration, download, submit, and get record.
  • New models for submission portals and submission records are included (create/update requests, response types, download and submit types).
  • Added APIs to extract and retrieve AcroForm metadata for documents and jobs.
  • Added billing usage event retrieval API.

Java SDK​

  • Java SDK improvements focused on easier day-to-day usage.

Migration Notes​

  • Python users: new submission portal APIs introduce new request/response models—update any direct payloads to use the provided models where possible.

2026-06-01 14:43 UTC​

Highlights​

  • New pdf-acroform operation: convert completed PDF jobs into fillable AcroForm PDFs.
  • CLI command added to run pdf-acroform operations and optionally save the resulting PDF.
  • Client APIs to submit, poll, and download pdf-acroform results are available.
  • Input validation for page ranges, confidence, and field limits is performed client-side.

Python SDK​

  • Added DocuDevsClient.submit_pdf_acroform_operation to submit a pdf-acroform operation for an existing PDF job.
  • Added DocuDevsClient.submit_and_wait_for_pdf_acroform_operation to submit, wait for completion, and download the AcroForm PDF.
  • Added DocuDevsClient.get_pdf_acroform to download the generated AcroForm PDF as bytes or save it to a file.
  • submit_pdf_acroform_operation accepts llm_type, ocr, page_range (1-based), min_confidence, max_fields_per_page, and force_ocr parameters.

Java SDK​

  • No Java SDK user-facing updates in this commit.

Migration Notes​

  • If you need a fillable PDF from a completed job, use submit_pdf_acroform_operation or submit_and_wait_for_pdf_acroform_operation.
  • min_confidence must be within [0, 1] and max_fields_per_page must be >= 1; adjust callers accordingly.
  • CLI: the new operations pdf-acroform command supports --page, --min-confidence, --max-fields-per-page, --force-ocr, --ocr, --llm-type, and --output.
  • When using the CLI --output option, the command must run in wait mode (default) so the file is saved after completion.

2026-05-18 10:53 UTC​

Highlights​

  • New endpoints for uploading, downloading, and deleting batch lookup files.

Python SDK​

  • Added batch.upload_batch_lookup_file for posting multipart lookup files to a batch.
  • Added batch.download_batch_lookup_file to retrieve batch lookup file contents as a list of strings.
  • Added batch.delete_batch_lookup_file to remove a batch lookup file.
  • Updated batch.process_batch_with_configuration to accept an optional trace parameter.

Java SDK​

  • No Java SDK user-facing updates in this commit.

Migration Notes​

  • When uploading batch lookup files, use the new UploadBatchLookupFileBody helper to supply multipart file content.
  • Download of batch lookup files now returns a list of strings representing the file content lines; adjust parsing accordingly.
  • Existing code calling process endpoints without the trace parameter will continue to work unchanged.

2026-05-08 06:48 UTC​

Highlights​

  • Added a new tool type value: REFERENCE_DICTIONARY_LOOKUP.

Python SDK​

  • ToolType now includes 'REFERENCE_DICTIONARY_LOOKUP' as a valid value.

Java SDK​

  • No Java SDK user-facing updates in this commit.

Migration Notes​

  • If you validate tool types, allow 'REFERENCE_DICTIONARY_LOOKUP' as an accepted value.

2026-05-04 04:51 UTC​

Highlights​

  • Added APIs to manage batch and configuration lookup files.
  • Added ability to process batches using named configurations.
  • Async client now supports the new batch/configuration and lookup file operations.
  • Build task adjusted to ensure staging directory is cleared before publishing.

Python SDK​

  • No changes in the Python SDK surface in this release.

Java SDK​

  • New methods to upload, download, and delete batch lookup files.
  • New methods to upload, download, and delete configuration lookup files.
  • New method to process a batch using a named configuration.
  • Async client has matching asynchronous methods for the new operations.

Migration Notes​

  • If you use the Java async client, you can call the new async methods to perform lookup file operations and configuration-based batch processing.
  • When uploading lookup files, provide filename, content type, and bytes in an UploadRequest; the client sends a multipart/form-data request.
  • Processing a batch with a configuration requires both the batch GUID and the configuration name.
  • Existing synchronous code can call the new synchronous methods; async equivalents are available via the async client.

2026-04-22 08:08 UTC​

Highlights​

  • Add support for configuration-backed batch processing via a new --configuration option for batch commands.
  • Allow attaching a per-batch lookup file via a new --lookup-file option for batch processing.
  • Add CLI commands to manage configuration lookup files: upload and delete.
  • Expose new API methods for uploading, downloading, and deleting configuration lookup files.

Python SDK​

  • New functions to upload, download, and delete configuration lookup files are available.
  • New API to process a batch using a named configuration is available.
  • Batch processing supports an optional batch-scoped lookup file that overrides configuration lookup data.
  • CLI now includes configuration lookup-file commands: upload <name> <file> and delete <name>.

Java SDK​

  • No Java SDK user-facing updates in this commit.

Migration Notes​

  • If you switch to --configuration for batch processing, do not provide prompt, schema, processing flags, OCR, or LLM options in the same request.
  • To override configuration lookup data only for a single batch, use the new --lookup-file option when starting the batch.
  • When using the CLI upload command for configuration lookup files, provide the configuration name and the file path.
  • Existing batch workflows that supplied prompt/schema or processing flags should continue using the previous behavior (omit --configuration).

2026-04-13 18:00 UTC​

Highlights​

  • Added Excel template download endpoint for configurations.
  • Added integration (secrets) endpoints to create, list, and delete secrets.
  • Added document outline retrieval for job results with optional batch index.

Python SDK​

  • New function to download Excel templates for a configuration by name.
  • New integration API: create_or_update secret endpoint returning a SecretSummary.
  • New integration API: list secrets endpoint returning a list of SecretSummary objects.
  • New integration API: delete secret endpoint by name.

Java SDK​

  • No Java SDK user-facing updates in this commit.

Migration Notes​

  • If you rely on configuration Excel templates, use the new download endpoint with the configuration name to retrieve template columns.
  • Use the new integration secrets endpoints to create, list, and remove secrets; creating a secret returns a SecretSummary object.
  • Managed execution functionality is available via new endpoints for dispatch, cancellation, retrieval, listing, and logs—update any client usage to call these new operations.
  • Review the new models added to ensure any typed code or data mappings include the new types and fields.