/v1/account/monitors

account/monitors

Monitoring: haz vigilar empresas; crear, pausar, eliminar.

Costes y límites

Costes y límites
Qué Créditos
Monitor comprobado cada día, durante 30 días 50
Monitor comprobado cada 3 días, durante 30 días 40
Monitor comprobado cada 7 días, durante 30 días 20
Monitor comprobado cada 30 días, durante 30 días 10
Cada comprobación correcta adicional en el periodo +2

Límite: 30 solicitudes por minuto. Crear, modificar y eliminar: 10 por minuto.

curl -G "https://handelsregister.ai/api/v1/account/monitoring/pricing" \
  -H "x-api-key: TU_CLAVE_API" \
  --data-urlencode 'poll_interval_days=7'
1{2  "pricing": {3    "policy_version": "2026-08.v2",4    "credits_per_run": 2,5    "cycle_minimum_credits": 20,6    "included_runs": 5,7    "cycle_days": 30,8    "estimated_runs": 5,9    "estimated_credits": 2010  },11  "entitled": true,12  "meta": {13    "request_credit_cost": 0,14    "credits_remaining": 14515  }16}
200 · Respuesta de ejemplo: precio de un monitor con una comprobación cada 7 días

Cómo funciona un monitor

Estado
Estado Significado
initializing Creado; la línea base y la activación están en curso.
active Comprueba con el intervalo elegido.
paused_user Pausado por ti.
paused_configuration Ya no hay conectado ningún endpoint de webhook activo y verificado.
paused_billing Tu saldo no cubre el ciclo o una comprobación adicional. O el precio ha cambiado y espera tu conformidad.
error Varias comprobaciones seguidas han fallado.
archived Terminado definitivamente. Aún puedes leer el monitor por su ID, pero ya no aparece en la lista.

Endpoints

Método
Método Ruta Para qué
GET /v1/account/monitors Todos los monitores, los más recientes primero, sin los archivados.
POST /v1/account/monitors Crear un monitor.
GET /v1/account/monitors/{id} Un monitor con su ciclo y sus últimas comprobaciones.
PATCH /v1/account/monitors/{id} Cambiar el intervalo de comprobación.
POST /v1/account/monitors/{id}/pause Pausar.
POST /v1/account/monitors/{id}/resume Reanudar.
DELETE /v1/account/monitors/{id} Archivar.
GET /v1/account/monitoring/pricing Precio de un intervalo.

Idempotency-Key

Crear un monitor

curl -X POST "https://handelsregister.ai/api/v1/account/monitors" \
  -H "x-api-key: TU_CLAVE_API" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
    "entity_id": "94eb910fef13f94585c48c263fa446d4",
    "label": "Hetzner Online GmbH",
    "poll_interval_days": 7,
    "endpoint_ids": [
        "wep_01m6b3j1g0cdz98hw8zdefbf52"
    ]
}'
Parámetros
Nombre Tipo Descripción Ejemplo
Idempotency-KeyHeader stringobligatorio Un valor único por operación, idealmente un UUID. Consulta Idempotency-Key.Límites: 1 a 128 caracteres req-20260802-01
entity_idBody stringobligatorio La entity_id de la empresa de fetch-organization o search-organizations.Límites: 1 a 128 caracteres 94eb910fef13f94585c48c263fa446d4
labelBody stringopcional Un nombre para el monitor.Límites: como máximo 200 caracteres Hetzner Online GmbH
poll_interval_daysBody integerobligatorio Intervalo de comprobación en días.Límites: 1 a 30 7
endpoint_idsBody lista de stringobligatorio Los IDs de tus endpoints de webhook (wep_…). Cada uno debe estar activo y verificado.Límites: 1 a 10 entradas ["wep_01m6b3j1g0cdz98hw8zdefbf52"]
1{2  "monitor": {3    "id": "mon_01m6b3m7945dn7cyvexzv41kjz",4    "type": "organization.signals",5    "entity_id": "94eb910fef13f94585c48c263fa446d4",6    "label": "Hetzner Online GmbH",7    "poll_interval_days": 7,8    "status": "initializing",9    "status_reason": null,10    "pricing_policy_version": "2026-08.v2",11    "baseline_completed_at": null,12    "activated_at": null,13    "last_succeeded_at": null,14    "next_poll_at": null,15    "created_at": "2026-11-01T08:29:13+00:00"16  },17  "meta": {18    "message": "Monitor created; the free baseline is queued and this request charged 0 credits. The cycle price is charged only when activation succeeds.",19    "baseline_queued": true,20    "billing": {21      "charged_credits": 0,22      "new_cycle": false,23      "floor_transaction_id": null24    },25    "request_credit_cost": 0,26    "credits_remaining": 14527  }28}
202 · Respuesta de ejemplo: un monitor nuevo, en nuestro ejemplo para Hetzner Online GmbH, Ansbach HRB 6089
A través de la API fijas los endpoints de webhook al crear el monitor. Otro endpoint de webhook lo conectas en Cuenta › Monitoring con “Conectar destino”, sin coste adicional.

Listar y modificar monitores

curl -G "https://handelsregister.ai/api/v1/account/monitors/mon_01m65pn3vm11sjjp1j076cbvec" \
  -H "x-api-key: TU_CLAVE_API"
