Quickstart
Cinco minutos desde cero hasta tu primera lista de dispositivos consumida desde código.
Prerrequisitos
- Una cuenta de Rud1 con al menos un dispositivo emparejado.
- Rol
OWNERoADMINen la organización. - Un cliente HTTP (curl, Postman, fetch, requests…).
Crea una clave API
Abre Ajustes → Claves API en el panel y pulsa Nueva clave API. Dale un nombre descriptivo (por ejemplo, "Dashboard interno"), elige los scopes que necesites y una caducidad razonable.
Para este quickstart te basta con devices:read.
Copia el secreto antes de cerrar el modal
La clave aparece en pantalla una sola vez: tendrá la forma rud1_sk_xxxxxxxx_yyyyy…. Cópiala a tu gestor de secretos (1Password, Vault, dotenv local con permisos 600, etc.) — no la guardes en un repositorio público.
Si la pierdes, revoca la clave desde el listado y crea una nueva. No tenemos forma de recuperar el secreto: solo almacenamos su hash bcrypt.
Haz tu primera llamada
Sustituye YOUR_API_KEY por el secreto que copiaste y elige tu lenguaje favorito.
curl
curl https://www.rud1.es/api/v1/public/devices \ -H "Authorization: Bearer YOUR_API_KEY"
JavaScript / TypeScript
const apiKey = process.env.RUD1_API_KEY!;
const res = await fetch("https://www.rud1.es/api/v1/public/devices", {
headers: { Authorization: `Bearer ${apiKey}` },
});
if (!res.ok) {
const err = await res.json();
throw new Error(`${err.error.code}: ${err.error.message}`);
}
const { data, pagination } = await res.json();
console.log(`Tienes ${data.length} dispositivo(s).`);
data.forEach((d: { name: string; status: string }) =>
console.log(`- ${d.name} [${d.status}]`),
);Python
import os, requests
api_key = os.environ["RUD1_API_KEY"]
r = requests.get(
"https://www.rud1.es/api/v1/public/devices",
headers={"Authorization": f"Bearer {api_key}"},
timeout=10,
)
r.raise_for_status()
payload = r.json()
print(f"Tienes {len(payload['data'])} dispositivo(s).")
for d in payload["data"]:
print(f"- {d['name']} [{d['status']}]")Qué deberías ver
Una respuesta JSON con un array data y un objeto pagination:
{
"data": [
{
"id": "clxxxxxxxxxxxxxxxxxxxxxxx",
"name": "PLC línea 3",
"serialNumber": "RUD1-000123",
"status": "ONLINE",
"model": "Rud1 Mini",
"firmwareVersion": "1.4.2",
"lastSeen": "2026-05-05T22:11:38.512Z",
"ipAddress": "192.168.1.42",
"location": "Planta 2 - Norte",
"createdAt": "2026-04-12T10:00:00.000Z"
}
],
"pagination": { "nextCursor": null, "hasMore": false }
}💡 Si hasMore es true, repite la llamada añadiendo ?cursor=<nextCursor> para la siguiente página.
Paso siguiente
Lee la guía de autenticación y scopes para entender qué scope necesita cada endpoint, o salta directamente a la referencia de endpoints para ver el catálogo completo.