Sirion Contracts API

Executed contracts / agreements in the SirionOne repository (MODELED).

OpenAPI Specification

sirion-contracts-api-openapi.yml Raw ↑
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: {}