{"uid":"cap_lcpmOhMe1bGqMKFPWfdWF","slug":"ot-intel-api-physics-invariant-reachability-check-13189bbf","name":"OT Intel API – Physics Invariant Reachability Check","description":"Checks whether a tank/vessel reported level change is physically consistent with its metered flow-in/flow-out via conservation of mass. Pass asset_id, flow_in, flow_out, level_start, level_end, dt_seconds (>0), tank_area (>0), optional noise_floor (default 0.5). Fully deterministic, no LLM, no trained model. Inspired by Barbhaya et al. 2025 physical-invariant residual check — flags inconsistency and direction, does not assert a specific cause.","url":"https://ot-intel-api.onrender.com/ot/physics/invariant-reachability","method":"GET","headers":{},"bodySchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["input"],"properties":{"input":{"type":"object","required":["type","method"],"properties":{"type":{"type":"string","const":"http"},"method":{"enum":["GET"],"type":"string"},"queryParams":{"type":"object","required":["asset_id","flow_in","flow_out","level_start","level_end","dt_seconds","tank_area"],"properties":{"flow_in":{"type":"string","description":"Metered inflow rate (numeric string)"},"asset_id":{"type":"string","description":"Identifier for the tank/vessel being checked"},"flow_out":{"type":"string","description":"Metered outflow rate (numeric string)"},"level_end":{"type":"string","description":"Level reading at end of interval (numeric string)"},"tank_area":{"type":"string","description":"Cross-sectional area, must be > 0 (numeric string)"},"dt_seconds":{"type":"string","description":"Interval duration in seconds, must be > 0 (numeric string)"},"level_start":{"type":"string","description":"Level reading at start of interval (numeric string)"},"noise_floor":{"type":"string","description":"Residual magnitude below which reading is treated as consistent, default 0.5 (numeric string)"}}}},"additionalProperties":false},"output":{"type":"object","required":["type"],"properties":{"type":{"type":"string"},"example":{"type":"object"}}}}},"responseSchema":null,"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.2","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"probe","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.2/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.2","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.2","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_VAvqS0UHLrDzZ7hKwWkjJ","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.2","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Validates whether a tank or vessel's reported level change is physically consistent with its metered inflow and outflow using conservation of mass.","exampleAgentPrompt":"Check if the level change on tank T-201 is physically consistent: it started at 3.2m and ended at 4.1m over 600 seconds, with a metered inflow of 0.5 m³/s and outflow of 0.1 m³/s, and the tank cross-sectional area is 10 m²—flag any inconsistency.","exampleUseCases":[{"title":"SCADA sensor anomaly detection","prompt":"Tank FT-09 at our refinery shows a level jump from 2.0m to 3.8m over 900 seconds with flow_in of 0.3 m³/s, flow_out of 0.05 m³/s, and a cross-section of 8 m². Does the physics check out, or is something off with the sensor?"},{"title":"ICS cybersecurity incident triage","prompt":"We're investigating a possible spoofed reading on vessel V-77. The level went from 5.0m to 5.9m in 300 seconds, inflow was 0.2 m³/s, outflow was 0.15 m³/s, tank area is 6 m². Can you run a physical invariant check and tell me if the numbers are consistent?"},{"title":"Automated OT SOC alerting pipeline","prompt":"As part of our SOC pipeline, check the mass balance for asset TANK-42: level_start 1.5m, level_end 1.6m, flow_in 0.1 m³/s, flow_out 0.08 m³/s, interval 120 seconds, tank area 5 m². Use a noise floor of 0.3 and flag if there's a directional inconsistency."}],"resultDescription":"Returns a consistency flag indicating whether the reported level change is physically consistent with the metered flows, along with the computed residual value, the direction of any inconsistency (e.g. unexpected gain or loss), and the asset_id that was checked.","failureModes":["Missing required parameters (asset_id, flow_in, flow_out, level_start, level_end, dt_seconds, tank_area) returns a 400 error","dt_seconds <= 0 or tank_area <= 0 returns a validation error","Non-numeric string values for numeric fields cause a parse error","Payment not included or insufficient results in a 402 Payment Required response","Service temporarily unavailable on Render cold-start (503 or timeout)"],"whenToPreferThis":"Choose this endpoint when you need a fast, deterministic, physics-based sanity check on industrial tank or vessel sensor readings — especially in OT/ICS/SCADA environments where you want to flag level changes that are inconsistent with conservation of mass without relying on any ML model or LLM. It is ideal for automated SOC pipelines, sensor anomaly triage, and cybersecurity incident investigation involving spoofed or faulty level readings.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-09-14T12:56:49.819Z","isFirstParty":false}