{"openapi":"3.1.0","info":{"title":"Space & Satellite Intelligence API","version":"1.0.0","description":"Predict satellite passes, detect orbit changes, screen conjunctions, compare earth-observation metadata, assess cloud cover and image quality, extract imagery license metadata, analyze launch-window weather, compare space-object catalogs, and build observation evidence reports—using caller-supplied records plus optional key-free CelesTrak GP and Open-Meteo data. 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/space-intelligence/satellite-pass-predict":{"post":{"operationId":"predict_satellite_passes","summary":"Predict satellite passes","description":"Predict approximate satellite passes over caller-supplied observers from TLEs (or optional key-free CelesTrak GP). Uses simplified Keplerian propagation; communicate orbital uncertainty and TLE freshness.","tags":["space-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}},"tles":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"name":{"type":"string","maxLength":160},"noradId":{"type":"string","maxLength":20},"line1":{"type":"string","maxLength":120},"line2":{"type":"string","maxLength":120},"text":{"type":"string","maxLength":400},"epoch":{"type":"string","maxLength":40},"source":{"type":"string","maxLength":200},"side":{"type":"string","enum":["before","after","left","right","a","b"]}},"additionalProperties":false}},"observers":{"maxItems":50,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"name":{"type":"string","maxLength":160},"latitudeDeg":{"type":"number","minimum":-90,"maximum":90},"longitudeDeg":{"type":"number","minimum":-180,"maximum":180},"altitudeKm":{"type":"number","minimum":-1,"maximum":20},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"images":{"maxItems":500,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"sceneId":{"type":"string","maxLength":120},"satellite":{"type":"string","maxLength":120},"capturedAt":{"type":"string","maxLength":40},"lat":{"type":"number","minimum":-90,"maximum":90},"lon":{"type":"number","minimum":-180,"maximum":180},"cloudCoverPct":{"type":"number","minimum":0,"maximum":100},"sharpness":{"type":"number","minimum":0,"maximum":1000000},"snr":{"type":"number","minimum":0,"maximum":1000000},"resolutionM":{"type":"number","minimum":0,"maximum":1000000},"license":{"type":"string","maxLength":200},"attribution":{"type":"string","maxLength":400},"licenseUrl":{"type":"string","maxLength":400},"side":{"type":"string","enum":["before","after","left","right","a","b"]},"ndvi":{"type":"number","minimum":-1,"maximum":1},"brightness":{"type":"number","minimum":0,"maximum":1000000},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"weather":{"maxItems":500,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"at":{"type":"string","maxLength":40},"latitudeDeg":{"type":"number","minimum":-90,"maximum":90},"longitudeDeg":{"type":"number","minimum":-180,"maximum":180},"cloudCoverPct":{"type":"number","minimum":0,"maximum":100},"windSpeedMs":{"type":"number","minimum":0,"maximum":200},"precipitationMm":{"type":"number","minimum":0,"maximum":1000},"visibilityKm":{"type":"number","minimum":0,"maximum":200},"thunderRisk":{"type":"boolean"},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"catalogObjects":{"maxItems":2000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"noradId":{"type":"string","maxLength":20},"name":{"type":"string","maxLength":160},"objectType":{"type":"string","maxLength":80},"inclinationDeg":{"type":"number","minimum":0,"maximum":180},"periodMin":{"type":"number","minimum":0,"maximum":100000},"eccentricity":{"type":"number","minimum":0,"maximum":1},"side":{"type":"string","enum":["left","right","a","b"]},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"celestrak":{"type":"object","properties":{"catnr":{"type":"string","maxLength":20},"group":{"type":"string","maxLength":80},"name":{"type":"string","maxLength":160},"limit":{"type":"integer","minimum":1,"maximum":50}},"additionalProperties":false},"openMeteo":{"type":"object","properties":{"latitudeDeg":{"type":"number","minimum":-90,"maximum":90},"longitudeDeg":{"type":"number","minimum":-180,"maximum":180},"start":{"type":"string","maxLength":40},"hours":{"type":"integer","minimum":1,"maximum":168}},"required":["latitudeDeg","longitudeDeg"],"additionalProperties":false},"asOf":{"type":"string","maxLength":40},"horizonHours":{"type":"number","minimum":1,"maximum":168},"minElevationDeg":{"type":"number","minimum":0,"maximum":90},"stepMinutes":{"type":"number","minimum":0.5,"maximum":60},"conjunctionThresholdKm":{"type":"number","minimum":0.1,"maximum":10000}},"additionalProperties":false},"example":{"asOf":"2026-11-04T21:00:00.000Z","horizonHours":48,"minElevationDeg":5,"stepMinutes":1,"tles":[{"name":"ISS (ZARYA)","line1":"1 25544U 98067A   26308.36953014  .00005228  00000+0  10236-3 0  9991","line2":"2 25544  51.6329 326.3987 0007186 346.7494  13.3304 15.49173979593483","source":"Caller-supplied CelesTrak snapshot"}],"observers":[{"id":"OBS1","name":"Austin","latitudeDeg":30.27,"longitudeDeg":-97.74,"altitudeKm":0.2,"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"},"passCount":{"type":"number"},"satelliteCount":{"type":"number"},"observerCount":{"type":"number"},"horizonHours":{"type":"number"},"minElevationDeg":{"type":"number"},"items":{"type":"array","items":{"type":"object","properties":{"satellite":{"type":"string"},"noradId":{"type":"string"},"observerId":{"type":"string"},"observerName":{"type":"string"},"startAt":{"type":"string"},"maxAt":{"type":"string"},"endAt":{"type":"string"},"durationSec":{"type":"number"},"maxElevationDeg":{"type":"number"},"startAzimuthDeg":{"type":"number"},"maxAzimuthDeg":{"type":"number"},"tleEpoch":{"type":"string"},"tleEpochAgeHours":{"type":"number"},"uncertaintyNote":{"type":"string"},"source":{"type":"string"}},"additionalProperties":true}},"paidProviderUsed":{"type":"boolean"},"apiKeyRequired":{"type":"boolean"},"commercialImageryUsed":{"type":"boolean"},"paidOrbitalApiUsed":{"type":"boolean"},"celestrakFetched":{"type":"boolean"},"openMeteoFetched":{"type":"boolean"},"orbitalModel":{"type":"string"},"orbitalUncertaintyNote":{"type":"string"},"findings":{"type":"array","items":{}},"limitations":{"type":"array","items":{"type":"string"}}},"additionalProperties":true},"example":{"checkedAt":"2026-11-04T21:00:00.000Z","status":"predicted","passCount":10,"satelliteCount":1,"observerCount":1,"horizonHours":48,"minElevationDeg":5,"items":[{"satellite":"ISS (ZARYA)","noradId":"25544","observerId":"OBS1","observerName":"Austin","startAt":"2026-11-05T02:00:00.000Z","maxAt":"2026-11-05T02:03:00.000Z","endAt":"2026-11-05T02:06:00.000Z","durationSec":360,"maxElevationDeg":12.9139,"startAzimuthDeg":347.2848,"maxAzimuthDeg":296.2249,"tleEpoch":"2026-11-04T08:52:07.404Z","tleEpochAgeHours":12.1313,"uncertaintyNote":"Approximate Keplerian pass; not SGP4-validated.","source":"Caller-supplied CelesTrak snapshot"},{"satellite":"ISS (ZARYA)","noradId":"25544","observerId":"OBS1","observerName":"Austin","startAt":"2026-11-05T03:35:00.000Z","maxAt":"2026-11-05T03:39:00.000Z","endAt":"2026-11-05T03:44:00.000Z","durationSec":540,"maxElevationDeg":37.6255,"startAzimuthDeg":62.974,"maxAzimuthDeg":135.4374,"tleEpoch":"2026-11-04T08:52:07.404Z","tleEpochAgeHours":12.1313,"uncertaintyNote":"Approximate Keplerian pass; not SGP4-validated.","source":"Caller-supplied CelesTrak snapshot"},{"satellite":"ISS (ZARYA)","noradId":"25544","observerId":"OBS1","observerName":"Austin","startAt":"2026-11-05T05:17:00.000Z","maxAt":"2026-11-05T05:17:00.000Z","endAt":"2026-11-05T05:18:00.000Z","durationSec":60,"maxElevationDeg":5.0303,"startAzimuthDeg":159.5302,"maxAzimuthDeg":159.5302,"tleEpoch":"2026-11-04T08:52:07.404Z","tleEpochAgeHours":12.1313,"uncertaintyNote":"Approximate Keplerian pass; not SGP4-validated.","source":"Caller-supplied CelesTrak snapshot"},{"satellite":"ISS (ZARYA)","noradId":"25544","observerId":"OBS1","observerName":"Austin","startAt":"2026-11-05T10:09:00.000Z","maxAt":"2026-11-05T10:12:00.000Z","endAt":"2026-11-05T10:16:00.000Z","durationSec":420,"maxElevationDeg":14.4754,"startAzimuthDeg":164.3961,"maxAzimuthDeg":209.5259,"tleEpoch":"2026-11-04T08:52:07.404Z","tleEpochAgeHours":12.1313,"uncertaintyNote":"Approximate Keplerian pass; not SGP4-validated.","source":"Caller-supplied CelesTrak snapshot"},{"satellite":"ISS (ZARYA)","noradId":"25544","observerId":"OBS1","observerName":"Austin","startAt":"2026-11-05T11:46:00.000Z","maxAt":"2026-11-05T11:49:00.000Z","endAt":"2026-11-05T11:54:00.000Z","durationSec":480,"maxElevationDeg":45.022,"startAzimuthDeg":123.5105,"maxAzimuthDeg":64.6772,"tleEpoch":"2026-11-04T08:52:07.404Z","tleEpochAgeHours":12.1313,"uncertaintyNote":"Approximate Keplerian pass; not SGP4-validated.","source":"Caller-supplied CelesTrak snapshot"},{"satellite":"ISS (ZARYA)","noradId":"25544","observerId":"OBS1","observerName":"Austin","startAt":"2026-11-06T02:48:00.000Z","maxAt":"2026-11-06T02:52:00.000Z","endAt":"2026-11-06T02:56:00.000Z","durationSec":480,"maxElevationDeg":54.0442,"startAzimuthDeg":32.8965,"maxAzimuthDeg":278.0121,"tleEpoch":"2026-11-04T08:52:07.404Z","tleEpochAgeHours":12.1313,"uncertaintyNote":"Approximate Keplerian pass; not SGP4-validated.","source":"Caller-supplied CelesTrak snapshot"},{"satellite":"ISS (ZARYA)","noradId":"25544","observerId":"OBS1","observerName":"Austin","startAt":"2026-11-06T04:26:00.000Z","maxAt":"2026-11-06T04:29:00.000Z","endAt":"2026-11-06T04:32:00.000Z","durationSec":360,"maxElevationDeg":12.213,"startAzimuthDeg":103.7579,"maxAzimuthDeg":152.2587,"tleEpoch":"2026-11-04T08:52:07.404Z","tleEpochAgeHours":12.1313,"uncertaintyNote":"Approximate Keplerian pass; not SGP4-validated.","source":"Caller-supplied CelesTrak snapshot"},{"satellite":"ISS (ZARYA)","noradId":"25544","observerId":"OBS1","observerName":"Austin","startAt":"2026-11-06T09:23:00.000Z","maxAt":"2026-11-06T09:24:00.000Z","endAt":"2026-11-06T09:26:00.000Z","durationSec":180,"maxElevationDeg":6.161,"startAzimuthDeg":188.0972,"maxAzimuthDeg":201.8341,"tleEpoch":"2026-11-04T08:52:07.404Z","tleEpochAgeHours":12.1313,"uncertaintyNote":"Approximate Keplerian pass; not SGP4-validated.","source":"Caller-supplied CelesTrak snapshot"},{"satellite":"ISS (ZARYA)","noradId":"25544","observerId":"OBS1","observerName":"Austin","startAt":"2026-11-06T10:58:00.000Z","maxAt":"2026-11-06T11:02:00.000Z","endAt":"2026-11-06T11:07:00.000Z","durationSec":540,"maxElevationDeg":46.9384,"startAzimuthDeg":145.1882,"maxAzimuthDeg":232.6455,"tleEpoch":"2026-11-04T08:52:07.404Z","tleEpochAgeHours":12.1313,"uncertaintyNote":"Approximate Keplerian pass; not SGP4-validated.","source":"Caller-supplied CelesTrak snapshot"},{"satellite":"ISS (ZARYA)","noradId":"25544","observerId":"OBS1","observerName":"Austin","startAt":"2026-11-06T12:36:00.000Z","maxAt":"2026-11-06T12:38:00.000Z","endAt":"2026-11-06T12:42:00.000Z","durationSec":360,"maxElevationDeg":10.7379,"startAzimuthDeg":90.9712,"maxAzimuthDeg":60.835,"tleEpoch":"2026-11-04T08:52:07.404Z","tleEpochAgeHours":12.1313,"uncertaintyNote":"Approximate Keplerian pass; not SGP4-validated.","source":"Caller-supplied CelesTrak snapshot"}],"paidProviderUsed":false,"apiKeyRequired":false,"commercialImageryUsed":false,"paidOrbitalApiUsed":false,"celestrakFetched":false,"openMeteoFetched":false,"orbitalModel":"simplified-keplerian-from-tle-mean-elements","orbitalUncertaintyNote":"Positions and pass times are approximate. Simplified Keplerian propagation from TLE mean elements omits drag and perturbation modeling used by SGP4. Uncertainty grows with element age.","findings":[],"limitations":["Orbital elements, observers, imagery metadata, weather rows, and catalog objects are copied only from labeled fields supplied by the caller, or from key-free CelesTrak GP / Open-Meteo responses when explicitly requested.","No commercial satellite imagery provider or paid orbital API is used and no API key is required.","Pass and conjunction geometry use a simplified Keplerian propagator from TLE mean elements, not full SGP4/SDP4. Treat timing and miss-distance values as approximate and communicate residual orbital uncertainty.","TLE freshness is reported from the element epoch when parseable. Stale elements increase positional uncertainty.","Earth-observation change, cloud, quality, and license results use only caller-supplied image metadata/statistics. Pixels are not downloaded from commercial archives."]}}}},"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.05"},"protocols":[{"x402":{}}]}}},"/api/v1/space-intelligence/satellite-orbit-change-detect":{"post":{"operationId":"detect_satellite_orbit_changes","summary":"Detect satellite orbit changes","description":"Compare before/after TLE mean elements for inclination, RAAN, mean motion, and apogee/perigee deltas. Maneuver confirmation is not claimed.","tags":["space-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}},"tles":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"name":{"type":"string","maxLength":160},"noradId":{"type":"string","maxLength":20},"line1":{"type":"string","maxLength":120},"line2":{"type":"string","maxLength":120},"text":{"type":"string","maxLength":400},"epoch":{"type":"string","maxLength":40},"source":{"type":"string","maxLength":200},"side":{"type":"string","enum":["before","after","left","right","a","b"]}},"additionalProperties":false}},"observers":{"maxItems":50,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"name":{"type":"string","maxLength":160},"latitudeDeg":{"type":"number","minimum":-90,"maximum":90},"longitudeDeg":{"type":"number","minimum":-180,"maximum":180},"altitudeKm":{"type":"number","minimum":-1,"maximum":20},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"images":{"maxItems":500,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"sceneId":{"type":"string","maxLength":120},"satellite":{"type":"string","maxLength":120},"capturedAt":{"type":"string","maxLength":40},"lat":{"type":"number","minimum":-90,"maximum":90},"lon":{"type":"number","minimum":-180,"maximum":180},"cloudCoverPct":{"type":"number","minimum":0,"maximum":100},"sharpness":{"type":"number","minimum":0,"maximum":1000000},"snr":{"type":"number","minimum":0,"maximum":1000000},"resolutionM":{"type":"number","minimum":0,"maximum":1000000},"license":{"type":"string","maxLength":200},"attribution":{"type":"string","maxLength":400},"licenseUrl":{"type":"string","maxLength":400},"side":{"type":"string","enum":["before","after","left","right","a","b"]},"ndvi":{"type":"number","minimum":-1,"maximum":1},"brightness":{"type":"number","minimum":0,"maximum":1000000},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"weather":{"maxItems":500,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"at":{"type":"string","maxLength":40},"latitudeDeg":{"type":"number","minimum":-90,"maximum":90},"longitudeDeg":{"type":"number","minimum":-180,"maximum":180},"cloudCoverPct":{"type":"number","minimum":0,"maximum":100},"windSpeedMs":{"type":"number","minimum":0,"maximum":200},"precipitationMm":{"type":"number","minimum":0,"maximum":1000},"visibilityKm":{"type":"number","minimum":0,"maximum":200},"thunderRisk":{"type":"boolean"},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"catalogObjects":{"maxItems":2000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"noradId":{"type":"string","maxLength":20},"name":{"type":"string","maxLength":160},"objectType":{"type":"string","maxLength":80},"inclinationDeg":{"type":"number","minimum":0,"maximum":180},"periodMin":{"type":"number","minimum":0,"maximum":100000},"eccentricity":{"type":"number","minimum":0,"maximum":1},"side":{"type":"string","enum":["left","right","a","b"]},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"celestrak":{"type":"object","properties":{"catnr":{"type":"string","maxLength":20},"group":{"type":"string","maxLength":80},"name":{"type":"string","maxLength":160},"limit":{"type":"integer","minimum":1,"maximum":50}},"additionalProperties":false},"openMeteo":{"type":"object","properties":{"latitudeDeg":{"type":"number","minimum":-90,"maximum":90},"longitudeDeg":{"type":"number","minimum":-180,"maximum":180},"start":{"type":"string","maxLength":40},"hours":{"type":"integer","minimum":1,"maximum":168}},"required":["latitudeDeg","longitudeDeg"],"additionalProperties":false},"asOf":{"type":"string","maxLength":40},"horizonHours":{"type":"number","minimum":1,"maximum":168},"minElevationDeg":{"type":"number","minimum":0,"maximum":90},"stepMinutes":{"type":"number","minimum":0.5,"maximum":60},"conjunctionThresholdKm":{"type":"number","minimum":0.1,"maximum":10000}},"additionalProperties":false},"example":{"asOf":"2026-11-04T21:00:00.000Z","tles":[{"name":"ISS (ZARYA)","side":"before","line1":"1 25544U 98067A   26308.36953014  .00005228  00000+0  10236-3 0  9991","line2":"2 25544  51.6329 326.3987 0007186 346.7494  13.3304 15.49173979593483","source":"Caller-supplied CelesTrak snapshot"},{"name":"ISS (ZARYA)","side":"after","line1":"1 25544U 98067A   26309.36953014  .00005228  00000+0  10236-3 0  9992","line2":"2 25544  51.7000 327.0000 0007200 350.0000  20.0000 15.50000000593484","source":"Caller-supplied CelesTrak snapshot"}]}}}},"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"},"pairCount":{"type":"number"},"changeCount":{"type":"number"},"items":{"type":"array","items":{"type":"object","properties":{"noradId":{"type":"string"},"name":{"type":"string"},"changed":{"type":"boolean"},"deltaInclinationDeg":{"type":"number"},"deltaRaanDeg":{"type":"number"},"deltaMeanMotionRevPerDay":{"type":"number"},"deltaPeriodMin":{"type":"number"},"deltaApogeeKm":{"type":"number"},"deltaPerigeeKm":{"type":"number"},"beforeEpoch":{"type":"string"},"afterEpoch":{"type":"string"},"beforeEpochAgeHours":{"type":"number"},"afterEpochAgeHours":{"type":"number"},"uncertaintyNote":{"type":"string"},"source":{"type":"string"}},"additionalProperties":true}},"paidProviderUsed":{"type":"boolean"},"apiKeyRequired":{"type":"boolean"},"commercialImageryUsed":{"type":"boolean"},"paidOrbitalApiUsed":{"type":"boolean"},"celestrakFetched":{"type":"boolean"},"openMeteoFetched":{"type":"boolean"},"orbitalModel":{"type":"string"},"orbitalUncertaintyNote":{"type":"string"},"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","pairCount":1,"changeCount":1,"items":[{"noradId":"25544","name":"ISS (ZARYA)","changed":true,"deltaInclinationDeg":0.0671,"deltaRaanDeg":0.6013,"deltaMeanMotionRevPerDay":0.0083,"deltaPeriodMin":-0.0495,"deltaApogeeKm":-2.4073,"deltaPerigeeKm":-2.4229,"beforeEpoch":"2026-11-04T08:52:07.404Z","afterEpoch":"2026-11-05T08:52:07.404Z","beforeEpochAgeHours":12.1313,"afterEpochAgeHours":-11.8687,"uncertaintyNote":"Change flags use mean-element deltas only; they are not maneuver confirmation.","source":"Caller-supplied CelesTrak snapshot; Caller-supplied CelesTrak snapshot"}],"paidProviderUsed":false,"apiKeyRequired":false,"commercialImageryUsed":false,"paidOrbitalApiUsed":false,"celestrakFetched":false,"openMeteoFetched":false,"orbitalModel":"simplified-keplerian-from-tle-mean-elements","orbitalUncertaintyNote":"Positions and pass times are approximate. Simplified Keplerian propagation from TLE mean elements omits drag and perturbation modeling used by SGP4. Uncertainty grows with element age.","findings":[{"kind":"observation","code":"orbit_change","subject":"25544","detail":"Mean-element differences exceed local detection thresholds."}],"limitations":["Orbital elements, observers, imagery metadata, weather rows, and catalog objects are copied only from labeled fields supplied by the caller, or from key-free CelesTrak GP / Open-Meteo responses when explicitly requested.","No commercial satellite imagery provider or paid orbital API is used and no API key is required.","Pass and conjunction geometry use a simplified Keplerian propagator from TLE mean elements, not full SGP4/SDP4. Treat timing and miss-distance values as approximate and communicate residual orbital uncertainty.","TLE freshness is reported from the element epoch when parseable. Stale elements increase positional uncertainty.","Earth-observation change, cloud, quality, and license results use only caller-supplied image metadata/statistics. Pixels are not downloaded from commercial archives."]}}}},"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/space-intelligence/satellite-conjunction-screen":{"post":{"operationId":"screen_satellite_conjunctions","summary":"Screen satellite conjunctions","description":"Screen approximate miss distances between caller-supplied TLEs over a horizon. Not a covariance-based conjunction assessment.","tags":["space-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}},"tles":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"name":{"type":"string","maxLength":160},"noradId":{"type":"string","maxLength":20},"line1":{"type":"string","maxLength":120},"line2":{"type":"string","maxLength":120},"text":{"type":"string","maxLength":400},"epoch":{"type":"string","maxLength":40},"source":{"type":"string","maxLength":200},"side":{"type":"string","enum":["before","after","left","right","a","b"]}},"additionalProperties":false}},"observers":{"maxItems":50,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"name":{"type":"string","maxLength":160},"latitudeDeg":{"type":"number","minimum":-90,"maximum":90},"longitudeDeg":{"type":"number","minimum":-180,"maximum":180},"altitudeKm":{"type":"number","minimum":-1,"maximum":20},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"images":{"maxItems":500,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"sceneId":{"type":"string","maxLength":120},"satellite":{"type":"string","maxLength":120},"capturedAt":{"type":"string","maxLength":40},"lat":{"type":"number","minimum":-90,"maximum":90},"lon":{"type":"number","minimum":-180,"maximum":180},"cloudCoverPct":{"type":"number","minimum":0,"maximum":100},"sharpness":{"type":"number","minimum":0,"maximum":1000000},"snr":{"type":"number","minimum":0,"maximum":1000000},"resolutionM":{"type":"number","minimum":0,"maximum":1000000},"license":{"type":"string","maxLength":200},"attribution":{"type":"string","maxLength":400},"licenseUrl":{"type":"string","maxLength":400},"side":{"type":"string","enum":["before","after","left","right","a","b"]},"ndvi":{"type":"number","minimum":-1,"maximum":1},"brightness":{"type":"number","minimum":0,"maximum":1000000},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"weather":{"maxItems":500,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"at":{"type":"string","maxLength":40},"latitudeDeg":{"type":"number","minimum":-90,"maximum":90},"longitudeDeg":{"type":"number","minimum":-180,"maximum":180},"cloudCoverPct":{"type":"number","minimum":0,"maximum":100},"windSpeedMs":{"type":"number","minimum":0,"maximum":200},"precipitationMm":{"type":"number","minimum":0,"maximum":1000},"visibilityKm":{"type":"number","minimum":0,"maximum":200},"thunderRisk":{"type":"boolean"},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"catalogObjects":{"maxItems":2000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"noradId":{"type":"string","maxLength":20},"name":{"type":"string","maxLength":160},"objectType":{"type":"string","maxLength":80},"inclinationDeg":{"type":"number","minimum":0,"maximum":180},"periodMin":{"type":"number","minimum":0,"maximum":100000},"eccentricity":{"type":"number","minimum":0,"maximum":1},"side":{"type":"string","enum":["left","right","a","b"]},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"celestrak":{"type":"object","properties":{"catnr":{"type":"string","maxLength":20},"group":{"type":"string","maxLength":80},"name":{"type":"string","maxLength":160},"limit":{"type":"integer","minimum":1,"maximum":50}},"additionalProperties":false},"openMeteo":{"type":"object","properties":{"latitudeDeg":{"type":"number","minimum":-90,"maximum":90},"longitudeDeg":{"type":"number","minimum":-180,"maximum":180},"start":{"type":"string","maxLength":40},"hours":{"type":"integer","minimum":1,"maximum":168}},"required":["latitudeDeg","longitudeDeg"],"additionalProperties":false},"asOf":{"type":"string","maxLength":40},"horizonHours":{"type":"number","minimum":1,"maximum":168},"minElevationDeg":{"type":"number","minimum":0,"maximum":90},"stepMinutes":{"type":"number","minimum":0.5,"maximum":60},"conjunctionThresholdKm":{"type":"number","minimum":0.1,"maximum":10000}},"additionalProperties":false},"example":{"asOf":"2026-11-04T21:00:00.000Z","horizonHours":6,"stepMinutes":5,"conjunctionThresholdKm":5000,"tles":[{"name":"ISS (ZARYA)","line1":"1 25544U 98067A   26308.36953014  .00005228  00000+0  10236-3 0  9991","line2":"2 25544  51.6329 326.3987 0007186 346.7494  13.3304 15.49173979593483","source":"Caller-supplied CelesTrak snapshot"},{"name":"CSS (TIANHE)","line1":"1 48274U 210035A   26308.30000000  .00010000  00000+0  15000-3 0  9990","line2":"2 48274  41.4700 120.0000 0008000  80.0000 280.0000 15.60000000000000","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"},"pairCount":{"type":"number"},"screenedCount":{"type":"number"},"items":{"type":"array","items":{"type":"object","properties":{"primaryNoradId":{"type":"string"},"primaryName":{"type":"string"},"secondaryNoradId":{"type":"string"},"secondaryName":{"type":"string"},"closestApproachAt":{"type":"string"},"missDistanceKm":{"type":"number"},"thresholdKm":{"type":"number"},"screened":{"type":"boolean"},"primaryEpochAgeHours":{"type":"number"},"secondaryEpochAgeHours":{"type":"number"},"uncertaintyNote":{"type":"string"},"source":{"type":"string"}},"additionalProperties":true}},"paidProviderUsed":{"type":"boolean"},"apiKeyRequired":{"type":"boolean"},"commercialImageryUsed":{"type":"boolean"},"paidOrbitalApiUsed":{"type":"boolean"},"celestrakFetched":{"type":"boolean"},"openMeteoFetched":{"type":"boolean"},"orbitalModel":{"type":"string"},"orbitalUncertaintyNote":{"type":"string"},"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":"screened","pairCount":1,"screenedCount":1,"items":[{"primaryNoradId":"25544","primaryName":"ISS (ZARYA)","secondaryNoradId":"48274","secondaryName":"CSS (TIANHE)","closestApproachAt":"2026-11-04T21:05:00.000Z","missDistanceKm":3962.2789,"thresholdKm":5000,"screened":true,"primaryEpochAgeHours":12.1313,"secondaryEpochAgeHours":66397.8,"uncertaintyNote":"Miss distance is approximate Keplerian geometry, not a covariance-based conjunction assessment.","source":"Caller-supplied CelesTrak snapshot; Caller-supplied"}],"paidProviderUsed":false,"apiKeyRequired":false,"commercialImageryUsed":false,"paidOrbitalApiUsed":false,"celestrakFetched":false,"openMeteoFetched":false,"orbitalModel":"simplified-keplerian-from-tle-mean-elements","orbitalUncertaintyNote":"Positions and pass times are approximate. Simplified Keplerian propagation from TLE mean elements omits drag and perturbation modeling used by SGP4. Uncertainty grows with element age.","findings":[{"kind":"conflict","code":"conjunction_candidate","subject":"25544-48274","detail":"Approximate miss distance 3962.2789 km is within the 5000 km screen threshold."}],"limitations":["Orbital elements, observers, imagery metadata, weather rows, and catalog objects are copied only from labeled fields supplied by the caller, or from key-free CelesTrak GP / Open-Meteo responses when explicitly requested.","No commercial satellite imagery provider or paid orbital API is used and no API key is required.","Pass and conjunction geometry use a simplified Keplerian propagator from TLE mean elements, not full SGP4/SDP4. Treat timing and miss-distance values as approximate and communicate residual orbital uncertainty.","TLE freshness is reported from the element epoch when parseable. Stale elements increase positional uncertainty.","Earth-observation change, cloud, quality, and license results use only caller-supplied image metadata/statistics. Pixels are not downloaded from commercial archives."]}}}},"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.05"},"protocols":[{"x402":{}}]}}},"/api/v1/space-intelligence/earth-observation-change-detect":{"post":{"operationId":"detect_earth_observation_changes","summary":"Detect earth-observation changes","description":"Compare before/after caller-supplied EO scene metadata (NDVI, brightness, cloud cover). Commercial imagery pixels are not downloaded.","tags":["space-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}},"tles":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"name":{"type":"string","maxLength":160},"noradId":{"type":"string","maxLength":20},"line1":{"type":"string","maxLength":120},"line2":{"type":"string","maxLength":120},"text":{"type":"string","maxLength":400},"epoch":{"type":"string","maxLength":40},"source":{"type":"string","maxLength":200},"side":{"type":"string","enum":["before","after","left","right","a","b"]}},"additionalProperties":false}},"observers":{"maxItems":50,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"name":{"type":"string","maxLength":160},"latitudeDeg":{"type":"number","minimum":-90,"maximum":90},"longitudeDeg":{"type":"number","minimum":-180,"maximum":180},"altitudeKm":{"type":"number","minimum":-1,"maximum":20},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"images":{"maxItems":500,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"sceneId":{"type":"string","maxLength":120},"satellite":{"type":"string","maxLength":120},"capturedAt":{"type":"string","maxLength":40},"lat":{"type":"number","minimum":-90,"maximum":90},"lon":{"type":"number","minimum":-180,"maximum":180},"cloudCoverPct":{"type":"number","minimum":0,"maximum":100},"sharpness":{"type":"number","minimum":0,"maximum":1000000},"snr":{"type":"number","minimum":0,"maximum":1000000},"resolutionM":{"type":"number","minimum":0,"maximum":1000000},"license":{"type":"string","maxLength":200},"attribution":{"type":"string","maxLength":400},"licenseUrl":{"type":"string","maxLength":400},"side":{"type":"string","enum":["before","after","left","right","a","b"]},"ndvi":{"type":"number","minimum":-1,"maximum":1},"brightness":{"type":"number","minimum":0,"maximum":1000000},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"weather":{"maxItems":500,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"at":{"type":"string","maxLength":40},"latitudeDeg":{"type":"number","minimum":-90,"maximum":90},"longitudeDeg":{"type":"number","minimum":-180,"maximum":180},"cloudCoverPct":{"type":"number","minimum":0,"maximum":100},"windSpeedMs":{"type":"number","minimum":0,"maximum":200},"precipitationMm":{"type":"number","minimum":0,"maximum":1000},"visibilityKm":{"type":"number","minimum":0,"maximum":200},"thunderRisk":{"type":"boolean"},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"catalogObjects":{"maxItems":2000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"noradId":{"type":"string","maxLength":20},"name":{"type":"string","maxLength":160},"objectType":{"type":"string","maxLength":80},"inclinationDeg":{"type":"number","minimum":0,"maximum":180},"periodMin":{"type":"number","minimum":0,"maximum":100000},"eccentricity":{"type":"number","minimum":0,"maximum":1},"side":{"type":"string","enum":["left","right","a","b"]},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"celestrak":{"type":"object","properties":{"catnr":{"type":"string","maxLength":20},"group":{"type":"string","maxLength":80},"name":{"type":"string","maxLength":160},"limit":{"type":"integer","minimum":1,"maximum":50}},"additionalProperties":false},"openMeteo":{"type":"object","properties":{"latitudeDeg":{"type":"number","minimum":-90,"maximum":90},"longitudeDeg":{"type":"number","minimum":-180,"maximum":180},"start":{"type":"string","maxLength":40},"hours":{"type":"integer","minimum":1,"maximum":168}},"required":["latitudeDeg","longitudeDeg"],"additionalProperties":false},"asOf":{"type":"string","maxLength":40},"horizonHours":{"type":"number","minimum":1,"maximum":168},"minElevationDeg":{"type":"number","minimum":0,"maximum":90},"stepMinutes":{"type":"number","minimum":0.5,"maximum":60},"conjunctionThresholdKm":{"type":"number","minimum":0.1,"maximum":10000}},"additionalProperties":false},"example":{"asOf":"2026-11-04T21:00:00.000Z","images":[{"id":"B","sceneId":"AOI1","side":"before","ndvi":0.4,"brightness":100,"cloudCoverPct":5,"capturedAt":"2026-10-01","source":"Caller-supplied"},{"id":"A","sceneId":"AOI1","side":"after","ndvi":0.55,"brightness":110,"cloudCoverPct":8,"capturedAt":"2026-11-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"},"pairCount":{"type":"number"},"changeCount":{"type":"number"},"items":{"type":"array","items":{"type":"object","properties":{"sceneKey":{"type":"string"},"beforeId":{"type":"string"},"afterId":{"type":"string"},"beforeCapturedAt":{"type":"string"},"afterCapturedAt":{"type":"string"},"deltaCloudCoverPct":{"type":"number"},"deltaCloudCoverPctSupplied":{"type":"boolean"},"deltaNdvi":{"type":"number"},"deltaNdviSupplied":{"type":"boolean"},"deltaBrightness":{"type":"number"},"deltaBrightnessSupplied":{"type":"boolean"},"changed":{"type":"boolean"},"commercialImageryUsed":{"type":"boolean"},"source":{"type":"string"}},"additionalProperties":true}},"paidProviderUsed":{"type":"boolean"},"apiKeyRequired":{"type":"boolean"},"commercialImageryUsed":{"type":"boolean"},"paidOrbitalApiUsed":{"type":"boolean"},"celestrakFetched":{"type":"boolean"},"openMeteoFetched":{"type":"boolean"},"orbitalModel":{"type":"string"},"orbitalUncertaintyNote":{"type":"string"},"findings":{"type":"array","items":{}},"limitations":{"type":"array","items":{"type":"string"}}},"additionalProperties":true},"example":{"checkedAt":"2026-11-04T21:00:00.000Z","status":"compared","pairCount":1,"changeCount":1,"items":[{"sceneKey":"AOI1","beforeId":"B","afterId":"A","beforeCapturedAt":"2026-10-01","afterCapturedAt":"2026-11-01","deltaCloudCoverPct":3,"deltaCloudCoverPctSupplied":true,"deltaNdvi":0.15,"deltaNdviSupplied":true,"deltaBrightness":10,"deltaBrightnessSupplied":true,"changed":true,"commercialImageryUsed":false,"source":"Caller-supplied; Caller-supplied"}],"paidProviderUsed":false,"apiKeyRequired":false,"commercialImageryUsed":false,"paidOrbitalApiUsed":false,"celestrakFetched":false,"openMeteoFetched":false,"orbitalModel":"simplified-keplerian-from-tle-mean-elements","orbitalUncertaintyNote":"Positions and pass times are approximate. Simplified Keplerian propagation from TLE mean elements omits drag and perturbation modeling used by SGP4. Uncertainty grows with element age.","findings":[],"limitations":["Orbital elements, observers, imagery metadata, weather rows, and catalog objects are copied only from labeled fields supplied by the caller, or from key-free CelesTrak GP / Open-Meteo responses when explicitly requested.","No commercial satellite imagery provider or paid orbital API is used and no API key is required.","Pass and conjunction geometry use a simplified Keplerian propagator from TLE mean elements, not full SGP4/SDP4. Treat timing and miss-distance values as approximate and communicate residual orbital uncertainty.","TLE freshness is reported from the element epoch when parseable. Stale elements increase positional uncertainty.","Earth-observation change, cloud, quality, and license results use only caller-supplied image metadata/statistics. Pixels are not downloaded from commercial archives."]}}}},"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/space-intelligence/satellite-imagery-cloud-assess":{"post":{"operationId":"assess_satellite_imagery_cloud_cover","summary":"Assess satellite imagery cloud cover","description":"Classify caller-supplied cloud-cover percentages for EO scenes. Commercial imagery archives are not queried.","tags":["space-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}},"tles":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"name":{"type":"string","maxLength":160},"noradId":{"type":"string","maxLength":20},"line1":{"type":"string","maxLength":120},"line2":{"type":"string","maxLength":120},"text":{"type":"string","maxLength":400},"epoch":{"type":"string","maxLength":40},"source":{"type":"string","maxLength":200},"side":{"type":"string","enum":["before","after","left","right","a","b"]}},"additionalProperties":false}},"observers":{"maxItems":50,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"name":{"type":"string","maxLength":160},"latitudeDeg":{"type":"number","minimum":-90,"maximum":90},"longitudeDeg":{"type":"number","minimum":-180,"maximum":180},"altitudeKm":{"type":"number","minimum":-1,"maximum":20},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"images":{"maxItems":500,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"sceneId":{"type":"string","maxLength":120},"satellite":{"type":"string","maxLength":120},"capturedAt":{"type":"string","maxLength":40},"lat":{"type":"number","minimum":-90,"maximum":90},"lon":{"type":"number","minimum":-180,"maximum":180},"cloudCoverPct":{"type":"number","minimum":0,"maximum":100},"sharpness":{"type":"number","minimum":0,"maximum":1000000},"snr":{"type":"number","minimum":0,"maximum":1000000},"resolutionM":{"type":"number","minimum":0,"maximum":1000000},"license":{"type":"string","maxLength":200},"attribution":{"type":"string","maxLength":400},"licenseUrl":{"type":"string","maxLength":400},"side":{"type":"string","enum":["before","after","left","right","a","b"]},"ndvi":{"type":"number","minimum":-1,"maximum":1},"brightness":{"type":"number","minimum":0,"maximum":1000000},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"weather":{"maxItems":500,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"at":{"type":"string","maxLength":40},"latitudeDeg":{"type":"number","minimum":-90,"maximum":90},"longitudeDeg":{"type":"number","minimum":-180,"maximum":180},"cloudCoverPct":{"type":"number","minimum":0,"maximum":100},"windSpeedMs":{"type":"number","minimum":0,"maximum":200},"precipitationMm":{"type":"number","minimum":0,"maximum":1000},"visibilityKm":{"type":"number","minimum":0,"maximum":200},"thunderRisk":{"type":"boolean"},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"catalogObjects":{"maxItems":2000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"noradId":{"type":"string","maxLength":20},"name":{"type":"string","maxLength":160},"objectType":{"type":"string","maxLength":80},"inclinationDeg":{"type":"number","minimum":0,"maximum":180},"periodMin":{"type":"number","minimum":0,"maximum":100000},"eccentricity":{"type":"number","minimum":0,"maximum":1},"side":{"type":"string","enum":["left","right","a","b"]},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"celestrak":{"type":"object","properties":{"catnr":{"type":"string","maxLength":20},"group":{"type":"string","maxLength":80},"name":{"type":"string","maxLength":160},"limit":{"type":"integer","minimum":1,"maximum":50}},"additionalProperties":false},"openMeteo":{"type":"object","properties":{"latitudeDeg":{"type":"number","minimum":-90,"maximum":90},"longitudeDeg":{"type":"number","minimum":-180,"maximum":180},"start":{"type":"string","maxLength":40},"hours":{"type":"integer","minimum":1,"maximum":168}},"required":["latitudeDeg","longitudeDeg"],"additionalProperties":false},"asOf":{"type":"string","maxLength":40},"horizonHours":{"type":"number","minimum":1,"maximum":168},"minElevationDeg":{"type":"number","minimum":0,"maximum":90},"stepMinutes":{"type":"number","minimum":0.5,"maximum":60},"conjunctionThresholdKm":{"type":"number","minimum":0.1,"maximum":10000}},"additionalProperties":false},"example":{"asOf":"2026-11-04T21:00:00.000Z","images":[{"id":"I1","sceneId":"AOI1","satellite":"Sentinel-2","cloudCoverPct":12,"capturedAt":"2026-11-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"},"sceneCount":{"type":"number"},"usableCount":{"type":"number"},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"sceneId":{"type":"string"},"satellite":{"type":"string"},"capturedAt":{"type":"string"},"cloudCoverPct":{"type":"number"},"cloudCoverPctSupplied":{"type":"boolean"},"assessment":{"type":"string"},"usableForAnalysis":{"type":"boolean"},"commercialImageryUsed":{"type":"boolean"},"source":{"type":"string"}},"additionalProperties":true}},"paidProviderUsed":{"type":"boolean"},"apiKeyRequired":{"type":"boolean"},"commercialImageryUsed":{"type":"boolean"},"paidOrbitalApiUsed":{"type":"boolean"},"celestrakFetched":{"type":"boolean"},"openMeteoFetched":{"type":"boolean"},"orbitalModel":{"type":"string"},"orbitalUncertaintyNote":{"type":"string"},"findings":{"type":"array","items":{}},"limitations":{"type":"array","items":{"type":"string"}}},"additionalProperties":true},"example":{"checkedAt":"2026-11-04T21:00:00.000Z","status":"assessed","sceneCount":1,"usableCount":1,"items":[{"id":"I1","sceneId":"AOI1","satellite":"Sentinel-2","capturedAt":"2026-11-01","cloudCoverPct":12,"cloudCoverPctSupplied":true,"assessment":"mostly_clear","usableForAnalysis":true,"commercialImageryUsed":false,"source":"Caller-supplied"}],"paidProviderUsed":false,"apiKeyRequired":false,"commercialImageryUsed":false,"paidOrbitalApiUsed":false,"celestrakFetched":false,"openMeteoFetched":false,"orbitalModel":"simplified-keplerian-from-tle-mean-elements","orbitalUncertaintyNote":"Positions and pass times are approximate. Simplified Keplerian propagation from TLE mean elements omits drag and perturbation modeling used by SGP4. Uncertainty grows with element age.","findings":[],"limitations":["Orbital elements, observers, imagery metadata, weather rows, and catalog objects are copied only from labeled fields supplied by the caller, or from key-free CelesTrak GP / Open-Meteo responses when explicitly requested.","No commercial satellite imagery provider or paid orbital API is used and no API key is required.","Pass and conjunction geometry use a simplified Keplerian propagator from TLE mean elements, not full SGP4/SDP4. Treat timing and miss-distance values as approximate and communicate residual orbital uncertainty.","TLE freshness is reported from the element epoch when parseable. Stale elements increase positional uncertainty.","Earth-observation change, cloud, quality, and license results use only caller-supplied image metadata/statistics. Pixels are not downloaded from commercial archives."]}}}},"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/space-intelligence/satellite-image-quality-check":{"post":{"operationId":"check_satellite_image_quality","summary":"Check satellite image quality","description":"Score caller-supplied sharpness, SNR, resolution, and cloud metrics for EO scenes. Missing metrics are not invented.","tags":["space-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}},"tles":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"name":{"type":"string","maxLength":160},"noradId":{"type":"string","maxLength":20},"line1":{"type":"string","maxLength":120},"line2":{"type":"string","maxLength":120},"text":{"type":"string","maxLength":400},"epoch":{"type":"string","maxLength":40},"source":{"type":"string","maxLength":200},"side":{"type":"string","enum":["before","after","left","right","a","b"]}},"additionalProperties":false}},"observers":{"maxItems":50,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"name":{"type":"string","maxLength":160},"latitudeDeg":{"type":"number","minimum":-90,"maximum":90},"longitudeDeg":{"type":"number","minimum":-180,"maximum":180},"altitudeKm":{"type":"number","minimum":-1,"maximum":20},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"images":{"maxItems":500,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"sceneId":{"type":"string","maxLength":120},"satellite":{"type":"string","maxLength":120},"capturedAt":{"type":"string","maxLength":40},"lat":{"type":"number","minimum":-90,"maximum":90},"lon":{"type":"number","minimum":-180,"maximum":180},"cloudCoverPct":{"type":"number","minimum":0,"maximum":100},"sharpness":{"type":"number","minimum":0,"maximum":1000000},"snr":{"type":"number","minimum":0,"maximum":1000000},"resolutionM":{"type":"number","minimum":0,"maximum":1000000},"license":{"type":"string","maxLength":200},"attribution":{"type":"string","maxLength":400},"licenseUrl":{"type":"string","maxLength":400},"side":{"type":"string","enum":["before","after","left","right","a","b"]},"ndvi":{"type":"number","minimum":-1,"maximum":1},"brightness":{"type":"number","minimum":0,"maximum":1000000},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"weather":{"maxItems":500,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"at":{"type":"string","maxLength":40},"latitudeDeg":{"type":"number","minimum":-90,"maximum":90},"longitudeDeg":{"type":"number","minimum":-180,"maximum":180},"cloudCoverPct":{"type":"number","minimum":0,"maximum":100},"windSpeedMs":{"type":"number","minimum":0,"maximum":200},"precipitationMm":{"type":"number","minimum":0,"maximum":1000},"visibilityKm":{"type":"number","minimum":0,"maximum":200},"thunderRisk":{"type":"boolean"},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"catalogObjects":{"maxItems":2000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"noradId":{"type":"string","maxLength":20},"name":{"type":"string","maxLength":160},"objectType":{"type":"string","maxLength":80},"inclinationDeg":{"type":"number","minimum":0,"maximum":180},"periodMin":{"type":"number","minimum":0,"maximum":100000},"eccentricity":{"type":"number","minimum":0,"maximum":1},"side":{"type":"string","enum":["left","right","a","b"]},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"celestrak":{"type":"object","properties":{"catnr":{"type":"string","maxLength":20},"group":{"type":"string","maxLength":80},"name":{"type":"string","maxLength":160},"limit":{"type":"integer","minimum":1,"maximum":50}},"additionalProperties":false},"openMeteo":{"type":"object","properties":{"latitudeDeg":{"type":"number","minimum":-90,"maximum":90},"longitudeDeg":{"type":"number","minimum":-180,"maximum":180},"start":{"type":"string","maxLength":40},"hours":{"type":"integer","minimum":1,"maximum":168}},"required":["latitudeDeg","longitudeDeg"],"additionalProperties":false},"asOf":{"type":"string","maxLength":40},"horizonHours":{"type":"number","minimum":1,"maximum":168},"minElevationDeg":{"type":"number","minimum":0,"maximum":90},"stepMinutes":{"type":"number","minimum":0.5,"maximum":60},"conjunctionThresholdKm":{"type":"number","minimum":0.1,"maximum":10000}},"additionalProperties":false},"example":{"asOf":"2026-11-04T21:00:00.000Z","images":[{"id":"I1","sceneId":"AOI1","sharpness":0.8,"snr":30,"resolutionM":10,"cloudCoverPct":5,"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"},"sceneCount":{"type":"number"},"passCount":{"type":"number"},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"sceneId":{"type":"string"},"satellite":{"type":"string"},"capturedAt":{"type":"string"},"sharpness":{"type":"number"},"sharpnessSupplied":{"type":"boolean"},"snr":{"type":"number"},"snrSupplied":{"type":"boolean"},"resolutionM":{"type":"number"},"resolutionSupplied":{"type":"boolean"},"qualityScore":{"type":"number"},"qualityScoreSupplied":{"type":"boolean"},"flags":{"type":"array","items":{}},"pass":{"type":"boolean"},"commercialImageryUsed":{"type":"boolean"},"source":{"type":"string"}},"additionalProperties":true}},"paidProviderUsed":{"type":"boolean"},"apiKeyRequired":{"type":"boolean"},"commercialImageryUsed":{"type":"boolean"},"paidOrbitalApiUsed":{"type":"boolean"},"celestrakFetched":{"type":"boolean"},"openMeteoFetched":{"type":"boolean"},"orbitalModel":{"type":"string"},"orbitalUncertaintyNote":{"type":"string"},"findings":{"type":"array","items":{}},"limitations":{"type":"array","items":{"type":"string"}}},"additionalProperties":true},"example":{"checkedAt":"2026-11-04T21:00:00.000Z","status":"checked","sceneCount":1,"passCount":1,"items":[{"id":"I1","sceneId":"AOI1","satellite":"","capturedAt":"","sharpness":0.8,"sharpnessSupplied":true,"snr":30,"snrSupplied":true,"resolutionM":10,"resolutionSupplied":true,"qualityScore":0.8333,"qualityScoreSupplied":true,"flags":[],"pass":true,"commercialImageryUsed":false,"source":"Caller-supplied"}],"paidProviderUsed":false,"apiKeyRequired":false,"commercialImageryUsed":false,"paidOrbitalApiUsed":false,"celestrakFetched":false,"openMeteoFetched":false,"orbitalModel":"simplified-keplerian-from-tle-mean-elements","orbitalUncertaintyNote":"Positions and pass times are approximate. Simplified Keplerian propagation from TLE mean elements omits drag and perturbation modeling used by SGP4. Uncertainty grows with element age.","findings":[],"limitations":["Orbital elements, observers, imagery metadata, weather rows, and catalog objects are copied only from labeled fields supplied by the caller, or from key-free CelesTrak GP / Open-Meteo responses when explicitly requested.","No commercial satellite imagery provider or paid orbital API is used and no API key is required.","Pass and conjunction geometry use a simplified Keplerian propagator from TLE mean elements, not full SGP4/SDP4. Treat timing and miss-distance values as approximate and communicate residual orbital uncertainty.","TLE freshness is reported from the element epoch when parseable. Stale elements increase positional uncertainty.","Earth-observation change, cloud, quality, and license results use only caller-supplied image metadata/statistics. Pixels are not downloaded from commercial archives."]}}}},"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/space-intelligence/satellite-data-license-metadata":{"post":{"operationId":"extract_satellite_data_license_metadata","summary":"Extract satellite data license metadata","description":"Extract and classify caller-supplied imagery license, attribution, and license URL fields. Legal advice is not provided.","tags":["space-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}},"tles":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"name":{"type":"string","maxLength":160},"noradId":{"type":"string","maxLength":20},"line1":{"type":"string","maxLength":120},"line2":{"type":"string","maxLength":120},"text":{"type":"string","maxLength":400},"epoch":{"type":"string","maxLength":40},"source":{"type":"string","maxLength":200},"side":{"type":"string","enum":["before","after","left","right","a","b"]}},"additionalProperties":false}},"observers":{"maxItems":50,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"name":{"type":"string","maxLength":160},"latitudeDeg":{"type":"number","minimum":-90,"maximum":90},"longitudeDeg":{"type":"number","minimum":-180,"maximum":180},"altitudeKm":{"type":"number","minimum":-1,"maximum":20},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"images":{"maxItems":500,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"sceneId":{"type":"string","maxLength":120},"satellite":{"type":"string","maxLength":120},"capturedAt":{"type":"string","maxLength":40},"lat":{"type":"number","minimum":-90,"maximum":90},"lon":{"type":"number","minimum":-180,"maximum":180},"cloudCoverPct":{"type":"number","minimum":0,"maximum":100},"sharpness":{"type":"number","minimum":0,"maximum":1000000},"snr":{"type":"number","minimum":0,"maximum":1000000},"resolutionM":{"type":"number","minimum":0,"maximum":1000000},"license":{"type":"string","maxLength":200},"attribution":{"type":"string","maxLength":400},"licenseUrl":{"type":"string","maxLength":400},"side":{"type":"string","enum":["before","after","left","right","a","b"]},"ndvi":{"type":"number","minimum":-1,"maximum":1},"brightness":{"type":"number","minimum":0,"maximum":1000000},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"weather":{"maxItems":500,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"at":{"type":"string","maxLength":40},"latitudeDeg":{"type":"number","minimum":-90,"maximum":90},"longitudeDeg":{"type":"number","minimum":-180,"maximum":180},"cloudCoverPct":{"type":"number","minimum":0,"maximum":100},"windSpeedMs":{"type":"number","minimum":0,"maximum":200},"precipitationMm":{"type":"number","minimum":0,"maximum":1000},"visibilityKm":{"type":"number","minimum":0,"maximum":200},"thunderRisk":{"type":"boolean"},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"catalogObjects":{"maxItems":2000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"noradId":{"type":"string","maxLength":20},"name":{"type":"string","maxLength":160},"objectType":{"type":"string","maxLength":80},"inclinationDeg":{"type":"number","minimum":0,"maximum":180},"periodMin":{"type":"number","minimum":0,"maximum":100000},"eccentricity":{"type":"number","minimum":0,"maximum":1},"side":{"type":"string","enum":["left","right","a","b"]},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"celestrak":{"type":"object","properties":{"catnr":{"type":"string","maxLength":20},"group":{"type":"string","maxLength":80},"name":{"type":"string","maxLength":160},"limit":{"type":"integer","minimum":1,"maximum":50}},"additionalProperties":false},"openMeteo":{"type":"object","properties":{"latitudeDeg":{"type":"number","minimum":-90,"maximum":90},"longitudeDeg":{"type":"number","minimum":-180,"maximum":180},"start":{"type":"string","maxLength":40},"hours":{"type":"integer","minimum":1,"maximum":168}},"required":["latitudeDeg","longitudeDeg"],"additionalProperties":false},"asOf":{"type":"string","maxLength":40},"horizonHours":{"type":"number","minimum":1,"maximum":168},"minElevationDeg":{"type":"number","minimum":0,"maximum":90},"stepMinutes":{"type":"number","minimum":0.5,"maximum":60},"conjunctionThresholdKm":{"type":"number","minimum":0.1,"maximum":10000}},"additionalProperties":false},"example":{"asOf":"2026-11-04T21:00:00.000Z","images":[{"id":"I1","sceneId":"AOI1","license":"CC-BY-4.0","attribution":"ESA","licenseUrl":"https://creativecommons.org/licenses/by/4.0/","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"},"sceneCount":{"type":"number"},"openCount":{"type":"number"},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"sceneId":{"type":"string"},"satellite":{"type":"string"},"capturedAt":{"type":"string"},"license":{"type":"string"},"licenseSupplied":{"type":"boolean"},"attribution":{"type":"string"},"licenseUrl":{"type":"string"},"openness":{"type":"string"},"licenseKey":{"type":"string"},"commercialImageryUsed":{"type":"boolean"},"source":{"type":"string"}},"additionalProperties":true}},"paidProviderUsed":{"type":"boolean"},"apiKeyRequired":{"type":"boolean"},"commercialImageryUsed":{"type":"boolean"},"paidOrbitalApiUsed":{"type":"boolean"},"celestrakFetched":{"type":"boolean"},"openMeteoFetched":{"type":"boolean"},"orbitalModel":{"type":"string"},"orbitalUncertaintyNote":{"type":"string"},"findings":{"type":"array","items":{}},"limitations":{"type":"array","items":{"type":"string"}}},"additionalProperties":true},"example":{"checkedAt":"2026-11-04T21:00:00.000Z","status":"extracted","sceneCount":1,"openCount":1,"items":[{"id":"I1","sceneId":"AOI1","satellite":"","capturedAt":"","license":"CC-BY-4.0","licenseSupplied":true,"attribution":"ESA","licenseUrl":"https://creativecommons.org/licenses/by/4.0/","openness":"open","licenseKey":"cc-by-4.0","commercialImageryUsed":false,"source":"Caller-supplied"}],"paidProviderUsed":false,"apiKeyRequired":false,"commercialImageryUsed":false,"paidOrbitalApiUsed":false,"celestrakFetched":false,"openMeteoFetched":false,"orbitalModel":"simplified-keplerian-from-tle-mean-elements","orbitalUncertaintyNote":"Positions and pass times are approximate. Simplified Keplerian propagation from TLE mean elements omits drag and perturbation modeling used by SGP4. Uncertainty grows with element age.","findings":[],"limitations":["Orbital elements, observers, imagery metadata, weather rows, and catalog objects are copied only from labeled fields supplied by the caller, or from key-free CelesTrak GP / Open-Meteo responses when explicitly requested.","No commercial satellite imagery provider or paid orbital API is used and no API key is required.","Pass and conjunction geometry use a simplified Keplerian propagator from TLE mean elements, not full SGP4/SDP4. Treat timing and miss-distance values as approximate and communicate residual orbital uncertainty.","TLE freshness is reported from the element epoch when parseable. Stale elements increase positional uncertainty.","Earth-observation change, cloud, quality, and license results use only caller-supplied image metadata/statistics. Pixels are not downloaded from commercial archives."]}}}},"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/space-intelligence/launch-window-weather-analyze":{"post":{"operationId":"analyze_launch_window_weather","summary":"Analyze launch-window weather","description":"Analyze caller-supplied weather samples or optional key-free Open-Meteo hourly forecasts against simple go/no-go thresholds.","tags":["space-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}},"tles":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"name":{"type":"string","maxLength":160},"noradId":{"type":"string","maxLength":20},"line1":{"type":"string","maxLength":120},"line2":{"type":"string","maxLength":120},"text":{"type":"string","maxLength":400},"epoch":{"type":"string","maxLength":40},"source":{"type":"string","maxLength":200},"side":{"type":"string","enum":["before","after","left","right","a","b"]}},"additionalProperties":false}},"observers":{"maxItems":50,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"name":{"type":"string","maxLength":160},"latitudeDeg":{"type":"number","minimum":-90,"maximum":90},"longitudeDeg":{"type":"number","minimum":-180,"maximum":180},"altitudeKm":{"type":"number","minimum":-1,"maximum":20},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"images":{"maxItems":500,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"sceneId":{"type":"string","maxLength":120},"satellite":{"type":"string","maxLength":120},"capturedAt":{"type":"string","maxLength":40},"lat":{"type":"number","minimum":-90,"maximum":90},"lon":{"type":"number","minimum":-180,"maximum":180},"cloudCoverPct":{"type":"number","minimum":0,"maximum":100},"sharpness":{"type":"number","minimum":0,"maximum":1000000},"snr":{"type":"number","minimum":0,"maximum":1000000},"resolutionM":{"type":"number","minimum":0,"maximum":1000000},"license":{"type":"string","maxLength":200},"attribution":{"type":"string","maxLength":400},"licenseUrl":{"type":"string","maxLength":400},"side":{"type":"string","enum":["before","after","left","right","a","b"]},"ndvi":{"type":"number","minimum":-1,"maximum":1},"brightness":{"type":"number","minimum":0,"maximum":1000000},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"weather":{"maxItems":500,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"at":{"type":"string","maxLength":40},"latitudeDeg":{"type":"number","minimum":-90,"maximum":90},"longitudeDeg":{"type":"number","minimum":-180,"maximum":180},"cloudCoverPct":{"type":"number","minimum":0,"maximum":100},"windSpeedMs":{"type":"number","minimum":0,"maximum":200},"precipitationMm":{"type":"number","minimum":0,"maximum":1000},"visibilityKm":{"type":"number","minimum":0,"maximum":200},"thunderRisk":{"type":"boolean"},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"catalogObjects":{"maxItems":2000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"noradId":{"type":"string","maxLength":20},"name":{"type":"string","maxLength":160},"objectType":{"type":"string","maxLength":80},"inclinationDeg":{"type":"number","minimum":0,"maximum":180},"periodMin":{"type":"number","minimum":0,"maximum":100000},"eccentricity":{"type":"number","minimum":0,"maximum":1},"side":{"type":"string","enum":["left","right","a","b"]},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"celestrak":{"type":"object","properties":{"catnr":{"type":"string","maxLength":20},"group":{"type":"string","maxLength":80},"name":{"type":"string","maxLength":160},"limit":{"type":"integer","minimum":1,"maximum":50}},"additionalProperties":false},"openMeteo":{"type":"object","properties":{"latitudeDeg":{"type":"number","minimum":-90,"maximum":90},"longitudeDeg":{"type":"number","minimum":-180,"maximum":180},"start":{"type":"string","maxLength":40},"hours":{"type":"integer","minimum":1,"maximum":168}},"required":["latitudeDeg","longitudeDeg"],"additionalProperties":false},"asOf":{"type":"string","maxLength":40},"horizonHours":{"type":"number","minimum":1,"maximum":168},"minElevationDeg":{"type":"number","minimum":0,"maximum":90},"stepMinutes":{"type":"number","minimum":0.5,"maximum":60},"conjunctionThresholdKm":{"type":"number","minimum":0.1,"maximum":10000}},"additionalProperties":false},"example":{"asOf":"2026-11-04T21:00:00.000Z","weather":[{"id":"W1","at":"2026-11-04T21:00:00.000Z","latitudeDeg":28.57,"longitudeDeg":-80.65,"cloudCoverPct":20,"windSpeedMs":5,"precipitationMm":0,"visibilityKm":20,"thunderRisk":false,"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"},"sampleCount":{"type":"number"},"goCount":{"type":"number"},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"at":{"type":"string"},"latitudeDeg":{"type":"number"},"longitudeDeg":{"type":"number"},"cloudCoverPct":{"type":"number"},"cloudCoverPctSupplied":{"type":"boolean"},"windSpeedMs":{"type":"number"},"windSpeedMsSupplied":{"type":"boolean"},"precipitationMm":{"type":"number"},"precipitationMmSupplied":{"type":"boolean"},"visibilityKm":{"type":"number"},"visibilityKmSupplied":{"type":"boolean"},"thunderRisk":{"type":"boolean"},"thunderRiskSupplied":{"type":"boolean"},"goNoGo":{"type":"string"},"blockReasons":{"type":"array","items":{}},"source":{"type":"string"}},"additionalProperties":true}},"paidProviderUsed":{"type":"boolean"},"apiKeyRequired":{"type":"boolean"},"commercialImageryUsed":{"type":"boolean"},"paidOrbitalApiUsed":{"type":"boolean"},"celestrakFetched":{"type":"boolean"},"openMeteoFetched":{"type":"boolean"},"orbitalModel":{"type":"string"},"orbitalUncertaintyNote":{"type":"string"},"findings":{"type":"array","items":{}},"limitations":{"type":"array","items":{"type":"string"}}},"additionalProperties":true},"example":{"checkedAt":"2026-11-04T21:00:00.000Z","status":"analyzed","sampleCount":1,"goCount":1,"items":[{"id":"W1","at":"2026-11-04T21:00:00.000Z","latitudeDeg":28.57,"longitudeDeg":-80.65,"cloudCoverPct":20,"cloudCoverPctSupplied":true,"windSpeedMs":5,"windSpeedMsSupplied":true,"precipitationMm":0,"precipitationMmSupplied":true,"visibilityKm":20,"visibilityKmSupplied":true,"thunderRisk":false,"thunderRiskSupplied":true,"goNoGo":"go","blockReasons":[],"source":"Caller-supplied"}],"paidProviderUsed":false,"apiKeyRequired":false,"commercialImageryUsed":false,"paidOrbitalApiUsed":false,"celestrakFetched":false,"openMeteoFetched":false,"orbitalModel":"simplified-keplerian-from-tle-mean-elements","orbitalUncertaintyNote":"Positions and pass times are approximate. Simplified Keplerian propagation from TLE mean elements omits drag and perturbation modeling used by SGP4. Uncertainty grows with element age.","findings":[],"limitations":["Orbital elements, observers, imagery metadata, weather rows, and catalog objects are copied only from labeled fields supplied by the caller, or from key-free CelesTrak GP / Open-Meteo responses when explicitly requested.","No commercial satellite imagery provider or paid orbital API is used and no API key is required.","Pass and conjunction geometry use a simplified Keplerian propagator from TLE mean elements, not full SGP4/SDP4. Treat timing and miss-distance values as approximate and communicate residual orbital uncertainty.","TLE freshness is reported from the element epoch when parseable. Stale elements increase positional uncertainty.","Earth-observation change, cloud, quality, and license results use only caller-supplied image metadata/statistics. Pixels are not downloaded from commercial archives."]}}}},"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/space-intelligence/object-catalog-compare":{"post":{"operationId":"compare_space_object_catalogs","summary":"Compare space-object catalogs","description":"Compare left/right caller-supplied space-object catalog rows by NORAD ID/name and optional element fields.","tags":["space-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}},"tles":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"name":{"type":"string","maxLength":160},"noradId":{"type":"string","maxLength":20},"line1":{"type":"string","maxLength":120},"line2":{"type":"string","maxLength":120},"text":{"type":"string","maxLength":400},"epoch":{"type":"string","maxLength":40},"source":{"type":"string","maxLength":200},"side":{"type":"string","enum":["before","after","left","right","a","b"]}},"additionalProperties":false}},"observers":{"maxItems":50,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"name":{"type":"string","maxLength":160},"latitudeDeg":{"type":"number","minimum":-90,"maximum":90},"longitudeDeg":{"type":"number","minimum":-180,"maximum":180},"altitudeKm":{"type":"number","minimum":-1,"maximum":20},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"images":{"maxItems":500,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"sceneId":{"type":"string","maxLength":120},"satellite":{"type":"string","maxLength":120},"capturedAt":{"type":"string","maxLength":40},"lat":{"type":"number","minimum":-90,"maximum":90},"lon":{"type":"number","minimum":-180,"maximum":180},"cloudCoverPct":{"type":"number","minimum":0,"maximum":100},"sharpness":{"type":"number","minimum":0,"maximum":1000000},"snr":{"type":"number","minimum":0,"maximum":1000000},"resolutionM":{"type":"number","minimum":0,"maximum":1000000},"license":{"type":"string","maxLength":200},"attribution":{"type":"string","maxLength":400},"licenseUrl":{"type":"string","maxLength":400},"side":{"type":"string","enum":["before","after","left","right","a","b"]},"ndvi":{"type":"number","minimum":-1,"maximum":1},"brightness":{"type":"number","minimum":0,"maximum":1000000},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"weather":{"maxItems":500,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"at":{"type":"string","maxLength":40},"latitudeDeg":{"type":"number","minimum":-90,"maximum":90},"longitudeDeg":{"type":"number","minimum":-180,"maximum":180},"cloudCoverPct":{"type":"number","minimum":0,"maximum":100},"windSpeedMs":{"type":"number","minimum":0,"maximum":200},"precipitationMm":{"type":"number","minimum":0,"maximum":1000},"visibilityKm":{"type":"number","minimum":0,"maximum":200},"thunderRisk":{"type":"boolean"},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"catalogObjects":{"maxItems":2000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"noradId":{"type":"string","maxLength":20},"name":{"type":"string","maxLength":160},"objectType":{"type":"string","maxLength":80},"inclinationDeg":{"type":"number","minimum":0,"maximum":180},"periodMin":{"type":"number","minimum":0,"maximum":100000},"eccentricity":{"type":"number","minimum":0,"maximum":1},"side":{"type":"string","enum":["left","right","a","b"]},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"celestrak":{"type":"object","properties":{"catnr":{"type":"string","maxLength":20},"group":{"type":"string","maxLength":80},"name":{"type":"string","maxLength":160},"limit":{"type":"integer","minimum":1,"maximum":50}},"additionalProperties":false},"openMeteo":{"type":"object","properties":{"latitudeDeg":{"type":"number","minimum":-90,"maximum":90},"longitudeDeg":{"type":"number","minimum":-180,"maximum":180},"start":{"type":"string","maxLength":40},"hours":{"type":"integer","minimum":1,"maximum":168}},"required":["latitudeDeg","longitudeDeg"],"additionalProperties":false},"asOf":{"type":"string","maxLength":40},"horizonHours":{"type":"number","minimum":1,"maximum":168},"minElevationDeg":{"type":"number","minimum":0,"maximum":90},"stepMinutes":{"type":"number","minimum":0.5,"maximum":60},"conjunctionThresholdKm":{"type":"number","minimum":0.1,"maximum":10000}},"additionalProperties":false},"example":{"asOf":"2026-11-04T21:00:00.000Z","catalogObjects":[{"id":"1","noradId":"25544","name":"ISS","side":"left","inclinationDeg":51.6,"periodMin":92.9,"source":"Caller-supplied"},{"id":"2","noradId":"25544","name":"ISS","side":"right","inclinationDeg":51.63,"periodMin":92.8,"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"},"objectCount":{"type":"number"},"matchedCount":{"type":"number"},"items":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"},"noradId":{"type":"string"},"match":{"type":"boolean"},"onlyIn":{"type":"string"},"deltaInclinationDeg":{"type":"number"},"deltaInclinationDegSupplied":{"type":"boolean"},"deltaPeriodMin":{"type":"number"},"deltaPeriodMinSupplied":{"type":"boolean"},"leftSource":{"type":"string"},"rightSource":{"type":"string"}},"additionalProperties":true}},"paidProviderUsed":{"type":"boolean"},"apiKeyRequired":{"type":"boolean"},"commercialImageryUsed":{"type":"boolean"},"paidOrbitalApiUsed":{"type":"boolean"},"celestrakFetched":{"type":"boolean"},"openMeteoFetched":{"type":"boolean"},"orbitalModel":{"type":"string"},"orbitalUncertaintyNote":{"type":"string"},"findings":{"type":"array","items":{}},"limitations":{"type":"array","items":{"type":"string"}}},"additionalProperties":true},"example":{"checkedAt":"2026-11-04T21:00:00.000Z","status":"compared","objectCount":1,"matchedCount":1,"items":[{"key":"25544","name":"ISS","noradId":"25544","match":true,"onlyIn":"both","deltaInclinationDeg":0.03,"deltaInclinationDegSupplied":true,"deltaPeriodMin":-0.1,"deltaPeriodMinSupplied":true,"leftSource":"Caller-supplied","rightSource":"Caller-supplied"}],"paidProviderUsed":false,"apiKeyRequired":false,"commercialImageryUsed":false,"paidOrbitalApiUsed":false,"celestrakFetched":false,"openMeteoFetched":false,"orbitalModel":"simplified-keplerian-from-tle-mean-elements","orbitalUncertaintyNote":"Positions and pass times are approximate. Simplified Keplerian propagation from TLE mean elements omits drag and perturbation modeling used by SGP4. Uncertainty grows with element age.","findings":[],"limitations":["Orbital elements, observers, imagery metadata, weather rows, and catalog objects are copied only from labeled fields supplied by the caller, or from key-free CelesTrak GP / Open-Meteo responses when explicitly requested.","No commercial satellite imagery provider or paid orbital API is used and no API key is required.","Pass and conjunction geometry use a simplified Keplerian propagator from TLE mean elements, not full SGP4/SDP4. Treat timing and miss-distance values as approximate and communicate residual orbital uncertainty.","TLE freshness is reported from the element epoch when parseable. Stale elements increase positional uncertainty.","Earth-observation change, cloud, quality, and license results use only caller-supplied image metadata/statistics. Pixels are not downloaded from commercial archives."]}}}},"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/space-intelligence/satellite-observation-evidence-report":{"post":{"operationId":"build_satellite_observation_evidence_report","summary":"Build satellite observation evidence report","description":"Aggregate passes, orbit changes, conjunctions, EO change, cloud/quality/license checks, launch weather, and catalog comparison with orbital uncertainty and TLE freshness notes.","tags":["space-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}},"tles":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"name":{"type":"string","maxLength":160},"noradId":{"type":"string","maxLength":20},"line1":{"type":"string","maxLength":120},"line2":{"type":"string","maxLength":120},"text":{"type":"string","maxLength":400},"epoch":{"type":"string","maxLength":40},"source":{"type":"string","maxLength":200},"side":{"type":"string","enum":["before","after","left","right","a","b"]}},"additionalProperties":false}},"observers":{"maxItems":50,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"name":{"type":"string","maxLength":160},"latitudeDeg":{"type":"number","minimum":-90,"maximum":90},"longitudeDeg":{"type":"number","minimum":-180,"maximum":180},"altitudeKm":{"type":"number","minimum":-1,"maximum":20},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"images":{"maxItems":500,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"sceneId":{"type":"string","maxLength":120},"satellite":{"type":"string","maxLength":120},"capturedAt":{"type":"string","maxLength":40},"lat":{"type":"number","minimum":-90,"maximum":90},"lon":{"type":"number","minimum":-180,"maximum":180},"cloudCoverPct":{"type":"number","minimum":0,"maximum":100},"sharpness":{"type":"number","minimum":0,"maximum":1000000},"snr":{"type":"number","minimum":0,"maximum":1000000},"resolutionM":{"type":"number","minimum":0,"maximum":1000000},"license":{"type":"string","maxLength":200},"attribution":{"type":"string","maxLength":400},"licenseUrl":{"type":"string","maxLength":400},"side":{"type":"string","enum":["before","after","left","right","a","b"]},"ndvi":{"type":"number","minimum":-1,"maximum":1},"brightness":{"type":"number","minimum":0,"maximum":1000000},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"weather":{"maxItems":500,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"at":{"type":"string","maxLength":40},"latitudeDeg":{"type":"number","minimum":-90,"maximum":90},"longitudeDeg":{"type":"number","minimum":-180,"maximum":180},"cloudCoverPct":{"type":"number","minimum":0,"maximum":100},"windSpeedMs":{"type":"number","minimum":0,"maximum":200},"precipitationMm":{"type":"number","minimum":0,"maximum":1000},"visibilityKm":{"type":"number","minimum":0,"maximum":200},"thunderRisk":{"type":"boolean"},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"catalogObjects":{"maxItems":2000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"noradId":{"type":"string","maxLength":20},"name":{"type":"string","maxLength":160},"objectType":{"type":"string","maxLength":80},"inclinationDeg":{"type":"number","minimum":0,"maximum":180},"periodMin":{"type":"number","minimum":0,"maximum":100000},"eccentricity":{"type":"number","minimum":0,"maximum":1},"side":{"type":"string","enum":["left","right","a","b"]},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"celestrak":{"type":"object","properties":{"catnr":{"type":"string","maxLength":20},"group":{"type":"string","maxLength":80},"name":{"type":"string","maxLength":160},"limit":{"type":"integer","minimum":1,"maximum":50}},"additionalProperties":false},"openMeteo":{"type":"object","properties":{"latitudeDeg":{"type":"number","minimum":-90,"maximum":90},"longitudeDeg":{"type":"number","minimum":-180,"maximum":180},"start":{"type":"string","maxLength":40},"hours":{"type":"integer","minimum":1,"maximum":168}},"required":["latitudeDeg","longitudeDeg"],"additionalProperties":false},"asOf":{"type":"string","maxLength":40},"horizonHours":{"type":"number","minimum":1,"maximum":168},"minElevationDeg":{"type":"number","minimum":0,"maximum":90},"stepMinutes":{"type":"number","minimum":0.5,"maximum":60},"conjunctionThresholdKm":{"type":"number","minimum":0.1,"maximum":10000}},"additionalProperties":false},"example":{"asOf":"2026-11-04T21:00:00.000Z","horizonHours":24,"minElevationDeg":5,"stepMinutes":2,"tles":[{"name":"ISS (ZARYA)","line1":"1 25544U 98067A   26308.36953014  .00005228  00000+0  10236-3 0  9991","line2":"2 25544  51.6329 326.3987 0007186 346.7494  13.3304 15.49173979593483","source":"Caller-supplied CelesTrak snapshot"}],"observers":[{"id":"OBS1","name":"Austin","latitudeDeg":30.27,"longitudeDeg":-97.74,"altitudeKm":0.2,"source":"Caller-supplied"}],"images":[{"id":"B","sceneId":"AOI1","side":"before","ndvi":0.4,"brightness":100,"cloudCoverPct":5,"sharpness":0.8,"snr":30,"resolutionM":10,"license":"CC-BY-4.0","attribution":"ESA","capturedAt":"2026-10-01","source":"Caller-supplied"},{"id":"A","sceneId":"AOI1","side":"after","ndvi":0.55,"brightness":110,"cloudCoverPct":8,"sharpness":0.75,"snr":28,"resolutionM":10,"license":"CC-BY-4.0","attribution":"ESA","capturedAt":"2026-11-01","source":"Caller-supplied"}],"weather":[{"id":"W1","at":"2026-11-04T21:00:00.000Z","latitudeDeg":28.57,"longitudeDeg":-80.65,"cloudCoverPct":20,"windSpeedMs":5,"precipitationMm":0,"visibilityKm":20,"thunderRisk":false,"source":"Caller-supplied"}],"catalogObjects":[{"id":"1","noradId":"25544","name":"ISS","side":"left","inclinationDeg":51.6,"periodMin":92.9,"source":"Caller-supplied"},{"id":"2","noradId":"25544","name":"ISS","side":"right","inclinationDeg":51.63,"periodMin":92.8,"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":{"passes":{"type":"object","properties":{"passCount":{"type":"number"},"satelliteCount":{"type":"number"}},"additionalProperties":true},"orbitChanges":{"type":"object","properties":{"pairCount":{"type":"number"},"changeCount":{"type":"number"}},"additionalProperties":true},"conjunctions":{"type":"object","properties":{"pairCount":{"type":"number"},"screenedCount":{"type":"number"}},"additionalProperties":true},"earthObservation":{"type":"object","properties":{"pairCount":{"type":"number"},"changeCount":{"type":"number"}},"additionalProperties":true},"cloudAssess":{"type":"object","properties":{"sceneCount":{"type":"number"},"usableCount":{"type":"number"}},"additionalProperties":true},"imageQuality":{"type":"object","properties":{"sceneCount":{"type":"number"},"passCount":{"type":"number"}},"additionalProperties":true},"licenses":{"type":"object","properties":{"sceneCount":{"type":"number"},"openCount":{"type":"number"}},"additionalProperties":true},"launchWeather":{"type":"object","properties":{"sampleCount":{"type":"number"},"goCount":{"type":"number"}},"additionalProperties":true},"catalog":{"type":"object","properties":{"objectCount":{"type":"number"},"matchedCount":{"type":"number"}},"additionalProperties":true}},"additionalProperties":true},"dataFreshness":{"type":"object","properties":{"tleCount":{"type":"number"},"oldestTleEpochAgeHours":{"type":"number"},"newestTleEpochAgeHours":{"type":"number"},"freshnessNote":{"type":"string"}},"additionalProperties":true},"paidProviderUsed":{"type":"boolean"},"apiKeyRequired":{"type":"boolean"},"commercialImageryUsed":{"type":"boolean"},"paidOrbitalApiUsed":{"type":"boolean"},"celestrakFetched":{"type":"boolean"},"openMeteoFetched":{"type":"boolean"},"orbitalModel":{"type":"string"},"orbitalUncertaintyNote":{"type":"string"},"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":{"passes":{"passCount":4,"satelliteCount":1},"orbitChanges":{"pairCount":0,"changeCount":0},"conjunctions":{"pairCount":0,"screenedCount":0},"earthObservation":{"pairCount":1,"changeCount":1},"cloudAssess":{"sceneCount":2,"usableCount":2},"imageQuality":{"sceneCount":2,"passCount":2},"licenses":{"sceneCount":2,"openCount":2},"launchWeather":{"sampleCount":1,"goCount":1},"catalog":{"objectCount":1,"matchedCount":1}},"dataFreshness":{"tleCount":1,"oldestTleEpochAgeHours":12.1313,"newestTleEpochAgeHours":12.1313,"freshnessNote":"TLE epoch ages are hours since element epoch at asOf."},"paidProviderUsed":false,"apiKeyRequired":false,"commercialImageryUsed":false,"paidOrbitalApiUsed":false,"celestrakFetched":false,"openMeteoFetched":false,"orbitalModel":"simplified-keplerian-from-tle-mean-elements","orbitalUncertaintyNote":"Positions and pass times are approximate. Simplified Keplerian propagation from TLE mean elements omits drag and perturbation modeling used by SGP4. Uncertainty grows with element age.","findings":[{"kind":"missing","code":"orbit_pair","subject":"25544","detail":"Both before and after TLEs are required to detect orbit change."},{"kind":"missing","code":"conjunction_objects","subject":"","detail":"At least two TLEs are required for conjunction screening."}],"limitations":["Orbital elements, observers, imagery metadata, weather rows, and catalog objects are copied only from labeled fields supplied by the caller, or from key-free CelesTrak GP / Open-Meteo responses when explicitly requested.","No commercial satellite imagery provider or paid orbital API is used and no API key is required.","Pass and conjunction geometry use a simplified Keplerian propagator from TLE mean elements, not full SGP4/SDP4. Treat timing and miss-distance values as approximate and communicate residual orbital uncertainty.","TLE freshness is reported from the element epoch when parseable. Stale elements increase positional uncertainty.","Earth-observation change, cloud, quality, and license results use only caller-supplied image metadata/statistics. Pixels are not downloaded from commercial archives."]}}}},"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":{}}}}}}}}