Public API
ATC Multi-hazard Design Loads Public API allows programmatic access to all of ATC's windspeed, snow, tornado, and seismic design loads data. Consistent with previously announced plans to discontinue support of the ATC Hazards by Location website after ASCE 7-16, and to defer to ASCE for access to hazard information for ASCE 7-22 and beyond, ATC will not be renewing API subscriptions or accepting new API subscriptions. While we will be keeping current API access open and active for the time being, all users should be aware that API access will eventually become non-functional.
Authentication
All requests to the public API need to be authenticated with an API key. Include your key in the api-key
field of your request headers to authenticate.
curl --header "api-key: [your_api_key]" -X GET "https://api-hazards.atcouncil.org/public/v1/[load_category].json?lat=[lat]&lng=[lng]"
Request errors
Failing requests will return an error code
and message
. If you have not properly included your API key in the request header, you will receive the error message "Please include a valid API key". Check that you have included it correctly as specified above. When your monthly quota runs out, you will receive the error message "You are over your request quota". Other errors will similarly include relevant information or be included in particular dataset responses, see below for details.
Design load endpoints
Request different load types by including a slug for that load category in the url. Valid slugs are wind
, snow
, tornado
, and seismic
. The wind, snow, and tornado loads return values for all available datasets. Seismic loads may only be queried one at a time by specifying group
(i.e. reference document), subgroup
(i.e., risk category), and siteclass
(e.g., 'A', 'B', etc.). Valid seismic load groups include asce7-16
, asce7-10
, asce41-17
, asce41-13
, nehrp-2015
, nehrp-2009
, ibc-2015
, and ibc-2012
. Valid seismic load subcategories include I
, II
, III
, and IV
. Available site classes include A
, B
, B-estimated
, C
, D
, D-default
, E
, and F
. See the USGS Seismic Design Web Services for more information.
Request loads for a given location by supplying the latitude and longitude with lat
and lng
in the query of your request. Valid locations for querying include those in the Continental US, Alaska, Hawaii, Puerto Rico, Guam, American Samoa, and the US Virgin Islands.
Example request
Querying for windspeed design loads near Oklahoma City, OK.
HTTP/1.1 GET https://api-hazards.atcouncil.org/public/v1/wind.json?lat=35.4676&lng=-97.5164
Example response
The API will respond with all available datasets that have a value at this point. Units (mph, lb/sqft) are specified on each dataset depending on the data supplied. The value for each dataset can be found in dataset.data.value
. Regionally-specific design rules or advisories can be found in an optional field dataset.data.warning
.
{
"datasets": [
{
"name": "MRI 10-Year",
"slug": "asce7-16-rp-10",
"group": "asce7-16",
"data": {
"slug": "asce7-16_wind_rp-10_ContinentalUS",
"value": 76,
"warning": null
},
"unit": "mph"
},
{
"name": "MRI 25-Year",
"slug": "asce7-16-rp-25",
"group": "asce7-16",
"data": {
"slug": "asce7-16_wind_rp-25_ContinentalUS",
"value": 83,
"warning": null
},
"unit": "mph"
},
{
"name": "MRI 50-Year",
"slug": "asce7-16-rp-50",
"group": "asce7-16",
"data": {
"slug": "asce7-16_wind_rp-50_ContinentalUS",
"value": 89,
"warning": null
},
"unit": "mph"
},
{
"name": "MRI 100-Year",
"slug": "asce7-16-rp-100",
"group": "asce7-16",
"data": {
"slug": "asce7-16_wind_rp-100_ContinentalUS",
"value": 96,
"warning": null
},
"unit": "mph"
},
{
"name": "Risk Category I",
"slug": "asce7-16-rp-300",
"group": "asce7-16",
"data": {
"slug": "asce7-16_wind_rp-300_ContinentalUS",
"value": 106,
"warning": null
},
"unit": "mph"
},
{
"name": "Risk Category II",
"slug": "asce7-16-rp-700",
"group": "asce7-16",
"data": {
"slug": "asce7-16_wind_rp-700_ContinentalUS",
"value": 113,
"warning": null
},
"unit": "mph"
},
{
"name": "Risk Category III",
"slug": "asce7-16-rp-1700",
"group": "asce7-16",
"data": {
"slug": "asce7-16_wind_rp-1700_ContinentalUS",
"value": 123,
"warning": null
},
"unit": "mph"
},
{
"name": "Risk Category IV",
"slug": "asce7-16-rp-3000",
"group": "asce7-16",
"data": {
"slug": "asce7-16_wind_rp-3000_ContinentalUS",
"value": 126,
"warning": null
},
"unit": "mph"
},
{
"name": "MRI 10-Year",
"slug": "asce7-10-rp-10",
"group": "asce7-10",
"data": {
"slug": "asce7-10_wind_rp-10_ContinentalUS-Central",
"value": 76,
"warning": null
},
"unit": "mph"
},
{
"name": "MRI 25-Year",
"slug": "asce7-10-rp-25",
"group": "asce7-10",
"data": {
"slug": "asce7-10_wind_rp-25_ContinentalUS-Central",
"value": 84,
"warning": null
},
"unit": "mph"
},
{
"name": "MRI 50-Year",
"slug": "asce7-10-rp-50",
"group": "asce7-10",
"data": {
"slug": "asce7-10_wind_rp-50_ContinentalUS-Central",
"value": 90,
"warning": null
},
"unit": "mph"
},
{
"name": "MRI 100-Year",
"slug": "asce7-10-rp-100",
"group": "asce7-10",
"data": {
"slug": "asce7-10_wind_rp-100_ContinentalUS-Central",
"value": 96,
"warning": null
},
"unit": "mph"
},
{
"name": "Risk Category I",
"slug": "asce7-10-rp-300",
"group": "asce7-10",
"data": {
"slug": "asce7-16_wind_rp-300_ContinentalUS-EasternCoast",
"value": 102,
"warning": null
},
"unit": "mph"
},
{
"name": "Risk Category II",
"slug": "asce7-10-rp-700",
"group": "asce7-10",
"data": {
"slug": "asce7-10_wind_rp-700_ContinentalUS-Central",
"value": 115,
"warning": null
},
"unit": "mph"
},
{
"name": "Risk Category III-IV",
"slug": "asce7-10-rp-1700",
"group": "asce7-10",
"data": {
"slug": "asce7-10_wind_rp-1700_ContinentalUS-Central",
"value": 120,
"warning": null
},
"unit": "mph"
},
{
"name": "ASCE 7-05 Windspeed",
"slug": "asce7-05",
"group": "asce7-05",
"data": {
"slug": "asce7-05_wind_ContinentalUS-Central",
"value": 90,
"warning": null
},
"unit": "mph"
},
{
"name": "ASCE 7-98 Windspeed",
"slug": "asce7-98",
"group": "asce7-98",
"data": {
"slug": "asce7-98_wind_ContinentalUS",
"value": 92,
"warning": null
},
"unit": "mph"
},
{
"name": "ASCE 7-93 Windspeed",
"slug": "asce7-93",
"group": "asce7-93",
"data": {
"slug": "asce7-93_wind_ContinentalUS",
"value": 76,
"warning": null
},
"unit": "mph"
}
]
}
Example seismic request
Querying for seismic design loads near Oklahoma City, OK.
HTTP/1.1 GET https://api-hazards.atcouncil.org/public/v1/seismic.json?lat=35.4676&lng=-97.5164&group=asce7-16&subgroup=II&siteclass=A
For ASCE41-17 and ASCE41-13, one may also set a custom probability to get data for that hazard level. This is achieved by adding the customprobability
query parameter to the query string, e.g.
HTTP/1.1 GET https://api-hazards.atcouncil.org/public/v1/seismic.json?lat=35.4676&lng=-97.5164&group=asce41-17&siteclass=A&customprobability=0.2
Note that ASCE41 series reference documents do not require/use subgroup specification.
Example response
The API response will include data
and metadata
keys containing all of the design loads as provided by the USGS Seismic Design Web Services.
{
"data": {
"pgauh": 0.062,
"pgad": 0.5,
"pga": 0.062,
"fpga": 0.8,
"pgam": 0.05,
"ssrt": 0.129,
"crs": 0.941,
"ssuh": 0.138,
"ssd": 1.5,
"ss": 0.129,
"fa": 0.8,
"sms": 0.104,
"sds": 0.069,
"sdcs": "A",
"s1rt": 0.072,
"cr1": 0.884,
"s1uh": 0.081,
"s1d": 0.6,
"s1": 0.072,
"fv": 0.8,
"sm1": 0.057,
"sd1": 0.038,
"sdc1": "A",
"sdc": "A",
"t-sub-l": 12,
"cv": 0.7,
"sdSpectrum": [
[
0,
0.028
],
[
0.025,
0.037
],
...
[
12.95,
0.003
],
[
13,
0.003
]
],
"smSpectrum": [
[
0,
0.041
],
[
0.025,
0.055
],
...
[
12.95,
0.004
],
[
13,
0.004
]
],
"savSpectrum": [
[
0,
0.015
],
[
0.025,
0.018
],
...
[
1.95,
0.01
],
[
2,
0.01
]
],
"samvSpectrum": [
[
0,
0.022
],
[
0.025,
0.028
],
...
[
1.95,
0.015
],
[
2,
0.014
]
]
},
"metadata": {
"modelVersion": "v4.0.x",
"pgadFloor": "0.5",
"pgadPercentileFactor": "1.8",
"s1MaxDirFactor": "1.3",
"s1dFloor": "0.6",
"s1dPercentileFactor": "1.8",
"spatialInterpolationMethod": "linearloglinear",
"ssMaxDirFactor": "1.1",
"ssdFloor": "1.5",
"ssdPercentileFactor": "1.8"
}
}