LinkSquares

LinkSquares is an AI-powered contract lifecycle management (CLM) platform that helps legal teams draft, review, execute, and analyze agreements. Its public REST API is split across two products - Analyze, which surfaces processed agreements plus the metadata, Smart Values, terms, types, tags, and parent/child hierarchy extracted from them, and lets you import DOCX/PDF documents for AI processing; and Finalize, which lets external systems retrieve templates, create draft/intake/request agreements, and retrieve and approve tasks so stakeholders can collaborate on contracts without leaving their own tools. A single API token is shared across Analyze and Finalize and is passed as an x-api-key header. API access is gated to LinkSquares customers, and keys are self-managed by Administrator users; user and group provisioning is offered through SCIM 2.0 on the Enterprise tier rather than a public REST endpoint.

LinkSquares publishes 3 APIs on the APIs.io network: Analyze Agreements API, Analyze Metadata and Smart Values API, and Finalize Workflow API. Tagged areas include Contract Management, Contract Lifecycle Management, CLM, Contracts, and AI.

LinkSquares’ developer surface includes authentication, documentation, signup flow, engineering blog, and 7 more developer resources.

36.9/100 thin ▬ flat Agent 48/100 agent ready Full breakdown ↓
scored 2026-07-20 · rubric v0.4
4 APIs 0 Features
Contract ManagementContract Lifecycle ManagementCLMContractsAILegalAgreementsDocument ManagementContract Analytics

API Rating

API Evangelist API Evangelist Rating How this is scored →
scored 2026-07-20 · rubric v0.4
Composite quality — 36.9/100 · thin
Contract Quality 14.6 / 25
Developer Ergonomics 4.3 / 20
Commercial Clarity 8.4 / 20
Operational Transparency 2.7 / 13
Governance 0.0 / 12
Discoverability 6.8 / 10
Agent readiness — 48/100 · agent ready
Machine-Readable Contract 18 / 18
Agentic Access Contract 15 / 15
MCP Server 0 / 12
Machine-Readable Auth 10 / 10
Idempotency 0 / 9
Stable Error Semantics 0 / 8
Request/Response Examples 0 / 7
Rate-Limit Signaling 7 / 7
Typed Event Surface 0 / 6
Agent Skills 0 / 5
Well-Known Catalog 0 / 4
Consent & Bot Identity 0 / 3
Improve this rating by publishing the missing artifacts — every area above can be raised, and the full rubric is at apis.io/rating/. This rating is computed from github.com/api-evangelist/linksquares: open an issue to ask a question, or submit a pull request to add artifacts. Want it done for you? Prioritized profiling — $2,500 →

APIs

LinkSquares Analyze Agreements API

