Every API here is available over the APIs.io API and to AI agents over MCP.
openapi: 3.2.0
info:
title: Kelowna Production TSS - QC Data API
version: v1
tags:
- name: TSS - QC Data
paths:
/TSS/BatchTestSamples/AddBatchData:
post:
tags:
- TSS - QC Data
summary: Upload a set of batch test samples and strength readings
description: 'Sample request:
POST /TSS/BatchTestSamples/AddBatchData
{
"plantId": 1,
"divisionId": 1,
"isMetric": true,
"batchTestSamples":
[
{
"ticketId": "120",
"mixCode": "GK42",
"productionDate": "2021-03-01",
"isCO2Design": true,
"testCategory": "DosageRamp",
"testingCondition": false,
"curingCondition": true,
"weatherCondition": "Windy",
"loadSize": 4.5,
"batchIngredients":
[
{
"amount": 321.56,
"materialId": 1,
"unit": "Kg"
},
{
"amount": 24,
"materialId": 2,
"unit": "OzPerYd3"
}
],
"batchStrengthReadings":
[
{
"compressiveStrength": 3.94,
"intervalDuration": 3,
"intervalType": "Day Intervals",
"testNumber": 1
},
{
"compressiveStrength": 4.05,
"intervalDuration": 3,
"intervalType": "Day Intervals",
"testNumber": 2
},
{
"compressiveStrength": 20,
"intervalDuration": 7,
"intervalType": "Day Intervals",
"testNumber": 1
},
{
"compressiveStrength": 35,
"intervalDuration": 28,
"intervalType": "Day Intervals",
"testNumber": 1
}
]
}
]
}'
requestBody:
description: The batch test samples
content:
application/json:
schema:
$ref: '#/components/schemas/BatchDataInput'
text/json:
schema:
$ref: '#/components/schemas/BatchDataInput'
application/*+json:
schema:
$ref: '#/components/schemas/BatchDataInput'
responses:
'200':
description: OK
security:
- OrcaAuth:
- applicationId
- roles
- {}
- {}
operationId: postTSSBatchTestSamplesAddBatchData
x-operation-id-source: derived
/TSS/BatchTestSamples/Outliers:
put:
tags:
- TSS - QC Data
summary: Endpoint for marking batch test samples as outliers
requestBody:
description: "List of batch sample IDs and outlier reasons.\n A null reason marks samples as non outliers."
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/OutlierArgs'
text/json:
schema:
type: array
items:
$ref: '#/components/schemas/OutlierArgs'
application/*+json:
schema:
type: array
items:
$ref: '#/components/schemas/OutlierArgs'
responses:
'200':
description: OK
security:
- OrcaAuth:
- applicationId
- roles
- {}
- {}
operationId: putTSSBatchTestSamplesOutliers
x-operation-id-source: derived
/TSS/BatchTestSamples/EditBatchData:
put:
tags:
- TSS - QC Data
summary: Update a set of batch test samples and strength readings
description: 'Sample request:
PUT /TSS/BatchTestSamples/EditBatchData
{
"plantId": 1,
"divisionId": 1,
"isMetric": true,
"batchTestSampleIds": [100, 124],
"batchTestSamples":
[
{
"ticketId": "5",
"mixCode": "GK42",
"productionDate": "2021-03-01",
"isCO2Design": true,
"testCategory": "DosageRamp",
"testingCondition": false,
"curingCondition": true,
"weatherCondition": "Windy",
"loadSize": 4.5,
"batchIngredients":
[
{
"amount": 321.56,
"materialId": 1,
"unit": "Kg"
},
{
"amount": 24,
"materialId": 2,
"unit": "OzPerYd3"
}
],
"batchStrengthReadings":
[
{
"compressiveStrength": 3.94,
"intervalDuration": 3,
"intervalType": "Days",
"testNumber": 1
},
{
"compressiveStrength": 4.05,
"intervalDuration": 3,
"intervalType": "Days",
"testNumber": 2
},
{
"compressiveStrength": 20,
"intervalDuration": 7,
"intervalType": "Days",
"testNumber": 1
},
{
"compressiveStrength": 35,
"intervalDuration": 28,
"intervalType": "Days",
"testNumber": 1
}
]
},
{
"ticketId": "6",
"mixCode": "GK42",
"productionDate": "2021-03-08",
"isCO2Design": true,
"testCategory": "DosageRamp",
"testingCondition": false,
"curingCondition": true,
"weatherCondition": "Windy",
"loadSize": 4.5,
"batchIngredients": [],
"batchStrengthReadings":
[
{
"compressiveStrength": 20,
"intervalDuration": 7,
"intervalType": "Days",
"testNumber": 1
},
{
"compressiveStrength": 35,
"intervalDuration": 28,
"intervalType": "Days",
"testNumber": 1
}
]
}
]
}'
requestBody:
description: The batch test samples
content:
application/json:
schema:
$ref: '#/components/schemas/BatchDataInput'
text/json:
schema:
$ref: '#/components/schemas/BatchDataInput'
application/*+json:
schema:
$ref: '#/components/schemas/BatchDataInput'
responses:
'200':
description: OK
security:
- OrcaAuth:
- applicationId
- roles
- {}
- {}
operationId: putTSSBatchTestSamplesEditBatchData
x-operation-id-source: derived
/TSS/BatchTestSamples/BatchTestSamplesByIds:
post:
tags:
- TSS - QC Data
summary: Returns list of batches as specified by their IDs
requestBody:
description: List of BatchTestSampleIds to fetch batches for
content:
application/json:
schema:
$ref: '#/components/schemas/ByBatchTestSampleIdsArgs'
text/json:
schema:
$ref: '#/components/schemas/ByBatchTestSampleIdsArgs'
application/*+json:
schema:
$ref: '#/components/schemas/ByBatchTestSampleIdsArgs'
responses:
'200':
description: OK
content:
text/plain:
schema:
$ref: '#/components/schemas/BatchTestSamplesArgs'
application/json:
schema:
$ref: '#/components/schemas/BatchTestSamplesArgs'
text/json:
schema:
$ref: '#/components/schemas/BatchTestSamplesArgs'
security:
- OrcaAuth:
- applicationId
- roles
- {}
- {}
operationId: postTSSBatchTestSamplesBatchTestSamplesByIds
x-operation-id-source: derived
/TSS/BatchTestSamples/BatchTestsOverviewRowCount:
get:
tags:
- TSS - QC Data
summary: An overview of batch tests, sorted by default by timestamp
parameters:
- name: Limit
in: query
description: Limit number of responses. Used for pagination.
schema:
type: integer
format: int32
- name: Offset
in: query
description: Skip this many rows in the query. Used for pagination.
schema:
type: integer
format: int32
- name: SortColumn
in: query
description: The name of the column to sort by.
schema:
type: string
- name: SortOrder
in: query
description: The order with which to sort the table by the sort column.
schema:
$ref: '#/components/schemas/SortOrder'
responses:
'200':
description: OK
content:
text/plain:
schema:
$ref: '#/components/schemas/BatchTestOverviewArgsTableResults'
application/json:
schema:
$ref: '#/components/schemas/BatchTestOverviewArgsTableResults'
text/json:
schema:
$ref: '#/components/schemas/BatchTestOverviewArgsTableResults'
security:
- OrcaAuth:
- applicationId
- roles
- {}
- {}
operationId: getTSSBatchTestSamplesBatchTestsOverviewRowCount
x-operation-id-source: derived
components:
schemas:
BatchTestOverviewArgs:
type: object
properties:
divisionId:
type: integer
format: int32
divisionName:
type:
- string
- 'null'
mixCode:
type:
- string
- 'null'
mixDesignId:
type: integer
format: int32
timestamp:
type: string
format: date-time
additionalProperties: false
BatchTestSampleArgs:
type: object
properties:
batchTestSampleId:
type: integer
format: int32
batchProperties:
$ref: '#/components/schemas/BatchPropertiesArgs'
strengthReadings:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/StrengthReadingArgs'
batchIngredients:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/BatchIngredientArgs'
additionalProperties: false
OutlierArgs:
type: object
properties:
batchTestSampleId:
type: integer
format: int32
outlierReason:
type:
- string
- 'null'
additionalProperties: false
BatchTestSamplesArgs:
type: object
properties:
divisionId:
type: integer
format: int32
isImperial:
type: boolean
batchTestSamples:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/BatchTestSampleArgs'
additionalProperties: false
CO2DosageUnit:
enum:
- Litre
- PercentOfCement
type: string
BatchIngredientArgs:
type: object
properties:
batchIngredientId:
type: integer
format: int32
quantity:
type: number
format: double
materialName:
type:
- string
- 'null'
unit:
$ref: '#/components/schemas/BatchUnit'
type:
$ref: '#/components/schemas/MaterialType'
materialId:
type:
- integer
- 'null'
format: int32
supplier:
type:
- string
- 'null'
additionalProperties: false
BatchPropertiesArgs:
type: object
properties:
ticketId:
type:
- string
- 'null'
mixCode:
type:
- string
- 'null'
isCO2Design:
type:
- string
- 'null'
plant:
type:
- string
- 'null'
productionDate:
type: string
format: date
testCategory:
$ref: '#/components/schemas/ConcreteTestCategory'
testingCompany:
type:
- string
- 'null'
testingCondition:
type:
- boolean
- 'null'
weatherCondition:
type:
- string
- 'null'
curingConditions:
type:
- boolean
- 'null'
cementReduction:
type:
- number
- 'null'
format: double
loadSize:
type:
- number
- 'null'
format: double
concreteTemp:
type:
- number
- 'null'
format: double
ambientTemp:
type:
- number
- 'null'
format: double
airContent:
type:
- number
- 'null'
format: double
slump:
type:
- number
- 'null'
format: double
unitWeight:
type:
- number
- 'null'
format: double
wcRatio:
type:
- number
- 'null'
format: double
cO2Dosage:
type:
- number
- 'null'
format: double
cO2DosageUnit:
$ref: '#/components/schemas/CO2DosageUnit'
truckNumber:
type:
- string
- 'null'
notes:
type:
- string
- 'null'
orcaOutlierReason:
type:
- string
- 'null'
additionalProperties: false
BatchTestOverviewArgsTableResults:
type: object
properties:
count:
type: integer
format: int32
results:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/BatchTestOverviewArgs'
additionalProperties: false
SortOrder:
enum:
- Ascending
- Descending
type: string
BatchTestSampleInput:
type: object
properties:
batchTestSampleId:
type:
- integer
- 'null'
format: int32
ticketId:
type:
- string
- 'null'
isCO2Design:
type: boolean
plantId:
type:
- integer
- 'null'
format: int32
mixCode:
type:
- string
- 'null'
productionDate:
type: string
format: date
testCategory:
$ref: '#/components/schemas/ConcreteTestCategory'
batchIngredients:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/BatchIngredientInput'
batchStrengthReadings:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/BatchStrengthReadingInput'
wasTestedInField:
type:
- boolean
- 'null'
wasCuredInField:
type:
- boolean
- 'null'
cO2Dose:
type:
- number
- 'null'
format: double
cO2DoseAbsolute:
type:
- number
- 'null'
format: double
airContent:
type:
- number
- 'null'
format: double
wcRatio:
type:
- number
- 'null'
format: double
ambientTemp:
type:
- number
- 'null'
format: double
cementReduction:
type:
- number
- 'null'
format: double
concreteTemp:
type:
- number
- 'null'
format: double
loadSize:
type:
- number
- 'null'
format: double
slump:
type:
- number
- 'null'
format: double
unitWeight:
type:
- number
- 'null'
format: double
parentMixCode:
type:
- string
- 'null'
testingCompany:
type:
- string
- 'null'
truckNumber:
type:
- string
- 'null'
weatherCondition:
type:
- string
- 'null'
notes:
type:
- string
- 'null'
additionalProperties: false
BatchIngredientInput:
type: object
properties:
amount:
type: number
format: double
materialId:
type:
- integer
- 'null'
format: int32
unit:
$ref: '#/components/schemas/BatchIngredientUnitInput'
materialSource:
type:
- string
- 'null'
materialName:
type:
- string
- 'null'
additionalProperties: false
BatchDataInput:
type: object
properties:
divisionId:
type: integer
format: int32
isMetric:
type: boolean
previousBatchTestSampleIds:
type:
- array
- 'null'
items:
type: integer
format: int32
batchTestSamples:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/BatchTestSampleInput'
additionalProperties: false
BatchIngredientUnitInput:
enum:
- Kg
- Lb
- KgPerM3
- LbPerYd3
- L
- Ml
- Oz
- Gal
- LPerM3
- MlPerM3
- MlPerHundredWeight
- OzPerYd3
- OzPerHundredWeight
- GalPerYd3
type: string
StrengthReadingIntervalType:
enum:
- Days
- Hours
type: string
MaterialType:
enum:
- Cement
- CementTypeI
- CementTypeIS
- CementTypeIP
- CementTypeIL
- CementTypeII
- CementTypeI_II
- CementTypeI_IIMH
- CementTypeI_II_LA
- CementTypeIII
- CementTypeIV
- CementTypeII_V
- CementTypeN
- CementTypeS
- CementCemI
- CementCemII
- CementCemIII
- CementCemIV
- CementCemV
- CementCemVI
- CementBlendedHydraulic
- CoarseAggregate
- IntermediateAggregate
- FineAggregate
- Fiber
- FiberTypeI
- FiberTypeII
- FiberTypeIII
- FiberTypeIV
- Water
- CO2
- SCM
- Slag
- SlagFerrous
- SlagNonFerrous
- SlagFerroalloy
- FlyAsh
- FlyAshC
- FlyAshF
- FlyAshN
- SilicaFume
- ReclaimedWater
- Admixture
- AirEntrainer
- Retarder
- SuperPlasticizer
- WaterReducer
- HighRangeWaterReducer
- MidRangeWaterReducer
- LowRangeWaterReducer
- ViscosityModifier
- HydrationStabilizer
- CorrosionInhibitor
- ShrinkageReducer
- Accelerator
- NonChlorideAccelerator
- ChlorideAccelerator
- StrengthEnhancer
- AntiWashout
- Waterproofer
- Filler
type: string
BatchStrengthReadingInput:
type: object
properties:
compressiveStrength:
type: number
format: double
intervalDuration:
type: integer
format: int32
intervalType:
$ref: '#/components/schemas/StrengthReadingIntervalType'
testNumber:
type: integer
format: int32
additionalProperties: false
BatchUnit:
enum:
- Kg
- Litre
- Package
type: string
ByBatchTestSampleIdsArgs:
type: object
properties:
batchTestSampleIds:
type:
- array
- 'null'
items:
type: integer
format: int32
additionalProperties: false
StrengthReadingArgs:
type: object
properties:
batchStrength:
type: number
format: double
batchIntervalDay:
type: number
format: double
batchIntervalHour:
type: number
format: double
testNumber:
type: integer
format: int32
additionalProperties: false
ConcreteTestCategory:
enum:
- HistoricalData
- FieldData
- CommissioningTrial
- ThreePointCurves
- CarbonCureResearch
- ExternalLab
- Regulatory
type: string
securitySchemes:
OrcaAuth:
type: oauth2
flows:
authorizationCode:
authorizationUrl: https://auth.carboncure.com/oauth2/authorize
tokenUrl: https://auth.carboncure.com/oauth2/token
scopes: {}
MyCCAuth:
type: oauth2
flows:
authorizationCode:
authorizationUrl: https://auth.carboncure.com/oauth2/authorize
tokenUrl: https://auth.carboncure.com/oauth2/token
scopes: {}
M2MAuth:
type: oauth2
flows:
authorizationCode:
authorizationUrl: https://auth.carboncure.com/oauth2/authorize
tokenUrl: https://auth.carboncure.com/oauth2/token
scopes: {}