openapi: 3.0.3
info:
title: Sirion CLM API (Modeled) Contract Requests Contracts API
description: 'IMPORTANT - MODELED DOCUMENT. This OpenAPI definition is a MODELED representation of the Sirion (SirionLabs) CLM "Business API & Integrations" surface. It is NOT copied from an official public reference. Sirion''s API reference is available only to authenticated Sirion users (via My Account -> Resources -> Help Guide in the tenant application, and at docs.sirion.ai behind login), and API access is provisioned per enterprise tenant.
What is publicly CONFIRMED and reflected here: (1) SirionOne is RESTful and "any activity possible in the web application is possible via the APIs"; (2) authentication uses OAuth 2.0 client credentials for Sirion B2B APIs (an OAuth Client Id and OAuth Client Secret generated by a tenant admin under Admin 2.0 -> Business API & Integrations / OAuth Client Setup); (3) Sirion supports configurable outbound webhooks with field-based filtering and event-based, asynchronous processing; (4) core CLM entities include contracts, contract requests (CDRs), metadata and clauses, obligations, and suppliers / counterparties.
What is MODELED and NOT publicly confirmable: all endpoint paths, the exact request/response schemas, the OAuth token URL, and the per-tenant host. The base server below uses a `tenant` variable on the confirmed product domain sirioncloud.com; substitute your organization''s actual Sirion host. Do not treat these paths as authoritative - obtain the real reference from your Sirion tenant.'
version: 1.0-modeled
contact:
name: SirionLabs
url: https://www.sirion.ai
servers:
- url: https://{tenant}.sirioncloud.com
description: Per-tenant SirionOne instance (MODELED host pattern on the confirmed product domain sirioncloud.com). Replace {tenant} with your organization's Sirion subdomain. The exact API path prefix is provisioned per tenant.
variables:
tenant:
default: your-org
description: Your organization's Sirion tenant subdomain.
security:
- oauth2ClientCredentials: []
tags:
- name: Contracts
description: Executed contracts / agreements in the SirionOne repository (MODELED).
paths:
/contracts:
get:
operationId: listContracts
tags:
- Contracts
summary: List contracts (MODELED)
description: Lists contracts in the SirionOne repository. MODELED path.
parameters:
- $ref: '#/components/parameters/Page'
- $ref: '#/components/parameters/PageSize'
responses:
'200':
description: A page of contract records.
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Contract'
'401':
$ref: '#/components/responses/Unauthorized'
post:
operationId: createContract
tags:
- Contracts
summary: Create a contract (MODELED)
description: Creates a contract record. MODELED path and schema.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ContractInput'
responses:
'201':
description: The created contract.
content:
application/json:
schema:
$ref: '#/components/schemas/Contract'
'401':
$ref: '#/components/responses/Unauthorized'
/contracts/{contractId}:
parameters:
- $ref: '#/components/parameters/ContractId'
get:
operationId: getContract
tags:
- Contracts
summary: Retrieve a contract (MODELED)
responses:
'200':
description: The requested contract.
content:
application/json:
schema:
$ref: '#/components/schemas/Contract'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
patch:
operationId: updateContract
tags:
- Contracts
summary: Update a contract (MODELED)
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ContractInput'
responses:
'200':
description: The updated contract.
content:
application/json:
schema:
$ref: '#/components/schemas/Contract'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
components:
parameters:
Page:
name: page
in: query
required: false
description: Page number for pagination (MODELED).
schema:
type: integer
default: 1
PageSize:
name: pageSize
in: query
required: false
description: Number of items per page (MODELED).
schema:
type: integer
default: 25
ContractId:
name: contractId
in: path
required: true
description: The ID of the contract (MODELED).
schema:
type: string
responses:
Unauthorized:
description: Missing or invalid OAuth access token.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
NotFound:
description: The requested resource was not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
schemas:
Contract:
allOf:
- $ref: '#/components/schemas/ContractInput'
- type: object
properties:
id:
type: string
createdAt:
type: string
format: date-time
ContractInput:
type: object
description: MODELED contract payload - not from a public reference.
properties:
title:
type: string
status:
type: string
description: Lifecycle status (e.g. draft, in negotiation, executed, expired).
counterparty:
type: string
effectiveDate:
type: string
format: date
expiryDate:
type: string
format: date
value:
type: number
currency:
type: string
Error:
type: object
properties:
code:
type: string
message:
type: string
securitySchemes:
oauth2ClientCredentials:
type: oauth2
description: 'OAuth 2.0 client credentials grant. CONFIRMED: a Sirion tenant admin generates an OAuth Client Id and OAuth Client Secret under Admin 2.0 -> Business API & Integrations (OAuth Client Setup), used to obtain an access token for the Sirion B2B APIs. The token URL below is MODELED / tenant-specific and must be replaced with your tenant''s actual token endpoint.'
flows:
clientCredentials:
tokenUrl: https://your-org.sirioncloud.com/oauth/token
scopes: {}