Skip to content

LegalOn API (1.2.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

Matters

Operations to create, retrieve, update, and delete matters. Matter operations require an API credential owned by a user with a Matter Management Pro license.

Operations

Get a matter

Request

Retrieves the specified matter. Related files and timeline items are not included.

Security
OAuth2ClientCredentials
Path
matter_idstring(uuid)required

LegalOn-generated matter ID.

curl -i -X GET \
  'https://{api_base_url_without_scheme}/rest/v1/matters/{matter_id}' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

OK

Bodyapplication/json
matter_idstring(uuid)required

LegalOn-generated matter ID.

matter_numberstringnon-emptyrequired

Matter number.

titlestringnon-emptyrequired

Matter title.

overviewstringnon-empty

Matter overview. Omitted when it is not set.

matter_typestringrequired

Matter type.

Enum"other""legal_request""contract_review""contract_drafting"
due_datestring(date-time)

Matter due date. Omitted when it is not set.

statusobject(MatterStatus)required

Matter status.

status.​status_idstring(uuid)required

LegalOn-generated status ID.

status.​display_namestringnon-emptyrequired

Status name.

assigneeobject(MainAssigneeReference)

Main assignee of the matter. Omitted when it is not set.

secondary_assigneeArray of objects(UserReference)required

Secondary assignees of the matter.

secondary_assignee[].​user_idstring(uuid)required

LegalOn-generated user ID.

secondary_assignee[].​display_namestringnon-emptyrequired

User display name.

requesterobject(RequesterReference)

User or guest resolved as the matter requester.

requesting_departmentobject(DepartmentReference)

Department reference.

custom_attributesArray of objects(MatterCustomAttribute)required

Custom attributes set on the matter.

custom_attributes[].​custom_attribute_definitionobject(MatterCustomAttributeDefinition)required

Definition of a matter custom attribute.

custom_attributes[].​custom_attribute_definition.​custom_attribute_definition_idstring(uuid)required

LegalOn-generated custom attribute definition ID.

custom_attributes[].​custom_attribute_definition.​display_namestringnon-emptyrequired

Custom attribute display name.

custom_attributes[].​custom_attribute_definition.​kindstringrequired

Value type of the custom attribute.

Enum"single_selection""multiple_selection""single_line_text""number""date"
custom_attributes[].​custom_attribute_definition.​display_orderinteger>= 0required

Display order of the custom attribute.

custom_attributes[].​custom_attribute_definition.​optionsArray of objects(MatterCustomAttributeOption)required

Selectable options. Empty for non-selection attributes.

custom_attributes[].​custom_attribute_definition.​options[].​custom_attribute_option_idstring(uuid)required

LegalOn-generated custom attribute option ID.

custom_attributes[].​custom_attribute_definition.​options[].​display_namestringnon-emptyrequired

Option display name.

custom_attributes[].​custom_attribute_definition.​options[].​display_orderinteger>= 0required

Display order of the option.

custom_attributes[].​option_idsArray of strings(uuid)

Selected option IDs for a selection attribute.

custom_attributes[].​text_valuestringnon-empty

Value for a single-line text attribute.

custom_attributes[].​number_valueinteger(int32)>= 0

Value for a number attribute.

custom_attributes[].​date_valuestring(date-time)

Value for a date attribute.

workspaceobject(WorkspaceReference)required

Workspace reference. Both fields are omitted and an empty object is returned when the credential owner cannot view the workspace.

workspace.​workspace_idstring(uuid)

LegalOn-generated workspace ID.

workspace.​display_namestringnon-empty

Workspace display name.

created_atstring(date-time)required

Matter creation time.

last_message_atstring(date-time)

Time of the latest message. Omitted when no message exists.

Response
application/json
{ "matter_id": "00000000-0000-0000-0000-000000000001", "matter_number": "MAT-0001", "title": "Review NDA", "overview": "Please review this NDA.", "matter_type": "contract_review", "status": { "status_id": "00000000-0000-0000-0000-000000000002", "display_name": "In progress" }, "secondary_assignee": [], "custom_attributes": [], "workspace": { "workspace_id": "00000000-0000-0000-0000-000000000003", "display_name": "Legal" }, "created_at": "2026-08-18T00:00:00Z", "last_message_at": "2026-08-18T00:00:00Z" }

Update a matter

Request

Overview

Partially updates matter fields, the requester, requesting department, status, assignees, and custom attributes in one request.

Processing notes

  • When a requester is specified, LegalOn resolves an active user first; if no matching user exists, it reuses an existing guest or creates a new guest.
  • If requester is omitted, the existing requester is retained; other omitted fields remain unchanged.
Security
OAuth2ClientCredentials
Path
matter_idstring(uuid)required

LegalOn-generated matter ID.

Bodyapplication/jsonrequired

Matter partial update request.

non-empty
titlestring[ 1 .. 200 ] characters

Matter title.

overviewstring[ 1 .. 4000 ] characters

Matter overview.

matter_typestring

Matter type.

Enum"other""legal_request""contract_review""contract_drafting"
due_datestring or null(date-time)

Matter due date. Set to null to clear the due date; omit to leave it unchanged.

status_idstring(uuid)

Status to set.

requesterobject(RequesterInput)

Requester identified by email address and name. A user or guest ID cannot be specified directly.

requesting_department_idstring or null(uuid)

Requesting department to set. Set to null to clear it.

main_assignee_idstring or null(uuid)

Main assignee user ID. Set to null to clear the main assignee.

sub_assignee_idsArray of strings(uuid)<= 30 itemsunique

Complete list of sub-assignee user IDs. An empty array clears all sub-assignees. The same user ID cannot be specified more than once.

custom_attributesArray of objects(MatterCustomAttributePatch)[ 1 .. 50 ] items

Custom attributes to update. Definitions not specified remain unchanged. The same definition ID cannot be specified more than once.

curl -i -X PATCH \
  'https://{api_base_url_without_scheme}/rest/v1/matters/{matter_id}' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "title": "Review mutual NDA",
    "due_date": null,
    "status_id": "00000000-0000-0000-0000-000000000002",
    "requester": {
      "email": "requester@example.com",
      "name": "Request User"
    },
    "main_assignee_id": "00000000-0000-0000-0000-000000000004",
    "sub_assignee_ids": [
      "00000000-0000-0000-0000-000000000005"
    ],
    "custom_attributes": [
      {
        "custom_attribute_definition_id": "00000000-0000-0000-0000-000000000010",
        "text_value": "High priority"
      }
    ]
  }'

Responses

No Content

Response
No content

Delete a matter

Request

Deletes the specified matter.

Security
OAuth2ClientCredentials
Path
matter_idstring(uuid)required

LegalOn-generated matter ID.

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

Responses

No Content

Response
No content

Files

Operations to create files for use by LegalOn resources.

Operations

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