Weather decision APIs for cooling, coating and HVAC

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.

APIs

Data-Center Cooling API

When outdoor air meets your free-cooling limits.

/api/v1/decisions/data-center-cooling Try it free

Industrial Coating Weather API

Painting windows by temperature, humidity, dew point, rain and wind.

/api/v1/decisions/industrial-coating Try it free

HVAC Economizer API

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.

Try it free

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.

Your limits
Your costs (optional)

Fill in all of these for a financial estimate. Nothing is assumed.

Results appear here.

JSON response
{}
Same request with cURL

Pay per decision with x402

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);

Reference

Each API: limits, sample response and limitations
Request
FieldRequiredMeaning
latitude, longitudeYesA point in the NOAA/NWS forecast area.
unitsYesus (°F, mph, in, BTU/lb) or si (°C, m/s, mm, kJ/kg), for limits and results.
thresholdsYesAt least one limit. Only limits you send are checked; unknown names are refused.
horizon_hoursNoHours to check, 1 to 168. Default 72.
min_window_hoursNoShortest run of qualifying hours to report. Default 1.
include_hourlyNoAlso return each hour's result.
financialNoYour own costs and assumptions, all required together. Listed under each API.
Response
FieldMeaning
summaryThe result in one sentence.
recommendationaction, risk_level and reasoning. Low confidence always gives verify_before_acting.
confidencehigh, medium or low, by published rules, with the factors that applied. Not a probability.
forecast_validityIssue time, period covered, when to treat as stale and when to check again.
financial_impactAn estimate from your financial inputs and the formula used. Never estimated without them.
eligibility.statuseligible_now, eligible_later or not_eligible.
windowsQualifying periods in UTC, with the range of conditions in each.
violationsEach broken limit: hours affected, first and last time, worst value.
data_qualitygood or degraded, forecast age, coverage and calculation methods.
scopeWhat was not evaluated. safety_determination is always false.
Payment flow
  1. POST your request. A valid request, or an empty POST, returns 402 with a base64 PAYMENT-REQUIRED header.
  2. Sign the x402 v2 exact payment it describes.
  3. Repeat the request with the PAYMENT-SIGNATURE header.
  4. Receive 200 and a PAYMENT-RESPONSE header. If settlement can't be confirmed, the decision is withheld until it is.
  5. Lost the reply, or settlement unconfirmed? Resend the identical signed request within 15 minutes. You get the same decision with no second charge. Don't sign a new payment until then.
Errors
StatusMeaning
400Invalid field, listed in error.details, with a working example in usage.
402Payment needed or refused.
422No NOAA/NWS forecast for these coordinates.
429Rate limited. See Retry-After.
503NOAA/NWS or the payment service is unavailable, the forecast is stale or incomplete, or paid requests are closed.

These responses do not charge you.