{"openapi":"3.1.0","info":{"title":"Industrial Robotics & Automation Intelligence API","version":"1.0.0","description":"Parse ROS bag topic exports, compare ROS topic schemas, detect telemetry anomalies, analyze cycle time and downtime causes, normalize OPC UA tag maps, cluster PLC alarms, estimate maintenance intervals, check industrial protocol compatibility, and build workcell performance reports—using caller-supplied files only. Paid with x402 exact USDC on Base. No account is required.","contact":{"email":"support@brainiac.software"},"x-guidance":"BRAINIAC.software is a pay-per-call API for software agents. No account or API key is required.\nPayment uses the x402 protocol with exact USDC on Base (chain id 8453). Each POST operation has a fixed USD price.\nHow to call an operation:\n1. POST a JSON body matching the operation's requestBody schema to the operation path. Include an Idempotency-Key header (64 hex characters, 32 random bytes).\n2. If you have not paid, the server responds 402 with payment requirements in the body. Pay the exact amount to the payTo address on Base.\n3. Retry the identical request with the same Idempotency-Key and add a payment-signature header containing the x402 payment payload. On success (200) the operation result is returned.\n4. Reuse the same Idempotency-Key only for retries of the same operation and request body; it will not be charged twice.\nAll outputs are compliance prechecks, drafts, or data lookups for human review. They are not official determinations, legal advice, identity confirmation, or certified filings. Verify time-sensitive or official data with the cited source before acting."},"servers":[{"url":"https://www.brainiac.software"}],"paths":{"/api/v1/robotics-intelligence/rosbag-telemetry-parse":{"post":{"operationId":"parse_ros_bag_telemetry_exports","summary":"Parse ROS bag telemetry exports","description":"Parse caller-supplied ROS bag topic CSV/JSON exports into labeled telemetry samples. Binary .bag/.mcap files are not fully decoded and live robots are not contacted.","tags":["robotics-intelligence"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"text":{"type":"string","maxLength":200000},"json":{"type":"string","maxLength":200000},"csv":{"type":"string","maxLength":200000},"file":{"type":"object","properties":{"filename":{"type":"string","minLength":1,"maxLength":180},"mediaType":{"type":"string","enum":["text/plain","text/csv","application/json","application/octet-stream"]},"fileBase64":{"type":"string","minLength":1,"maxLength":12000000},"role":{"type":"string","maxLength":80}},"required":["fileBase64"],"additionalProperties":false},"files":{"maxItems":20,"type":"array","items":{"type":"object","properties":{"filename":{"type":"string","minLength":1,"maxLength":180},"mediaType":{"type":"string","enum":["text/plain","text/csv","application/json","application/octet-stream"]},"fileBase64":{"type":"string","minLength":1,"maxLength":12000000},"role":{"type":"string","maxLength":80}},"required":["fileBase64"],"additionalProperties":false}},"samples":{"maxItems":5000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"robotId":{"type":"string","maxLength":80},"topic":{"type":"string","maxLength":200},"at":{"type":"string","maxLength":40},"field":{"type":"string","maxLength":120},"value":{"type":"number","minimum":-1000000000000,"maximum":1000000000000},"unit":{"type":"string","maxLength":40},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"schemas":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"topic":{"type":"string","maxLength":200},"side":{"type":"string","enum":["left","right","a","b"]},"messageType":{"type":"string","maxLength":160},"fields":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":120},"type":{"type":"string","maxLength":80},"optional":{"type":"boolean"}},"additionalProperties":false}},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"cycles":{"maxItems":2000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"robotId":{"type":"string","maxLength":80},"workcellId":{"type":"string","maxLength":80},"startedAt":{"type":"string","maxLength":40},"endedAt":{"type":"string","maxLength":40},"durationSec":{"type":"number","minimum":0,"maximum":1000000},"program":{"type":"string","maxLength":160},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"downtime":{"maxItems":2000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"robotId":{"type":"string","maxLength":80},"workcellId":{"type":"string","maxLength":80},"startedAt":{"type":"string","maxLength":40},"endedAt":{"type":"string","maxLength":40},"durationSec":{"type":"number","minimum":0,"maximum":1000000000},"code":{"type":"string","maxLength":80},"message":{"type":"string","maxLength":400},"category":{"type":"string","maxLength":80},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"opcuaTags":{"maxItems":2000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"nodeId":{"type":"string","maxLength":200},"browseName":{"type":"string","maxLength":160},"displayName":{"type":"string","maxLength":160},"dataType":{"type":"string","maxLength":80},"path":{"type":"string","maxLength":300},"unit":{"type":"string","maxLength":40},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"plcAlarms":{"maxItems":2000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"controllerId":{"type":"string","maxLength":80},"at":{"type":"string","maxLength":40},"code":{"type":"string","maxLength":80},"message":{"type":"string","maxLength":400},"severity":{"type":"string","maxLength":40},"area":{"type":"string","maxLength":120},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"maintenance":{"maxItems":500,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"robotId":{"type":"string","maxLength":80},"component":{"type":"string","maxLength":160},"runtimeHours":{"type":"number","minimum":0,"maximum":1000000000},"cycleCount":{"type":"number","minimum":0,"maximum":1000000000},"intervalHours":{"type":"number","minimum":0,"maximum":1000000000},"intervalCycles":{"type":"number","minimum":0,"maximum":1000000000},"lastServiceAt":{"type":"string","maxLength":40},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"protocols":{"maxItems":100,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"name":{"type":"string","maxLength":120},"version":{"type":"string","maxLength":80},"role":{"type":"string","enum":["required","available","controller","device"]},"features":{"maxItems":40,"type":"array","items":{"type":"string","maxLength":80}},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"asOf":{"type":"string","maxLength":40}},"additionalProperties":false},"example":{"asOf":"2026-11-04T21:00:00.000Z","samples":[{"id":"S1","robotId":"R1","topic":"/joint_states","at":"2026-11-01T10:00:00.000Z","field":"position[0]","value":0.12,"unit":"rad","source":"Caller-supplied bag export"},{"id":"S2","robotId":"R1","topic":"/joint_states","at":"2026-11-01T10:00:01.000Z","field":"position[0]","value":0.13,"unit":"rad","source":"Caller-supplied bag export"},{"id":"S3","robotId":"R1","topic":"/tcp_force","at":"2026-11-01T10:00:00.000Z","field":"force_z","value":12,"unit":"N","source":"Caller-supplied bag export"}]}}}},"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"Fresh random 32-byte value encoded as 64 hexadecimal characters. Reuse unchanged only for retries of the same operation and request.","schema":{"type":"string","pattern":"^[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Illustrative endpoint-specific JSON response shape. Conditional fields depend on the result and data-source availability.","content":{"application/json":{"schema":{"type":"object","properties":{"checkedAt":{"type":"string"},"status":{"type":"string"},"topicCount":{"type":"number"},"sampleCount":{"type":"number"},"topics":{"type":"array","items":{"type":"object","properties":{"topic":{"type":"string"},"sampleCount":{"type":"number"},"fieldCount":{"type":"number"},"robotIds":{"type":"array","items":{"type":"string"}},"firstAt":{"type":"string"},"lastAt":{"type":"string"}},"additionalProperties":true}},"samples":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"robotId":{"type":"string"},"topic":{"type":"string"},"at":{"type":"string"},"field":{"type":"string"},"value":{"type":"number"},"valueSupplied":{"type":"boolean"},"unit":{"type":"string"},"source":{"type":"string"}},"additionalProperties":true}},"liveEquipmentConnected":{"type":"boolean"},"machineCommandsIssued":{"type":"boolean"},"paidProviderUsed":{"type":"boolean"},"apiKeyRequired":{"type":"boolean"},"findings":{"type":"array","items":{}},"limitations":{"type":"array","items":{"type":"string"}}},"additionalProperties":true},"example":{"checkedAt":"2026-11-04T21:00:00.000Z","status":"parsed","topicCount":2,"sampleCount":3,"topics":[{"topic":"/joint_states","sampleCount":2,"fieldCount":1,"robotIds":["R1"],"firstAt":"2026-11-01T10:00:00.000Z","lastAt":"2026-11-01T10:00:01.000Z"},{"topic":"/tcp_force","sampleCount":1,"fieldCount":1,"robotIds":["R1"],"firstAt":"2026-11-01T10:00:00.000Z","lastAt":"2026-11-01T10:00:00.000Z"}],"samples":[{"id":"S1","robotId":"R1","topic":"/joint_states","at":"2026-11-01T10:00:00.000Z","field":"position[0]","value":0.12,"valueSupplied":true,"unit":"rad","source":"Caller-supplied bag export"},{"id":"S2","robotId":"R1","topic":"/joint_states","at":"2026-11-01T10:00:01.000Z","field":"position[0]","value":0.13,"valueSupplied":true,"unit":"rad","source":"Caller-supplied bag export"},{"id":"S3","robotId":"R1","topic":"/tcp_force","at":"2026-11-01T10:00:00.000Z","field":"force_z","value":12,"valueSupplied":true,"unit":"N","source":"Caller-supplied bag export"}],"liveEquipmentConnected":false,"machineCommandsIssued":false,"paidProviderUsed":false,"apiKeyRequired":false,"findings":[],"limitations":["ROS bag topic samples, schemas, cycles, downtime, OPC UA tags, PLC alarms, maintenance records, and protocol declarations are copied only from labeled fields or text/CSV/JSON exports supplied by the caller.","No live industrial equipment connection is opened and no machine commands are issued.","Binary .bag/.mcap files are not fully decoded here. Supply topic CSV/JSON exports or labeled sample rows. Missing values are not invented.","Anomaly, cycle-time, downtime, and maintenance estimates use only supplied measurements and intervals.","Protocol compatibility compares caller-supplied required versus available protocol names, versions, and features only. Protocol specifications are not invented."]}}}},"400":{"description":"Invalid JSON or request schema."},"402":{"description":"Payment Required"},"409":{"description":"Idempotency conflict, in-progress payment, or expired result cache. Reusing the key cannot trigger a second charge."},"413":{"description":"Request body exceeds the 24 MB limit."},"500":{"description":"Operation failed. With upfront settlement this may occur after payment; reuse the same idempotency key to retrieve the stored result."},"503":{"description":"Payment or retry-safe result storage is unavailable; the operation is not run."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.04"},"protocols":[{"x402":{}}]}}},"/api/v1/robotics-intelligence/ros-topic-schema-diff":{"post":{"operationId":"diff_ros_topic_schemas","summary":"Diff ROS topic schemas","description":"Compare caller-supplied left/right ROS topic message types and fields. Missing schemas are not invented.","tags":["robotics-intelligence"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"text":{"type":"string","maxLength":200000},"json":{"type":"string","maxLength":200000},"csv":{"type":"string","maxLength":200000},"file":{"type":"object","properties":{"filename":{"type":"string","minLength":1,"maxLength":180},"mediaType":{"type":"string","enum":["text/plain","text/csv","application/json","application/octet-stream"]},"fileBase64":{"type":"string","minLength":1,"maxLength":12000000},"role":{"type":"string","maxLength":80}},"required":["fileBase64"],"additionalProperties":false},"files":{"maxItems":20,"type":"array","items":{"type":"object","properties":{"filename":{"type":"string","minLength":1,"maxLength":180},"mediaType":{"type":"string","enum":["text/plain","text/csv","application/json","application/octet-stream"]},"fileBase64":{"type":"string","minLength":1,"maxLength":12000000},"role":{"type":"string","maxLength":80}},"required":["fileBase64"],"additionalProperties":false}},"samples":{"maxItems":5000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"robotId":{"type":"string","maxLength":80},"topic":{"type":"string","maxLength":200},"at":{"type":"string","maxLength":40},"field":{"type":"string","maxLength":120},"value":{"type":"number","minimum":-1000000000000,"maximum":1000000000000},"unit":{"type":"string","maxLength":40},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"schemas":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"topic":{"type":"string","maxLength":200},"side":{"type":"string","enum":["left","right","a","b"]},"messageType":{"type":"string","maxLength":160},"fields":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":120},"type":{"type":"string","maxLength":80},"optional":{"type":"boolean"}},"additionalProperties":false}},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"cycles":{"maxItems":2000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"robotId":{"type":"string","maxLength":80},"workcellId":{"type":"string","maxLength":80},"startedAt":{"type":"string","maxLength":40},"endedAt":{"type":"string","maxLength":40},"durationSec":{"type":"number","minimum":0,"maximum":1000000},"program":{"type":"string","maxLength":160},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"downtime":{"maxItems":2000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"robotId":{"type":"string","maxLength":80},"workcellId":{"type":"string","maxLength":80},"startedAt":{"type":"string","maxLength":40},"endedAt":{"type":"string","maxLength":40},"durationSec":{"type":"number","minimum":0,"maximum":1000000000},"code":{"type":"string","maxLength":80},"message":{"type":"string","maxLength":400},"category":{"type":"string","maxLength":80},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"opcuaTags":{"maxItems":2000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"nodeId":{"type":"string","maxLength":200},"browseName":{"type":"string","maxLength":160},"displayName":{"type":"string","maxLength":160},"dataType":{"type":"string","maxLength":80},"path":{"type":"string","maxLength":300},"unit":{"type":"string","maxLength":40},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"plcAlarms":{"maxItems":2000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"controllerId":{"type":"string","maxLength":80},"at":{"type":"string","maxLength":40},"code":{"type":"string","maxLength":80},"message":{"type":"string","maxLength":400},"severity":{"type":"string","maxLength":40},"area":{"type":"string","maxLength":120},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"maintenance":{"maxItems":500,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"robotId":{"type":"string","maxLength":80},"component":{"type":"string","maxLength":160},"runtimeHours":{"type":"number","minimum":0,"maximum":1000000000},"cycleCount":{"type":"number","minimum":0,"maximum":1000000000},"intervalHours":{"type":"number","minimum":0,"maximum":1000000000},"intervalCycles":{"type":"number","minimum":0,"maximum":1000000000},"lastServiceAt":{"type":"string","maxLength":40},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"protocols":{"maxItems":100,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"name":{"type":"string","maxLength":120},"version":{"type":"string","maxLength":80},"role":{"type":"string","enum":["required","available","controller","device"]},"features":{"maxItems":40,"type":"array","items":{"type":"string","maxLength":80}},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"asOf":{"type":"string","maxLength":40}},"additionalProperties":false},"example":{"asOf":"2026-11-04T21:00:00.000Z","schemas":[{"id":"A1","topic":"/joint_states","side":"left","messageType":"sensor_msgs/JointState","fields":[{"name":"position","type":"float64[]"},{"name":"velocity","type":"float64[]"}],"source":"Caller-supplied"},{"id":"B1","topic":"/joint_states","side":"right","messageType":"sensor_msgs/JointState","fields":[{"name":"position","type":"float64[]"},{"name":"effort","type":"float64[]"}],"source":"Caller-supplied"}]}}}},"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"Fresh random 32-byte value encoded as 64 hexadecimal characters. Reuse unchanged only for retries of the same operation and request.","schema":{"type":"string","pattern":"^[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Illustrative endpoint-specific JSON response shape. Conditional fields depend on the result and data-source availability.","content":{"application/json":{"schema":{"type":"object","properties":{"checkedAt":{"type":"string"},"status":{"type":"string"},"topicCount":{"type":"number"},"items":{"type":"array","items":{"type":"object","properties":{"topic":{"type":"string"},"matched":{"type":"boolean"},"messageTypeMatch":{"type":"boolean"},"leftMessageType":{"type":"string"},"rightMessageType":{"type":"string"},"leftFieldCount":{"type":"number"},"rightFieldCount":{"type":"number"},"addedFields":{"type":"array","items":{"type":"string"}},"removedFields":{"type":"array","items":{"type":"string"}},"typeChanges":{"type":"array","items":{}}},"additionalProperties":true}},"paidProviderUsed":{"type":"boolean"},"apiKeyRequired":{"type":"boolean"},"liveEquipmentConnected":{"type":"boolean"},"machineCommandsIssued":{"type":"boolean"},"findings":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string"},"code":{"type":"string"},"subject":{"type":"string"},"detail":{"type":"string"}},"additionalProperties":true}},"limitations":{"type":"array","items":{"type":"string"}}},"additionalProperties":true},"example":{"checkedAt":"2026-11-04T21:00:00.000Z","status":"compared","topicCount":1,"items":[{"topic":"/joint_states","matched":true,"messageTypeMatch":true,"leftMessageType":"sensor_msgs/JointState","rightMessageType":"sensor_msgs/JointState","leftFieldCount":2,"rightFieldCount":2,"addedFields":["effort"],"removedFields":["velocity"],"typeChanges":[]}],"paidProviderUsed":false,"apiKeyRequired":false,"liveEquipmentConnected":false,"machineCommandsIssued":false,"findings":[{"kind":"conflict","code":"schema_diff","subject":"/joint_states","detail":"Caller-supplied left/right topic schemas differ."}],"limitations":["ROS bag topic samples, schemas, cycles, downtime, OPC UA tags, PLC alarms, maintenance records, and protocol declarations are copied only from labeled fields or text/CSV/JSON exports supplied by the caller.","No live industrial equipment connection is opened and no machine commands are issued.","Binary .bag/.mcap files are not fully decoded here. Supply topic CSV/JSON exports or labeled sample rows. Missing values are not invented.","Anomaly, cycle-time, downtime, and maintenance estimates use only supplied measurements and intervals.","Protocol compatibility compares caller-supplied required versus available protocol names, versions, and features only. Protocol specifications are not invented."]}}}},"400":{"description":"Invalid JSON or request schema."},"402":{"description":"Payment Required"},"409":{"description":"Idempotency conflict, in-progress payment, or expired result cache. Reusing the key cannot trigger a second charge."},"413":{"description":"Request body exceeds the 24 MB limit."},"500":{"description":"Operation failed. With upfront settlement this may occur after payment; reuse the same idempotency key to retrieve the stored result."},"503":{"description":"Payment or retry-safe result storage is unavailable; the operation is not run."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.03"},"protocols":[{"x402":{}}]}}},"/api/v1/robotics-intelligence/telemetry-anomaly-detect":{"post":{"operationId":"detect_robot_telemetry_anomalies","summary":"Detect robot telemetry anomalies","description":"Flag caller-supplied telemetry samples whose z-score is outside ±3 of the supplied series mean. Live equipment is not contacted.","tags":["robotics-intelligence"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"text":{"type":"string","maxLength":200000},"json":{"type":"string","maxLength":200000},"csv":{"type":"string","maxLength":200000},"file":{"type":"object","properties":{"filename":{"type":"string","minLength":1,"maxLength":180},"mediaType":{"type":"string","enum":["text/plain","text/csv","application/json","application/octet-stream"]},"fileBase64":{"type":"string","minLength":1,"maxLength":12000000},"role":{"type":"string","maxLength":80}},"required":["fileBase64"],"additionalProperties":false},"files":{"maxItems":20,"type":"array","items":{"type":"object","properties":{"filename":{"type":"string","minLength":1,"maxLength":180},"mediaType":{"type":"string","enum":["text/plain","text/csv","application/json","application/octet-stream"]},"fileBase64":{"type":"string","minLength":1,"maxLength":12000000},"role":{"type":"string","maxLength":80}},"required":["fileBase64"],"additionalProperties":false}},"samples":{"maxItems":5000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"robotId":{"type":"string","maxLength":80},"topic":{"type":"string","maxLength":200},"at":{"type":"string","maxLength":40},"field":{"type":"string","maxLength":120},"value":{"type":"number","minimum":-1000000000000,"maximum":1000000000000},"unit":{"type":"string","maxLength":40},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"schemas":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"topic":{"type":"string","maxLength":200},"side":{"type":"string","enum":["left","right","a","b"]},"messageType":{"type":"string","maxLength":160},"fields":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":120},"type":{"type":"string","maxLength":80},"optional":{"type":"boolean"}},"additionalProperties":false}},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"cycles":{"maxItems":2000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"robotId":{"type":"string","maxLength":80},"workcellId":{"type":"string","maxLength":80},"startedAt":{"type":"string","maxLength":40},"endedAt":{"type":"string","maxLength":40},"durationSec":{"type":"number","minimum":0,"maximum":1000000},"program":{"type":"string","maxLength":160},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"downtime":{"maxItems":2000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"robotId":{"type":"string","maxLength":80},"workcellId":{"type":"string","maxLength":80},"startedAt":{"type":"string","maxLength":40},"endedAt":{"type":"string","maxLength":40},"durationSec":{"type":"number","minimum":0,"maximum":1000000000},"code":{"type":"string","maxLength":80},"message":{"type":"string","maxLength":400},"category":{"type":"string","maxLength":80},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"opcuaTags":{"maxItems":2000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"nodeId":{"type":"string","maxLength":200},"browseName":{"type":"string","maxLength":160},"displayName":{"type":"string","maxLength":160},"dataType":{"type":"string","maxLength":80},"path":{"type":"string","maxLength":300},"unit":{"type":"string","maxLength":40},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"plcAlarms":{"maxItems":2000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"controllerId":{"type":"string","maxLength":80},"at":{"type":"string","maxLength":40},"code":{"type":"string","maxLength":80},"message":{"type":"string","maxLength":400},"severity":{"type":"string","maxLength":40},"area":{"type":"string","maxLength":120},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"maintenance":{"maxItems":500,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"robotId":{"type":"string","maxLength":80},"component":{"type":"string","maxLength":160},"runtimeHours":{"type":"number","minimum":0,"maximum":1000000000},"cycleCount":{"type":"number","minimum":0,"maximum":1000000000},"intervalHours":{"type":"number","minimum":0,"maximum":1000000000},"intervalCycles":{"type":"number","minimum":0,"maximum":1000000000},"lastServiceAt":{"type":"string","maxLength":40},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"protocols":{"maxItems":100,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"name":{"type":"string","maxLength":120},"version":{"type":"string","maxLength":80},"role":{"type":"string","enum":["required","available","controller","device"]},"features":{"maxItems":40,"type":"array","items":{"type":"string","maxLength":80}},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"asOf":{"type":"string","maxLength":40}},"additionalProperties":false},"example":{"asOf":"2026-11-04T21:00:00.000Z","samples":[{"id":"S1","robotId":"R1","topic":"/joint_states","at":"2026-11-01T10:00:00.000Z","field":"position[0]","value":0.12,"unit":"rad","source":"Caller-supplied"},{"id":"S2","robotId":"R1","topic":"/joint_states","at":"2026-11-01T10:00:01.000Z","field":"position[0]","value":0.12,"unit":"rad","source":"Caller-supplied"},{"id":"S3","robotId":"R1","topic":"/joint_states","at":"2026-11-01T10:00:02.000Z","field":"position[0]","value":0.12,"unit":"rad","source":"Caller-supplied"},{"id":"S4","robotId":"R1","topic":"/joint_states","at":"2026-11-01T10:00:03.000Z","field":"position[0]","value":0.12,"unit":"rad","source":"Caller-supplied"},{"id":"S5","robotId":"R1","topic":"/joint_states","at":"2026-11-01T10:00:04.000Z","field":"position[0]","value":0.12,"unit":"rad","source":"Caller-supplied"},{"id":"S6","robotId":"R1","topic":"/joint_states","at":"2026-11-01T10:00:05.000Z","field":"position[0]","value":0.12,"unit":"rad","source":"Caller-supplied"},{"id":"S7","robotId":"R1","topic":"/joint_states","at":"2026-11-01T10:00:06.000Z","field":"position[0]","value":0.12,"unit":"rad","source":"Caller-supplied"},{"id":"S8","robotId":"R1","topic":"/joint_states","at":"2026-11-01T10:00:07.000Z","field":"position[0]","value":0.12,"unit":"rad","source":"Caller-supplied"},{"id":"S9","robotId":"R1","topic":"/joint_states","at":"2026-11-01T10:00:08.000Z","field":"position[0]","value":0.12,"unit":"rad","source":"Caller-supplied"},{"id":"S10","robotId":"R1","topic":"/joint_states","at":"2026-11-01T10:00:09.000Z","field":"position[0]","value":0.12,"unit":"rad","source":"Caller-supplied"},{"id":"S11","robotId":"R1","topic":"/joint_states","at":"2026-11-01T10:00:10.000Z","field":"position[0]","value":0.12,"unit":"rad","source":"Caller-supplied"},{"id":"S12","robotId":"R1","topic":"/joint_states","at":"2026-11-01T10:00:11.000Z","field":"position[0]","value":0.12,"unit":"rad","source":"Caller-supplied"},{"id":"S13","robotId":"R1","topic":"/joint_states","at":"2026-11-01T10:00:12.000Z","field":"position[0]","value":0.12,"unit":"rad","source":"Caller-supplied"},{"id":"S14","robotId":"R1","topic":"/joint_states","at":"2026-11-01T10:00:13.000Z","field":"position[0]","value":0.12,"unit":"rad","source":"Caller-supplied"},{"id":"S15","robotId":"R1","topic":"/joint_states","at":"2026-11-01T10:00:14.000Z","field":"position[0]","value":0.12,"unit":"rad","source":"Caller-supplied"},{"id":"S16","robotId":"R1","topic":"/joint_states","at":"2026-11-01T10:00:15.000Z","field":"position[0]","value":2,"unit":"rad","source":"Caller-supplied"}]}}}},"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"Fresh random 32-byte value encoded as 64 hexadecimal characters. Reuse unchanged only for retries of the same operation and request.","schema":{"type":"string","pattern":"^[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Illustrative endpoint-specific JSON response shape. Conditional fields depend on the result and data-source availability.","content":{"application/json":{"schema":{"type":"object","properties":{"checkedAt":{"type":"string"},"status":{"type":"string"},"seriesCount":{"type":"number"},"anomalyCount":{"type":"number"},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"robotId":{"type":"string"},"topic":{"type":"string"},"field":{"type":"string"},"at":{"type":"string"},"value":{"type":"number"},"mean":{"type":"number"},"stdev":{"type":"number"},"zScore":{"type":"number"},"anomalous":{"type":"boolean"},"source":{"type":"string"},"liveEquipmentConnected":{"type":"boolean"}},"additionalProperties":true}},"paidProviderUsed":{"type":"boolean"},"apiKeyRequired":{"type":"boolean"},"liveEquipmentConnected":{"type":"boolean"},"machineCommandsIssued":{"type":"boolean"},"findings":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string"},"code":{"type":"string"},"subject":{"type":"string"},"detail":{"type":"string"}},"additionalProperties":true}},"limitations":{"type":"array","items":{"type":"string"}}},"additionalProperties":true},"example":{"checkedAt":"2026-11-04T21:00:00.000Z","status":"detected","seriesCount":1,"anomalyCount":1,"items":[{"id":"S16","robotId":"R1","topic":"/joint_states","field":"position[0]","at":"2026-11-01T10:00:15.000Z","value":2,"mean":0.2375,"stdev":0.47,"zScore":3.75,"anomalous":true,"source":"Caller-supplied","liveEquipmentConnected":false}],"paidProviderUsed":false,"apiKeyRequired":false,"liveEquipmentConnected":false,"machineCommandsIssued":false,"findings":[{"kind":"conflict","code":"telemetry_anomaly","subject":"S16","detail":"Sample z-score 3.75 is outside ±3 from the supplied series mean."}],"limitations":["ROS bag topic samples, schemas, cycles, downtime, OPC UA tags, PLC alarms, maintenance records, and protocol declarations are copied only from labeled fields or text/CSV/JSON exports supplied by the caller.","No live industrial equipment connection is opened and no machine commands are issued.","Binary .bag/.mcap files are not fully decoded here. Supply topic CSV/JSON exports or labeled sample rows. Missing values are not invented.","Anomaly, cycle-time, downtime, and maintenance estimates use only supplied measurements and intervals.","Protocol compatibility compares caller-supplied required versus available protocol names, versions, and features only. Protocol specifications are not invented."]}}}},"400":{"description":"Invalid JSON or request schema."},"402":{"description":"Payment Required"},"409":{"description":"Idempotency conflict, in-progress payment, or expired result cache. Reusing the key cannot trigger a second charge."},"413":{"description":"Request body exceeds the 24 MB limit."},"500":{"description":"Operation failed. With upfront settlement this may occur after payment; reuse the same idempotency key to retrieve the stored result."},"503":{"description":"Payment or retry-safe result storage is unavailable; the operation is not run."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.04"},"protocols":[{"x402":{}}]}}},"/api/v1/robotics-intelligence/cycle-time-analyze":{"post":{"operationId":"analyze_robot_cycle_time","summary":"Analyze robot cycle time","description":"Summarize caller-supplied robot cycle durations by robot, workcell, and program. Missing durations are not invented when start/end times are absent.","tags":["robotics-intelligence"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"text":{"type":"string","maxLength":200000},"json":{"type":"string","maxLength":200000},"csv":{"type":"string","maxLength":200000},"file":{"type":"object","properties":{"filename":{"type":"string","minLength":1,"maxLength":180},"mediaType":{"type":"string","enum":["text/plain","text/csv","application/json","application/octet-stream"]},"fileBase64":{"type":"string","minLength":1,"maxLength":12000000},"role":{"type":"string","maxLength":80}},"required":["fileBase64"],"additionalProperties":false},"files":{"maxItems":20,"type":"array","items":{"type":"object","properties":{"filename":{"type":"string","minLength":1,"maxLength":180},"mediaType":{"type":"string","enum":["text/plain","text/csv","application/json","application/octet-stream"]},"fileBase64":{"type":"string","minLength":1,"maxLength":12000000},"role":{"type":"string","maxLength":80}},"required":["fileBase64"],"additionalProperties":false}},"samples":{"maxItems":5000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"robotId":{"type":"string","maxLength":80},"topic":{"type":"string","maxLength":200},"at":{"type":"string","maxLength":40},"field":{"type":"string","maxLength":120},"value":{"type":"number","minimum":-1000000000000,"maximum":1000000000000},"unit":{"type":"string","maxLength":40},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"schemas":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"topic":{"type":"string","maxLength":200},"side":{"type":"string","enum":["left","right","a","b"]},"messageType":{"type":"string","maxLength":160},"fields":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":120},"type":{"type":"string","maxLength":80},"optional":{"type":"boolean"}},"additionalProperties":false}},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"cycles":{"maxItems":2000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"robotId":{"type":"string","maxLength":80},"workcellId":{"type":"string","maxLength":80},"startedAt":{"type":"string","maxLength":40},"endedAt":{"type":"string","maxLength":40},"durationSec":{"type":"number","minimum":0,"maximum":1000000},"program":{"type":"string","maxLength":160},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"downtime":{"maxItems":2000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"robotId":{"type":"string","maxLength":80},"workcellId":{"type":"string","maxLength":80},"startedAt":{"type":"string","maxLength":40},"endedAt":{"type":"string","maxLength":40},"durationSec":{"type":"number","minimum":0,"maximum":1000000000},"code":{"type":"string","maxLength":80},"message":{"type":"string","maxLength":400},"category":{"type":"string","maxLength":80},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"opcuaTags":{"maxItems":2000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"nodeId":{"type":"string","maxLength":200},"browseName":{"type":"string","maxLength":160},"displayName":{"type":"string","maxLength":160},"dataType":{"type":"string","maxLength":80},"path":{"type":"string","maxLength":300},"unit":{"type":"string","maxLength":40},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"plcAlarms":{"maxItems":2000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"controllerId":{"type":"string","maxLength":80},"at":{"type":"string","maxLength":40},"code":{"type":"string","maxLength":80},"message":{"type":"string","maxLength":400},"severity":{"type":"string","maxLength":40},"area":{"type":"string","maxLength":120},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"maintenance":{"maxItems":500,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"robotId":{"type":"string","maxLength":80},"component":{"type":"string","maxLength":160},"runtimeHours":{"type":"number","minimum":0,"maximum":1000000000},"cycleCount":{"type":"number","minimum":0,"maximum":1000000000},"intervalHours":{"type":"number","minimum":0,"maximum":1000000000},"intervalCycles":{"type":"number","minimum":0,"maximum":1000000000},"lastServiceAt":{"type":"string","maxLength":40},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"protocols":{"maxItems":100,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"name":{"type":"string","maxLength":120},"version":{"type":"string","maxLength":80},"role":{"type":"string","enum":["required","available","controller","device"]},"features":{"maxItems":40,"type":"array","items":{"type":"string","maxLength":80}},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"asOf":{"type":"string","maxLength":40}},"additionalProperties":false},"example":{"asOf":"2026-11-04T21:00:00.000Z","cycles":[{"id":"C1","robotId":"R1","workcellId":"WC1","startedAt":"2026-11-01T10:00:00.000Z","endedAt":"2026-11-01T10:00:45.000Z","program":"pick_place","source":"Caller-supplied"},{"id":"C2","robotId":"R1","workcellId":"WC1","startedAt":"2026-11-01T10:01:00.000Z","endedAt":"2026-11-01T10:01:50.000Z","program":"pick_place","source":"Caller-supplied"}]}}}},"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"Fresh random 32-byte value encoded as 64 hexadecimal characters. Reuse unchanged only for retries of the same operation and request.","schema":{"type":"string","pattern":"^[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Illustrative endpoint-specific JSON response shape. Conditional fields depend on the result and data-source availability.","content":{"application/json":{"schema":{"type":"object","properties":{"checkedAt":{"type":"string"},"status":{"type":"string"},"groupCount":{"type":"number"},"items":{"type":"array","items":{"type":"object","properties":{"robotId":{"type":"string"},"program":{"type":"string"},"cycleCount":{"type":"number"},"averageSec":{"type":"number"},"averageSecSupplied":{"type":"boolean"},"minSec":{"type":"number"},"minSecSupplied":{"type":"boolean"},"maxSec":{"type":"number"},"maxSecSupplied":{"type":"boolean"},"liveEquipmentConnected":{"type":"boolean"}},"additionalProperties":true}},"cycles":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"robotId":{"type":"string"},"workcellId":{"type":"string"},"startedAt":{"type":"string"},"endedAt":{"type":"string"},"durationSec":{"type":"number"},"durationSupplied":{"type":"boolean"},"program":{"type":"string"},"source":{"type":"string"}},"additionalProperties":true}},"paidProviderUsed":{"type":"boolean"},"apiKeyRequired":{"type":"boolean"},"liveEquipmentConnected":{"type":"boolean"},"machineCommandsIssued":{"type":"boolean"},"findings":{"type":"array","items":{}},"limitations":{"type":"array","items":{"type":"string"}}},"additionalProperties":true},"example":{"checkedAt":"2026-11-04T21:00:00.000Z","status":"analyzed","groupCount":1,"items":[{"robotId":"R1","program":"pick_place","cycleCount":2,"averageSec":47.5,"averageSecSupplied":true,"minSec":45,"minSecSupplied":true,"maxSec":50,"maxSecSupplied":true,"liveEquipmentConnected":false}],"cycles":[{"id":"C1","robotId":"R1","workcellId":"WC1","startedAt":"2026-11-01T10:00:00.000Z","endedAt":"2026-11-01T10:00:45.000Z","durationSec":45,"durationSupplied":true,"program":"pick_place","source":"Caller-supplied"},{"id":"C2","robotId":"R1","workcellId":"WC1","startedAt":"2026-11-01T10:01:00.000Z","endedAt":"2026-11-01T10:01:50.000Z","durationSec":50,"durationSupplied":true,"program":"pick_place","source":"Caller-supplied"}],"paidProviderUsed":false,"apiKeyRequired":false,"liveEquipmentConnected":false,"machineCommandsIssued":false,"findings":[],"limitations":["ROS bag topic samples, schemas, cycles, downtime, OPC UA tags, PLC alarms, maintenance records, and protocol declarations are copied only from labeled fields or text/CSV/JSON exports supplied by the caller.","No live industrial equipment connection is opened and no machine commands are issued.","Binary .bag/.mcap files are not fully decoded here. Supply topic CSV/JSON exports or labeled sample rows. Missing values are not invented.","Anomaly, cycle-time, downtime, and maintenance estimates use only supplied measurements and intervals.","Protocol compatibility compares caller-supplied required versus available protocol names, versions, and features only. Protocol specifications are not invented."]}}}},"400":{"description":"Invalid JSON or request schema."},"402":{"description":"Payment Required"},"409":{"description":"Idempotency conflict, in-progress payment, or expired result cache. Reusing the key cannot trigger a second charge."},"413":{"description":"Request body exceeds the 24 MB limit."},"500":{"description":"Operation failed. With upfront settlement this may occur after payment; reuse the same idempotency key to retrieve the stored result."},"503":{"description":"Payment or retry-safe result storage is unavailable; the operation is not run."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.04"},"protocols":[{"x402":{}}]}}},"/api/v1/robotics-intelligence/downtime-root-cause":{"post":{"operationId":"cluster_robot_downtime_root_causes","summary":"Cluster robot downtime root causes","description":"Cluster caller-supplied downtime events by code/message category signals. Live PLCs and robots are not contacted.","tags":["robotics-intelligence"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"text":{"type":"string","maxLength":200000},"json":{"type":"string","maxLength":200000},"csv":{"type":"string","maxLength":200000},"file":{"type":"object","properties":{"filename":{"type":"string","minLength":1,"maxLength":180},"mediaType":{"type":"string","enum":["text/plain","text/csv","application/json","application/octet-stream"]},"fileBase64":{"type":"string","minLength":1,"maxLength":12000000},"role":{"type":"string","maxLength":80}},"required":["fileBase64"],"additionalProperties":false},"files":{"maxItems":20,"type":"array","items":{"type":"object","properties":{"filename":{"type":"string","minLength":1,"maxLength":180},"mediaType":{"type":"string","enum":["text/plain","text/csv","application/json","application/octet-stream"]},"fileBase64":{"type":"string","minLength":1,"maxLength":12000000},"role":{"type":"string","maxLength":80}},"required":["fileBase64"],"additionalProperties":false}},"samples":{"maxItems":5000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"robotId":{"type":"string","maxLength":80},"topic":{"type":"string","maxLength":200},"at":{"type":"string","maxLength":40},"field":{"type":"string","maxLength":120},"value":{"type":"number","minimum":-1000000000000,"maximum":1000000000000},"unit":{"type":"string","maxLength":40},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"schemas":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"topic":{"type":"string","maxLength":200},"side":{"type":"string","enum":["left","right","a","b"]},"messageType":{"type":"string","maxLength":160},"fields":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":120},"type":{"type":"string","maxLength":80},"optional":{"type":"boolean"}},"additionalProperties":false}},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"cycles":{"maxItems":2000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"robotId":{"type":"string","maxLength":80},"workcellId":{"type":"string","maxLength":80},"startedAt":{"type":"string","maxLength":40},"endedAt":{"type":"string","maxLength":40},"durationSec":{"type":"number","minimum":0,"maximum":1000000},"program":{"type":"string","maxLength":160},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"downtime":{"maxItems":2000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"robotId":{"type":"string","maxLength":80},"workcellId":{"type":"string","maxLength":80},"startedAt":{"type":"string","maxLength":40},"endedAt":{"type":"string","maxLength":40},"durationSec":{"type":"number","minimum":0,"maximum":1000000000},"code":{"type":"string","maxLength":80},"message":{"type":"string","maxLength":400},"category":{"type":"string","maxLength":80},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"opcuaTags":{"maxItems":2000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"nodeId":{"type":"string","maxLength":200},"browseName":{"type":"string","maxLength":160},"displayName":{"type":"string","maxLength":160},"dataType":{"type":"string","maxLength":80},"path":{"type":"string","maxLength":300},"unit":{"type":"string","maxLength":40},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"plcAlarms":{"maxItems":2000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"controllerId":{"type":"string","maxLength":80},"at":{"type":"string","maxLength":40},"code":{"type":"string","maxLength":80},"message":{"type":"string","maxLength":400},"severity":{"type":"string","maxLength":40},"area":{"type":"string","maxLength":120},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"maintenance":{"maxItems":500,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"robotId":{"type":"string","maxLength":80},"component":{"type":"string","maxLength":160},"runtimeHours":{"type":"number","minimum":0,"maximum":1000000000},"cycleCount":{"type":"number","minimum":0,"maximum":1000000000},"intervalHours":{"type":"number","minimum":0,"maximum":1000000000},"intervalCycles":{"type":"number","minimum":0,"maximum":1000000000},"lastServiceAt":{"type":"string","maxLength":40},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"protocols":{"maxItems":100,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"name":{"type":"string","maxLength":120},"version":{"type":"string","maxLength":80},"role":{"type":"string","enum":["required","available","controller","device"]},"features":{"maxItems":40,"type":"array","items":{"type":"string","maxLength":80}},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"asOf":{"type":"string","maxLength":40}},"additionalProperties":false},"example":{"asOf":"2026-11-04T21:00:00.000Z","downtime":[{"id":"D1","robotId":"R1","workcellId":"WC1","startedAt":"2026-11-01T11:00:00.000Z","endedAt":"2026-11-01T11:15:00.000Z","code":"ESTOP","message":"Operator e-stop","source":"Caller-supplied"},{"id":"D2","robotId":"R1","workcellId":"WC1","startedAt":"2026-11-01T12:00:00.000Z","durationSec":300,"code":"SERVO01","message":"Servo overtemperature","source":"Caller-supplied"}]}}}},"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"Fresh random 32-byte value encoded as 64 hexadecimal characters. Reuse unchanged only for retries of the same operation and request.","schema":{"type":"string","pattern":"^[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Illustrative endpoint-specific JSON response shape. Conditional fields depend on the result and data-source availability.","content":{"application/json":{"schema":{"type":"object","properties":{"checkedAt":{"type":"string"},"status":{"type":"string"},"causeCount":{"type":"number"},"items":{"type":"array","items":{"type":"object","properties":{"category":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"eventCount":{"type":"number"},"totalDurationSec":{"type":"number"},"totalDurationSecSupplied":{"type":"boolean"},"robotIds":{"type":"array","items":{"type":"string"}},"liveEquipmentConnected":{"type":"boolean"}},"additionalProperties":true}},"paidProviderUsed":{"type":"boolean"},"apiKeyRequired":{"type":"boolean"},"liveEquipmentConnected":{"type":"boolean"},"machineCommandsIssued":{"type":"boolean"},"findings":{"type":"array","items":{}},"limitations":{"type":"array","items":{"type":"string"}}},"additionalProperties":true},"example":{"checkedAt":"2026-11-04T21:00:00.000Z","status":"clustered","causeCount":2,"items":[{"category":"safety","code":"ESTOP","message":"Operator e-stop","eventCount":1,"totalDurationSec":900,"totalDurationSecSupplied":true,"robotIds":["R1"],"liveEquipmentConnected":false},{"category":"motion","code":"SERVO01","message":"Servo overtemperature","eventCount":1,"totalDurationSec":300,"totalDurationSecSupplied":true,"robotIds":["R1"],"liveEquipmentConnected":false}],"paidProviderUsed":false,"apiKeyRequired":false,"liveEquipmentConnected":false,"machineCommandsIssued":false,"findings":[],"limitations":["ROS bag topic samples, schemas, cycles, downtime, OPC UA tags, PLC alarms, maintenance records, and protocol declarations are copied only from labeled fields or text/CSV/JSON exports supplied by the caller.","No live industrial equipment connection is opened and no machine commands are issued.","Binary .bag/.mcap files are not fully decoded here. Supply topic CSV/JSON exports or labeled sample rows. Missing values are not invented.","Anomaly, cycle-time, downtime, and maintenance estimates use only supplied measurements and intervals.","Protocol compatibility compares caller-supplied required versus available protocol names, versions, and features only. Protocol specifications are not invented."]}}}},"400":{"description":"Invalid JSON or request schema."},"402":{"description":"Payment Required"},"409":{"description":"Idempotency conflict, in-progress payment, or expired result cache. Reusing the key cannot trigger a second charge."},"413":{"description":"Request body exceeds the 24 MB limit."},"500":{"description":"Operation failed. With upfront settlement this may occur after payment; reuse the same idempotency key to retrieve the stored result."},"503":{"description":"Payment or retry-safe result storage is unavailable; the operation is not run."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.04"},"protocols":[{"x402":{}}]}}},"/api/v1/robotics-intelligence/opcua-tag-map-normalize":{"post":{"operationId":"normalize_opc_ua_tag_maps","summary":"Normalize OPC UA tag maps","description":"Normalize caller-supplied OPC UA node exports into a consistent tag map. Live OPC UA servers are not contacted.","tags":["robotics-intelligence"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"text":{"type":"string","maxLength":200000},"json":{"type":"string","maxLength":200000},"csv":{"type":"string","maxLength":200000},"file":{"type":"object","properties":{"filename":{"type":"string","minLength":1,"maxLength":180},"mediaType":{"type":"string","enum":["text/plain","text/csv","application/json","application/octet-stream"]},"fileBase64":{"type":"string","minLength":1,"maxLength":12000000},"role":{"type":"string","maxLength":80}},"required":["fileBase64"],"additionalProperties":false},"files":{"maxItems":20,"type":"array","items":{"type":"object","properties":{"filename":{"type":"string","minLength":1,"maxLength":180},"mediaType":{"type":"string","enum":["text/plain","text/csv","application/json","application/octet-stream"]},"fileBase64":{"type":"string","minLength":1,"maxLength":12000000},"role":{"type":"string","maxLength":80}},"required":["fileBase64"],"additionalProperties":false}},"samples":{"maxItems":5000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"robotId":{"type":"string","maxLength":80},"topic":{"type":"string","maxLength":200},"at":{"type":"string","maxLength":40},"field":{"type":"string","maxLength":120},"value":{"type":"number","minimum":-1000000000000,"maximum":1000000000000},"unit":{"type":"string","maxLength":40},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"schemas":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"topic":{"type":"string","maxLength":200},"side":{"type":"string","enum":["left","right","a","b"]},"messageType":{"type":"string","maxLength":160},"fields":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":120},"type":{"type":"string","maxLength":80},"optional":{"type":"boolean"}},"additionalProperties":false}},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"cycles":{"maxItems":2000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"robotId":{"type":"string","maxLength":80},"workcellId":{"type":"string","maxLength":80},"startedAt":{"type":"string","maxLength":40},"endedAt":{"type":"string","maxLength":40},"durationSec":{"type":"number","minimum":0,"maximum":1000000},"program":{"type":"string","maxLength":160},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"downtime":{"maxItems":2000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"robotId":{"type":"string","maxLength":80},"workcellId":{"type":"string","maxLength":80},"startedAt":{"type":"string","maxLength":40},"endedAt":{"type":"string","maxLength":40},"durationSec":{"type":"number","minimum":0,"maximum":1000000000},"code":{"type":"string","maxLength":80},"message":{"type":"string","maxLength":400},"category":{"type":"string","maxLength":80},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"opcuaTags":{"maxItems":2000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"nodeId":{"type":"string","maxLength":200},"browseName":{"type":"string","maxLength":160},"displayName":{"type":"string","maxLength":160},"dataType":{"type":"string","maxLength":80},"path":{"type":"string","maxLength":300},"unit":{"type":"string","maxLength":40},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"plcAlarms":{"maxItems":2000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"controllerId":{"type":"string","maxLength":80},"at":{"type":"string","maxLength":40},"code":{"type":"string","maxLength":80},"message":{"type":"string","maxLength":400},"severity":{"type":"string","maxLength":40},"area":{"type":"string","maxLength":120},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"maintenance":{"maxItems":500,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"robotId":{"type":"string","maxLength":80},"component":{"type":"string","maxLength":160},"runtimeHours":{"type":"number","minimum":0,"maximum":1000000000},"cycleCount":{"type":"number","minimum":0,"maximum":1000000000},"intervalHours":{"type":"number","minimum":0,"maximum":1000000000},"intervalCycles":{"type":"number","minimum":0,"maximum":1000000000},"lastServiceAt":{"type":"string","maxLength":40},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"protocols":{"maxItems":100,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"name":{"type":"string","maxLength":120},"version":{"type":"string","maxLength":80},"role":{"type":"string","enum":["required","available","controller","device"]},"features":{"maxItems":40,"type":"array","items":{"type":"string","maxLength":80}},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"asOf":{"type":"string","maxLength":40}},"additionalProperties":false},"example":{"asOf":"2026-11-04T21:00:00.000Z","opcuaTags":[{"id":"T1","nodeId":"ns=2;s=Robot1.Speed","browseName":"Speed","displayName":"Robot Speed","dataType":"Double","path":"Robot1/Speed","unit":"mm/s","source":"Caller-supplied export"}]}}}},"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"Fresh random 32-byte value encoded as 64 hexadecimal characters. Reuse unchanged only for retries of the same operation and request.","schema":{"type":"string","pattern":"^[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Illustrative endpoint-specific JSON response shape. Conditional fields depend on the result and data-source availability.","content":{"application/json":{"schema":{"type":"object","properties":{"checkedAt":{"type":"string"},"status":{"type":"string"},"tagCount":{"type":"number"},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"nodeId":{"type":"string"},"browseName":{"type":"string"},"displayName":{"type":"string"},"dataType":{"type":"string"},"path":{"type":"string"},"normalizedPath":{"type":"string"},"normalizedName":{"type":"string"},"unit":{"type":"string"},"source":{"type":"string"},"liveEquipmentConnected":{"type":"boolean"}},"additionalProperties":true}},"paidProviderUsed":{"type":"boolean"},"apiKeyRequired":{"type":"boolean"},"liveEquipmentConnected":{"type":"boolean"},"machineCommandsIssued":{"type":"boolean"},"findings":{"type":"array","items":{}},"limitations":{"type":"array","items":{"type":"string"}}},"additionalProperties":true},"example":{"checkedAt":"2026-11-04T21:00:00.000Z","status":"normalized","tagCount":1,"items":[{"id":"T1","nodeId":"ns=2;s=Robot1.Speed","browseName":"Speed","displayName":"Robot Speed","dataType":"Double","path":"Robot1/Speed","normalizedPath":"Robot1/Speed","normalizedName":"Speed","unit":"mm/s","source":"Caller-supplied export","liveEquipmentConnected":false}],"paidProviderUsed":false,"apiKeyRequired":false,"liveEquipmentConnected":false,"machineCommandsIssued":false,"findings":[],"limitations":["ROS bag topic samples, schemas, cycles, downtime, OPC UA tags, PLC alarms, maintenance records, and protocol declarations are copied only from labeled fields or text/CSV/JSON exports supplied by the caller.","No live industrial equipment connection is opened and no machine commands are issued.","Binary .bag/.mcap files are not fully decoded here. Supply topic CSV/JSON exports or labeled sample rows. Missing values are not invented.","Anomaly, cycle-time, downtime, and maintenance estimates use only supplied measurements and intervals.","Protocol compatibility compares caller-supplied required versus available protocol names, versions, and features only. Protocol specifications are not invented."]}}}},"400":{"description":"Invalid JSON or request schema."},"402":{"description":"Payment Required"},"409":{"description":"Idempotency conflict, in-progress payment, or expired result cache. Reusing the key cannot trigger a second charge."},"413":{"description":"Request body exceeds the 24 MB limit."},"500":{"description":"Operation failed. With upfront settlement this may occur after payment; reuse the same idempotency key to retrieve the stored result."},"503":{"description":"Payment or retry-safe result storage is unavailable; the operation is not run."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.03"},"protocols":[{"x402":{}}]}}},"/api/v1/robotics-intelligence/plc-alarm-cluster":{"post":{"operationId":"cluster_plc_alarms","summary":"Cluster PLC alarms","description":"Cluster caller-supplied PLC alarm log events by controller, code, and area. Live PLCs are not contacted.","tags":["robotics-intelligence"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"text":{"type":"string","maxLength":200000},"json":{"type":"string","maxLength":200000},"csv":{"type":"string","maxLength":200000},"file":{"type":"object","properties":{"filename":{"type":"string","minLength":1,"maxLength":180},"mediaType":{"type":"string","enum":["text/plain","text/csv","application/json","application/octet-stream"]},"fileBase64":{"type":"string","minLength":1,"maxLength":12000000},"role":{"type":"string","maxLength":80}},"required":["fileBase64"],"additionalProperties":false},"files":{"maxItems":20,"type":"array","items":{"type":"object","properties":{"filename":{"type":"string","minLength":1,"maxLength":180},"mediaType":{"type":"string","enum":["text/plain","text/csv","application/json","application/octet-stream"]},"fileBase64":{"type":"string","minLength":1,"maxLength":12000000},"role":{"type":"string","maxLength":80}},"required":["fileBase64"],"additionalProperties":false}},"samples":{"maxItems":5000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"robotId":{"type":"string","maxLength":80},"topic":{"type":"string","maxLength":200},"at":{"type":"string","maxLength":40},"field":{"type":"string","maxLength":120},"value":{"type":"number","minimum":-1000000000000,"maximum":1000000000000},"unit":{"type":"string","maxLength":40},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"schemas":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"topic":{"type":"string","maxLength":200},"side":{"type":"string","enum":["left","right","a","b"]},"messageType":{"type":"string","maxLength":160},"fields":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":120},"type":{"type":"string","maxLength":80},"optional":{"type":"boolean"}},"additionalProperties":false}},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"cycles":{"maxItems":2000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"robotId":{"type":"string","maxLength":80},"workcellId":{"type":"string","maxLength":80},"startedAt":{"type":"string","maxLength":40},"endedAt":{"type":"string","maxLength":40},"durationSec":{"type":"number","minimum":0,"maximum":1000000},"program":{"type":"string","maxLength":160},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"downtime":{"maxItems":2000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"robotId":{"type":"string","maxLength":80},"workcellId":{"type":"string","maxLength":80},"startedAt":{"type":"string","maxLength":40},"endedAt":{"type":"string","maxLength":40},"durationSec":{"type":"number","minimum":0,"maximum":1000000000},"code":{"type":"string","maxLength":80},"message":{"type":"string","maxLength":400},"category":{"type":"string","maxLength":80},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"opcuaTags":{"maxItems":2000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"nodeId":{"type":"string","maxLength":200},"browseName":{"type":"string","maxLength":160},"displayName":{"type":"string","maxLength":160},"dataType":{"type":"string","maxLength":80},"path":{"type":"string","maxLength":300},"unit":{"type":"string","maxLength":40},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"plcAlarms":{"maxItems":2000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"controllerId":{"type":"string","maxLength":80},"at":{"type":"string","maxLength":40},"code":{"type":"string","maxLength":80},"message":{"type":"string","maxLength":400},"severity":{"type":"string","maxLength":40},"area":{"type":"string","maxLength":120},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"maintenance":{"maxItems":500,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"robotId":{"type":"string","maxLength":80},"component":{"type":"string","maxLength":160},"runtimeHours":{"type":"number","minimum":0,"maximum":1000000000},"cycleCount":{"type":"number","minimum":0,"maximum":1000000000},"intervalHours":{"type":"number","minimum":0,"maximum":1000000000},"intervalCycles":{"type":"number","minimum":0,"maximum":1000000000},"lastServiceAt":{"type":"string","maxLength":40},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"protocols":{"maxItems":100,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"name":{"type":"string","maxLength":120},"version":{"type":"string","maxLength":80},"role":{"type":"string","enum":["required","available","controller","device"]},"features":{"maxItems":40,"type":"array","items":{"type":"string","maxLength":80}},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"asOf":{"type":"string","maxLength":40}},"additionalProperties":false},"example":{"asOf":"2026-11-04T21:00:00.000Z","plcAlarms":[{"id":"A1","controllerId":"PLC1","at":"2026-11-01T11:00:00.000Z","code":"E101","message":"Door open","severity":"high","area":"Cell","source":"Caller-supplied"},{"id":"A2","controllerId":"PLC1","at":"2026-11-01T11:05:00.000Z","code":"E101","message":"Door open","severity":"high","area":"Cell","source":"Caller-supplied"}]}}}},"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"Fresh random 32-byte value encoded as 64 hexadecimal characters. Reuse unchanged only for retries of the same operation and request.","schema":{"type":"string","pattern":"^[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Illustrative endpoint-specific JSON response shape. Conditional fields depend on the result and data-source availability.","content":{"application/json":{"schema":{"type":"object","properties":{"checkedAt":{"type":"string"},"status":{"type":"string"},"clusterCount":{"type":"number"},"items":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"area":{"type":"string"},"severity":{"type":"string"},"eventCount":{"type":"number"},"controllers":{"type":"array","items":{"type":"string"}},"firstAt":{"type":"string"},"lastAt":{"type":"string"},"liveEquipmentConnected":{"type":"boolean"}},"additionalProperties":true}},"paidProviderUsed":{"type":"boolean"},"apiKeyRequired":{"type":"boolean"},"liveEquipmentConnected":{"type":"boolean"},"machineCommandsIssued":{"type":"boolean"},"findings":{"type":"array","items":{}},"limitations":{"type":"array","items":{"type":"string"}}},"additionalProperties":true},"example":{"checkedAt":"2026-11-04T21:00:00.000Z","status":"clustered","clusterCount":1,"items":[{"code":"E101","message":"Door open","area":"Cell","severity":"high","eventCount":2,"controllers":["PLC1"],"firstAt":"2026-11-01T11:00:00.000Z","lastAt":"2026-11-01T11:05:00.000Z","liveEquipmentConnected":false}],"paidProviderUsed":false,"apiKeyRequired":false,"liveEquipmentConnected":false,"machineCommandsIssued":false,"findings":[],"limitations":["ROS bag topic samples, schemas, cycles, downtime, OPC UA tags, PLC alarms, maintenance records, and protocol declarations are copied only from labeled fields or text/CSV/JSON exports supplied by the caller.","No live industrial equipment connection is opened and no machine commands are issued.","Binary .bag/.mcap files are not fully decoded here. Supply topic CSV/JSON exports or labeled sample rows. Missing values are not invented.","Anomaly, cycle-time, downtime, and maintenance estimates use only supplied measurements and intervals.","Protocol compatibility compares caller-supplied required versus available protocol names, versions, and features only. Protocol specifications are not invented."]}}}},"400":{"description":"Invalid JSON or request schema."},"402":{"description":"Payment Required"},"409":{"description":"Idempotency conflict, in-progress payment, or expired result cache. Reusing the key cannot trigger a second charge."},"413":{"description":"Request body exceeds the 24 MB limit."},"500":{"description":"Operation failed. With upfront settlement this may occur after payment; reuse the same idempotency key to retrieve the stored result."},"503":{"description":"Payment or retry-safe result storage is unavailable; the operation is not run."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.04"},"protocols":[{"x402":{}}]}}},"/api/v1/robotics-intelligence/maintenance-interval-estimate":{"post":{"operationId":"estimate_robot_maintenance_intervals","summary":"Estimate robot maintenance intervals","description":"Estimate remaining hours/cycles to caller-supplied maintenance intervals. OEM schedules are not invented.","tags":["robotics-intelligence"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"text":{"type":"string","maxLength":200000},"json":{"type":"string","maxLength":200000},"csv":{"type":"string","maxLength":200000},"file":{"type":"object","properties":{"filename":{"type":"string","minLength":1,"maxLength":180},"mediaType":{"type":"string","enum":["text/plain","text/csv","application/json","application/octet-stream"]},"fileBase64":{"type":"string","minLength":1,"maxLength":12000000},"role":{"type":"string","maxLength":80}},"required":["fileBase64"],"additionalProperties":false},"files":{"maxItems":20,"type":"array","items":{"type":"object","properties":{"filename":{"type":"string","minLength":1,"maxLength":180},"mediaType":{"type":"string","enum":["text/plain","text/csv","application/json","application/octet-stream"]},"fileBase64":{"type":"string","minLength":1,"maxLength":12000000},"role":{"type":"string","maxLength":80}},"required":["fileBase64"],"additionalProperties":false}},"samples":{"maxItems":5000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"robotId":{"type":"string","maxLength":80},"topic":{"type":"string","maxLength":200},"at":{"type":"string","maxLength":40},"field":{"type":"string","maxLength":120},"value":{"type":"number","minimum":-1000000000000,"maximum":1000000000000},"unit":{"type":"string","maxLength":40},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"schemas":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"topic":{"type":"string","maxLength":200},"side":{"type":"string","enum":["left","right","a","b"]},"messageType":{"type":"string","maxLength":160},"fields":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":120},"type":{"type":"string","maxLength":80},"optional":{"type":"boolean"}},"additionalProperties":false}},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"cycles":{"maxItems":2000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"robotId":{"type":"string","maxLength":80},"workcellId":{"type":"string","maxLength":80},"startedAt":{"type":"string","maxLength":40},"endedAt":{"type":"string","maxLength":40},"durationSec":{"type":"number","minimum":0,"maximum":1000000},"program":{"type":"string","maxLength":160},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"downtime":{"maxItems":2000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"robotId":{"type":"string","maxLength":80},"workcellId":{"type":"string","maxLength":80},"startedAt":{"type":"string","maxLength":40},"endedAt":{"type":"string","maxLength":40},"durationSec":{"type":"number","minimum":0,"maximum":1000000000},"code":{"type":"string","maxLength":80},"message":{"type":"string","maxLength":400},"category":{"type":"string","maxLength":80},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"opcuaTags":{"maxItems":2000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"nodeId":{"type":"string","maxLength":200},"browseName":{"type":"string","maxLength":160},"displayName":{"type":"string","maxLength":160},"dataType":{"type":"string","maxLength":80},"path":{"type":"string","maxLength":300},"unit":{"type":"string","maxLength":40},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"plcAlarms":{"maxItems":2000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"controllerId":{"type":"string","maxLength":80},"at":{"type":"string","maxLength":40},"code":{"type":"string","maxLength":80},"message":{"type":"string","maxLength":400},"severity":{"type":"string","maxLength":40},"area":{"type":"string","maxLength":120},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"maintenance":{"maxItems":500,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"robotId":{"type":"string","maxLength":80},"component":{"type":"string","maxLength":160},"runtimeHours":{"type":"number","minimum":0,"maximum":1000000000},"cycleCount":{"type":"number","minimum":0,"maximum":1000000000},"intervalHours":{"type":"number","minimum":0,"maximum":1000000000},"intervalCycles":{"type":"number","minimum":0,"maximum":1000000000},"lastServiceAt":{"type":"string","maxLength":40},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"protocols":{"maxItems":100,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"name":{"type":"string","maxLength":120},"version":{"type":"string","maxLength":80},"role":{"type":"string","enum":["required","available","controller","device"]},"features":{"maxItems":40,"type":"array","items":{"type":"string","maxLength":80}},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"asOf":{"type":"string","maxLength":40}},"additionalProperties":false},"example":{"asOf":"2026-11-04T21:00:00.000Z","maintenance":[{"id":"M1","robotId":"R1","component":"gearbox","runtimeHours":9800,"intervalHours":10000,"cycleCount":1200000,"intervalCycles":1500000,"lastServiceAt":"2025-01-01","source":"Caller-supplied"}]}}}},"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"Fresh random 32-byte value encoded as 64 hexadecimal characters. Reuse unchanged only for retries of the same operation and request.","schema":{"type":"string","pattern":"^[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Illustrative endpoint-specific JSON response shape. Conditional fields depend on the result and data-source availability.","content":{"application/json":{"schema":{"type":"object","properties":{"checkedAt":{"type":"string"},"status":{"type":"string"},"itemCount":{"type":"number"},"dueCount":{"type":"number"},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"robotId":{"type":"string"},"component":{"type":"string"},"runtimeHours":{"type":"number"},"runtimeHoursSupplied":{"type":"boolean"},"cycleCount":{"type":"number"},"cycleCountSupplied":{"type":"boolean"},"intervalHours":{"type":"number"},"intervalHoursSupplied":{"type":"boolean"},"intervalCycles":{"type":"number"},"intervalCyclesSupplied":{"type":"boolean"},"hoursRemaining":{"type":"number"},"hoursRemainingSupplied":{"type":"boolean"},"cyclesRemaining":{"type":"number"},"cyclesRemainingSupplied":{"type":"boolean"},"due":{"type":"boolean"},"dueSupplied":{"type":"boolean"},"lastServiceAt":{"type":"string"},"source":{"type":"string"},"liveEquipmentConnected":{"type":"boolean"},"machineCommandsIssued":{"type":"boolean"}},"additionalProperties":true}},"paidProviderUsed":{"type":"boolean"},"apiKeyRequired":{"type":"boolean"},"liveEquipmentConnected":{"type":"boolean"},"machineCommandsIssued":{"type":"boolean"},"findings":{"type":"array","items":{}},"limitations":{"type":"array","items":{"type":"string"}}},"additionalProperties":true},"example":{"checkedAt":"2026-11-04T21:00:00.000Z","status":"estimated","itemCount":1,"dueCount":0,"items":[{"id":"M1","robotId":"R1","component":"gearbox","runtimeHours":9800,"runtimeHoursSupplied":true,"cycleCount":1200000,"cycleCountSupplied":true,"intervalHours":10000,"intervalHoursSupplied":true,"intervalCycles":1500000,"intervalCyclesSupplied":true,"hoursRemaining":200,"hoursRemainingSupplied":true,"cyclesRemaining":300000,"cyclesRemainingSupplied":true,"due":false,"dueSupplied":true,"lastServiceAt":"2025-01-01","source":"Caller-supplied","liveEquipmentConnected":false,"machineCommandsIssued":false}],"paidProviderUsed":false,"apiKeyRequired":false,"liveEquipmentConnected":false,"machineCommandsIssued":false,"findings":[],"limitations":["ROS bag topic samples, schemas, cycles, downtime, OPC UA tags, PLC alarms, maintenance records, and protocol declarations are copied only from labeled fields or text/CSV/JSON exports supplied by the caller.","No live industrial equipment connection is opened and no machine commands are issued.","Binary .bag/.mcap files are not fully decoded here. Supply topic CSV/JSON exports or labeled sample rows. Missing values are not invented.","Anomaly, cycle-time, downtime, and maintenance estimates use only supplied measurements and intervals.","Protocol compatibility compares caller-supplied required versus available protocol names, versions, and features only. Protocol specifications are not invented."]}}}},"400":{"description":"Invalid JSON or request schema."},"402":{"description":"Payment Required"},"409":{"description":"Idempotency conflict, in-progress payment, or expired result cache. Reusing the key cannot trigger a second charge."},"413":{"description":"Request body exceeds the 24 MB limit."},"500":{"description":"Operation failed. With upfront settlement this may occur after payment; reuse the same idempotency key to retrieve the stored result."},"503":{"description":"Payment or retry-safe result storage is unavailable; the operation is not run."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.04"},"protocols":[{"x402":{}}]}}},"/api/v1/robotics-intelligence/protocol-compatibility-check":{"post":{"operationId":"check_industrial_protocol_compatibility","summary":"Check industrial protocol compatibility","description":"Compare caller-supplied required versus available industrial protocol names, versions, and features. Protocol specifications are not invented.","tags":["robotics-intelligence"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"text":{"type":"string","maxLength":200000},"json":{"type":"string","maxLength":200000},"csv":{"type":"string","maxLength":200000},"file":{"type":"object","properties":{"filename":{"type":"string","minLength":1,"maxLength":180},"mediaType":{"type":"string","enum":["text/plain","text/csv","application/json","application/octet-stream"]},"fileBase64":{"type":"string","minLength":1,"maxLength":12000000},"role":{"type":"string","maxLength":80}},"required":["fileBase64"],"additionalProperties":false},"files":{"maxItems":20,"type":"array","items":{"type":"object","properties":{"filename":{"type":"string","minLength":1,"maxLength":180},"mediaType":{"type":"string","enum":["text/plain","text/csv","application/json","application/octet-stream"]},"fileBase64":{"type":"string","minLength":1,"maxLength":12000000},"role":{"type":"string","maxLength":80}},"required":["fileBase64"],"additionalProperties":false}},"samples":{"maxItems":5000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"robotId":{"type":"string","maxLength":80},"topic":{"type":"string","maxLength":200},"at":{"type":"string","maxLength":40},"field":{"type":"string","maxLength":120},"value":{"type":"number","minimum":-1000000000000,"maximum":1000000000000},"unit":{"type":"string","maxLength":40},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"schemas":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"topic":{"type":"string","maxLength":200},"side":{"type":"string","enum":["left","right","a","b"]},"messageType":{"type":"string","maxLength":160},"fields":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":120},"type":{"type":"string","maxLength":80},"optional":{"type":"boolean"}},"additionalProperties":false}},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"cycles":{"maxItems":2000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"robotId":{"type":"string","maxLength":80},"workcellId":{"type":"string","maxLength":80},"startedAt":{"type":"string","maxLength":40},"endedAt":{"type":"string","maxLength":40},"durationSec":{"type":"number","minimum":0,"maximum":1000000},"program":{"type":"string","maxLength":160},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"downtime":{"maxItems":2000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"robotId":{"type":"string","maxLength":80},"workcellId":{"type":"string","maxLength":80},"startedAt":{"type":"string","maxLength":40},"endedAt":{"type":"string","maxLength":40},"durationSec":{"type":"number","minimum":0,"maximum":1000000000},"code":{"type":"string","maxLength":80},"message":{"type":"string","maxLength":400},"category":{"type":"string","maxLength":80},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"opcuaTags":{"maxItems":2000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"nodeId":{"type":"string","maxLength":200},"browseName":{"type":"string","maxLength":160},"displayName":{"type":"string","maxLength":160},"dataType":{"type":"string","maxLength":80},"path":{"type":"string","maxLength":300},"unit":{"type":"string","maxLength":40},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"plcAlarms":{"maxItems":2000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"controllerId":{"type":"string","maxLength":80},"at":{"type":"string","maxLength":40},"code":{"type":"string","maxLength":80},"message":{"type":"string","maxLength":400},"severity":{"type":"string","maxLength":40},"area":{"type":"string","maxLength":120},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"maintenance":{"maxItems":500,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"robotId":{"type":"string","maxLength":80},"component":{"type":"string","maxLength":160},"runtimeHours":{"type":"number","minimum":0,"maximum":1000000000},"cycleCount":{"type":"number","minimum":0,"maximum":1000000000},"intervalHours":{"type":"number","minimum":0,"maximum":1000000000},"intervalCycles":{"type":"number","minimum":0,"maximum":1000000000},"lastServiceAt":{"type":"string","maxLength":40},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"protocols":{"maxItems":100,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"name":{"type":"string","maxLength":120},"version":{"type":"string","maxLength":80},"role":{"type":"string","enum":["required","available","controller","device"]},"features":{"maxItems":40,"type":"array","items":{"type":"string","maxLength":80}},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"asOf":{"type":"string","maxLength":40}},"additionalProperties":false},"example":{"asOf":"2026-11-04T21:00:00.000Z","protocols":[{"id":"P1","name":"EtherNet/IP","version":"1.2","role":"required","features":["implicit","explicit"],"source":"Caller-supplied"},{"id":"P2","name":"EtherNet/IP","version":"1.2","role":"available","features":["implicit","explicit"],"source":"Caller-supplied"},{"id":"P3","name":"OPC UA","version":"1.04","role":"required","features":["subscriptions"],"source":"Caller-supplied"},{"id":"P4","name":"OPC UA","version":"1.03","role":"available","features":["subscriptions"],"source":"Caller-supplied"}]}}}},"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"Fresh random 32-byte value encoded as 64 hexadecimal characters. Reuse unchanged only for retries of the same operation and request.","schema":{"type":"string","pattern":"^[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Illustrative endpoint-specific JSON response shape. Conditional fields depend on the result and data-source availability.","content":{"application/json":{"schema":{"type":"object","properties":{"checkedAt":{"type":"string"},"status":{"type":"string"},"protocolCount":{"type":"number"},"compatibleCount":{"type":"number"},"items":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"requiredVersion":{"type":"string"},"availableVersion":{"type":"string"},"availableSupplied":{"type":"boolean"},"versionMatch":{"type":"boolean"},"missingFeatures":{"type":"array","items":{}},"compatible":{"type":"boolean"},"source":{"type":"string"},"liveEquipmentConnected":{"type":"boolean"},"machineCommandsIssued":{"type":"boolean"}},"additionalProperties":true}},"paidProviderUsed":{"type":"boolean"},"apiKeyRequired":{"type":"boolean"},"liveEquipmentConnected":{"type":"boolean"},"machineCommandsIssued":{"type":"boolean"},"findings":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string"},"code":{"type":"string"},"subject":{"type":"string"},"detail":{"type":"string"}},"additionalProperties":true}},"limitations":{"type":"array","items":{"type":"string"}}},"additionalProperties":true},"example":{"checkedAt":"2026-11-04T21:00:00.000Z","status":"checked","protocolCount":2,"compatibleCount":1,"items":[{"name":"EtherNet/IP","requiredVersion":"1.2","availableVersion":"1.2","availableSupplied":true,"versionMatch":true,"missingFeatures":[],"compatible":true,"source":"Caller-supplied","liveEquipmentConnected":false,"machineCommandsIssued":false},{"name":"OPC UA","requiredVersion":"1.04","availableVersion":"1.03","availableSupplied":true,"versionMatch":false,"missingFeatures":[],"compatible":false,"source":"Caller-supplied","liveEquipmentConnected":false,"machineCommandsIssued":false}],"paidProviderUsed":false,"apiKeyRequired":false,"liveEquipmentConnected":false,"machineCommandsIssued":false,"findings":[{"kind":"conflict","code":"protocol_mismatch","subject":"P3","detail":"Protocol OPC UA version/features differ between required and available declarations."}],"limitations":["ROS bag topic samples, schemas, cycles, downtime, OPC UA tags, PLC alarms, maintenance records, and protocol declarations are copied only from labeled fields or text/CSV/JSON exports supplied by the caller.","No live industrial equipment connection is opened and no machine commands are issued.","Binary .bag/.mcap files are not fully decoded here. Supply topic CSV/JSON exports or labeled sample rows. Missing values are not invented.","Anomaly, cycle-time, downtime, and maintenance estimates use only supplied measurements and intervals.","Protocol compatibility compares caller-supplied required versus available protocol names, versions, and features only. Protocol specifications are not invented."]}}}},"400":{"description":"Invalid JSON or request schema."},"402":{"description":"Payment Required"},"409":{"description":"Idempotency conflict, in-progress payment, or expired result cache. Reusing the key cannot trigger a second charge."},"413":{"description":"Request body exceeds the 24 MB limit."},"500":{"description":"Operation failed. With upfront settlement this may occur after payment; reuse the same idempotency key to retrieve the stored result."},"503":{"description":"Payment or retry-safe result storage is unavailable; the operation is not run."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.03"},"protocols":[{"x402":{}}]}}},"/api/v1/robotics-intelligence/workcell-performance-report":{"post":{"operationId":"build_robot_workcell_performance_report","summary":"Build robot workcell performance report","description":"Aggregate rosbag parse, schema diff, anomalies, cycle time, downtime, OPC UA tags, PLC alarms, maintenance, and protocol compatibility from caller-supplied records only.","tags":["robotics-intelligence"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"text":{"type":"string","maxLength":200000},"json":{"type":"string","maxLength":200000},"csv":{"type":"string","maxLength":200000},"file":{"type":"object","properties":{"filename":{"type":"string","minLength":1,"maxLength":180},"mediaType":{"type":"string","enum":["text/plain","text/csv","application/json","application/octet-stream"]},"fileBase64":{"type":"string","minLength":1,"maxLength":12000000},"role":{"type":"string","maxLength":80}},"required":["fileBase64"],"additionalProperties":false},"files":{"maxItems":20,"type":"array","items":{"type":"object","properties":{"filename":{"type":"string","minLength":1,"maxLength":180},"mediaType":{"type":"string","enum":["text/plain","text/csv","application/json","application/octet-stream"]},"fileBase64":{"type":"string","minLength":1,"maxLength":12000000},"role":{"type":"string","maxLength":80}},"required":["fileBase64"],"additionalProperties":false}},"samples":{"maxItems":5000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"robotId":{"type":"string","maxLength":80},"topic":{"type":"string","maxLength":200},"at":{"type":"string","maxLength":40},"field":{"type":"string","maxLength":120},"value":{"type":"number","minimum":-1000000000000,"maximum":1000000000000},"unit":{"type":"string","maxLength":40},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"schemas":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"topic":{"type":"string","maxLength":200},"side":{"type":"string","enum":["left","right","a","b"]},"messageType":{"type":"string","maxLength":160},"fields":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":120},"type":{"type":"string","maxLength":80},"optional":{"type":"boolean"}},"additionalProperties":false}},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"cycles":{"maxItems":2000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"robotId":{"type":"string","maxLength":80},"workcellId":{"type":"string","maxLength":80},"startedAt":{"type":"string","maxLength":40},"endedAt":{"type":"string","maxLength":40},"durationSec":{"type":"number","minimum":0,"maximum":1000000},"program":{"type":"string","maxLength":160},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"downtime":{"maxItems":2000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"robotId":{"type":"string","maxLength":80},"workcellId":{"type":"string","maxLength":80},"startedAt":{"type":"string","maxLength":40},"endedAt":{"type":"string","maxLength":40},"durationSec":{"type":"number","minimum":0,"maximum":1000000000},"code":{"type":"string","maxLength":80},"message":{"type":"string","maxLength":400},"category":{"type":"string","maxLength":80},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"opcuaTags":{"maxItems":2000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"nodeId":{"type":"string","maxLength":200},"browseName":{"type":"string","maxLength":160},"displayName":{"type":"string","maxLength":160},"dataType":{"type":"string","maxLength":80},"path":{"type":"string","maxLength":300},"unit":{"type":"string","maxLength":40},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"plcAlarms":{"maxItems":2000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"controllerId":{"type":"string","maxLength":80},"at":{"type":"string","maxLength":40},"code":{"type":"string","maxLength":80},"message":{"type":"string","maxLength":400},"severity":{"type":"string","maxLength":40},"area":{"type":"string","maxLength":120},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"maintenance":{"maxItems":500,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"robotId":{"type":"string","maxLength":80},"component":{"type":"string","maxLength":160},"runtimeHours":{"type":"number","minimum":0,"maximum":1000000000},"cycleCount":{"type":"number","minimum":0,"maximum":1000000000},"intervalHours":{"type":"number","minimum":0,"maximum":1000000000},"intervalCycles":{"type":"number","minimum":0,"maximum":1000000000},"lastServiceAt":{"type":"string","maxLength":40},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"protocols":{"maxItems":100,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"name":{"type":"string","maxLength":120},"version":{"type":"string","maxLength":80},"role":{"type":"string","enum":["required","available","controller","device"]},"features":{"maxItems":40,"type":"array","items":{"type":"string","maxLength":80}},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"asOf":{"type":"string","maxLength":40}},"additionalProperties":false},"example":{"asOf":"2026-11-04T21:00:00.000Z","samples":[{"id":"S1","robotId":"R1","topic":"/joint_states","at":"2026-11-01T10:00:00.000Z","field":"position[0]","value":0.12,"unit":"rad","source":"Caller-supplied bag export"},{"id":"S2","robotId":"R1","topic":"/joint_states","at":"2026-11-01T10:00:01.000Z","field":"position[0]","value":0.13,"unit":"rad","source":"Caller-supplied bag export"},{"id":"S3","robotId":"R1","topic":"/tcp_force","at":"2026-11-01T10:00:00.000Z","field":"force_z","value":12,"unit":"N","source":"Caller-supplied bag export"}],"schemas":[{"id":"A1","topic":"/joint_states","side":"left","messageType":"sensor_msgs/JointState","fields":[{"name":"position","type":"float64[]"},{"name":"velocity","type":"float64[]"}],"source":"Caller-supplied"},{"id":"B1","topic":"/joint_states","side":"right","messageType":"sensor_msgs/JointState","fields":[{"name":"position","type":"float64[]"},{"name":"effort","type":"float64[]"}],"source":"Caller-supplied"}],"cycles":[{"id":"C1","robotId":"R1","workcellId":"WC1","startedAt":"2026-11-01T10:00:00.000Z","endedAt":"2026-11-01T10:00:45.000Z","program":"pick_place","source":"Caller-supplied"},{"id":"C2","robotId":"R1","workcellId":"WC1","startedAt":"2026-11-01T10:01:00.000Z","endedAt":"2026-11-01T10:01:50.000Z","program":"pick_place","source":"Caller-supplied"}],"downtime":[{"id":"D1","robotId":"R1","workcellId":"WC1","startedAt":"2026-11-01T11:00:00.000Z","endedAt":"2026-11-01T11:15:00.000Z","code":"ESTOP","message":"Operator e-stop","source":"Caller-supplied"},{"id":"D2","robotId":"R1","workcellId":"WC1","startedAt":"2026-11-01T12:00:00.000Z","durationSec":300,"code":"SERVO01","message":"Servo overtemperature","source":"Caller-supplied"}],"opcuaTags":[{"id":"T1","nodeId":"ns=2;s=Robot1.Speed","browseName":"Speed","displayName":"Robot Speed","dataType":"Double","path":"Robot1/Speed","unit":"mm/s","source":"Caller-supplied export"}],"plcAlarms":[{"id":"A1","controllerId":"PLC1","at":"2026-11-01T11:00:00.000Z","code":"E101","message":"Door open","severity":"high","area":"Cell","source":"Caller-supplied"},{"id":"A2","controllerId":"PLC1","at":"2026-11-01T11:05:00.000Z","code":"E101","message":"Door open","severity":"high","area":"Cell","source":"Caller-supplied"}],"maintenance":[{"id":"M1","robotId":"R1","component":"gearbox","runtimeHours":9800,"intervalHours":10000,"cycleCount":1200000,"intervalCycles":1500000,"lastServiceAt":"2025-01-01","source":"Caller-supplied"}],"protocols":[{"id":"P1","name":"EtherNet/IP","version":"1.2","role":"required","features":["implicit","explicit"],"source":"Caller-supplied"},{"id":"P2","name":"EtherNet/IP","version":"1.2","role":"available","features":["implicit","explicit"],"source":"Caller-supplied"},{"id":"P3","name":"OPC UA","version":"1.04","role":"required","features":["subscriptions"],"source":"Caller-supplied"},{"id":"P4","name":"OPC UA","version":"1.03","role":"available","features":["subscriptions"],"source":"Caller-supplied"}]}}}},"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"Fresh random 32-byte value encoded as 64 hexadecimal characters. Reuse unchanged only for retries of the same operation and request.","schema":{"type":"string","pattern":"^[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Illustrative endpoint-specific JSON response shape. Conditional fields depend on the result and data-source availability.","content":{"application/json":{"schema":{"type":"object","properties":{"checkedAt":{"type":"string"},"status":{"type":"string"},"asOf":{"type":"string"},"sections":{"type":"object","properties":{"rosbag":{"type":"object","properties":{"topicCount":{"type":"number"},"sampleCount":{"type":"number"}},"additionalProperties":true},"schemaDiff":{"type":"object","properties":{"topicCount":{"type":"number"}},"additionalProperties":true},"anomalies":{"type":"object","properties":{"seriesCount":{"type":"number"},"anomalyCount":{"type":"number"}},"additionalProperties":true},"cycleTime":{"type":"object","properties":{"groupCount":{"type":"number"}},"additionalProperties":true},"downtime":{"type":"object","properties":{"causeCount":{"type":"number"}},"additionalProperties":true},"opcua":{"type":"object","properties":{"tagCount":{"type":"number"}},"additionalProperties":true},"plcAlarms":{"type":"object","properties":{"clusterCount":{"type":"number"}},"additionalProperties":true},"maintenance":{"type":"object","properties":{"itemCount":{"type":"number"},"dueCount":{"type":"number"}},"additionalProperties":true},"protocols":{"type":"object","properties":{"protocolCount":{"type":"number"},"compatibleCount":{"type":"number"}},"additionalProperties":true}},"additionalProperties":true},"liveEquipmentConnected":{"type":"boolean"},"machineCommandsIssued":{"type":"boolean"},"paidProviderUsed":{"type":"boolean"},"apiKeyRequired":{"type":"boolean"},"findings":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string"},"code":{"type":"string"},"subject":{"type":"string"},"detail":{"type":"string"}},"additionalProperties":true}},"limitations":{"type":"array","items":{"type":"string"}}},"additionalProperties":true},"example":{"checkedAt":"2026-11-04T21:00:00.000Z","status":"reported","asOf":"2026-11-04T21:00:00.000Z","sections":{"rosbag":{"topicCount":2,"sampleCount":3},"schemaDiff":{"topicCount":1},"anomalies":{"seriesCount":2,"anomalyCount":0},"cycleTime":{"groupCount":1},"downtime":{"causeCount":2},"opcua":{"tagCount":1},"plcAlarms":{"clusterCount":1},"maintenance":{"itemCount":1,"dueCount":0},"protocols":{"protocolCount":2,"compatibleCount":1}},"liveEquipmentConnected":false,"machineCommandsIssued":false,"paidProviderUsed":false,"apiKeyRequired":false,"findings":[{"kind":"conflict","code":"schema_diff","subject":"/joint_states","detail":"Caller-supplied left/right topic schemas differ."},{"kind":"missing","code":"anomaly_sample","subject":"r1|/tcp_force|force_z","detail":"Fewer than three numeric samples were available for anomaly detection on this series."},{"kind":"conflict","code":"protocol_mismatch","subject":"P3","detail":"Protocol OPC UA version/features differ between required and available declarations."}],"limitations":["ROS bag topic samples, schemas, cycles, downtime, OPC UA tags, PLC alarms, maintenance records, and protocol declarations are copied only from labeled fields or text/CSV/JSON exports supplied by the caller.","No live industrial equipment connection is opened and no machine commands are issued.","Binary .bag/.mcap files are not fully decoded here. Supply topic CSV/JSON exports or labeled sample rows. Missing values are not invented.","Anomaly, cycle-time, downtime, and maintenance estimates use only supplied measurements and intervals.","Protocol compatibility compares caller-supplied required versus available protocol names, versions, and features only. Protocol specifications are not invented."]}}}},"400":{"description":"Invalid JSON or request schema."},"402":{"description":"Payment Required"},"409":{"description":"Idempotency conflict, in-progress payment, or expired result cache. Reusing the key cannot trigger a second charge."},"413":{"description":"Request body exceeds the 24 MB limit."},"500":{"description":"Operation failed. With upfront settlement this may occur after payment; reuse the same idempotency key to retrieve the stored result."},"503":{"description":"Payment or retry-safe result storage is unavailable; the operation is not run."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.08"},"protocols":[{"x402":{}}]}}}},"components":{"schemas":{"ApiError":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{}}}}}}}}