Geo-Zone Tool
API Documentation

Geo-Zone Tool Public API

A GraphQL API that returns structural load zone data, geographical characteristics, and PDF reports for any coordinates worldwide.

7 Queries1 SubscriptionBearer Auth
POSThttps://api-gateway.dlubal.com/geo-zone/pub/graphql

Web Application

The GeoZone Tool is also available as an interactive web application at dlubal.com. Pick any location on the map to instantly view all structural load zone values.

GeoZone web application
GeoZone web application

Client SDKs (Python and C#)

Official client libraries are available for Python and .NET. Both packages wrap the GeoZone Tool GraphQL API and provide typed models for requests and responses.

Python (PyPI)

Package: dlubal.api.geo-zone-tool. Import path in code: from dlubal.api import geo_zone_tool.

bash
python -m pip install dlubal.api.geo-zone-tool

C# (.NET / NuGet)

Package: Dlubal.API.GeoZoneTool. The client exposes async methods for API queries and PDF subscription progress.

bash
dotnet add package Dlubal.API.GeoZoneTool

# or in a .csproj file
<PackageReference Include="Dlubal.API.GeoZoneTool" Version="1.0.14" />

Authentication

Most queries require a Bearer token passed in the Authorization header:

Authorization:Bearer YOUR_TOKEN

Queries marked Public do not require authentication. All others consume one API credit per request.

Load Zone Characteristics

QueryAuth Required

Accepts a free-text address and optional filters — type, standard, annex, and layerId — to narrow results to a specific zone type or country annex. Returns resolved address details, the matched zone value, and an ordered list of structural load characteristics grouped by standard and annex.

The code field can be OK, COUNTRY_CHANGED (server auto-selected a more appropriate standard), ANNEX_CHANGED, or ERROR.

Snow zones
Snow zones
Wind zones
Wind zones
Seismic zones
Seismic zones
graphql
query {
  getLoadZoneCharacteristics(
    input: {
      address: "Munich, Germany"
      type: SNOW
      standard: "EN 1991-1-3"
      annex: "Germany"
      layerId: 1
    }
    language: EN
  ) {
    code
    message
    geoLocation {
      latitude longitude altitude
      street zip city state country countryCode
    }
    characteristics {
      standard
      annex
      zoneCharacteristics {
        id
        zone { value }
        characteristics {
          name calculatedValue
          nameHtml unitsHtml description
          decimalPlaces sequence
        }
      }
    }
    noLiability
  }
}

Geo Locations

QueryPublic

Geocoding lookup — converts a free-text address into coordinate results. Accepts optional sortCountryCode to prioritize results for a given country. No authentication required. Returns up to 10 ranked results with street, city, state, country, postalCode, and decimal coordinates.

FieldTypeDescription
addressString!Free-text address or place name
sortCountryCodeStringISO country code — results from this country are ranked first
languageLanguageEnumResponse language (default EN)
Address search
Address search
graphql
query {
  getGeoLocations(
    address: "Altdorf, Uri, Switzerland"
    sortCountryCode: "CH"
    language: EN
  ) {
    latitude longitude altitude
    displayName street zip city state country countryCode
  }
}

Load Zone Screenshot

QueryAuth Required

Generates a map screenshot centred on latitude and longitude as a base64-encoded PNG or JPEG. Useful for embedding zone maps in reports or dashboards.

graphql
query {
  getLoadZoneScreenshot(
    input: {
      address: "Munich, Germany"
      type: SNOW
      standard: "EN 1991-1-3"
      annex: "Germany"
      layerId: 1
      zoom: 8
      screenshotType: { type: PNG quality: 90 }
    }
    language: EN
  )
}

Load Zone Standards

QueryPublic

Returns the full hierarchy of load zone types, standards, national annexes, and layers available for a given country code. Use this to populate selectors or discover valid standard, annex, and layer combinations.

graphql
query {
  getLoadZoneStandards(
    countryCode: "DE"
    language: EN
  ) {
    name
    standards {
      name
      annexes {
        name
        actual
        layers { id name }
      }
    }
  }
}

Available Load Zones

QueryAuth Required

Returns a compact list of load zones grouped by type — ideal for discovering valid loadZoneId / layerId pairs.

graphql
query {
  findLoadzones(
    countryCode: "DE"
    language: EN
  ) {
    country
    countryCode
    typeGroups {
      name
      loadzones {
        standard annex loadzoneId
        layers { id name }
      }
    }
  }
}

User Data

QueryAuth Required

Returns the authenticated user's email, credit balance, and remaining clicks count for the current billing period.

graphql
query {
  getUserData {
    email
    clicks
  }
}

ASCE 7-22 Seismic Data

QueryAuth Required

Proxies the USGS Seismic Design Web Services (https://earthquake.usgs.gov/ws/designmaps/asce7-22.html). Returns ASCE 7-22 seismic design map parameters for a given latitude/longitude, risk category, and site class. Includes spectral acceleration values (Ss, S1, SDS, SD1), design spectra, and seismic design category (SDC).

graphql
query {
  getAsce722(
    latitude: 34.05
    longitude: -118.25
    riskCategory: II
    siteClass: DEFAULT
  ) {
    code
    message
    referenceDocument
    data {
      ss s1 sds sd1 sdc
      pgam sms sm1 ts t0 tl cv
      twoPeriodDesignSpectrum { periods ordinates }
      twoPeriodMcErSpectrum   { periods ordinates }
    }
  }
}

PDF Report Progress

SubscriptionAuth Required

Generates a full load zone PDF report over a WebSocket connection (GraphQL subscriptions via graphql-ws). The server streams progress updates; the final message contains the base64-encoded PDF and a suggested filename.

WebSocket endpoint: wss://api-gateway.dlubal.com/geo-zone/pub/graphql

graphql
subscription {
  getPdf(
    pdfInput: {
      address: "Munich, Germany"
      standard: "EN 1991-1-3"
      annex: "Germany"
      layerId: 1
    }
    language: EN
  ) {
    currentStep
    steps
    message
    pdfResult { pdf name }
  }
}

Enums

LanguageEnum

ValueLanguage
ENEnglish
DEGerman
FRFrench
ITItalian
ESSpanish
PTPortuguese
PLPolish
CSCzech
RURussian
ZHChinese

LoadzoneTypeEnum

ValueDescription
SNOWSnow load zones (EN 1991-1-3)
WINDWind load zones (EN 1991-1-4)
EARTHQUAKESeismic zones (EN 1998)
TORNADOTornado zones (US only)

RiskCategoryEnum

ValueDescription
ILow hazard (agricultural, minor storage)
IIStandard occupancy (default for most buildings)
IIISubstantial hazard (schools, jails, high occupancy)
IVEssential facilities (hospitals, emergency services)

SiteClassEnum

ValueDescription
DEFAULTSite class determined from USGS data
AHard rock (Vs30 > 1500 m/s)
BRock (760–1500 m/s)
BCVery dense soil / soft rock (530–760 m/s)
CVery dense soil (360–530 m/s)
CDStiff soil (270–360 m/s)
DStiff clay (180–270 m/s)
DESoft clay (100–180 m/s)
ESoft clay soil (Vs30 < 100 m/s)

ScreenshotTypeEnum

ValueDescription
PNGLossless PNG image
JPEGCompressed JPEG image

Input Types

CharacteristicsInput

FieldTypeDescription
addressString!Free-text address or place name
typeLoadzoneTypeEnumZone type filter (SNOW, WIND, EARTHQUAKE, TORNADO)
standardStringStandard name filter
annexStringAnnex / national annex filter
layerIdIntLayer ID within the standard

GetLoadzoneScreenshotPublicInput

FieldTypeDescription
addressString!Free-text address or place name
typeLoadzoneTypeEnumZone type filter
standardStringStandard name filter
annexStringAnnex filter
layerIdIntLayer ID
zoomIntMap zoom level (default 5)
mapStringMap tile style
layerOrderIntLayer rendering order
screenshotTypeScreenshotTypeInputImage format and quality

ScreenshotTypeInput

FieldTypeDescription
typeScreenshotTypeEnum!PNG or JPEG (default PNG)
qualityInt!JPEG quality 0–100 (default 90)

GetLoadzonePdfInput

FieldTypeDescription
addressString!Free-text address or place name
standardStringStandard name filter
annexStringAnnex filter
layerIdIntLayer ID

Output Types

CharacteristicsResponseMiaType

FieldTypeDescription
codeString!Response status code
messageStringHuman-readable message when code ≠ OK
geoLocationGeofinderDataTypeResolved location data
characteristics[CharacteristicsLoadzoneType2]Per-standard zone results
noLiabilityStringDisclaimer text

CharacteristicsLoadzoneType2

FieldTypeDescription
standardString!Standard name
annexString!Annex name
zoneCharacteristicsCharacteristicsLayerType2!Layer result

CharacteristicsLayerType2

FieldTypeDescription
idInt!Layer ID
zoneCharacteristicsZoneType2!Matched zone value
characteristics[CharacteristicsVariableType]!Ordered load values

CharacteristicsVariableType

FieldTypeDescription
nameString!Parameter name (plain text)
nameHtmlString!Parameter name (HTML)
calculatedValueStringComputed value
unitsHtmlString!Units (HTML)
descriptionString!Parameter description
decimalPlacesInt!Display precision
sequenceInt!Display order

GeofinderDataType

FieldTypeDescription
latitudeString!Resolved latitude
longitudeString!Resolved longitude
altitudeString!Elevation
streetStringStreet name and number
zipStringPostal code
cityStringCity / municipality
stateStringState or region
countryStringCountry name
countryCodeStringISO country code

GeoLocationType

FieldTypeDescription
latitudeString!Latitude
longitudeString!Longitude
altitudeString!Elevation
displayNameStringFull formatted address
streetStringStreet name and number
zipStringPostal code
cityStringCity / municipality
stateStringState or region
countryStringCountry name
countryCodeStringISO country code

UserDataType

FieldTypeDescription
emailString!Account email address
clicksInt!Remaining API calls this billing period

LoadzoneGroupShortType

FieldTypeDescription
countryString!Country name
countryCodeString!ISO country code
typeGroups[LoadzoneTypeGroupType]!Zones grouped by type

LoadzoneShortType

FieldTypeDescription
standardString!Standard name
annexString!Annex name
loadzoneIdString!Unique load zone identifier
layers[LoadzoneLayerShortType]!Available layers

Asce722ResponseType

FieldTypeDescription
codeString!Response status code
messageStringError or informational message
referenceDocumentStringUSGS reference document URL
dataAsce722DataTypeSeismic design parameters

Asce722DataType

FieldTypeDescription
ssFloatMapped MCEr spectral acceleration, short period
s1FloatMapped MCEr spectral acceleration, 1-second period
smsFloatSite-adjusted MCEr, short period
sm1FloatSite-adjusted MCEr, 1-second period
sdsFloatDesign spectral acceleration, short period
sd1FloatDesign spectral acceleration, 1-second period
pgamFloatSite-adjusted MCEr peak ground acceleration
sdcStringSeismic design category (A–F)
tsFloatTs = SD1 / SDS
t0FloatT0 = 0.2 × Ts
tlFloatLong-period transition period
cvFloatVertical seismic coefficient
twoPeriodDesignSpectrumSpectrumTypeTwo-period design response spectrum
twoPeriodMcErSpectrumSpectrumTypeTwo-period MCEr response spectrum
multiPeriodDesignSpectrumSpectrumTypeMulti-period design response spectrum
multiPeriodMcErSpectrumSpectrumTypeMulti-period MCEr response spectrum
verticalDesignSpectrumSpectrumTypeVertical design response spectrum
verticalMcErSpectrumSpectrumTypeVertical MCEr response spectrum

SpectrumType

FieldTypeDescription
periods[Float!]!Period values in seconds
ordinates[Float!]!Spectral acceleration values (g)
warningStringOptional data quality warning

PdfProgressType

FieldTypeDescription
currentStepInt!Steps completed
stepsInt!Total steps
messageString!Status message
pdfResultPdfResultTypePresent on final message only

PdfResultType

FieldTypeDescription
pdfString!Base64-encoded PDF
nameString!Suggested filename