{"openapi":"3.1.0","info":{"title":"OpenDover API","version":"1","description":"Public datasets about Dover, Delaware, with the source, license and credit line on every response. Free, read-only, no key. 120 requests a minute per client. Version 1 will not remove or rename fields.","contact":{"name":"OpenDover","url":"https://opendover.org/api/","email":"support@askdover.org"}},"servers":[{"url":"https://api.opendover.org"}],"externalDocs":{"url":"https://opendover.org/api/"},"paths":{"/v1/datasets":{"get":{"summary":"Every dataset","responses":{"200":{"description":"The catalog","content":{"application/json":{"schema":{"type":"object","properties":{"api_version":{"type":"string"},"count":{"type":"integer"},"datasets":{"type":"array","items":{"$ref":"#/components/schemas/Dataset"}}}}}}}}}},"/v1/datasets/{id}":{"get":{"summary":"One dataset","parameters":[{"name":"id","in":"path","required":true,"description":"A dataset id from /v1/datasets.","schema":{"type":"string","enum":["dover-hud-affordable-housing","capital-school-board-transcripts","capital-school-board-votes","capital-school-calendar","dover-council-votes","dover-meeting-transcripts","dover-address-points","dover-bid-results","dover-electric-outage-contacts","dover-ordinances-resolutions","dover-sanitation-routes","dover-community-places","delaware-business-licenses-dover","delaware-election-districts-dover-area","delaware-energy-assistance-page-facts","delaware-legislative-and-levy-court-districts","dtcc-terry-workforce-community-education","dover-air-quality","dover-census-profile","dover-money-help-page-facts","dover-crime-history","dover-unemployment","dover-weather-history","dover-ymca-classes-and-events","dswa-kent-dropoff-days","delaware-election-results-dover","dover-things-to-do","fema-disaster-declarations-kent","fema-nfhl-flood-zones-dover","nfip-flood-claims-kent","fbd-mobile-pantry-kent","usda-summer-meal-sites-dover","dover-housing-waitlist-status","modern-maturity-center-events","delaware-open-data-dover-records","dover-polling-places","public-jobs-near-dover","delaware-food-inspections-dover","delaware-checkbook-dover-payments","dover-area-elected-officials","usda-snap-retailers-dover","noaa-storm-events-kent","irs-eo-bmf-dover-de","dover-traffic-and-plate-cameras","dover-crashes","nws-kent-county-weather-alerts","dhss-wic-clinics-kent"]}}],"responses":{"200":{"description":"The dataset","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/Meta"},"dataset":{"$ref":"#/components/schemas/Dataset"}}}}}},"404":{"$ref":"#/components/responses/Error"}}}},"/v1/datasets/{id}/rows":{"get":{"summary":"Rows, one page at a time","parameters":[{"name":"id","in":"path","required":true,"description":"A dataset id from /v1/datasets.","schema":{"type":"string","enum":["dover-hud-affordable-housing","capital-school-board-transcripts","capital-school-board-votes","capital-school-calendar","dover-council-votes","dover-meeting-transcripts","dover-address-points","dover-bid-results","dover-electric-outage-contacts","dover-ordinances-resolutions","dover-sanitation-routes","dover-community-places","delaware-business-licenses-dover","delaware-election-districts-dover-area","delaware-energy-assistance-page-facts","delaware-legislative-and-levy-court-districts","dtcc-terry-workforce-community-education","dover-air-quality","dover-census-profile","dover-money-help-page-facts","dover-crime-history","dover-unemployment","dover-weather-history","dover-ymca-classes-and-events","dswa-kent-dropoff-days","delaware-election-results-dover","dover-things-to-do","fema-disaster-declarations-kent","fema-nfhl-flood-zones-dover","nfip-flood-claims-kent","fbd-mobile-pantry-kent","usda-summer-meal-sites-dover","dover-housing-waitlist-status","modern-maturity-center-events","delaware-open-data-dover-records","dover-polling-places","public-jobs-near-dover","delaware-food-inspections-dover","delaware-checkbook-dover-payments","dover-area-elected-officials","usda-snap-retailers-dover","noaa-storm-events-kent","irs-eo-bmf-dover-de","dover-traffic-and-plate-cameras","dover-crashes","nws-kent-county-weather-alerts","dhss-wic-clinics-kent"]}},{"name":"table","in":"query","description":"One of the dataset's tables. The first is the default.","schema":{"type":"string"}},{"name":"limit","in":"query","description":"Rows per page, 1 to 1,000.","schema":{"type":"integer","minimum":1,"maximum":1000,"default":100}},{"name":"cursor","in":"query","description":"The next_cursor from the page before.","schema":{"type":"string"}}],"responses":{"200":{"description":"A page of rows","content":{"application/json":{"schema":{"type":"object","required":["meta","table","count","rows","next_cursor","next"],"properties":{"meta":{"$ref":"#/components/schemas/Meta"},"table":{"type":"string"},"count":{"type":"integer"},"rows":{"type":"array","items":{"type":"object","additionalProperties":true}},"next_cursor":{"type":["string","null"]},"next":{"type":["string","null"],"format":"uri"}}}}}},"400":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"}}}},"/v1/datasets/{id}/changes":{"get":{"summary":"Rows added or changed since a date","description":"For tables that record when rows change (see tables[].changes). Rows removed at the source are not listed.","parameters":[{"name":"id","in":"path","required":true,"description":"A dataset id from /v1/datasets.","schema":{"type":"string","enum":["dover-hud-affordable-housing","capital-school-board-transcripts","capital-school-board-votes","capital-school-calendar","dover-council-votes","dover-meeting-transcripts","dover-address-points","dover-bid-results","dover-electric-outage-contacts","dover-ordinances-resolutions","dover-sanitation-routes","dover-community-places","delaware-business-licenses-dover","delaware-election-districts-dover-area","delaware-energy-assistance-page-facts","delaware-legislative-and-levy-court-districts","dtcc-terry-workforce-community-education","dover-air-quality","dover-census-profile","dover-money-help-page-facts","dover-crime-history","dover-unemployment","dover-weather-history","dover-ymca-classes-and-events","dswa-kent-dropoff-days","delaware-election-results-dover","dover-things-to-do","fema-disaster-declarations-kent","fema-nfhl-flood-zones-dover","nfip-flood-claims-kent","fbd-mobile-pantry-kent","usda-summer-meal-sites-dover","dover-housing-waitlist-status","modern-maturity-center-events","delaware-open-data-dover-records","dover-polling-places","public-jobs-near-dover","delaware-food-inspections-dover","delaware-checkbook-dover-payments","dover-area-elected-officials","usda-snap-retailers-dover","noaa-storm-events-kent","irs-eo-bmf-dover-de","dover-traffic-and-plate-cameras","dover-crashes","nws-kent-county-weather-alerts","dhss-wic-clinics-kent"]}},{"name":"since","in":"query","required":true,"description":"A date (2026-11-01) or UTC time (2026-11-01T08:00:00Z).","schema":{"type":"string"}},{"name":"table","in":"query","description":"One of the dataset's tables. The first is the default.","schema":{"type":"string"}},{"name":"limit","in":"query","description":"Rows per page, 1 to 1,000.","schema":{"type":"integer","minimum":1,"maximum":1000,"default":100}},{"name":"cursor","in":"query","description":"The next_cursor from the page before.","schema":{"type":"string"}}],"responses":{"200":{"description":"A page of changed rows","content":{"application/json":{"schema":{"type":"object","required":["meta","table","count","rows","next_cursor","next"],"properties":{"meta":{"$ref":"#/components/schemas/Meta"},"table":{"type":"string"},"count":{"type":"integer"},"rows":{"type":"array","items":{"type":"object","additionalProperties":true}},"next_cursor":{"type":["string","null"]},"next":{"type":["string","null"],"format":"uri"}}}}}},"400":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"}}}},"/v1/datasets/{id}/versions":{"get":{"summary":"Dates with a saved copy of the download files","parameters":[{"name":"id","in":"path","required":true,"description":"A dataset id from /v1/datasets.","schema":{"type":"string","enum":["dover-hud-affordable-housing","capital-school-board-transcripts","capital-school-board-votes","capital-school-calendar","dover-council-votes","dover-meeting-transcripts","dover-address-points","dover-bid-results","dover-electric-outage-contacts","dover-ordinances-resolutions","dover-sanitation-routes","dover-community-places","delaware-business-licenses-dover","delaware-election-districts-dover-area","delaware-energy-assistance-page-facts","delaware-legislative-and-levy-court-districts","dtcc-terry-workforce-community-education","dover-air-quality","dover-census-profile","dover-money-help-page-facts","dover-crime-history","dover-unemployment","dover-weather-history","dover-ymca-classes-and-events","dswa-kent-dropoff-days","delaware-election-results-dover","dover-things-to-do","fema-disaster-declarations-kent","fema-nfhl-flood-zones-dover","nfip-flood-claims-kent","fbd-mobile-pantry-kent","usda-summer-meal-sites-dover","dover-housing-waitlist-status","modern-maturity-center-events","delaware-open-data-dover-records","dover-polling-places","public-jobs-near-dover","delaware-food-inspections-dover","delaware-checkbook-dover-payments","dover-area-elected-officials","usda-snap-retailers-dover","noaa-storm-events-kent","irs-eo-bmf-dover-de","dover-traffic-and-plate-cameras","dover-crashes","nws-kent-county-weather-alerts","dhss-wic-clinics-kent"]}}],"responses":{"200":{"description":"Saved copies","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/Meta"},"latest":{"type":["string","null"]},"versions":{"type":"array","items":{"type":"object","properties":{"date":{"type":"string"},"readme":{"type":"string"}}}}}}}}},"404":{"$ref":"#/components/responses/Error"}}}},"/v1/datasets/{id}/download/{file}":{"get":{"summary":"A whole table as CSV or JSON, or the README","parameters":[{"name":"id","in":"path","required":true,"description":"A dataset id from /v1/datasets.","schema":{"type":"string","enum":["dover-hud-affordable-housing","capital-school-board-transcripts","capital-school-board-votes","capital-school-calendar","dover-council-votes","dover-meeting-transcripts","dover-address-points","dover-bid-results","dover-electric-outage-contacts","dover-ordinances-resolutions","dover-sanitation-routes","dover-community-places","delaware-business-licenses-dover","delaware-election-districts-dover-area","delaware-energy-assistance-page-facts","delaware-legislative-and-levy-court-districts","dtcc-terry-workforce-community-education","dover-air-quality","dover-census-profile","dover-money-help-page-facts","dover-crime-history","dover-unemployment","dover-weather-history","dover-ymca-classes-and-events","dswa-kent-dropoff-days","delaware-election-results-dover","dover-things-to-do","fema-disaster-declarations-kent","fema-nfhl-flood-zones-dover","nfip-flood-claims-kent","fbd-mobile-pantry-kent","usda-summer-meal-sites-dover","dover-housing-waitlist-status","modern-maturity-center-events","delaware-open-data-dover-records","dover-polling-places","public-jobs-near-dover","delaware-food-inspections-dover","delaware-checkbook-dover-payments","dover-area-elected-officials","usda-snap-retailers-dover","noaa-storm-events-kent","irs-eo-bmf-dover-de","dover-traffic-and-plate-cameras","dover-crashes","nws-kent-county-weather-alerts","dhss-wic-clinics-kent"]}},{"name":"file","in":"path","required":true,"description":"{table}.csv, {table}.json or README.txt","schema":{"type":"string"}},{"name":"date","in":"query","description":"A saved copy from this date (see /versions).","schema":{"type":"string","format":"date"}}],"responses":{"200":{"description":"The file","content":{"text/csv":{},"application/json":{},"text/plain":{}}},"400":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"}}}}},"components":{"schemas":{"Meta":{"type":"object","required":["dataset_id","source_urls","license_id","attribution","api_version"],"properties":{"dataset_id":{"type":"string"},"source_urls":{"type":"array","items":{"type":"string","format":"uri"}},"license_id":{"type":"string"},"license_url":{"type":["string","null"]},"attribution":{"type":"string","description":"The credit line to use."},"retrieved_at":{"type":["string","null"],"description":"When we last fetched the data from its source."},"api_version":{"type":"string"}}},"Dataset":{"type":"object","additionalProperties":true,"properties":{"id":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"license_id":{"type":"string"},"attribution":{"type":"string"},"tables":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"fields":{"type":"array","items":{"type":"string"}},"changes":{"type":"boolean"}}}}}},"Error":{"type":"object","properties":{"error":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}}}},"responses":{"Error":{"description":"An error, with a plain message","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}