{"openapi":"3.1.0","info":{"title":"Delion observation API","version":"0.1.0","description":"Read-only observation and supplier access. Commercial operations search and quote only; ordering is not implemented. The public workspace remains anonymous. Initial service for evaluation, with no SLA."},"servers":[{"url":"/"}],"paths":{"/api/v1/providers":{"get":{"operationId":"delion_supplier_catalog","summary":"Discover satellite suppliers","description":"Read live public UP42 supplier and collection metadata. This does not search actual imagery or grant purchase rights.","security":[{},{"serviceKey":[]}],"parameters":[{"name":"query","in":"query","schema":{"default":"","type":"string","maxLength":100},"required":false},{"name":"limit","in":"query","schema":{"default":50,"type":"integer","minimum":1,"maximum":100},"required":false}],"responses":{"200":{"description":"Result in {data, meta: {apiVersion, requestId}}. Source timestamps and limitations accompany data.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","additionalProperties":true},"meta":{"type":"object","properties":{"apiVersion":{"const":"v1"},"requestId":{"type":"string"}}}}}}}},"400":{"description":"Invalid input; error.code and error.message"},"401":{"description":"Invalid or expired API key"},"403":{"description":"Key permission missing"},"429":{"description":"API quota reached"},"502":{"description":"Upstream source unavailable"}}}},"/api/v1/observations/search":{"post":{"operationId":"delion_search_observations","summary":"Search open satellite imagery","description":"Search recent Sentinel-2 optical or Sentinel-1 radar metadata for an area. Returns up to 60 scenes; radar pixels are not processed. Whole-scene clouds do not establish area quality.","security":[{},{"serviceKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"geometry":{"type":"object","properties":{"type":{"type":"string","const":"Polygon"},"coordinates":{"minItems":1,"maxItems":1,"type":"array","items":{"minItems":4,"maxItems":201,"type":"array","items":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}]}}}},"required":["type","coordinates"]},"days":{"default":90,"anyOf":[{"type":"number","const":30},{"type":"number","const":90},{"type":"number","const":180},{"type":"number","const":365}]},"cloud":{"default":30,"type":"number","minimum":0,"maximum":100},"source":{"default":"optical","type":"string","enum":["optical","radar"]}},"required":["geometry"],"additionalProperties":false}}}},"responses":{"200":{"description":"Result in {data, meta: {apiVersion, requestId}}. Source timestamps and limitations accompany data.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","additionalProperties":true},"meta":{"type":"object","properties":{"apiVersion":{"const":"v1"},"requestId":{"type":"string"}}}}}}}},"400":{"description":"Invalid input; error.code and error.message"},"401":{"description":"Invalid or expired API key"},"403":{"description":"Key permission missing"},"429":{"description":"API quota reached"},"502":{"description":"Upstream source unavailable"}}}},"/api/v1/weather/events":{"post":{"operationId":"delion_find_weather_events","summary":"Find historical weather events","description":"Find rain, snow, dry, heat, cold, wind or cloud events in up to 366 past days. Daily regional NASA POWER estimates; missing data stays unknown. This does not establish damage. Returns up to 50 events.","security":[{},{"serviceKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"geometry":{"type":"object","properties":{"type":{"type":"string","const":"Polygon"},"coordinates":{"minItems":1,"maxItems":1,"type":"array","items":{"minItems":4,"maxItems":201,"type":"array","items":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}]}}}},"required":["type","coordinates"]},"start":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"end":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"kind":{"type":"string","enum":["rain","dry","heat","cold","wind","clear","cloudy","snow"]},"threshold":{"type":"number","minimum":-100,"maximum":2000},"minimumDays":{"type":"integer","minimum":1,"maximum":366}},"required":["geometry","start","end","kind"],"additionalProperties":false}}}},"responses":{"200":{"description":"Result in {data, meta: {apiVersion, requestId}}. Source timestamps and limitations accompany data.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","additionalProperties":true},"meta":{"type":"object","properties":{"apiVersion":{"const":"v1"},"requestId":{"type":"string"}}}}}}}},"400":{"description":"Invalid input; error.code and error.message"},"401":{"description":"Invalid or expired API key"},"403":{"description":"Key permission missing"},"429":{"description":"API quota reached"},"502":{"description":"Upstream source unavailable"}}}},"/api/v1/observations/bracket":{"post":{"operationId":"delion_event_observations","summary":"Find captures around an event","description":"Find up to eight Sentinel-2 acquisition days during an event and per side within 21 days. Returns source imagery and SCL mask URLs; area quality has not yet been checked by this API.","security":[{},{"serviceKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"geometry":{"type":"object","properties":{"type":{"type":"string","const":"Polygon"},"coordinates":{"minItems":1,"maxItems":1,"type":"array","items":{"minItems":4,"maxItems":201,"type":"array","items":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}]}}}},"required":["type","coordinates"]},"start":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"end":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},"required":["geometry","start","end"],"additionalProperties":false}}}},"responses":{"200":{"description":"Result in {data, meta: {apiVersion, requestId}}. Source timestamps and limitations accompany data.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","additionalProperties":true},"meta":{"type":"object","properties":{"apiVersion":{"const":"v1"},"requestId":{"type":"string"}}}}}}}},"400":{"description":"Invalid input; error.code and error.message"},"401":{"description":"Invalid or expired API key"},"403":{"description":"Key permission missing"},"429":{"description":"API quota reached"},"502":{"description":"Upstream source unavailable"}}}},"/api/v1/commercial/status":{"get":{"operationId":"delion_commercial_status","summary":"Check commercial connection","description":"Owner-authorized check of the server-held SkyFi connection. Does not return account details or keys. Requires owner OAuth or Delion service-key authorization.","security":[{"serviceKey":[]}],"parameters":[],"responses":{"200":{"description":"Result in {data, meta: {apiVersion, requestId}}. Source timestamps and limitations accompany data.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","additionalProperties":true},"meta":{"type":"object","properties":{"apiVersion":{"const":"v1"},"requestId":{"type":"string"}}}}}}}},"400":{"description":"Invalid input; error.code and error.message"},"401":{"description":"Owner OAuth or configured service key required"},"403":{"description":"Key permission missing"},"429":{"description":"API quota reached"},"502":{"description":"Upstream source unavailable"},"503":{"description":"Provider credential not configured"}}}},"/api/v1/commercial/search":{"post":{"operationId":"delion_search_commercial","summary":"Search commercial imagery","description":"Owner-authorized SkyFi archive search. Requires a configured SkyFi API key and Delion authorization. Returns indicative pricing, not purchased imagery. No order is placed.","security":[{"serviceKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"geometry":{"type":"object","properties":{"type":{"type":"string","const":"Polygon"},"coordinates":{"minItems":1,"maxItems":1,"type":"array","items":{"minItems":4,"maxItems":201,"type":"array","items":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}]}}}},"required":["type","coordinates"]},"start":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"end":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"cloud":{"default":30,"type":"number","minimum":0,"maximum":100},"limit":{"default":20,"type":"integer","minimum":1,"maximum":50},"productTypes":{"default":["DAY","SAR"],"minItems":1,"maxItems":9,"type":"array","items":{"type":"string","enum":["DAY","NIGHT","VIDEO","MULTISPECTRAL","HYPERSPECTRAL","SAR","STEREO","BASEMAP","THERMAL"]}}},"required":["geometry","start","end"],"additionalProperties":false}}}},"responses":{"200":{"description":"Result in {data, meta: {apiVersion, requestId}}. Source timestamps and limitations accompany data.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","additionalProperties":true},"meta":{"type":"object","properties":{"apiVersion":{"const":"v1"},"requestId":{"type":"string"}}}}}}}},"400":{"description":"Invalid input; error.code and error.message"},"401":{"description":"Owner OAuth or configured service key required"},"403":{"description":"Key permission missing"},"429":{"description":"API quota reached"},"502":{"description":"Upstream source unavailable"},"503":{"description":"Provider credential not configured"}}}},"/api/v1/commercial/quote":{"post":{"operationId":"delion_quote_archive","summary":"Validate an archive quote","description":"Owner-authorized SkyFi archive price validation for an exact area and archive ID. Requires configured SkyFi credentials. Returns USD cents. Does not buy, reserve or task a satellite.","security":[{"serviceKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"geometry":{"type":"object","properties":{"type":{"type":"string","const":"Polygon"},"coordinates":{"minItems":1,"maxItems":1,"type":"array","items":{"minItems":4,"maxItems":201,"type":"array","items":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}]}}}},"required":["type","coordinates"]},"archiveId":{"type":"string","minLength":1,"maxLength":200,"pattern":"^[A-Za-z0-9_.:-]+$"}},"required":["geometry","archiveId"],"additionalProperties":false}}}},"responses":{"200":{"description":"Result in {data, meta: {apiVersion, requestId}}. Source timestamps and limitations accompany data.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","additionalProperties":true},"meta":{"type":"object","properties":{"apiVersion":{"const":"v1"},"requestId":{"type":"string"}}}}}}}},"400":{"description":"Invalid input; error.code and error.message"},"401":{"description":"Owner OAuth or configured service key required"},"403":{"description":"Key permission missing"},"429":{"description":"API quota reached"},"502":{"description":"Upstream source unavailable"},"503":{"description":"Provider credential not configured"}}}}},"components":{"securitySchemes":{"serviceKey":{"type":"http","scheme":"bearer","description":"Account key from Your account: scoped, expiring and revocable. Legacy operator keys authorize commercial tools only; never send a supplier API key. Authenticated Site-owner requests are also accepted through the hosting OAuth boundary."}}}}