Skip to content

LegalOn API (1.1.0)

API documentation for LegalOn services

Languages
Servers
The server URL is `{api_base_url}/rest/v1`. You can construct the server URL using the value of `api_base_url` provided in the response when obtaining an access token.
https://{api_base_url_without_scheme}/rest/v1

Users

Operations about user

Operations

User Groups

Operations about user group

Operations

Workspaces

Operations about all tenant workspaces/folders regardless of the user's access permissions.

Operations

Departments

Operations about department

Operations

Contracts(Files)

Operations to create, retrieve, update, and delete contracts. For operations that target a workspace, specify a workspace_id obtained via the common Workspaces endpoint (GET /workspaces).

Operations

Create a contract document

Request

Creates a contract in the specified workspace by uploading a file. AI analysis (metadata extraction and preview generation) runs asynchronously.

Security
OAuth2ClientCredentials
Bodymultipart/form-datarequired

Create contract request payload. Omit document_status_code to create the contract without a document status. This is equivalent to specifying NONE.

workspace_idstring(uuid)required

Destination workspace ID

contract_file_typestring(contract_file_type)required

Type of contract file to upload

Enum"PRE_EXECUTION""EXECUTED"
document_status_codestring(document_status_code)

Contract document status code for pre-execution contracts. NONE represents no document status.

Enum"COUNTERPARTY_DRAFT""INTERNAL_DRAFT""COUNTERPARTY_REVISION""INTERNAL_REVISION""APPROVED_VERSION""READY_FOR_SIGNATURE""NONE"
filestring(binary)required

Contract file content

curl -i -X POST \
  'https://{api_base_url_without_scheme}/rest/v1/contracts' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: multipart/form-data' \
  -F workspace_id=00000023-0000-0000-0001-000000000020 \
  -F contract_file_type=PRE_EXECUTION \
  -F document_status_code=INTERNAL_DRAFT \
  -F 'file=<binary file content>'

Responses

Created

Bodyapplication/json
document_idstring(uuid)required

Contract document ID

document_version_idstring(uuid)required

Contract version ID

workspace_idsArray of strings(uuid)required

Workspace IDs that contain the contract

document_processing_statusstring(document_processing_status)required

Document processing status

Enum"PROCESSING""READY""REJECTED""FAILED""SKIPPED"
preview_statusstring(preview_status)required

Preview availability status

Enum"PROCESSING""READY""NOT_AVAILABLE""FAILED"
Response
application/json
{ "document_id": "00000016-0000-0000-0001-100000000001", "document_version_id": "00000016-0000-0000-0001-100000000101", "workspace_ids": [ "00000023-0000-0000-0001-000000000020" ], "document_processing_status": "PROCESSING", "preview_status": "PROCESSING" }

Get contract information

Request

Retrieves information about the specified contract.

Security
OAuth2ClientCredentials
Path
document_idstring(uuid)required

Contract document ID

Query
document_version_idstring(uuid)

Specific version to retrieve. If omitted, the latest version is returned.

curl -i -X GET \
  'https://{api_base_url_without_scheme}/rest/v1/contracts/{document_id}?document_version_id=497f6eca-6276-4993-bfeb-53cbbbba6f08' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

OK

Bodyapplication/json
document_idstring(uuid)required

Contract document ID

document_version_idstring(uuid)required

Contract document version ID

file_namestring[ 1 .. 255 ] charactersrequired

Contract file name

mime_typestring[ 1 .. 255 ] charactersrequired

Contract file MIME type

workspace_idsArray of strings(uuid)required

Workspaces that contain this contract document.

created_atstring(date-time)required

Contract document creation timestamp.

updated_atstring(date-time)required

Contract document latest update timestamp.

document_processing_statusstring(document_processing_status)required

Document processing status

Enum"PROCESSING""READY""REJECTED""FAILED""SKIPPED"
preview_statusstring(preview_status)required

Preview availability status

Enum"PROCESSING""READY""NOT_AVAILABLE""FAILED"
metadata_extraction_statusesobject(metadata_extraction_statuses)required

