OpenAPI Specification
openapi: 3.0.3
info:
title: Trioptima triReduce Cycles Results API
description: 'The triReduce API provides machine-to-machine access to TriOptima''s portfolio compression service for OTC derivatives. The API allows cycle participants to automate their participation in compression cycles, submit trade and risk data, and retrieve compression results and reports.
The API is available at both the rates (IRS/OIS) and credit derivatives services. Authentication uses OAuth 2.0 tokens. Read-only access (GET only) is provided for initial development and testing; full access (GET and POST) is enabled on request for production use.
Full interactive documentation is available at /api/v1/doc after authenticating to the relevant triReduce service (e.g., https://rates.trireduce.com/api/v1/doc).'
version: '1'
contact:
name: TriOptima / OSTTRA Support
url: https://osttra.com
email: triReduce-support@trioptima.com
license:
name: Proprietary
servers:
- url: https://rates.trireduce.com/api/v1
description: triReduce Rates (Interest Rate Swaps / OIS)
- url: https://credit.trireduce.com/api/v1
description: triReduce Credit (Credit Default Swaps)
security:
- oauth2: []
tags:
- name: Results
description: Compression results and reports
paths:
/cycles/{cycleId}/results:
get:
operationId: getCycleResults
summary: Get Cycle Results
description: Returns the compression results for a completed cycle, including the set of terminations and new replacement trades, notional reduction achieved, and summary statistics.
tags:
- Results
parameters:
- name: cycleId
in: path
required: true
description: Unique identifier for the compression cycle
schema:
type: string
responses:
'200':
description: Compression results for the cycle
content:
application/json:
schema:
$ref: '#/components/schemas/CycleResults'
'401':
description: Unauthorized
'404':
description: Cycle results not available yet or not found
/cycles/{cycleId}/results/confirm:
post:
operationId: confirmCycleResults
summary: Confirm Cycle Results
description: Confirms the participant's acceptance of the compression results for a cycle. This is required before terminations and new trades are processed. All participants must confirm before the cycle settles.
tags:
- Results
parameters:
- name: cycleId
in: path
required: true
description: Unique identifier for the compression cycle
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- confirmed
properties:
confirmed:
type: boolean
description: Set true to confirm, false to reject results
comment:
type: string
description: Optional comment explaining rejection
responses:
'200':
description: Confirmation recorded
content:
application/json:
schema:
$ref: '#/components/schemas/SubmissionResult'
'401':
description: Unauthorized
'403':
description: Forbidden
components:
schemas:
CycleResults:
type: object
description: Results of a completed compression cycle
properties:
cycleId:
type: string
status:
type: string
enum:
- pending_confirmation
- confirmed
- settled
summary:
type: object
properties:
originalNotional:
type: number
format: double
description: Total notional submitted
compressedNotional:
type: number
format: double
description: Residual notional after compression
notionalReduction:
type: number
format: double
description: Amount of notional eliminated
reductionPercentage:
type: number
format: double
description: Percentage of notional eliminated
tradesTerminated:
type: integer
description: Number of trades terminated
newTradesCreated:
type: integer
description: Number of replacement trades created
terminations:
type: array
description: Trades to be terminated
items:
$ref: '#/components/schemas/Trade'
newTrades:
type: array
description: Replacement trades created by the compression algorithm
items:
$ref: '#/components/schemas/Trade'
Trade:
type: object
description: A derivative trade in a compression cycle
properties:
tradeId:
type: string
description: Unique trade identifier (UTI or participant internal ID)
counterpartyId:
type: string
description: Counterparty LEI or identifier
notional:
type: number
format: double
description: Notional amount in the trade currency
currency:
type: string
description: Trade notional currency
example: USD
maturityDate:
type: string
format: date
description: Trade maturity date
startDate:
type: string
format: date
description: Trade effective start date
fixedRate:
type: number
format: double
description: Fixed coupon rate (for IRS)
payReceive:
type: string
enum:
- PAY
- RECEIVE
description: Whether the participant pays or receives the fixed rate
clearingHouse:
type: string
description: Clearing house (LCH, CME, Eurex, etc.)
example: LCH
status:
type: string
description: Trade status in the cycle
enum:
- submitted
- accepted
- rejected
- terminated
SubmissionResult:
type: object
description: Result of a data submission operation
properties:
success:
type: boolean
message:
type: string
recordsProcessed:
type: integer
errors:
type: array
items:
type: object
properties:
tradeId:
type: string
errorCode:
type: string
errorMessage:
type: string
securitySchemes:
oauth2:
type: oauth2
flows:
clientCredentials:
tokenUrl: https://auth.trireduce.com/oauth/token
scopes:
read: Read-only access to cycles, trades, and results
write: Full access to submit trades, risk data, and confirmations
externalDocs:
description: triReduce API Documentation
url: https://www.cmegroup.com/education/brochures-and-handbooks/trireduce-api