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 OWNER o ADMIN en la organización.
  • Un cliente HTTP (curl, Postman, fetch, requests…).
1

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.

2

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.

3

Haz tu primera llamada

Sustituye YOUR_API_KEY por el secreto que copiaste y elige tu lenguaje favorito.

curl

bash
curl https://www.rud1.es/api/v1/public/devices \
  -H "Authorization: Bearer YOUR_API_KEY"

JavaScript / TypeScript

node 18+ / fetch nativo
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

python 3.10+ / requests
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:

ejemplo de respuesta
{
  "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.