openapi: 3.0.3
info:
title: LinkSquares Account Attachments API
description: 'The LinkSquares API is the public REST API for the LinkSquares AI-powered contract lifecycle management (CLM) platform. It spans two products. Analyze exposes 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. Finalize lets external systems retrieve templates, create draft/intake/request agreements, and retrieve and approve tasks. All requests authenticate with an API key passed as an `x-api-key` header; the same token is shared across Analyze and Finalize. API access is gated to LinkSquares customers and keys are self-managed by Administrator users.
GROUNDING NOTE: The Analyze paths in this document (under /api/analyze) are CONFIRMED against the public LinkSquares API Overview and Analyze API Sample Use Cases help-center articles, including live cURL examples. The Finalize paths (under /api/finalize) are MODELED from the capability-level descriptions in the LinkSquares API Overview - LinkSquares documents that Finalize can retrieve templates, retrieve and approve tasks, and create agreements, but the concrete request paths are behind the customer-gated API reference and must be confirmed before use. Request and response schemas throughout are modeled from documented behavior and examples, not copied from an official OpenAPI definition.'
version: '1.0'
contact:
name: LinkSquares
url: https://linksquares.com
license:
name: Proprietary
url: https://linksquares.com/saas-terms-of-service
servers:
- url: https://api.linksquares.com
description: LinkSquares production API gateway
security:
- apiKeyAuth: []
tags:
- name: Attachments
description: Additional attachments on Analyze agreements (confirmed).
paths:
/api/analyze/v1/agreements/{agreement_id}/attachments:
parameters:
- $ref: '#/components/parameters/AgreementId'
post:
operationId: addAgreementAttachment
tags:
- Attachments
summary: Add an additional attachment
description: Adds an additional attachment to an agreement. Confirmed (v1).
requestBody:
required: true
content:
application/json:
schema:
type: object
additionalProperties: true
responses:
'200':
description: The created attachment.
content:
application/json:
schema:
type: object
additionalProperties: true
'401':
$ref: '#/components/responses/Unauthorized'
/api/analyze/v2/agreements/{agreement_id}/attachments:
parameters:
- $ref: '#/components/parameters/AgreementId'
get:
operationId: listAgreementAttachments
tags:
- Attachments
summary: List additional attachments
description: Retrieves the additional attachments on an agreement. Confirmed (v2).
responses:
'200':
description: A list of attachments.
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
type: object
additionalProperties: true
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
/api/analyze/v2/agreements/{agreement_id}/attachments/{attachment_id}/download:
parameters:
- $ref: '#/components/parameters/AgreementId'
- name: attachment_id
in: path
required: true
description: The identifier of the attachment.
schema:
type: string
get:
operationId: downloadAgreementAttachment
tags:
- Attachments
summary: Download an attachment
description: Downloads a single attachment on an agreement. Confirmed (v2).
responses:
'200':
description: The attachment binary or a download reference.
content:
application/octet-stream:
schema:
type: string
format: binary
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
components:
parameters:
AgreementId:
name: agreement_id
in: path
required: true
description: The unique identifier (UUID) of the agreement.
schema:
type: string
format: uuid
schemas:
Error:
type: object
properties:
error:
type: string
message:
type: string
responses:
Unauthorized:
description: Missing or invalid API key.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
NotFound:
description: The requested resource was not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
securitySchemes:
apiKeyAuth:
type: apiKey
in: header
name: x-api-key
description: LinkSquares API key passed as an `x-api-key` header on every request. Keys are self-managed by Administrator users and are shared across the Analyze and Finalize products.