Get OEE metrics for a workstation in a timeframe
curl --request GET \
--url https://api.bold-factory.com/v1/production/workstations/{workstationReference}/oee \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.bold-factory.com/v1/production/workstations/{workstationReference}/oee"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.bold-factory.com/v1/production/workstations/{workstationReference}/oee', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.bold-factory.com/v1/production/workstations/{workstationReference}/oee",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.bold-factory.com/v1/production/workstations/{workstationReference}/oee"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.bold-factory.com/v1/production/workstations/{workstationReference}/oee")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.bold-factory.com/v1/production/workstations/{workstationReference}/oee")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"from": "2023-11-07T05:31:56Z",
"to": "2023-11-07T05:31:56Z",
"workstation": {
"id": "<string>",
"externalReference": "<string>",
"name": "<string>",
"description": "<string>",
"areaId": "<string>",
"area": {
"id": "<string>",
"externalReference": "<string>",
"name": "<string>",
"description": "<string>",
"parentId": "<string>",
"parent": null,
"deletedAt": "2023-11-07T05:31:56Z",
"createdAt": "2023-11-07T05:31:56Z",
"createdBy": "<string>",
"lastModifiedAt": "2023-11-07T05:31:56Z",
"lastModifiedBy": "<string>"
},
"infiniteCapacity": true,
"deletedAt": "2023-11-07T05:31:56Z",
"createdAt": "2023-11-07T05:31:56Z",
"createdBy": "<string>",
"lastModifiedAt": "2023-11-07T05:31:56Z",
"lastModifiedBy": "<string>"
},
"totals": {
"totalTimeSeconds": 123,
"scheduledTimeSeconds": 123,
"plannedDowntimeSeconds": 123,
"plannedProductionTimeSeconds": 123,
"runningSeconds": 123,
"unplannedDowntimeSeconds": 123,
"idleSeconds": 123,
"runningOutOfScheduleSeconds": 123,
"occupancy": 123,
"availability": 123,
"performance": 123,
"quality": 123,
"oee": 123
},
"timeline": [
{
"from": "2023-11-07T05:31:56Z",
"to": "2023-11-07T05:31:56Z",
"totalElapsedSeconds": 123,
"status": "OutOfSchedule",
"relevantDetails": {
"maintenance": [
"<string>"
],
"interruptions": [
"<string>"
],
"operations": [
"<string>"
]
},
"ignoredDetails": {
"maintenance": [
"<string>"
],
"interruptions": [
"<string>"
],
"operations": [
"<string>"
]
}
}
],
"operations": [
{
"orderId": "<string>",
"orderCode": "<string>",
"sku": {
"id": "<string>",
"externalReference": "<string>",
"code": "<string>",
"name": "<string>",
"familyId": "<string>",
"managesLots": true,
"baseUnitOfMeasure": {
"id": "<string>",
"code": "<string>",
"name": "<string>",
"displayDecimalPlaces": 123
},
"preferredUnits": {
"production": {
"id": "<string>",
"code": "<string>",
"name": "<string>",
"displayDecimalPlaces": 123,
"alternativeQuantity": 123,
"baseQuantity": 123
},
"warehouse": {
"id": "<string>",
"code": "<string>",
"name": "<string>",
"displayDecimalPlaces": 123,
"alternativeQuantity": 123,
"baseQuantity": 123
}
}
},
"operationId": "<string>",
"name": "<string>",
"startedAt": "2023-11-07T05:31:56Z",
"operationPercentageInSchedule": 123,
"operationPercentageOutOfSchedule": 123,
"theoreticalSecondsInSchedule": 123,
"realSecondsInSchedule": 123,
"realSecondsOutOfSchedule": 123,
"performance": 123,
"goodUnitsInSchedule": 123,
"rejectedUnitsInSchedule": 123,
"goodUnitsOutOfSchedule": 123,
"quality": 123
}
],
"unplannedDowntime": {
"maintenance": [
{
"workOrderId": "<string>",
"workOrderCode": "<string>",
"causeName": "<string>",
"planned": true,
"startedAt": "2023-11-07T05:31:56Z",
"finishedAt": "2023-11-07T05:31:56Z",
"totalElapsedSeconds": 123
}
],
"interruptions": [
{
"interruptionId": "<string>",
"interruptionTypeId": "<string>",
"interruptionName": "<string>",
"operationId": "<string>",
"operationName": "<string>",
"comments": "<string>",
"startedAt": "2023-11-07T05:31:56Z",
"finishedAt": "2023-11-07T05:31:56Z",
"totalElapsedSeconds": 123
}
]
},
"plannedDowntime": {
"maintenance": [
{
"workOrderId": "<string>",
"workOrderCode": "<string>",
"causeName": "<string>",
"planned": true,
"startedAt": "2023-11-07T05:31:56Z",
"finishedAt": "2023-11-07T05:31:56Z",
"totalElapsedSeconds": 123
}
],
"interruptions": [
{
"interruptionId": "<string>",
"interruptionTypeId": "<string>",
"interruptionName": "<string>",
"operationId": "<string>",
"operationName": "<string>",
"comments": "<string>",
"startedAt": "2023-11-07T05:31:56Z",
"finishedAt": "2023-11-07T05:31:56Z",
"totalElapsedSeconds": 123
}
]
}
}{
"type": "https://api.bold-factory.com/errors/COMMON.QUERY.FILTER_PARSING_FAILED",
"title": "Filter parsing failed",
"status": 400,
"detail": "The filter string could not be parsed or contains invalid column references: CreatedBy column does not exist.",
"instance": "POST /v1/items/families/search",
"code": "COMMON.QUERY.FILTER_PARSING_FAILED"
}{
"type": "https://www.rfc-editor.org/rfc/rfc9110.html#name-401-unauthorized",
"title": "Unauthorized",
"status": 401,
"detail": "You are not authenticated.",
"instance": "GET /v1/items/skus"
}{
"type": "https://api.bold-factory.com/errors/COMMON.AUTH.MISSING_PERMISSIONS",
"title": "Missing permissions",
"status": 403,
"detail": "Missing permissions: Items.Families.Read",
"instance": "GET /v1/maintenance/assets",
"code": "COMMON.AUTH.MISSING_PERMISSIONS"
}{
"type": "https://api.bold-factory.com/errors/COMMON.ENTITY.NOT_FOUND",
"title": "The entity was not found.",
"status": 404,
"detail": "Entity Family (pr_72f13bd8218h9823dfj9) was not found.",
"instance": "DELETE /v1/items/families/pr_72f13bd8218h9823dfj9",
"code": "COMMON.ENTITY.NOT_FOUND"
}{
"type": "https://api.bold-factory.com/errors/COMMON.RATE_LIMIT.EXCEEDED",
"title": "Rate limit exceeded",
"status": 429,
"detail": "The request rate limit for this tenant has been exceeded. Retry after the indicated delay.",
"instance": "GET /v1/admin/tenants/self",
"code": "COMMON.RATE_LIMIT.EXCEEDED",
"parameters": {}
}Workstations
Get OEE metrics for a workstation in a timeframe
Requires Production.Workstations.Read, Production.Orders.Read and Maintenance.WorkOrders.Read permissions
GET
/
v1
/
production
/
workstations
/
{workstationReference}
/
oee
Get OEE metrics for a workstation in a timeframe
curl --request GET \
--url https://api.bold-factory.com/v1/production/workstations/{workstationReference}/oee \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.bold-factory.com/v1/production/workstations/{workstationReference}/oee"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.bold-factory.com/v1/production/workstations/{workstationReference}/oee', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.bold-factory.com/v1/production/workstations/{workstationReference}/oee",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.bold-factory.com/v1/production/workstations/{workstationReference}/oee"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.bold-factory.com/v1/production/workstations/{workstationReference}/oee")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.bold-factory.com/v1/production/workstations/{workstationReference}/oee")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"from": "2023-11-07T05:31:56Z",
"to": "2023-11-07T05:31:56Z",
"workstation": {
"id": "<string>",
"externalReference": "<string>",
"name": "<string>",
"description": "<string>",
"areaId": "<string>",
"area": {
"id": "<string>",
"externalReference": "<string>",
"name": "<string>",
"description": "<string>",
"parentId": "<string>",
"parent": null,
"deletedAt": "2023-11-07T05:31:56Z",
"createdAt": "2023-11-07T05:31:56Z",
"createdBy": "<string>",
"lastModifiedAt": "2023-11-07T05:31:56Z",
"lastModifiedBy": "<string>"
},
"infiniteCapacity": true,
"deletedAt": "2023-11-07T05:31:56Z",
"createdAt": "2023-11-07T05:31:56Z",
"createdBy": "<string>",
"lastModifiedAt": "2023-11-07T05:31:56Z",
"lastModifiedBy": "<string>"
},
"totals": {
"totalTimeSeconds": 123,
"scheduledTimeSeconds": 123,
"plannedDowntimeSeconds": 123,
"plannedProductionTimeSeconds": 123,
"runningSeconds": 123,
"unplannedDowntimeSeconds": 123,
"idleSeconds": 123,
"runningOutOfScheduleSeconds": 123,
"occupancy": 123,
"availability": 123,
"performance": 123,
"quality": 123,
"oee": 123
},
"timeline": [
{
"from": "2023-11-07T05:31:56Z",
"to": "2023-11-07T05:31:56Z",
"totalElapsedSeconds": 123,
"status": "OutOfSchedule",
"relevantDetails": {
"maintenance": [
"<string>"
],
"interruptions": [
"<string>"
],
"operations": [
"<string>"
]
},
"ignoredDetails": {
"maintenance": [
"<string>"
],
"interruptions": [
"<string>"
],
"operations": [
"<string>"
]
}
}
],
"operations": [
{
"orderId": "<string>",
"orderCode": "<string>",
"sku": {
"id": "<string>",
"externalReference": "<string>",
"code": "<string>",
"name": "<string>",
"familyId": "<string>",
"managesLots": true,
"baseUnitOfMeasure": {
"id": "<string>",
"code": "<string>",
"name": "<string>",
"displayDecimalPlaces": 123
},
"preferredUnits": {
"production": {
"id": "<string>",
"code": "<string>",
"name": "<string>",
"displayDecimalPlaces": 123,
"alternativeQuantity": 123,
"baseQuantity": 123
},
"warehouse": {
"id": "<string>",
"code": "<string>",
"name": "<string>",
"displayDecimalPlaces": 123,
"alternativeQuantity": 123,
"baseQuantity": 123
}
}
},
"operationId": "<string>",
"name": "<string>",
"startedAt": "2023-11-07T05:31:56Z",
"operationPercentageInSchedule": 123,
"operationPercentageOutOfSchedule": 123,
"theoreticalSecondsInSchedule": 123,
"realSecondsInSchedule": 123,
"realSecondsOutOfSchedule": 123,
"performance": 123,
"goodUnitsInSchedule": 123,
"rejectedUnitsInSchedule": 123,
"goodUnitsOutOfSchedule": 123,
"quality": 123
}
],
"unplannedDowntime": {
"maintenance": [
{
"workOrderId": "<string>",
"workOrderCode": "<string>",
"causeName": "<string>",
"planned": true,
"startedAt": "2023-11-07T05:31:56Z",
"finishedAt": "2023-11-07T05:31:56Z",
"totalElapsedSeconds": 123
}
],
"interruptions": [
{
"interruptionId": "<string>",
"interruptionTypeId": "<string>",
"interruptionName": "<string>",
"operationId": "<string>",
"operationName": "<string>",
"comments": "<string>",
"startedAt": "2023-11-07T05:31:56Z",
"finishedAt": "2023-11-07T05:31:56Z",
"totalElapsedSeconds": 123
}
]
},
"plannedDowntime": {
"maintenance": [
{
"workOrderId": "<string>",
"workOrderCode": "<string>",
"causeName": "<string>",
"planned": true,
"startedAt": "2023-11-07T05:31:56Z",
"finishedAt": "2023-11-07T05:31:56Z",
"totalElapsedSeconds": 123
}
],
"interruptions": [
{
"interruptionId": "<string>",
"interruptionTypeId": "<string>",
"interruptionName": "<string>",
"operationId": "<string>",
"operationName": "<string>",
"comments": "<string>",
"startedAt": "2023-11-07T05:31:56Z",
"finishedAt": "2023-11-07T05:31:56Z",
"totalElapsedSeconds": 123
}
]
}
}{
"type": "https://api.bold-factory.com/errors/COMMON.QUERY.FILTER_PARSING_FAILED",
"title": "Filter parsing failed",
"status": 400,
"detail": "The filter string could not be parsed or contains invalid column references: CreatedBy column does not exist.",
"instance": "POST /v1/items/families/search",
"code": "COMMON.QUERY.FILTER_PARSING_FAILED"
}{
"type": "https://www.rfc-editor.org/rfc/rfc9110.html#name-401-unauthorized",
"title": "Unauthorized",
"status": 401,
"detail": "You are not authenticated.",
"instance": "GET /v1/items/skus"
}{
"type": "https://api.bold-factory.com/errors/COMMON.AUTH.MISSING_PERMISSIONS",
"title": "Missing permissions",
"status": 403,
"detail": "Missing permissions: Items.Families.Read",
"instance": "GET /v1/maintenance/assets",
"code": "COMMON.AUTH.MISSING_PERMISSIONS"
}{
"type": "https://api.bold-factory.com/errors/COMMON.ENTITY.NOT_FOUND",
"title": "The entity was not found.",
"status": 404,
"detail": "Entity Family (pr_72f13bd8218h9823dfj9) was not found.",
"instance": "DELETE /v1/items/families/pr_72f13bd8218h9823dfj9",
"code": "COMMON.ENTITY.NOT_FOUND"
}{
"type": "https://api.bold-factory.com/errors/COMMON.RATE_LIMIT.EXCEEDED",
"title": "Rate limit exceeded",
"status": 429,
"detail": "The request rate limit for this tenant has been exceeded. Retry after the indicated delay.",
"instance": "GET /v1/admin/tenants/self",
"code": "COMMON.RATE_LIMIT.EXCEEDED",
"parameters": {}
}Authorizations
JWTApiKey
Use a valid JWT token in the Authorization header with the format 'Bearer {token}'
Path Parameters
Response
OK
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes