{"openapi":"3.0.3","info":{"title":"Deep Sky Monitor API","version":"1.0.0","description":"The data addresses behind Deep Sky Monitor. All `GET` addresses are public and read-only; their answers are JSON unless stated otherwise. Coordinates are J2000 degrees (right ascension 0–360, declination −90–90).\n\n**Feature toggles.** Addresses belonging to a switched-off feature answer `404` (for example the Sun addresses while `SOLAR_FLARE` is off, gravitational-wave addresses while `GRAVITATIONAL_WAVES` is off).\n\n**Rate limits.** Addresses that call outside services are limited per visitor (shown on each); beyond the limit they answer `429`.","contact":{"name":"Deep Sky Monitor","url":"https://portal.deepskymonitor.in/guide"}},"servers":[{"url":"https://portal.deepskymonitor.in","description":"This copy of Deep Sky Monitor"}],"tags":[{"name":"Sky sources","description":"What the Explore Deep Sky chart shows."},{"name":"Catalogues","description":"Large catalogues sent in a compact form (field names once, then rows), and look-ups in them."},{"name":"Object look-ups","description":"Search, facts, nearby objects, images and light curves for one object or position. These ask outside services (CDS, NASA, Wikipedia, ALeRCE, UKSSDC) and are cached."},{"name":"Spacecraft","description":"Space Observatories."},{"name":"The Sun","description":"The Sun page. All answer 404 while the SOLAR_FLARE toggle is off."},{"name":"Images","description":"Image files (not JSON), cached on this server."},{"name":"Status","description":"Health of the outside services."}],"paths":{"/api/sources":{"get":{"tags":["Sky sources"],"summary":"The curated deep-sky sources","description":"Pulsars, black holes and jets, magnetars, fast radio bursts and SETI targets shown on the chart, with positions (RA in hours, Dec in degrees), distances and featured images.","responses":{"200":{"description":"The sources","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Source"}}}}}}}}}},"/api/gw/{supereventId}/region":{"get":{"tags":["Sky sources"],"summary":"A gravitational-wave event's sky region","description":"The 90% probability region as sky cells. 404 while GRAVITATIONAL_WAVES is off or for an unknown event.","parameters":[{"$ref":"#/components/parameters/SupereventId"}],"responses":{"200":{"description":"The region","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","example":"S250101ab"},"area90":{"type":"number","description":"Area of the 90% region, deg²"},"cells":{"type":"array","items":[],"description":"Sky cells of the region"}}}}}},"404":{"$ref":"#/components/responses/NotFound"}}}},"/api/gw/{supereventId}/galaxies":{"get":{"tags":["Object look-ups"],"summary":"Possible host galaxies of a gravitational-wave event","description":"The most massive GLADE+ galaxies (VizieR) inside the 90% region and distance range: a ranking, not a detection. Limit: 20 per minute.","parameters":[{"$ref":"#/components/parameters/SupereventId"}],"responses":{"200":{"description":"The galaxies","content":{"application/json":{"schema":{"type":"object","properties":{"galaxies":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"ra":{"type":"number"},"dec":{"type":"number"},"distMpc":{"type":"number","nullable":true},"mass":{"type":"number","nullable":true,"description":"Stellar mass, 10¹⁰ solar masses"}}}},"distance":{"type":"array","items":{"type":"number"},"description":"Distance range searched, Mpc"},"tooLarge":{"type":"boolean","description":"True when the region is over 1,500 deg² (no list)"},"searched":{"type":"integer"}}}}}},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooMany"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/api/pulsars":{"get":{"tags":["Catalogues"],"summary":"Every known pulsar (ATNF catalogue)","description":"About 4,500 pulsars, compact: `fields` names the columns of each row. Supports `ETag` / `If-None-Match` (answers 304 when unchanged).","responses":{"200":{"description":"The catalogue","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FieldsRows"},"example":{"fields":["jname","bname","ra","dec","p","pdot","dm","distKpc","bG","ageYr","pbDays","s1400","types","assoc","gl","gb"],"rows":[["J0534+2200","B0531+21",83.6332,22.0145,0.0333924,4.204e-13,56.77,2,3790000000000,1260,null,14,"HE[...]","SNR:Crab",184.56,-5.78]]}}}},"304":{"description":"Not changed since the ETag given"}}}},"/api/galaxies":{"get":{"tags":["Catalogues"],"summary":"Every galaxy in the NGC/IC catalogue (OpenNGC)","description":"About 10,800 galaxies, compact (`fields` + `rows`), brightest first. Sent gzip-compressed when the browser accepts it; supports `ETag`.","responses":{"200":{"description":"The galaxies","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FieldsRows"},"example":{"fields":["name","ra","dec","mag","maj","min","pa","type","common","messier"],"rows":[["NGC0224",10.6847,41.2689,3.4,177.83,69.66,35,null,"Andromeda Galaxy",31]]}}}},"304":{"description":"Not changed since the ETag given"}}}},"/api/catalog/search":{"get":{"tags":["Catalogues"],"summary":"Search the NGC/IC catalogue by name","description":"Suggestions for the search box: NGC/IC numbers, Messier numbers and common names. Limit: 120 per minute.","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","maxLength":60},"example":"M31"}],"responses":{"200":{"description":"Matches (empty when none)","content":{"application/json":{"schema":{"type":"object","properties":{"results":{"type":"array","items":{"type":"object","additionalProperties":true}}}}}}},"422":{"$ref":"#/components/responses/Invalid"},"429":{"$ref":"#/components/responses/TooMany"}}}},"/api/catalog/object/{name}":{"get":{"tags":["Catalogues"],"summary":"One NGC/IC object's full record","description":"Duplicates resolve to the object they duplicate. Limit: 120 per minute.","parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string","pattern":"^[A-Za-z0-9 +\\-.]{1,24}$"},"example":"NGC0224"}],"responses":{"200":{"description":"The object","content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"display":{"type":"string"},"common":{"type":"string","nullable":true},"commonNames":{"type":"array","items":{"type":"string"}},"type":{"type":"string"},"typeLabel":{"type":"string"},"galaxy":{"type":"boolean"},"ra":{"type":"number"},"dec":{"type":"number"},"con":{"type":"string"},"maj":{"type":"number","nullable":true},"min":{"type":"number","nullable":true},"pa":{"type":"number","nullable":true},"bMag":{"type":"number","nullable":true},"vMag":{"type":"number","nullable":true},"surfBr":{"type":"number","nullable":true},"hubble":{"type":"string","nullable":true},"radVel":{"type":"number","nullable":true},"z":{"type":"number","nullable":true},"distLy":{"type":"number","nullable":true},"messier":{"type":"integer","nullable":true},"identifiers":{"type":"array","items":{"type":"string"}},"notes":{"type":"string","nullable":true},"nedNotes":{"type":"string","nullable":true}}}}}},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooMany"}}}},"/api/sky-names":{"get":{"tags":["Catalogues"],"summary":"Names for the search-box suggestions","description":"IAU star names (`[name, designation, constellation, magnitude, ra, dec, asciiName, query]`) and other named objects (`[name, query, note]`). Supports `ETag`.","responses":{"200":{"description":"The names","content":{"application/json":{"schema":{"type":"object","properties":{"stars":{"type":"array","items":{"type":"array","items":[]}},"objects":{"type":"array","items":{"type":"array","items":[]}}}}}}},"304":{"description":"Not changed since the ETag given"}}}},"/api/resolve":{"get":{"tags":["Object look-ups"],"summary":"Find an object by name","description":"Resolves a name with CDS Sesame (SIMBAD, then NED and VizieR); while SIMBAD is down, NGC/IC and Messier objects are still found in the OpenNGC copy. Answers are cached 30 days. Limit: 30 per minute.","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","maxLength":80},"example":"Crab Nebula"}],"responses":{"200":{"description":"Found","content":{"application/json":{"schema":{"type":"object","properties":{"found":{"type":"boolean","example":true},"name":{"type":"string","example":"M 1"},"type":{"type":"string","example":"Supernova remnant"},"ra":{"type":"number","example":83.6331},"dec":{"type":"number","example":22.0145},"simbad":{"type":"string","format":"uri"},"catalog":{"type":"string","description":"OpenNGC name, when found there"},"query":{"type":"string"}}}}}},"404":{"description":"Not found (`partial: true` when NED and VizieR didn't answer in time)","content":{"application/json":{"schema":{"type":"object","properties":{"found":{"type":"boolean","example":false},"partial":{"type":"boolean"},"query":{"type":"string"},"error":{"type":"string"}}}}}},"422":{"$ref":"#/components/responses/Invalid"},"429":{"$ref":"#/components/responses/TooMany"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/api/object-facts":{"get":{"tags":["Object look-ups"],"summary":"Facts about an object (SIMBAD, Wikipedia, NASA ADS)","description":"Type, distance, magnitudes, size, number of papers, a Wikipedia summary and (with an ADS token on the server) the newest papers. `facts` is null when SIMBAD has no entry. Limit: 30 per minute.","parameters":[{"name":"name","in":"query","required":true,"schema":{"type":"string","maxLength":80},"example":"Sgr A*"}],"responses":{"200":{"description":"The facts","content":{"application/json":{"schema":{"type":"object","properties":{"facts":{"type":"object","nullable":true,"properties":{"id":{"type":"string"},"name":{"type":"string"},"type":{"type":"string"},"typeDescription":{"type":"string"},"typePath":{"type":"array","items":{"type":"string"}},"ra":{"type":"number"},"dec":{"type":"number"},"distanceLy":{"type":"number","nullable":true},"distanceCount":{"type":"integer"},"parallaxMas":{"type":"number","nullable":true},"redshift":{"type":"number","nullable":true},"spectralType":{"type":"string","nullable":true},"morphology":{"type":"string","nullable":true},"sizeArcmin":{"type":"array","items":{"type":"number"},"nullable":true},"mags":{"type":"object","additionalProperties":{"type":"number"}},"refs":{"type":"integer"},"wikipedia":{"type":"object","nullable":true},"papers":{"type":"array","items":{"type":"object"}},"simbad":{"type":"string"},"ned":{"type":"string"},"ads":{"type":"string"}}}}}}}},"422":{"$ref":"#/components/responses/Invalid"},"429":{"$ref":"#/components/responses/TooMany"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/api/nearby":{"get":{"tags":["Object look-ups"],"summary":"What's around a position (SIMBAD cone search)","description":"The best-studied objects SIMBAD lists within the radius (falls back to the Harvard SIMBAD mirror). Limit: 30 per minute.","parameters":[{"$ref":"#/components/parameters/Ra"},{"$ref":"#/components/parameters/Dec"},{"name":"radius","in":"query","required":true,"description":"Arcminutes","schema":{"type":"number","minimum":1,"maximum":60},"example":15}],"responses":{"200":{"description":"The objects","content":{"application/json":{"schema":{"type":"object","properties":{"objects":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"type":{"type":"string"},"ra":{"type":"number"},"dec":{"type":"number"},"refs":{"type":"integer"},"sep":{"type":"number","description":"Distance from the position, arcseconds"}}}}}}}}},"422":{"$ref":"#/components/responses/Invalid"},"429":{"$ref":"#/components/responses/TooMany"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/api/object-images":{"get":{"tags":["Object look-ups"],"summary":"Image carousel slides for an object","description":"Survey images of the position plus telescope photos (NASA Image Library, Wikipedia). Each slide's `src` is an address on this server. Limit: 60 per minute.","parameters":[{"name":"name","in":"query","required":true,"schema":{"type":"string","maxLength":80},"example":"Crab Nebula"},{"name":"aliases[]","in":"query","schema":{"type":"array","maxItems":5,"items":{"type":"string"}},"style":"form","explode":true},{"$ref":"#/components/parameters/Ra"},{"$ref":"#/components/parameters/Dec"},{"$ref":"#/components/parameters/Fov"},{"name":"photos","in":"query","description":"Include telescope photos (default true)","schema":{"type":"boolean"}},{"name":"source","in":"query","description":"A curated source id, for its featured image","schema":{"type":"string","maxLength":32}},{"name":"max","in":"query","description":"Most photos","schema":{"type":"integer","minimum":1,"maximum":5}}],"responses":{"200":{"description":"The slides","content":{"application/json":{"schema":{"type":"object","properties":{"slides":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","description":"survey (an image of the position) or photo (a telescope photo)","example":"survey"},"src":{"type":"string"},"title":{"type":"string"},"credit":{"type":"string"},"link":{"type":"string","nullable":true}}}}}}}}},"422":{"$ref":"#/components/responses/Invalid"},"429":{"$ref":"#/components/responses/TooMany"}}}},"/api/lightcurve":{"get":{"tags":["Object look-ups"],"summary":"A light curve","description":"Give one of `sn` (ZTF optical, supernova candidates), `grb` (Swift-XRT X-ray afterglow) or `source` (ZTF optical for a curated blazar). Points are `[time, value, error, band]`. Cached 1 hour. Limit: 60 per minute.","parameters":[{"name":"sn","in":"query","schema":{"type":"string","pattern":"^ZTF\\d{2}[a-z]{7}$"},"example":"ZTF26aaaaaaa"},{"name":"grb","in":"query","schema":{"type":"string","pattern":"^GRB \\d{6}[A-Z]*$"},"example":"GRB 261001A"},{"name":"source","in":"query","schema":{"type":"string","maxLength":32}}],"responses":{"200":{"description":"The curve","content":{"application/json":{"schema":{"type":"object","properties":{"points":{"type":"array","items":{"type":"array","items":[]}},"y":{"type":"string","description":"mag (magnitudes: smaller is brighter) or the X-ray flux unit","example":"mag"},"source":{"type":"string"},"link":{"type":"string","nullable":true}}}}}},"404":{"$ref":"#/components/responses/NotFound"},"422":{"$ref":"#/components/responses/Invalid"},"429":{"$ref":"#/components/responses/TooMany"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/api/satellites":{"get":{"tags":["Spacecraft"],"summary":"The spacecraft on Space Observatories","description":"Each craft's mission details, orbital elements (`tracking: tle`) or upcoming positions from NASA JPL Horizons (`tracking: ephemeris`), and where its data appears on this site.","responses":{"200":{"description":"The spacecraft","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Spacecraft"}}}}}}}}}},"/api/flares":{"get":{"tags":["The Sun"],"summary":"Record X-class solar flares","responses":{"200":{"description":"The flares","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object"}}}}}}},"404":{"$ref":"#/components/responses/NotFound"}}}},"/api/sun/live":{"get":{"tags":["The Sun"],"summary":"The Sun now","description":"X-ray level, the NOAA R/S/G scales, Kp index, protons and solar wind. Cached 1–5 minutes. Limit: 120 per minute.","responses":{"200":{"description":"Summary","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooMany"}}}},"/api/sun/xray":{"get":{"tags":["The Sun"],"summary":"GOES X-ray flux","parameters":[{"name":"range","in":"query","schema":{"type":"string","enum":["6h","1d","3d","7d"],"default":"1d"}}],"responses":{"200":{"description":"The series","content":{"application/json":{"schema":{"type":"object","properties":{"series":{"type":"array","items":[]},"now":{"nullable":true}}}}}},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooMany"}}}},"/api/sun/flares":{"get":{"tags":["The Sun"],"summary":"The flare list, filtered and paged","description":"15 per page.","parameters":[{"name":"min","in":"query","description":"Smallest class","schema":{"type":"string","enum":["A","B","C","M","X"]}},{"name":"from","in":"query","schema":{"type":"string","format":"date"}},{"name":"to","in":"query","schema":{"type":"string","format":"date"}},{"name":"region","in":"query","description":"NOAA active region number","schema":{"type":"integer","minimum":1}},{"name":"page","in":"query","schema":{"type":"integer","minimum":1,"default":1}},{"name":"sort","in":"query","schema":{"type":"string","enum":["time","class"],"default":"time"}}],"responses":{"200":{"description":"One page","content":{"application/json":{"schema":{"type":"object","properties":{"total":{"type":"integer"},"page":{"type":"integer"},"perPage":{"type":"integer","example":15},"rows":{"type":"array","items":{"type":"object"}}}}}}},"404":{"$ref":"#/components/responses/NotFound"},"422":{"$ref":"#/components/responses/Invalid"},"429":{"$ref":"#/components/responses/TooMany"}}}},"/api/sun/flares/{id}":{"get":{"tags":["The Sun"],"summary":"One flare, with its X-ray curve, region and CMEs","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"The flare","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooMany"}}}},"/api/sun/history":{"get":{"tags":["The Sun"],"summary":"Flare history","description":"Monthly and yearly counts, the butterfly diagram and the flux distribution.","responses":{"200":{"description":"History","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooMany"}}}},"/api/sun/cycle":{"get":{"tags":["The Sun"],"summary":"The solar cycle since 1749","responses":{"200":{"description":"Monthly sunspot numbers and predictions","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooMany"}}}},"/api/service-health":{"get":{"tags":["Status"],"summary":"Outside services that aren't answering","description":"From the scheduled check (every 5 minutes) and the app's own failure flags; never waits on the services. Limit: 30 per minute.","responses":{"200":{"description":"The services down (empty list when all are up)","content":{"application/json":{"schema":{"type":"object","properties":{"checkedAt":{"type":"integer","nullable":true,"description":"Unix time of the last check"},"down":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"simbad"},"name":{"type":"string","example":"CDS SIMBAD database"},"url":{"type":"string","example":"https://simbad.cds.unistra.fr"},"impact":{"type":"string"},"fallback":{"type":"string","nullable":true}}}}}}}}},"429":{"$ref":"#/components/responses/TooMany"}}}},"/sky-image/survey":{"get":{"tags":["Images"],"summary":"A survey image of a position","description":"A cutout from CDS hips2fits (NASA SkyView while CDS is down), downloaded once and then served from this server's cache.","parameters":[{"$ref":"#/components/parameters/Ra"},{"$ref":"#/components/parameters/Dec"},{"$ref":"#/components/parameters/Fov"},{"name":"survey","in":"query","schema":{"type":"string","enum":["dss2","panstarrs","2mass"],"default":"dss2"}},{"name":"size","in":"query","schema":{"type":"string","enum":["normal","large"],"default":"normal"}}],"responses":{"200":{"description":"The image","content":{"image/jpeg":{"schema":{"type":"string","format":"binary"}},"image/webp":{"schema":{"type":"string","format":"binary"}}}},"422":{"$ref":"#/components/responses/Invalid"},"502":{"description":"The image service returned no image"}}}},"/sky-image/featured/{source}":{"get":{"tags":["Images"],"summary":"A curated source's featured image","parameters":[{"name":"source","in":"path","required":true,"description":"The source's slug","schema":{"type":"string"},"example":"crab-pulsar"}],"responses":{"200":{"description":"The image","content":{"image/*":{"schema":{"type":"string","format":"binary"}}}},"404":{"description":"Unknown source, or it has no featured image"}}}},"/sky-image/gw/{supereventId}":{"get":{"tags":["Images"],"summary":"A gravitational-wave event's sky map image","parameters":[{"$ref":"#/components/parameters/SupereventId"}],"responses":{"200":{"description":"The image","content":{"image/png":{"schema":{"type":"string","format":"binary"}}}},"404":{"$ref":"#/components/responses/NotFound"},"502":{"description":"GraceDB returned no image"}}}},"/sky-image/photo":{"get":{"tags":["Images"],"summary":"A telescope photo from NASA or Wikimedia (signed links only)","description":"Only answers the signed addresses that `/api/object-images` hands out (the signature is part of the address), so it can't be used to fetch arbitrary files. Not for direct use.","parameters":[{"name":"u","in":"query","required":true,"description":"The photo's https address","schema":{"type":"string","format":"uri"}},{"name":"signature","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The photo","content":{"image/*":{"schema":{"type":"string","format":"binary"}}}},"403":{"description":"Missing or wrong signature"},"404":{"description":"Not an https address"}}}}},"components":{"parameters":{"Ra":{"name":"ra","in":"query","required":true,"description":"Right ascension, degrees","schema":{"type":"number","minimum":0,"maximum":360},"example":83.6331},"Dec":{"name":"dec","in":"query","required":true,"description":"Declination, degrees","schema":{"type":"number","minimum":-90,"maximum":90},"example":22.0145},"Fov":{"name":"fov","in":"query","description":"Field of view, degrees","schema":{"type":"number","minimum":0.01,"maximum":10,"default":0.25}},"SupereventId":{"name":"supereventId","in":"path","required":true,"description":"GraceDB superevent id","schema":{"type":"string","pattern":"^S[0-9]{6}[a-z]{1,3}$"},"example":"S250101ab"}},"schemas":{"FieldsRows":{"type":"object","properties":{"fields":{"type":"array","items":{"type":"string"},"description":"Column names"},"rows":{"type":"array","items":{"type":"array","items":[]},"description":"One array per object, in the order of `fields`"}}},"Source":{"type":"object","properties":{"id":{"type":"string","example":"crab"},"name":{"type":"string","example":"Crab Pulsar"},"category":{"type":"string","example":"pulsar"},"type":{"type":"string"},"ra":{"type":"number","description":"Right ascension, hours"},"dec":{"type":"number","description":"Declination, degrees"},"constellation":{"type":"string"},"distance":{"type":"string"},"distLy":{"type":"number","nullable":true},"period":{"type":"string","nullable":true},"periodS":{"type":"number","nullable":true},"psrj":{"type":"string","nullable":true},"discovered":{"type":"string"},"note":{"type":"string"},"plotted":{"type":"boolean"},"fov":{"type":"number"},"image":{"type":"object","nullable":true,"properties":{"src":{"type":"string"},"title":{"type":"string"},"credit":{"type":"string"},"link":{"type":"string"}}}}},"Spacecraft":{"type":"object","properties":{"id":{"type":"string","example":"jwst"},"name":{"type":"string"},"short":{"type":"string"},"norad":{"type":"integer","nullable":true},"type":{"type":"string"},"group":{"type":"string","enum":["sun","wind","high","telescopes","crewed","inner"]},"operator":{"type":"string"},"summary":{"type":"string"},"measures":{"type":"string"},"launched":{"type":"integer"},"orbit":{"type":"string"},"tracking":{"type":"string","enum":["tle","ephemeris"]},"epoch":{"type":"string","nullable":true},"ephemerides":{"type":"array","items":[],"description":"Upcoming positions (ephemeris craft)"},"links":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string"},"url":{"type":"string"}}}},"missionUrl":{"type":"string"},"image":{"type":"string"},"imageCredit":{"type":"string"},"imagePage":{"type":"string"}}},"Schedule":{"type":"object","required":["frequency"],"properties":{"frequency":{"type":"string","enum":["hourly","every_hours","daily","twice_daily","weekly"]},"time":{"type":"string","pattern":"^\\d{2}:\\d{2}$","description":"HH:MM, UTC","example":"09:00"},"hours":{"type":"integer","enum":[2,3,4,6,8,12]},"minute":{"type":"integer","minimum":0,"maximum":59},"day":{"type":"string","enum":["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"]},"reset":{"type":"boolean","description":"Back to the default schedule (schedule changes only)"}}},"Error":{"type":"object","properties":{"message":{"type":"string"},"error":{"type":"string"}}}},"responses":{"NotFound":{"description":"Unknown item, or its feature is switched off","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Invalid":{"description":"Invalid parameters","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"},"errors":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}}}}}}}},"TooMany":{"description":"Rate limit reached; try again in a minute"},"Unavailable":{"description":"The outside service didn't answer","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"AdminOff":{"description":"Switched off (ADMIN_ACTIONS, or JOB_SCHEDULE_EDIT for jobs)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"BackToPage":{"description":"Done (or refused input): redirect back to the page, which shows the result"},"CsrfExpired":{"description":"Missing or expired CSRF token: reload the page and try again"}}}}