List and retrieve processed Analyze agreements, import DOCX/PDF documents into LinkSquares Analyze for AI processing (a two-step create-metadata then PUT-to-presigned-URL upload...

LinkSquares Analyze Metadata and Smart Values API

Retrieve the metadata LinkSquares Analyze extracts from agreements - Smart Values (100+ automatically extracted data points), Terms, Types, Tags, and the parent/child hierarchy ...

LinkSquares Finalize Workflow API

Let external systems collaborate with legal on contracts in LinkSquares Finalize - retrieve available Finalize templates (Draft, Intake, and Request forms) and their Agreement D...

LinkSquares User and Group Provisioning (SCIM)

User and group lifecycle management is offered through SCIM 2.0 provisioning on the Enterprise tier rather than a public REST endpoint. There is no documented public REST user-m...

Collections

Pricing Plans

Rate Limits

Linksquares Rate Limits

2 limits

RATE LIMITS

FinOps

Resources

Get Started 1

Portal, sign-up, and the first successful call

Documentation 1

Reference material describing how the API behaves

Agent Surfaces 1

MCP servers, agent skills, and machine-readable catalogs

Access & Security 2

Authentication, authorization, and security posture

Operate 1

Status, limits, changes, and where to get help

Commercial 2

Pricing, plans, and the legal terms of use

Company 3

The organization behind the API

Source (apis.yml)

apis.yml Raw ↑
opencollection: 1.0.0
info:
  name: LinkSquares API
  version: '1.0'
request:
  auth:
    type: apikey
    apikey:
      key: x-api-key
      value: '{{apiKey}}'
      in: header
items:
- info:
    name: Account
    type: folder
  items:
  - info:
      name: Get the current API user
      type: http
    http:
      method: GET
      url: https://api.linksquares.com/api/analyze/v1/me
    docs: Returns the user the API key is assigned to and server status. Confirmed.
- info:
    name: Agreements
    type: folder
  items:
  - info:
      name: List agreements
      type: http
    http:
      method: GET
      url: https://api.linksquares.com/api/analyze/v1/agreements
      params:
      - name: type
        value: ''
        type: query
        description: Filter by agreement type name.
      - name: tag
        value: ''
        type: query
        description: Filter by agreement tag.
      - name: next_cursor
        value: ''
        type: query
        description: Cursor for the next page of results.
    docs: Lists agreements the API user can view. Cursor pagination via next_cursor. Confirmed.
  - info:
      name: Create an agreement (step 1 of import)
      type: http
    http:
      method: POST
      url: https://api.linksquares.com/api/analyze/v1/agreements
      body:
        type: json
        data: "{\n  \"name\": \"Master Service Agreement 2023\",\n  \"file_name\": \"MSA 2023.pdf\",\n  \"agreement_type\"\
          : \"Master Service Agreement\"\n}"
    docs: 'Step 1 of the two-step import: POST metadata and file_name, receive a presigned upload URL, then PUT the binary
      DOCX/PDF to it. Confirmed.'
  - info:
      name: Retrieve a single agreement
      type: http
    http:
      method: GET
      url: https://api.linksquares.com/api/analyze/v1/agreements/:agreement_id
      params:
      - name: agreement_id
        value: ''
        type: path
        description: The UUID of the agreement.
    docs: Retrieves metadata and Smart Values for one agreement. Confirmed.
  - info:
      name: Update an agreement
      type: http
    http:
      method: PATCH
      url: https://api.linksquares.com/api/analyze/v2/agreements/:agreement_id
      params:
      - name: agreement_id
        value: ''
        type: path
        description: The UUID of the agreement.
      body:
        type: json
        data: '{}'
    docs: Updates fields on an existing agreement. Confirmed (v2).
  - info:
      name: Retrieve upload status
      type: http
    http:
      method: GET
      url: https://api.linksquares.com/api/analyze/v1/uploads/:upload_id
      params:
      - name: upload_id
        value: ''
        type: path
        description: The upload identifier returned by create-agreement.
    docs: Retrieves the status of a document upload. Confirmed.
- info:
    name: Metadata and Smart Values
    type: folder
  items:
  - info:
      name: Retrieve agreement terms
      type: http
    http:
      method: GET
      url: https://api.linksquares.com/api/analyze/v1/agreements/:agreement_id/terms
      params:
      - name: agreement_id
        value: ''
        type: path
        description: The UUID of the agreement.
    docs: Retrieves the terms (Smart Values) for a single agreement. Confirmed.
  - info:
      name: Update an agreement term
      type: http
    http:
      method: PATCH
      url: https://api.linksquares.com/api/analyze/v2/agreements/:agreement_id/terms/:term_id
      params:
      - name: agreement_id
        value: ''
        type: path
        description: The UUID of the agreement.
      - name: term_id
        value: ''
        type: path
        description: The identifier of the term / Smart Value.
      body:
        type: json
        data: '{}'
    docs: Updates a single term (Smart Value) on an agreement. Confirmed (v2).
  - info:
      name: Retrieve parent/child hierarchy
      type: http
    http:
      method: GET
      url: https://api.linksquares.com/api/analyze/v1/agreements/:agreement_id/hierarchy
      params:
      - name: agreement_id
        value: ''
        type: path
        description: The UUID of the agreement.
    docs: Returns the parent/child hierarchy tree for an agreement. Confirmed.
  - info:
      name: List agreement types
      type: http
    http:
      method: GET
      url: https://api.linksquares.com/api/analyze/v1/agreement_types
    docs: Lists the agreement types configured in the Analyze environment. Confirmed.
- info:
    name: Attachments
    type: folder
  items:
  - info:
      name: Add an additional attachment
      type: http
    http:
      method: POST
      url: https://api.linksquares.com/api/analyze/v1/agreements/:agreement_id/attachments
      params:
      - name: agreement_id
        value: ''
        type: path
        description: The UUID of the agreement.
      body:
        type: json
        data: '{}'
    docs: Adds an additional attachment to an agreement. Confirmed (v1).
  - info:
      name: List additional attachments
      type: http
    http:
      method: GET
      url: https://api.linksquares.com/api/analyze/v2/agreements/:agreement_id/attachments
      params:
      - name: agreement_id
        value: ''
        type: path
        description: The UUID of the agreement.
    docs: Lists the additional attachments on an agreement. Confirmed (v2).
  - info:
      name: Download an attachment
      type: http
    http:
      method: GET
      url: https://api.linksquares.com/api/analyze/v2/agreements/:agreement_id/attachments/:attachment_id/download
      params:
      - name: agreement_id
        value: ''
        type: path
        description: The UUID of the agreement.
      - name: attachment_id
        value: ''
        type: path
        description: The identifier of the attachment.
    docs: Downloads a single attachment on an agreement. Confirmed (v2).
- info:
    name: Finalize (MODELED)
    type: folder
  items:
  - info:
      name: List Finalize templates
      type: http
    http:
      method: GET
      url: https://api.linksquares.com/api/finalize/v1/templates
    docs: MODELED PATH. Retrieves available Finalize templates. Documented as a capability; path not confirmed.
  - info:
      name: List Finalize tasks
      type: http
    http:
      method: GET
      url: https://api.linksquares.com/api/finalize/v1/tasks
    docs: MODELED PATH. Retrieves tasks in the environment. Path not confirmed.
  - info:
      name: Get a Finalize task
      type: http
    http:
      method: GET
      url: https://api.linksquares.com/api/finalize/v1/tasks/:task_id
      params:
      - name: task_id
        value: ''
        type: path
        description: The identifier of the task.
    docs: MODELED PATH. Retrieves a specific task. Path not confirmed.
  - info:
      name: Approve a Finalize task
      type: http
    http:
      method: PATCH
      url: https://api.linksquares.com/api/finalize/v1/tasks/:task_id
      params:
      - name: task_id
        value: ''
        type: path
        description: The identifier of the task.
      body:
        type: json
        data: '{}'
    docs: MODELED PATH. Updates a task status to approved. Path not confirmed.
  - info:
      name: Create a Finalize agreement
      type: http
    http:
      method: POST
      url: https://api.linksquares.com/api/finalize/v1/agreements
      body:
        type: json
        data: '{}'
    docs: MODELED PATH. Creates a Draft, Intake, or Request agreement in Finalize. Path not confirmed.
bundled: true