Data-Center Cooling API
When outdoor air meets your free-cooling limits.
/api/v1/decisions/data-center-cooling
Try it free
Send a location and your limits. Get the hours that qualify, a recommended action, what rules out the rest and how reliable the NOAA/NWS forecast data is. Built for developers and AI agents.
When outdoor air meets your free-cooling limits.
/api/v1/decisions/data-center-cooling
Try it free
Painting windows by temperature, humidity, dew point, rain and wind.
/api/v1/decisions/industrial-coating
Try it free
When outdoor air meets your economizer limits, including enthalpy.
/api/v1/decisions/hvac-economizer
Try it free
Forecast screening from NOAA/NWS, not a measurement or a safety determination. Missing values are reported as missing, never estimated.
A free demonstration on the live NOAA/NWS forecast, up to 48 hours ahead. The scenarios use sample limits, so enter your own before relying on a result.
Results appear here.
{}An x402 client pays and retries for you. Fund its wallet with USDC on Base; callers must be in the United States.
import { wrapFetchWithPaymentFromConfig } from "@x402/fetch";
import { ExactEvmScheme } from "@x402/evm";
import { privateKeyToAccount } from "viem/accounts";
const account = privateKeyToAccount(process.env.AGENT_PRIVATE_KEY);
const pay = wrapFetchWithPaymentFromConfig(fetch, {
schemes: [{ network: "eip155:8453", client: new ExactEvmScheme(account) }],
});
const res = await pay("https://orbitaloverview.com/api/v1/decisions/data-center-cooling", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
latitude: 39.0438,
longitude: -77.4874,
units: "us",
thresholds: { max_dry_bulb: 65, max_dew_point: 59 },
}),
});
console.log((await res.json()).summary);
| Field | Required | Meaning |
|---|---|---|
latitude, longitude | Yes | A point in the NOAA/NWS forecast area. |
units | Yes | us (°F, mph, in, BTU/lb) or si (°C, m/s, mm, kJ/kg), for limits and results. |
thresholds | Yes | At least one limit. Only limits you send are checked; unknown names are refused. |
horizon_hours | No | Hours to check, 1 to 168. Default 72. |
min_window_hours | No | Shortest run of qualifying hours to report. Default 1. |
include_hourly | No | Also return each hour's result. |
financial | No | Your own costs and assumptions, all required together. Listed under each API. |
| Field | Meaning |
|---|---|
summary | The result in one sentence. |
recommendation | action, risk_level and reasoning. Low confidence always gives verify_before_acting. |
confidence | high, medium or low, by published rules, with the factors that applied. Not a probability. |
forecast_validity | Issue time, period covered, when to treat as stale and when to check again. |
financial_impact | An estimate from your financial inputs and the formula used. Never estimated without them. |
eligibility.status | eligible_now, eligible_later or not_eligible. |
windows | Qualifying periods in UTC, with the range of conditions in each. |
violations | Each broken limit: hours affected, first and last time, worst value. |
data_quality | good or degraded, forecast age, coverage and calculation methods. |
scope | What was not evaluated. safety_determination is always false. |
402 with a base64 PAYMENT-REQUIRED header.exact payment it describes.PAYMENT-SIGNATURE header.200 and a PAYMENT-RESPONSE header. If settlement can't be confirmed, the decision is withheld until it is.| Status | Meaning |
|---|---|
| 400 | Invalid field, listed in error.details, with a working example in usage. |
| 402 | Payment needed or refused. |
| 422 | No NOAA/NWS forecast for these coordinates. |
| 429 | Rate limited. See Retry-After. |
| 503 | NOAA/NWS or the payment service is unavailable, the forecast is stale or incomplete, or paid requests are closed. |
These responses do not charge you.