GeoZone Public API
Una API GraphQL que devuelve datos de zonas de carga estructural, características geográficas e informes PDF para cualquier coordenada en el mundo.
7 Consultas1 SuscripciónBearer Auth
POSThttps://team-w.dlubal.com/api/geo-zone/pub/graphql
Aplicación Web
La herramienta GeoZone también está disponible como aplicación web interactiva en dlubal.com. Seleccione cualquier ubicación en el mapa para ver instantáneamente todos los valores de zonas de carga estructural.

Aplicación web GeoZone
Autenticación
La mayoría de las consultas requieren un token Bearer en el encabezado Authorization:
Authorization:Bearer YOUR_TOKEN
Las consultas marcadas como Público no requieren autenticación. Todas las demás consumen un crédito de API por solicitud.
getLoadZoneCharacteristics
ConsultaAuth requerida
Devuelve la clasificación de zona de carga y todas las características para una coordenada dada. Acepta un loadZoneId (de findLoadzones), layerId, y latitud/longitud decimal como cadenas. La respuesta incluye detalles de dirección, la zona coincidente y una lista ordenada de características estructurales.
El campo code puede ser OK, COUNTRY_CHANGED (el servidor seleccionó automáticamente un estándar más apropiado), ANNEX_CHANGED, o ERROR.

Zonas de nieve

Zonas de viento

Zonas sísmicas
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
}
}
getLoadZoneCharacteristicsV1
ConsultaAuth requerida
Versión heredada de getZoneCharacteristics. Devuelve una respuesta condensada sin datos de dirección ni secuencias de características completas. Mantenida por compatibilidad con versiones anteriores — las nuevas integraciones deben usar getZoneCharacteristics.
query {
getLoadZoneCharacteristicsV1(
input: {
address: "Munich, Germany"
type: SNOW
standard: "EN 1991-1-3"
annex: "Germany"
layerId: 1
}
language: EN
)
}
getGeoLocations
ConsultaPúblico
Búsqueda de geocodificación — convierte una dirección de texto libre en resultados de coordenadas. No requiere autenticación. Devuelve hasta 10 resultados clasificados con calle, ciudad, estado, país, código postal y coordenadas decimales.

