For the complete documentation index, see llms.txt. This page is also available as Markdown.

Labs API

Consumer-visible changes to the Labs API, newest first.

Changes to the Labs API that affect integrations. Versions not listed shipped nothing consumer-visible.

3.0.1

Released 2026-08-25

Changed

Assignment Agreement no longer required before data-room writes

Data-room write mutations β€” initiateCreateOrUpdateFile, finishCreateOrUpdateFile, deleteDataRoomFile, updateFileMetadata, moveEntry, and createAnnouncement (see Files) β€” used to fail with ASSIGNMENT_AGREEMENT_NOT_SIGNED (FAILED_PRECONDITION) until a lab's Assignment Agreement was signed via signLegalAgreement. That gate is now disabled: these mutations succeed regardless of the agreement's sign state. Sign Legal Agreement and Check Legal Agreement Status are unchanged and remain fully functional β€” signing is now optional rather than a write precondition.

Migration: No action required. Integrations that retried after handling ASSIGNMENT_AGREEMENT_NOT_SIGNED can drop that handling; it is safe to leave in place, since the error is simply no longer emitted for this type.

2.0.1

Released 2026-08-18

Breaking changes

GraphQL introspection disabled and query depth capped in production

The production endpoint no longer serves __schema / __type introspection queries β€” they return a validation error. __typename still resolves. Selection-set depth is also capped at 10 in production; a query beyond that fails at execution time with errorType: "QueryDepthLimitReached" rather than the usual error shape. See API Changelog & Migration for details and migration steps.

1.0.14

Released 2026-08-04

Breaking changes

isSuccess removed (unified error contract)

Every Labs API result type lost its isSuccess flag, and mutation results now carry a nullable error: ApiError instead of the previous error type; a document that still selects isSuccess fails GraphQL validation. Queries throw: a failed query surfaces as a top-level GraphQL errors[] entry whose errorType is a catalogue code such as UNAUTHENTICATED or NOT_FOUND. Mutations return errors in-band, and success means error == null. Authentication denials, legacy error codes, service-token result fields and InitiateFileUploadResult.method changed alongside the envelope. The Tokenization API is unaffected and keeps its previous result envelope.

Migration: Drop isSuccess (and, except on legalAgreementStatus, any error { … } selection) from query documents and handle the top-level errors[] array keyed on errorType; on mutations select error { code message requestId retryable details } and branch on error.code instead of message. See API Changelog & Migration for the before/after examples, the ApiError shape, the full code table and the field-level changes.

For migrations off the removed isSuccess envelope, the pre-OCL naming and the *V2 operations, see API Changelog & Migration.

Last updated