{"openapi":"3.1.0","info":{"title":"Project Nightwatch public data API","description":"Read-only access to published dark-sky tracking station data.\n\nSky brightness is measured in mag/arcsec²; higher values mean darker skies. Sensor sample timestamps are UTC and station night dates are local dates. This is a technical preview and published data may change.","version":"1.0.0"},"servers":[{"url":"/","description":"Current Project Nightwatch host"}],"paths":{"/api/v1":{"get":{"tags":["API information"],"summary":"Describe the public data API","description":"Returns the API version, data policy and links to the main resources.","operationId":"api_info_api_v1_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInfo"}}}}}}},"/api/v1/network":{"get":{"tags":["Network"],"summary":"Get the published network document","description":"Returns the network-wide published JSON, including station summaries, aggregate statistics, nightly and monthly network trends.","operationId":"network_document_api_v1_network_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NetworkDocument"}}}}}}},"/api/v1/network/nights":{"get":{"tags":["Network"],"summary":"Get network nightly results","description":"Returns network-wide nightly aggregates without the other fields in the full network document. The date window is inclusive.","operationId":"network_nights_api_v1_network_nights_get","parameters":[{"name":"from","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Inclusive start date (YYYY-MM-DD).","title":"From"},"description":"Inclusive start date (YYYY-MM-DD)."},{"name":"to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Inclusive end date (YYYY-MM-DD).","title":"To"},"description":"Inclusive end date (YYYY-MM-DD)."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Maximum records returned.","default":1000,"title":"Limit"},"description":"Maximum records returned."},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","maximum":100000,"minimum":0,"description":"Number of matching records to skip.","default":0,"title":"Offset"},"description":"Number of matching records to skip."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NetworkNightsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/network/monthly":{"get":{"tags":["Network"],"summary":"Get network monthly results","description":"Returns network-wide monthly aggregates without the other fields in the full network document. The date window is inclusive.","operationId":"network_monthly_api_v1_network_monthly_get","parameters":[{"name":"from","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Inclusive start month/date.","title":"From"},"description":"Inclusive start month/date."},{"name":"to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Inclusive end month/date.","title":"To"},"description":"Inclusive end month/date."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Maximum records returned.","default":1000,"title":"Limit"},"description":"Maximum records returned."},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","maximum":100000,"minimum":0,"description":"Number of matching records to skip.","default":0,"title":"Offset"},"description":"Number of matching records to skip."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NetworkMonthlyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/sites":{"get":{"tags":["Sites"],"summary":"List public monitoring stations","description":"Returns only stations listed in network.json. Other directories in the data volume are not public API resources.","operationId":"list_sites_api_v1_sites_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SiteListResponse"}}}}}}},"/api/v1/sites/{site_id}":{"get":{"tags":["Sites"],"summary":"Get a station summary","operationId":"site_summary_api_v1_sites__site_id__get","parameters":[{"name":"site_id","in":"path","required":true,"schema":{"type":"string","description":"Public station identifier, for example `meldanda`.","title":"Site Id"},"description":"Public station identifier, for example `meldanda`."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SiteSummary"}}}},"404":{"description":"The station is not listed in the public network index."},"503":{"description":"The published station document is unavailable."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/sites/{site_id}/nights":{"get":{"tags":["Sites"],"summary":"Get nightly station results","description":"Returns nightly darkness results. The optional date window is inclusive and uses the station's local night date.","operationId":"site_nights_api_v1_sites__site_id__nights_get","parameters":[{"name":"site_id","in":"path","required":true,"schema":{"type":"string","description":"Public station identifier.","title":"Site Id"},"description":"Public station identifier."},{"name":"from","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Inclusive start date (YYYY-MM-DD).","title":"From"},"description":"Inclusive start date (YYYY-MM-DD)."},{"name":"to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Inclusive end date (YYYY-MM-DD).","title":"To"},"description":"Inclusive end date (YYYY-MM-DD)."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Maximum records returned.","default":1000,"title":"Limit"},"description":"Maximum records returned."},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","maximum":100000,"minimum":0,"description":"Number of matching records to skip.","default":0,"title":"Offset"},"description":"Number of matching records to skip."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NightsResponse"}}}},"404":{"description":"The station is not listed in the public network index."},"503":{"description":"The published station document is unavailable."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/sites/{site_id}/series":{"get":{"tags":["Sites"],"summary":"Get station time-series records","description":"Returns the published per-night time-series records. Point arrays use the pointFields array in each record to describe their columns.","operationId":"site_series_api_v1_sites__site_id__series_get","parameters":[{"name":"site_id","in":"path","required":true,"schema":{"type":"string","description":"Public station identifier.","title":"Site Id"},"description":"Public station identifier."},{"name":"date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Return one exact local night date.","title":"Date"},"description":"Return one exact local night date."},{"name":"from","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Inclusive start date (YYYY-MM-DD).","title":"From"},"description":"Inclusive start date (YYYY-MM-DD)."},{"name":"to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Inclusive end date (YYYY-MM-DD).","title":"To"},"description":"Inclusive end date (YYYY-MM-DD)."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Maximum records returned.","default":1000,"title":"Limit"},"description":"Maximum records returned."},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","maximum":100000,"minimum":0,"description":"Number of matching records to skip.","default":0,"title":"Offset"},"description":"Number of matching records to skip."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SeriesResponse"}}}},"404":{"description":"The station is not listed in the public network index."},"503":{"description":"The published station document is unavailable."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/sites/{site_id}/monthly":{"get":{"tags":["Sites"],"summary":"Get monthly station results","description":"Returns monthly station aggregates. The optional date window is inclusive; month values are interpreted as the first day of their month.","operationId":"site_monthly_api_v1_sites__site_id__monthly_get","parameters":[{"name":"site_id","in":"path","required":true,"schema":{"type":"string","description":"Public station identifier.","title":"Site Id"},"description":"Public station identifier."},{"name":"from","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Inclusive start month/date.","title":"From"},"description":"Inclusive start month/date."},{"name":"to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Inclusive end month/date.","title":"To"},"description":"Inclusive end month/date."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Maximum records returned.","default":1000,"title":"Limit"},"description":"Maximum records returned."},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","maximum":100000,"minimum":0,"description":"Number of matching records to skip.","default":0,"title":"Offset"},"description":"Number of matching records to skip."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MonthlyResponse"}}}},"404":{"description":"The station is not listed in the public network index."},"503":{"description":"The published station document is unavailable."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/sites/{site_id}/readings":{"get":{"tags":["Sites"],"summary":"Get recent station readings","description":"Returns the bounded recent-reading document when the live collector has published one. Point columns are described by pointFields.","operationId":"site_readings_api_v1_sites__site_id__readings_get","parameters":[{"name":"site_id","in":"path","required":true,"schema":{"type":"string","description":"Public station identifier.","title":"Site Id"},"description":"Public station identifier."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReadingsDocument"}}}},"404":{"description":"The station is not listed in the public network index."},"503":{"description":"The published readings document is unavailable."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"ApiInfo":{"properties":{"name":{"type":"string","title":"Name"},"version":{"type":"string","title":"Version"},"description":{"type":"string","title":"Description"},"generated":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Generated"},"dataPolicy":{"additionalProperties":{"type":"string"},"type":"object","title":"Datapolicy"},"links":{"additionalProperties":{"$ref":"#/components/schemas/ApiLink"},"type":"object","title":"Links"}},"additionalProperties":true,"type":"object","required":["name","version","description","dataPolicy","links"],"title":"ApiInfo"},"ApiLink":{"properties":{"href":{"type":"string","title":"Href"},"description":{"type":"string","title":"Description"}},"additionalProperties":true,"type":"object","required":["href","description"],"title":"ApiLink"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"MonthlyRecord":{"properties":{"month":{"type":"string","title":"Month","description":"Calendar month in YYYY-MM format."},"nights":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Nights"},"moonFreeNights":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Moonfreenights"},"best":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Best"},"medianBest":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Medianbest"},"clearNights":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Clearnights"},"avgClearPct":{"anyOf":[{"type":"number","maximum":100.0,"minimum":0.0},{"type":"null"}],"title":"Avgclearpct"}},"additionalProperties":true,"type":"object","required":["month"],"title":"MonthlyRecord"},"MonthlyResponse":{"properties":{"site":{"$ref":"#/components/schemas/SiteReference"},"generated":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Generated"},"total":{"type":"integer","minimum":0.0,"title":"Total"},"limit":{"type":"integer","minimum":1.0,"title":"Limit"},"offset":{"type":"integer","minimum":0.0,"title":"Offset"},"from":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"From"},"to":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"To"},"items":{"items":{"$ref":"#/components/schemas/MonthlyRecord"},"type":"array","title":"Items"}},"additionalProperties":true,"type":"object","required":["site","total","limit","offset","items"],"title":"MonthlyResponse"},"NetworkAggregate":{"properties":{"networkTypical":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Networktypical"},"networkBest":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Networkbest"},"darkestSite":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Darkestsite"},"brightestSite":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Brightestsite"},"totalNights":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Totalnights"},"moonFreeNights":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Moonfreenights"},"totalSamples":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Totalsamples"},"bortleDistribution":{"anyOf":[{"additionalProperties":{"type":"integer"},"type":"object"},{"type":"null"}],"title":"Bortledistribution"},"sitesBortle3orBetter":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Sitesbortle3Orbetter"}},"additionalProperties":true,"type":"object","title":"NetworkAggregate"},"NetworkDocument":{"properties":{"schemaVersion":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Schemaversion"},"analysisPolicy":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Analysispolicy"},"generated":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Generated"},"source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source"},"sampleIntervalSec":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Sampleintervalsec"},"sitesOnline":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Sitesonline"},"sitesReporting":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Sitesreporting"},"referenceSite":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Referencesite"},"note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Note"},"sites":{"items":{"$ref":"#/components/schemas/PublicSiteIndex"},"type":"array","title":"Sites"},"aggregate":{"anyOf":[{"$ref":"#/components/schemas/NetworkAggregate"},{"type":"null"}]},"nightly":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Nightly"},"monthly":{"items":{"$ref":"#/components/schemas/MonthlyRecord"},"type":"array","title":"Monthly"}},"additionalProperties":true,"type":"object","title":"NetworkDocument"},"NetworkMonthlyResponse":{"properties":{"generated":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Generated"},"total":{"type":"integer","minimum":0.0,"title":"Total"},"limit":{"type":"integer","minimum":1.0,"title":"Limit"},"offset":{"type":"integer","minimum":0.0,"title":"Offset"},"from":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"From"},"to":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"To"},"items":{"items":{"$ref":"#/components/schemas/MonthlyRecord"},"type":"array","title":"Items"}},"additionalProperties":true,"type":"object","required":["total","limit","offset","items"],"title":"NetworkMonthlyResponse"},"NetworkNightRecord":{"properties":{"date":{"type":"string","title":"Date","description":"Local night date in YYYY-MM-DD format."},"sites":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Sites"},"qualifiedSites":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Qualifiedsites"},"best":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Best"},"maxBest":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Maxbest"},"moonIllumination":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Moonillumination"},"darkHours":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Darkhours"},"clearPct":{"anyOf":[{"type":"number","maximum":100.0,"minimum":0.0},{"type":"null"}],"title":"Clearpct"},"qualityFlags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Qualityflags"}},"additionalProperties":true,"type":"object","required":["date"],"title":"NetworkNightRecord"},"NetworkNightsResponse":{"properties":{"generated":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Generated"},"total":{"type":"integer","minimum":0.0,"title":"Total"},"limit":{"type":"integer","minimum":1.0,"title":"Limit"},"offset":{"type":"integer","minimum":0.0,"title":"Offset"},"from":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"From"},"to":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"To"},"items":{"items":{"$ref":"#/components/schemas/NetworkNightRecord"},"type":"array","title":"Items"}},"additionalProperties":true,"type":"object","required":["total","limit","offset","items"],"title":"NetworkNightsResponse"},"NightRecord":{"properties":{"date":{"type":"string","title":"Date","description":"Local night date in YYYY-MM-DD format."},"best":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Best","description":"Best brightness in mag/arcsec²."},"median":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Median"},"mean":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Mean"},"bestNELM":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Bestnelm","description":"Estimated naked-eye limiting magnitude."},"bestTime":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Besttime"},"moonIllumination":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Moonillumination"},"darkHours":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Darkhours"},"clearPct":{"anyOf":[{"type":"number","maximum":100.0,"minimum":0.0},{"type":"null"}],"title":"Clearpct"},"readings":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Readings"},"bortle":{"anyOf":[{"type":"integer","maximum":8.0,"minimum":1.0},{"type":"null"}],"title":"Bortle"}},"additionalProperties":true,"type":"object","required":["date"],"title":"NightRecord"},"NightsResponse":{"properties":{"site":{"$ref":"#/components/schemas/SiteReference"},"generated":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Generated"},"total":{"type":"integer","minimum":0.0,"title":"Total"},"limit":{"type":"integer","minimum":1.0,"title":"Limit"},"offset":{"type":"integer","minimum":0.0,"title":"Offset"},"from":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"From"},"to":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"To"},"items":{"items":{"$ref":"#/components/schemas/NightRecord"},"type":"array","title":"Items"}},"additionalProperties":true,"type":"object","required":["site","total","limit","offset","items"],"title":"NightsResponse"},"PublicSiteIndex":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"lat":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Lat","description":"Latitude in decimal degrees."},"lon":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Lon","description":"Longitude in decimal degrees."},"elev":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Elev","description":"Elevation in metres."},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"simulated":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Simulated"},"typicalBest":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Typicalbest"},"bestEver":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Bestever"},"bortle":{"anyOf":[{"type":"integer","maximum":8.0,"minimum":1.0},{"type":"null"}],"title":"Bortle"},"firstNight":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Firstnight"},"nightsRecorded":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Nightsrecorded"},"moonFreeNights":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Moonfreenights"},"latest":{"anyOf":[{"$ref":"#/components/schemas/NightRecord"},{"type":"null"}]},"current":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Current"},"darkestRecent":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"null"}]},"type":"object"},{"type":"null"}],"title":"Darkestrecent"}},"additionalProperties":true,"type":"object","required":["id","name"],"title":"PublicSiteIndex"},"ReadingsDocument":{"properties":{"schemaVersion":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Schemaversion"},"analysisPolicy":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Analysispolicy"},"generated":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Generated"},"sampleIntervalSec":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Sampleintervalsec"},"pointFields":{"items":{"type":"string"},"type":"array","title":"Pointfields"},"points":{"items":{"items":{},"type":"array"},"type":"array","title":"Points"}},"additionalProperties":true,"type":"object","title":"ReadingsDocument"},"SeriesRecord":{"properties":{"date":{"type":"string","title":"Date","description":"Local night date in YYYY-MM-DD format."},"startUTC":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Startutc"},"moonIllumination":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Moonillumination"},"allDarkReadings":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Alldarkreadings"},"moonFreeReadings":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Moonfreereadings"},"allDarkStats":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Alldarkstats"},"moonFreeStats":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Moonfreestats"},"pointFields":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Pointfields"},"points":{"items":{"items":{},"type":"array"},"type":"array","title":"Points"}},"additionalProperties":true,"type":"object","required":["date"],"title":"SeriesRecord"},"SeriesResponse":{"properties":{"site":{"$ref":"#/components/schemas/SiteReference"},"generated":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Generated"},"total":{"type":"integer","minimum":0.0,"title":"Total"},"limit":{"type":"integer","minimum":1.0,"title":"Limit"},"offset":{"type":"integer","minimum":0.0,"title":"Offset"},"from":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"From"},"to":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"To"},"items":{"items":{"$ref":"#/components/schemas/SeriesRecord"},"type":"array","title":"Items"}},"additionalProperties":true,"type":"object","required":["site","total","limit","offset","items"],"title":"SeriesResponse"},"SiteListResponse":{"properties":{"generated":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Generated"},"count":{"type":"integer","minimum":0.0,"title":"Count"},"sites":{"items":{"$ref":"#/components/schemas/PublicSiteIndex"},"type":"array","title":"Sites"}},"additionalProperties":true,"type":"object","required":["count","sites"],"title":"SiteListResponse"},"SiteReference":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"lat":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Lat","description":"Latitude in decimal degrees."},"lon":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Lon","description":"Longitude in decimal degrees."},"elev":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Elev","description":"Elevation in metres."},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"}},"additionalProperties":true,"type":"object","required":["id","name"],"title":"SiteReference"},"SiteSummary":{"properties":{"schemaVersion":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Schemaversion"},"analysisPolicy":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Analysispolicy"},"site":{"$ref":"#/components/schemas/SiteReference"},"generated":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Generated"},"source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source"},"current":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Current"},"firstNight":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Firstnight"},"lastNight":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lastnight"},"nightsRecorded":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Nightsrecorded"},"moonFreeNights":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Moonfreenights"},"bestEver":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Bestever"},"bestEverDate":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Besteverdate"},"typicalBest":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Typicalbest"},"bortle":{"anyOf":[{"type":"integer","maximum":8.0,"minimum":1.0},{"type":"null"}],"title":"Bortle"},"bortleName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bortlename"},"pristineNights":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Pristinenights"},"avgClearPct":{"anyOf":[{"type":"number","maximum":100.0,"minimum":0.0},{"type":"null"}],"title":"Avgclearpct"},"latest":{"anyOf":[{"$ref":"#/components/schemas/NightRecord"},{"type":"null"}]},"darkestRecent":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"null"}]},"type":"object"},{"type":"null"}],"title":"Darkestrecent"}},"additionalProperties":true,"type":"object","required":["site"],"title":"SiteSummary"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}},"tags":[{"name":"API information","description":"API version and data policy."},{"name":"Network","description":"Network-wide published results."},{"name":"Sites","description":"Public station summaries and time series."}],"externalDocs":{"description":"Project Nightwatch project","url":"https://skywatch.skyescloud.net/"}}