Búsqueda de dirección
query {
getGeoLocations(
address: "Altdorf, Uri, Switzerland"
language: EN
) {
latitude longitude altitude
displayName street zip city state country countryCode
}
}
getLoadZoneScreenshot
ConsultaAuth requerida
Genera una captura de pantalla del mapa centrada en las coordenadas dadas como PNG o JPEG codificado en base64. Útil para incrustar mapas de zonas en informes o paneles de control.
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
)
}
getLoadZoneStandards
ConsultaPúblico
Devuelve la jerarquía completa de tipos de zonas de carga, estándares, anexos nacionales y capas. Úselo para rellenar selectores o descubrir valores válidos de loadZoneId con sus ID de capa, etiquetas de zona y colores.
query {
getLoadZoneStandards(
countryCode: "DE"
language: EN
) {
name
standards {
name
annexes {
name
actual
layers { id name }
}
}
}
}
findLoadzones
ConsultaAuth requerida
Devuelve una lista compacta de zonas de carga agrupadas por tipo — ideal para descubrir pares válidos de loadZoneId / layerId.
query {
findLoadzones(
countryCode: "DE"
language: EN
) {
country
countryCode
typeGroups {
name
loadzones {
standard annex loadzoneId
layers { id name }
}
}
}
}
Ejemplo de respuesta
{
"data": {
"findLoadzones": {
"country": "Germany",
"countryCode": "DE",
"typeGroups": [
{
"name": "Snow",
"loadzones": [
{
"standard": "EN 1991-1-3",
"annex": "Germany",
"loadzoneId": "snow-eu-en-1991",
"layers": [{ "id": 1, "name": null }]
}
]
},
{
"name": "Wind",
"loadzones": [
{
"standard": "EN 1991-1-4",
"annex": "Germany",
"loadzoneId": "wind-eu-en-2005",
"layers": [{ "id": 1, "name": null }]
}
]
}
]
}
}
}
getUserData
ConsultaAuth requerida
Devuelve la dirección de correo electrónico del usuario autenticado, el saldo de créditos y el número de clics de API restantes para el período de facturación actual.
query {
getUserData {
email
clicks
}
}
getPdf
SuscripciónAuth requerida
Genera un informe PDF completo de zona de carga a través de una conexión WebSocket (suscripciones GraphQL via graphql-ws). El servidor transmite actualizaciones de progreso; el mensaje final contiene el PDF codificado en base64 y un nombre de archivo sugerido.
Punto de conexión WebSocket: wss://team-w.dlubal.com/api/geo-zone/pub/graphql
subscription {
getPdf(
pdfInput: {
address: "Munich, Germany"
standard: "EN 1991-1-3"
annex: "Germany"
layerId: 1
}
language: EN
) {
currentStep
steps
message
pdfResult { pdf name }
}
}
Ejemplo de cliente JavaScript
import { createClient } from "graphql-ws";
const client = createClient({
url: "wss://team-w.dlubal.com/api/geo-zone/pub/graphql",
connectionParams: { Authorization: "Bearer YOUR_TOKEN" },
});
const unsubscribe = client.subscribe(
{
query: `subscription {
getPdf(pdfInput: {
address: "Munich, Germany"
standard: "EN 1991-1-3"
annex: "Germany"
layerId: 1
} language: EN) {
currentStep steps message
pdfResult { pdf name }
}
}`,
},
{
next({ data }) {
const step = data?.getPdf;
console.log(`${step.currentStep}/${step.steps} — ${step.message}`);
if (step.pdfResult) {
// step.pdfResult.pdf is base64-encoded
unsubscribe();
}
},
error(err) { console.error(err); },
complete() { console.log("Done"); },
}
);
Enumeraciones
LanguageEnum
| Valor | Idioma |
|---|
| EN | English |
| DE | German |
| FR | French |
| IT | Italian |
| ES | Spanish |
| PT | Portuguese |
| PL | Polish |
| CS | Czech |
| RU | Russian |
| ZH | Chinese |
LoadzoneTypeEnum
| Valor | Descripción |
|---|
| SNOW | Snow load zones (EN 1991-1-3) |
| WIND | Wind load zones (EN 1991-1-4) |
| EARTHQUAKE | Seismic zones (EN 1998) |
| TORNADO | Tornado zones (US only) |
ScreenshotTypeEnum
| Valor | Descripción |
|---|
| PNG | Lossless PNG image |
| JPEG | Compressed JPEG image |
Tipos de salida
CharacteristicsResponseMiaType
| Campo | Tipo | Descripción |
|---|
| code | String! | Response status code |
| message | String | Human-readable message when code ≠ OK |
| geoLocation | GeofinderDataType | Resolved location data |
| characteristics | [CharacteristicsLoadzoneType2] | Per-standard zone results |
| noLiability | String | Disclaimer text |
CharacteristicsLoadzoneType2
| Campo | Tipo | Descripción |
|---|
| standard | String! | Standard name |
| annex | String! | Annex name |
| zoneCharacteristics | CharacteristicsLayerType2! | Layer result |
CharacteristicsLayerType2
| Campo | Tipo | Descripción |
|---|
| id | Int! | Layer ID |
| zone | CharacteristicsZoneType2! | Matched zone value |
| characteristics | [CharacteristicsVariableType]! | Ordered load values |
CharacteristicsVariableType
| Campo | Tipo | Descripción |
|---|
| name | String! | Parameter name (plain text) |
| nameHtml | String! | Parameter name (HTML) |
| calculatedValue | String | Computed value |
| unitsHtml | String! | Units (HTML) |
| description | String! | Parameter description |
| decimalPlaces | Int! | Display precision |
| sequence | Int! | Display order |
GeofinderDataType
| Campo | Tipo | Descripción |
|---|
| latitude | String! | Resolved latitude |
| longitude | String! | Resolved longitude |
| altitude | String! | Elevation |
| street | String | Street name and number |
| zip | String | Postal code |
| city | String | City / municipality |
| state | String | State or region |
| country | String | Country name |
| countryCode | String | ISO country code |
GeoLocationType
| Campo | Tipo | Descripción |
|---|
| latitude | String! | Latitude |
| longitude | String! | Longitude |
| altitude | String! | Elevation |
| displayName | String | Full formatted address |
| street | String | Street name and number |
| zip | String | Postal code |
| city | String | City / municipality |
| state | String | State or region |
| country | String | Country name |
| countryCode | String | ISO country code |
UserDataType
| Campo | Tipo | Descripción |
|---|
| email | String! | Account email address |
| clicks | Int! | Remaining API calls this billing period |
LoadzoneGroupShortType
| Campo | Tipo | Descripción |
|---|
| country | String! | Country name |
| countryCode | String! | ISO country code |
| typeGroups | [LoadzoneTypeGroupType]! | Zones grouped by type |
LoadzoneShortType
| Campo | Tipo | Descripción |
|---|
| standard | String! | Standard name |
| annex | String! | Annex name |
| loadzoneId | String! | Unique load zone identifier |
| layers | [LoadzoneLayerShortType]! | Available layers |
PdfProgressType
| Campo | Tipo | Descripción |
|---|
| currentStep | Int! | Steps completed |
| steps | Int! | Total steps |
| message | String! | Status message |
| pdfResult | PdfResultType | Present on final message only |
PdfResultType
| Campo | Tipo | Descripción |
|---|
| pdf | String! | Base64-encoded PDF |
| name | String! | Suggested filename |