Overview
This page will provide updates on API Releases for the Finalize and Analyze platform
Finalize API: New Releases
Finalize API: New Endpoints (03/30/2026)
Link Agreements in Finalize
Extends our UI-based agreement linking functionality to the Finalize API. When drafting multiple agreements via the API, they can now be automatically associated, ensuring consistent record linking across the platform.
Request Body:
POST > https://api.linksquares.com/api/finalize/v2/related_agreements { "data": { "agreement_id": "{agreement_id}", "related_agreement_ids": ["{agreement_id}", ["{agreement_id}"] } }
Retrieve Finalize Users
We introduce a new endpoint to retrieve and look up active Finalize User IDs.
This includes their User ID, profile details (such as department and title), Finalize role, and email.
Deleted users are excluded from these results.
Note: Analyze user details are not included in this release.
They are being evaluated for future enhancements.
Request Body:
GET > https://api.linksquares.com/api/finalize/v2/users/ { "data": [ { "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "first_name": "Steve", "last_name": "Urkel", "email": "surkel@company.com", "finalize_role": "drafter", "department": "sales", "job_title": "worker", "created_at": "Steve" } ], "total_count": 1, "_links": { "next": { "href": "https://api.linksquares.com/api/finalize/v2/users?page=3&per_page=1" }, "prev": { "href": "https://api.linksquares.com/api/finalize/v2/users?page=1&per_page=1" } } }
Search User by Email
Quickly locate a specific user’s information by searching via email address
Request Body:
GET > https://api.linksquares.com/api/finalize/v2/users?&filter[email]= apiservice@company.com
{
"data": [
{
"id": "8946ed24-001d-11f0-b426-2b0c1a1e956f",
"first_name": "LinkSquares API",
"last_name": "Service",
"email": "apiservice@company.com",
"finalize_role": "administrator",
"department": "",
"job_title": "",
"created_at": "2025-03-13T15:12:10Z"
}
],
"total_count": 1,
"_links": {}
}Note: If the local part of a user’s email contains a ‘+’ (apiservice+linksquares@company.com) the @ sign must be encoded.
Example: apiservice%2B@company.com
Set Finalize Agreement Owner
Introduces the ability to assign or reassign agreement ownership in Finalize via a User ID.
This enhancement allows to programmatically define a specific owner, ensuring the correct individual is responsible for the agreement without requiring manual updates.
Request Body:
PATCH > https://api.linksquares.com/api/finalize/v2/{agreement_id}/agreement_owner { "data": { "agreement_id": "{agreement_id}", "agreement_owner_id":"{user_id}" } }
Get Tags on Finalize Agreements
Retrieves a comprehensive list of all tags currently applied to a specified Finalize agreement record.
Response Body:
GET > https://api.linksquares.com/api/finalize/v2/agreements/{agreement_id}/tags { "data": [ { "id": "569c99ac-ff3f-11ef-bf48-33560346bdab", "name": "2026", "color": "#83C602" }, { "id": "0f319e6e-2477-11ed-85e6-5760e1b907d1", "name": "3rd-Party Software", "color": "#1285A6" } ], "total_count": 2, "_links": {} }
Rename Finalize Agreement Workflows
Allows renaming of a Finalize agreement
Request Body:
PATCH > https://api.linksquares.com/api/finalize/v2/agreements/{agreement_id} { "data": { "name": "Acme Corporation NDA Updated 03-31-26" } }
Finalize API: Retrieving Comments (11/25/2025)
Retrieve Comments from Finalize Activity Log
Endpoint: GET https://api.linksquares.com/api/finalize/v2/agreements/<agreement_id>/activity_logs
Functionality: In addition to the ability to create a comment via the API, you can now retrieve detailed activity log entries, including user comments.
Filtering: The endpoint supports an optional date/time filter, allowing you to fetch only comments and activity that occurred after a specified timestamp.
- ?created_after=yyyy-mm-dd
Retrieve Comments in the Activity Log
GET https://api.linksquares.com/api/finalize/v2/agreements/<agreement_id>/activity_logs
200 OK
{
"data": [
{
"created_at": "2025-11-25T17:12:01Z",
"kind": "ActivityEntry",
"text": "created agreement with no tasks in Ready for Signature",
"author": {
"id": "5d3e8fd4-89cf-11f0-aeb4-2bf90626f0e2",
"fullname": “Jane Curtin,
"email": “jcurtin+30bd7468-1e1d-4bbf-a327-54130eae7bdb@acme.com"
}
},
{
"created_at": "2025-11-04T18:16:51Z",
"kind": "ActivityEntry",
"text": "sent an email to euddin@acme.com",
"author": {
"id": "5d3e8fd4-89cf-11f0-aeb4-2bf90626f0e2",
fullname": “Jane Curtin,
"email": “jcurtin+30bd7468-1e1d-4bbf-a327-54130eae7bdb@acme.com"
}
}, {
"created_at": "2025-11-18T18:57:27Z",
"kind": "ActivityEntry",
"text": "added Ben Matlock as a Collaborator",
"author": {
"id": "5f08e5d0-89cf-11f0-aee5-078a42d16c76",
fullname": “Jane Curtin,
"email": “jcurtin+30bd7468-1e1d-4bbf-a327-54130eae7bdb@acme.com"
}
}Retrieve Comments in the Activity Log after a specific date
GET https://api.linksquares.com/api/finalize/v2/agreements/<agreement_id>/activity_logs?created_after=2025-11-14T12:00:00Z 200 OK { "data": [ { "created_at": "2025-11-18T19:42:47Z", "kind": "Comment", "text": "Can you double check the customer has an NDA?!", "author": { "id": "ca2fb9d8-8cc7-11f0-8781-438519318432", fullname": “Jane Curtin, "email": “jcurtin+30bd7468-1e1d-4bbf-a327-54130eae7bdb@acme.com" } }, { "created_at": "2025-11-18T19:43:19Z", "kind": "ActivityEntry", "text": "Verified the signatures required.", "author": { "id": "ca2fb9d8-8cc7-11f0-8781-438519318432", fullname": “Jane Curtin, "email": “jcurtin+30bd7468-1e1d-4bbf-a327-54130eae7bdb@acme.com" } } ]
Analyze API: New Releases
Analyze API: Retrieving additional attachments (01/15/2025)
Retrieving Agreement Attachments
This endpoint allows you to retrieve an additional attachment from an existing Analyze agreement.
Retrieving additional files on an existing agreement is a two-step process.
First step: Execute a GET call to acquire a list of the file(s) ids attached to the Analyze agreement. The Second step: Retrieve the AWS3 link to the attachment.
Step 1: Retrieve Agreement Additional Attachments
GET https://api.linksquares.com/api/analyze/v2/agreements/{agreement_id}/attachments Response Body 200 OK (success) "data": [ { "id": "3b182a83-5641-4832-93d2-3dcac6efe5z9", "file_name": "Land Lease Agreement.docx", "file_size": 14704, "file_type": "docx", "uploaded_by": "LinkSquares Team", "created_at": "2025-01-15T15:14:41Z" }, { "id": "afedb873-508e-468e-86eb-ed03156658827", "file_name": "Statement of Work.pdf", "file_size": 467207, "file_type": "pdf", "uploaded_by": "LinkSquares Team", "created_at": "2025-01-15T20:40:24Z" } ], "total_count": 2, "_links": {} }
Step 2: Retrieve Additional Attachment Link(s)
Note: Each Additional attachment has to be retrieved individually.
GET https://api.linksquares.com/api/analyze/v2/agreements/{agreementid}/attachments/{attachmentid}/download Response Body 200 OK (success) {"data":{"url":"https://linksquares-agreement-attachment-production.s3.amazonaws.com/store/4f6b185b4ef1773a84061ea8200e1b88/Land Lease Agreement.docx?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-AWS Info……"}}
Retrieving file context content for external platforms (7/31/2025)
Retrieving File Text Content
- GET File Text Content
- GET https://api.linksquares.com/api/analyze/v2/agreements/ {{agreement_id}}/content
The endpoint retrieves the textual content of a specific agreement/document that’s been uploaded and
processed by Analyze. In return, making it available to external platforms such as AI tools or search engines, providing programmatic access for content analysis, advanced search capabilities, and automation across your systems.
Note: The agreement needs to be fully processed. Otherwise errors will present themselves.
- Error: 422: Unprocessable Entity
- Error: 202 accepted (still processing)
Analyze API Agreement Processing Status (8/14//2025)
Agreement Processing Status
We have added new fields to the Analyze API’s JSON response to provide more insight into the processing status of each Analyze agreement.
This update allows you to easily identify agreements that are in the Pending or Processed queue.
-
is_pending (Boolean)
- true: The Analyze agreement is in the Pending queue
- false: The agreement has been approved and is in the Processed queue
-
enqueued_at (Timestamp)
- The exact time the Analyze agreement entered the Pending queue.
Important Limitation
- The new fields are for informational purposes and cannot be used as a sort filter for your API results.
Example: API Response of an Analyze agreement in the Pending queue
Below is an example of an API response showing the new fields for a pending agreement:
JSON
{
“id”: “87878b28-6e23-11f0-ba8e-c7fe22e28607",
“parent_agreement_id”: null,
“finalize_agreement_id”: null,
“name”: “Acme MSA_2025_03_13_TVA_Test - Master Agreement - Linksquares, Inc., Acme Corporation, Boston Beer Company, Inc., Batson River Brewing & Distilling - 2025",
“original_name”: “Acme MSA_2025_03_13_TVA_Test”,
“enqueued_at”: “2025-07-31T11:32:12.499-04:00",
“updated_date”: “2025-07-31T11 33 09.000-04:00",
“upload_date”: “2025-07-31T11:32:12.516-04:00",
“uploaded_by”: “LinkSquares Team”,
“is_pending”: true,
“type”: {
“id”: “25566752-febf-11ec-b885-7b048d2b9cf8",
“name”: “Master Agreement”
}
}