1{2  "monitor": {3    "id": "mon_01m65pn3vm11sjjp1j076cbvec",4    "type": "organization.signals",5    "entity_id": "94eb910fef13f94585c48c263fa446d4",6    "label": "Hetzner Online GmbH",7    "poll_interval_days": 1,8    "status": "active",9    "status_reason": null,10    "pricing_policy_version": "2026-08.v2",11    "baseline_completed_at": "2026-10-30T06:06:28+00:00",12    "activated_at": "2026-10-30T06:06:28+00:00",13    "last_succeeded_at": "2026-10-30T06:06:53+00:00",14    "next_poll_at": "2026-10-31T06:19:12+00:00",15    "created_at": "2026-10-30T06:06:18+00:00"16  },17  "billing_cycle": {18    "starts_at": "2026-10-30T06:06:28+00:00",19    "ends_at": "2026-11-29T06:06:28+00:00",20    "floor_credits": 50,21    "credits_per_run": 2,22    "included_runs": 30,23    "successful_runs": 1,24    "extra_credits_settled": 0,25    "pricing_policy_version": "2026-08.v2"26  },27  "recent_runs": [28    {29      "due_slot_at": "2026-10-30T06:06:28+00:00",30      "kind": "activation_catchup",31      "status": "succeeded",32      "charge_state": "covered",33      "charge_credits": 0,34      "events_new": 0,35      "finished_at": "2026-10-30T06:06:55+00:00"36    }37  ],38  "meta": {39    "request_credit_cost": 0,40    "credits_remaining": 14541  }42}
200 · Respuesta de ejemplo: un monitor activo con comprobación diaria, de nuevo para Hetzner Online GmbH
Campos de un monitor
Campo Significado
id ID del monitor, empieza por mon_.
entity_id La empresa vigilada.
poll_interval_days Intervalo de comprobación en días.
status, status_reason Estado, consulta arriba. status_reason indica el motivo.
baseline_completed_at, activated_at, last_succeeded_at Momentos de la línea base, la activación y la última comprobación correcta.
next_poll_at La próxima comprobación programada, solo en monitores activos.
billing_cycle El ciclo actual: inicio, fin, precio, comprobaciones incluidas y comprobaciones hechas hasta ahora.
recent_runs Las últimas comprobaciones con resultado, cobro y el número de señales nuevas en events_new.
curl -X PATCH "https://handelsregister.ai/api/v1/account/monitors/mon_01m6b3m7945dn7cyvexzv41kjz" \
  -H "x-api-key: TU_CLAVE_API" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
    "poll_interval_days": 30
}'
1{2  "monitor": {3    "id": "mon_01m6b3m7945dn7cyvexzv41kjz",4    "type": "organization.signals",5    "entity_id": "94eb910fef13f94585c48c263fa446d4",6    "label": "Hetzner Online GmbH",7    "poll_interval_days": 30,8    "status": "initializing",9    "status_reason": null,10    "pricing_policy_version": "2026-08.v2",11    "baseline_completed_at": null,12    "activated_at": null,13    "last_succeeded_at": null,14    "next_poll_at": null,15    "created_at": "2026-11-01T08:29:13+00:00"16  },17  "meta": {18    "request_credit_cost": 0,19    "credits_remaining": 14520  }21}
200 · Respuesta de ejemplo: intervalo cambiado a 30 días

Pausar, reanudar, archivar

curl -X POST "https://handelsregister.ai/api/v1/account/monitors/mon_01m6b3m7945dn7cyvexzv41kjz/resume" \
  -H "x-api-key: TU_CLAVE_API" \
  -H "Idempotency-Key: $(uuidgen)"
Si desactivas o archivas un endpoint de webhook, todos los monitores sin otro endpoint de webhook se pausan con paused_configuration. Tras activar el endpoint de webhook, reanuda el monitor con resume.

Errores

Errores
Estado Causa Qué puedes hacer
400 api_key está en la URL. Envía la clave en el header x-api-key.
400 El Idempotency-Key tiene un formato no válido. Corrige el formato, por ejemplo usa un UUID.
401 Ninguna clave API ni token, o uno no válido. Envía la clave en el header x-api-key.
403 Al bearer token le falta el permiso account:read. Usa la clave API o un token con account:read.
403 La dirección de email de tu cuenta aún no está confirmada, o la cuenta está bloqueada. Abre el enlace del email de confirmación. Si la cuenta está bloqueada, el soporte puede ayudarte.
403 Al bearer token le falta el permiso monitoring:manage. Usa la clave API o el admin token.
404 Ningún monitor con este ID en tu cuenta. Revisa el ID.
409 Ya existe un monitor para esta empresa (duplicate_monitor). Usa el monitor existente o archívalo primero.
409 El Idempotency-Key ya se usó con datos distintos, tiene más de 24 horas o aún se está procesando. Usa una clave nueva o espera un momento.
422 Un valor no es válido: invalid_subject, invalid_interval, endpoint_required, monitor_limit o not_resumable. Corrige el valor.
428 Falta el header Idempotency-Key. Envía el header.
429 Demasiadas solicitudes. Reintenta tras Retry-After.
429 creation_rate_limited: demasiados monitores nuevos en 24 horas. Reintenta tras Retry-After.
503 Monitoring no está disponible temporalmente. Reintenta un poco más tarde.
1{2  "error": "duplicate_monitor",3  "meta": {4    "message": "You already have a monitor for this company.",5    "request_credit_cost": 0,6    "credits_remaining": 1457  }8}
409 · Un segundo monitor para la misma empresa