Get the order cycle time
curl --request GET \
--url https://api.muveya.com/v1/analytics/cycle-time \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.muveya.com/v1/analytics/cycle-time', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.muveya.com/v1/analytics/cycle-time"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"metric": "<string>",
"definition": "<string>",
"unit": "<string>",
"observedFulfillments": 123,
"timezone": "<string>",
"asOf": "2023-11-07T05:31:56Z",
"freshness": "live",
"evidenceId": "<string>",
"truncated": true,
"filters": {},
"stages": [
{
"stage": "submit_to_dispatch",
"sampleCount": 123,
"averageHours": 123
}
]
}{
"type": "<string>",
"title": "<string>",
"status": 499,
"detail": "<string>",
"instance": "<string>",
"code": "<string>",
"requestId": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 499,
"detail": "<string>",
"instance": "<string>",
"code": "<string>",
"requestId": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 499,
"detail": "<string>",
"instance": "<string>",
"code": "<string>",
"requestId": "<string>"
}Analytics
Get the order cycle time
Reads the average duration of each order lifecycle stage (submit→dispatch, dispatch→deliver, deliver→receive, receive→close), joined in-process across orders and fulfillments, as an evidence contract. Requires analytics:read. Durations only (hours); no value. Deterministic; computed live over the workspace data.
GET
/
v1
/
analytics
/
cycle-time
Get the order cycle time
curl --request GET \
--url https://api.muveya.com/v1/analytics/cycle-time \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.muveya.com/v1/analytics/cycle-time', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.muveya.com/v1/analytics/cycle-time"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"metric": "<string>",
"definition": "<string>",
"unit": "<string>",
"observedFulfillments": 123,
"timezone": "<string>",
"asOf": "2023-11-07T05:31:56Z",
"freshness": "live",
"evidenceId": "<string>",
"truncated": true,
"filters": {},
"stages": [
{
"stage": "submit_to_dispatch",
"sampleCount": 123,
"averageHours": 123
}
]
}{
"type": "<string>",
"title": "<string>",
"status": 499,
"detail": "<string>",
"instance": "<string>",
"code": "<string>",
"requestId": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 499,
"detail": "<string>",
"instance": "<string>",
"code": "<string>",
"requestId": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 499,
"detail": "<string>",
"instance": "<string>",
"code": "<string>",
"requestId": "<string>"
}Authorizations
Opaque mvy_test_ API key sent as a Bearer token. It derives exactly one workspace server-side; the path never carries a workspace selector.
Response
The order cycle time.
The human-readable definition of the metric.
Available options:
live True when a composed scan hit its cap: the averages are over a prefix.
Show child attributes
Show child attributes
Show child attributes
Show child attributes