Referencia
Centros
Los centros del cliente y sus zonas.
Centros del cliente
GET/v1/sites
Cualquier token válido.
Respuestas
- 200
Centros a los que accede el cliente.
application/json
SiteList - 401
Falta el token, ha caducado o se ha revocado.
application/problem+json
Problem - 403
Al token le falta el scope que pide la ruta, o el centro no es del cliente.
application/problem+json
Problem - 429
Demasiadas peticiones, o demasiado tiempo de consulta: cada cliente tiene un número de peticiones por minuto (600 de serie) y un tiempo de consulta por minuto (30 s de serie), y cada petición gasta lo que tarda, así que una lista larga cuenta más que una alerta suelta.
Retry-Afterdice cuándo volver.application/problem+json
Problem
Petición · sandbox
curl "https://sandbox.api.safeonuba.com/v1/sites" \
-H "Authorization: Bearer $SAFEONUBA_TOKEN"const res = await fetch('https://sandbox.api.safeonuba.com/v1/sites', {
headers: {
Authorization: `Bearer ${process.env.SAFEONUBA_TOKEN}`,
},
});
if (!res.ok) throw new Error(`${res.status}: ${await res.text()}`);
const data = await res.json();import os
import requests
res = requests.get(
"https://sandbox.api.safeonuba.com/v1/sites",
headers={"Authorization": f"Bearer {os.environ['SAFEONUBA_TOKEN']}"},
timeout=10,
)
res.raise_for_status()
data = res.json()using System.Net.Http.Headers;
using var http = new HttpClient();
http.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(
"Bearer", Environment.GetEnvironmentVariable("SAFEONUBA_TOKEN"));
var res = await http.GetAsync("https://sandbox.api.safeonuba.com/v1/sites");
res.EnsureSuccessStatusCode();
var json = await res.Content.ReadAsStringAsync();Respuesta 200
{
"data": [
{
"id": "0f6c2b7e-3a1d-4c55-9b0e-7d2f4a8c1e90",
"name": "Planta Ejemplo — simulación",
"location": "Polígono industrial de ejemplo",
"privacy_mode": "on_demand",
"unveil_min_severity": "low"
}
]
}Zonas y puntos de reunión de un centro
GET/v1/sites/{id}/zones
Scope alerts:read
GeoJSON en WGS84. Las zonas de privacidad, con nombre y tipo pero sin geometría.
Parámetros de ruta
idstring (uuid)obligatorioId del centro.
Respuestas
- 200
Zonas en vigor.
application/json
ZoneList - 401
Falta el token, ha caducado o se ha revocado.
application/problem+json
Problem - 403
Al token le falta el scope que pide la ruta, o el centro no es del cliente.
application/problem+json
Problem - 404
El centro no existe o no es del cliente.
application/problem+json
Problem - 429
Demasiadas peticiones, o demasiado tiempo de consulta: cada cliente tiene un número de peticiones por minuto (600 de serie) y un tiempo de consulta por minuto (30 s de serie), y cada petición gasta lo que tarda, así que una lista larga cuenta más que una alerta suelta.
Retry-Afterdice cuándo volver.application/problem+json
Problem
Petición · sandbox
curl "https://sandbox.api.safeonuba.com/v1/sites/0f6c2b7e-3a1d-4c55-9b0e-7d2f4a8c1e90/zones" \
-H "Authorization: Bearer $SAFEONUBA_TOKEN"const res = await fetch('https://sandbox.api.safeonuba.com/v1/sites/0f6c2b7e-3a1d-4c55-9b0e-7d2f4a8c1e90/zones', {
headers: {
Authorization: `Bearer ${process.env.SAFEONUBA_TOKEN}`,
},
});
if (!res.ok) throw new Error(`${res.status}: ${await res.text()}`);
const data = await res.json();import os
import requests
res = requests.get(
"https://sandbox.api.safeonuba.com/v1/sites/0f6c2b7e-3a1d-4c55-9b0e-7d2f4a8c1e90/zones",
headers={"Authorization": f"Bearer {os.environ['SAFEONUBA_TOKEN']}"},
timeout=10,
)
res.raise_for_status()
data = res.json()using System.Net.Http.Headers;
using var http = new HttpClient();
http.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(
"Bearer", Environment.GetEnvironmentVariable("SAFEONUBA_TOKEN"));
var res = await http.GetAsync("https://sandbox.api.safeonuba.com/v1/sites/0f6c2b7e-3a1d-4c55-9b0e-7d2f4a8c1e90/zones");
res.EnsureSuccessStatusCode();
var json = await res.Content.ReadAsStringAsync();Respuesta 200
{
"data": [
{
"id": "f6040b41-be81-4bf3-af68-bfaf3e284c54",
"name": "Punto de reunión PR-3 · Zona alta",
"type": "assembly_point",
"geometry": {
"type": "Polygon",
"coordinates": [
[
[
-2.9825,
40.0081
],
[
-2.9818,
40.0081
],
[
-2.9818,
40.0076
],
[
-2.9825,
40.0076
],
[
-2.9825,
40.0081
]
]
]
},
"assembly_point": {
"serves": [
"general",
"tsunami"
],
"elevation_m": 50,
"elevation_source": "verified",
"vertical": false,
"capacity": 200
}
}
]
}