Item-level metadata extraction statuses. Omitted fields are not available from the current internal source.

metadata_extraction_statuses.​title_statusstring(metadata_extraction_status)

Item-level metadata extraction status

Enum"WAITING""PROCESSING""COMPLETED""FAILED""UNAVAILABLE""SKIPPED"
metadata_extraction_statuses.​language_code_statusstring(metadata_extraction_status)

Item-level metadata extraction status

Enum"WAITING""PROCESSING""COMPLETED""FAILED""UNAVAILABLE""SKIPPED"
metadata_extraction_statuses.​contract_category_positions_statusstring(metadata_extraction_status)

Item-level metadata extraction status

Enum"WAITING""PROCESSING""COMPLETED""FAILED""UNAVAILABLE""SKIPPED"
metadata_extraction_statuses.​own_party_statusstring(metadata_extraction_status)

Item-level metadata extraction status

Enum"WAITING""PROCESSING""COMPLETED""FAILED""UNAVAILABLE""SKIPPED"
metadata_extraction_statuses.​counter_party_statusstring(metadata_extraction_status)

Item-level metadata extraction status

Enum"WAITING""PROCESSING""COMPLETED""FAILED""UNAVAILABLE""SKIPPED"
metadataobject(contract_metadata)required

Contract metadata.

metadata.​titlestring[ 1 .. 1000 ] characters

Contract title

metadata.​language_codestring[ 2 .. 35 ] characters

Contract language code

metadata.​document_status_codestring(contract_document_status_code)

Contract document status code returned in contract metadata.

Enum"COUNTERPARTY_DRAFT""INTERNAL_DRAFT""COUNTERPARTY_REVISION""INTERNAL_REVISION""APPROVED_VERSION""READY_FOR_SIGNATURE""SIGNED"
metadata.​contract_category_positionsArray of objects(contract_category_position)

Contract category and position classifications.

metadata.​own_partiesArray of strings(party)

Own party names

metadata.​counter_partiesArray of strings(party)

Counter party names

related_filesArray of objects(related_file)required

Non-contract related files attached to the contract. Returns up to 30 files ordered by latest related file version creation timestamp in descending order.

related_files[].​related_file_idstring(uuid)required

Non-contract related file ID

related_files[].​file_namestring[ 1 .. 255 ] charactersrequired

Non-contract related file name

related_files[].​mime_typestring[ 1 .. 255 ] charactersrequired

Non-contract related file MIME type

previewArray of objects(preview)

Articles in the contract preview.

Response
application/json
{ "document_id": "00000016-0000-0000-0001-100000000001", "document_version_id": "00000016-0000-0000-0001-100000000101", "file_name": "nda_2026_05_08.pdf", "mime_type": "application/pdf", "workspace_ids": [ "00000023-0000-0000-0001-000000000020" ], "created_at": "2026-05-08T03:12:34Z", "updated_at": "2026-05-08T03:13:20Z", "document_processing_status": "PROCESSING", "preview_status": "READY", "metadata_extraction_statuses": { "title_status": "COMPLETED", "language_code_status": "COMPLETED", "contract_category_positions_status": "COMPLETED", "own_party_status": "PROCESSING", "counter_party_status": "PROCESSING" }, "metadata": { "title": "Confidentiality Agreement", "language_code": "en", "contract_category_positions": [], "own_parties": [], "counter_parties": [] }, "related_files": [ {} ], "preview": [ {} ] }

Delete a contract

Request

Deletes the specified contract. All versions and links to related files are also removed (the related files themselves are not deleted).

Security
OAuth2ClientCredentials
Path
document_idstring(uuid)required

Contract document ID

curl -i -X DELETE \
  'https://{api_base_url_without_scheme}/rest/v1/contracts/{document_id}' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

No Content

Response
No content

Workspaces

Workspaces/folders are the common units used to store and organize resources such as contracts. This endpoint returns the workspaces/folders the calling user has access to, as a tree. For operations that target a workspace (e.g., the Contract API), specify the workspace_id obtained here. To manage workspaces across the tenant (creation, permissions, etc.), see the admin workspace operations (/spaces).

Operations