OpenAPI Specification
openapi: 3.0.3
info:
title: Trioptima triReduce Cycles Trades 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: Trades
description: Trade data submission and retrieval
paths:
/cycles/{cycleId}/trades:
get:
operationId: listCycleTrades
summary: List Cycle Trades
description: Returns the list of trades submitted by the participant for a given compression cycle. Used to verify trade submission and review accepted trade population.
tags:
- Trades
parameters:
- name: cycleId
in: path
required: true
description: Unique identifier for the compression cycle
schema:
type: string
responses:
'200':
description: List of submitted trades for the cycle
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Trade'
'401':
description: Unauthorized
'404':
description: Cycle not found
post:
operationId: submitCycleTrades
summary: Submit Trades for Cycle
description: Submits or replaces the participant's trade population for a compression cycle. Trade data includes notional, maturity, coupon, and other trade economics required for the compression algorithm. Full access required (not available on read-only API keys).
tags:
- Trades
parameters:
- name: cycleId
in: path
required: true
description: Unique identifier for the compression cycle
schema:
type: string
requestBody:
required: true
description: Trade population for submission
content:
application/json:
schema:
type: object
required:
- trades
properties:
trades:
type: array
items:
$ref: '#/components/schemas/TradeSubmission'
responses:
'200':
description: Trades submitted successfully
content:
application/json:
schema:
$ref: '#/components/schemas/SubmissionResult'
'400':
description: Bad request — invalid trade data
'401':
description: Unauthorized
'403':
description: Forbidden — read-only access token cannot submit trades
components:
schemas:
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
TradeSubmission:
type: object
description: Trade data for submission to a compression cycle
required:
- tradeId
- notional
- currency
- maturityDate
properties:
tradeId:
type: string
description: Unique trade identifier
counterpartyId:
type: string
description: Counterparty LEI
notional:
type: number
format: double
currency:
type: string
maturityDate:
type: string
format: date
startDate:
type: string
format: date
fixedRate:
type: number
format: double
payReceive:
type: string
enum:
- PAY
- RECEIVE
clearingHouse:
type: string
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