API documentation for LegalOn services
- Create a matter message
LegalOn API (1.2.0)
Request
Retrieves paginated timeline items for the specified matter. The initial supported event type is message, and public messages are returned by default. The response uses an event envelope so additional event types can be added without changing the top-level timeline item structure.
Use the page_token, visibility, and page_size query parameters to control the retrieval scope and pagination. See the parameter descriptions for details.
- Returns 404 when the matter does not exist and 403 when the caller cannot view the existing matter.
- Attachment metadata is not included in the response.
Private messages can contain sensitive information. When requesting private or all messages, ensure that external storage and forwarding preserve appropriate access controls and do not unintentionally share the content.
Use POST /matters/{matter_id}/messages to create a message.
- 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/matters/{matter_id}/timeline-items
- cURL
- JavaScript
- Python
- Java
- Go
curl -i -X GET \
'https://{api_base_url_without_scheme}/rest/v1/matters/{matter_id}/timeline-items?visibility=public&page_size=50&page_token=string' \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>'OK
Timeline items matching the requested visibility.
Public timeline event type. Additional event types can be added without changing the TimelineItem envelope.
Event-specific timeline payload. The payload property corresponding to event_type is populated. The initial event type uses message.
Token for retrieving the next page. Omitted when there is no next page.
{ "timeline_items": [ { … } ], "total_size": 1, "next_page_token": "eyJjYXNlX3RpbWVsaW5lX2V2ZW50X2lkIjoiMDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDMwIiwidHlwZSI6Im5leHQifQ" }
Request
Creates a public or private message in the specified matter and optionally attaches up to 10 newly uploaded files.
Send each new file as binary content in a multipart file part. The API performs the storage upload internally; clients do not obtain an upload URL or provide a file path or object path.
- Each file must be 100 MiB or smaller, and the combined file size must not exceed 200 MiB.
- If any file fails validation or upload, the request fails without creating the message.
- Private messages can contain sensitive information. Ensure that any external copy preserves appropriate access controls.
- This operation does not support an idempotency key. If the response is lost after processing, check whether the message was created before retrying because another message and attachments may be created.
Matter message creation request.
Structured message content. Blocks are displayed in order as paragraphs. The total number of characters across all text and mention user IDs must be between 1 and 4000.
Ordered paragraph blocks. An empty inlines array represents a blank line.
Ordered inline content in this paragraph. Specify an empty array to represent a blank line.
Text to display. Required when type is text and omitted when type is mention.
LegalOn-generated ID of the user to mention. Required when type is mention and omitted when type is text.
Visibility assigned to a message. Specify public or private.
Newly uploaded binary files. Specify the form field at most 10 times. The filename and Content-Type are read from each multipart file part; separate metadata fields are not used. Storage paths are managed internally and are not accepted as request fields. Filenames must be 200 characters or fewer, include an extension, contain no line breaks, and must not start or end with a period. Supported extensions are .pdf, .doc, .docx, .xls, .xlsx, .csv, .ppt, .pptx, .eml, .msg, .png, .gif, .jpg, and .jpeg. The Content-Type must match the extension under the same media-type rules as POST /files.
- 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/matters/{matter_id}/messages
- cURL
- JavaScript
- Python
- Java
- Go
curl -i -X POST \
'https://{api_base_url_without_scheme}/rest/v1/matters/{matter_id}/messages' \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Content-Type: multipart/form-data' \
-F 'content[blocks][0][inlines][0][type]=text' \
-F 'content[blocks][0][inlines][0][text]=Please review ' \
-F 'content[blocks][0][inlines][1][type]=mention' \
-F 'content[blocks][0][inlines][1][user_id]=00000000-0000-0000-0000-000000000001' \
-F 'content[blocks][0][inlines][1][marks]=bold' \
-F 'content[blocks][0][inlines][2][type]=text' \
-F 'content[blocks][0][inlines][2][text]=the latest revision.' \
-F 'content[blocks][0][inlines][2][marks]=bold' \
-F 'content[blocks][0][inlines][2][marks]=underline' \
-F 'content[blocks][2][inlines][0][type]=text' \
-F 'content[blocks][2][inlines][0][text]=Comments are welcome.' \
-F visibility=public \
-F 'files=<binary file content>'{ "message_id": "00000000-0000-0000-0000-000000000030" }
Matter message content update request.
Structured message content. Blocks are displayed in order as paragraphs. The total number of characters across all text and mention user IDs must be between 1 and 4000.
Ordered paragraph blocks. An empty inlines array represents a blank line.
Ordered inline content in this paragraph. Specify an empty array to represent a blank line.
Text to display. Required when type is text and omitted when type is mention.
LegalOn-generated ID of the user to mention. Required when type is mention and omitted when type is text.
- 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/matters/{matter_id}/messages/{message_id}
- cURL
- JavaScript
- Python
- Java
- Go
curl -i -X PATCH \
'https://{api_base_url_without_scheme}/rest/v1/matters/{matter_id}/messages/{message_id}' \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"content": {
"blocks": [
{
"inlines": [
{
"type": "text",
"text": "Please review the revised draft with ",
"marks": [
"underline"
]
},
{
"type": "mention",
"user_id": "00000000-0000-0000-0000-000000000001"
}
]
}
]
}
}'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).