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: {}