api.activar.dev · v1

API de activación — documentación

Genera el código de confirmación (CID) de activación de Windows y Office con una llamada HTTP. Autenticación por clave Bearer, cobro solo por CID generado, bitácora de cada petición y claves con tope diario configurable.

Base

La API vive en https://api.activar.dev. Todas las respuestas son JSON. El body máximo permitido es de 8 192 bytes y cada petición de CID tiene un límite de 90 segundos de proceso.

Autenticación

Todas las rutas /v1/* exigen tu clave en el header Authorization: Bearer <clave>. Emites y gestionas tus claves en el bot de Telegram (@cidiid_bot, comando /api); cada clave se entrega una sola vez — guardamos solo su hash — y puede rotarse o revocarse cuando quieras.

Identificador de petición

Cada respuesta exitosa lleva un request_id: guárdalo. Es la referencia exacta en la bitácora si necesitas soporte o auditoría de un cobro.

POST /v1/cid

El endpoint principal: entra un ID de instalación (IID), sale el código de confirmación (CID) que activa Windows u Office por la vía telefónica de Microsoft, sin llamada y sin cuenta Microsoft.

POSThttps://api.activar.dev/v1/cid
# generar un CID
curl -X POST https://api.activar.dev/v1/cid \
  -H "Authorization: Bearer gc_live_TU_CLAVE" \
  -H "Content-Type: application/json" \
  -d '{"iid":"00269538026695922170826852518480286383828529569486954"}'

Body

CampoTipoNotas
iidstringEl ID de instalación completo, con o sin guiones. Se valida su checksum; uno inválido se rechaza sin cobro.

Respuesta 200

{
  "ok": true,
  "cid": "012345 678901 234567 890123 456789 012345 678901 234567",
  "blocks": ["012345","678901","234567","890123","012345","678901","678901","234567"],
  "cached": false,
  "source": "soap",
  "charged": 0.1,
  "request_id": "uuid-de-la-peticion",
  "balance": 4.90
}
CampoQué significa
cidEl código de confirmación listo para teclear en el asistente de activación.
blocksEl mismo CID partido en bloques de 6, como lo pide el asistente.
cachedtrue si el CID ya se había generado antes — se entrega de inmediato y no se cobra de nuevo.
chargedLo cobrado por esta petición, en USD. 0.0 en aciertos de cache.
balanceTu saldo resultante, en USD.

Tiempos

Un acierto de cache responde en milisegundos. Una generación nueva normalmente tarda segundos; el límite duro del sistema es de 90 segundos — si se pasa, responde 503 TIMEOUT sin cobrar y puedes reintentar.

GET /v1/balance

Saldo actual, cap diario y gasto del día (UTC) de tu clave.

# consulta
curl https://api.activar.dev/v1/balance \
  -H "Authorization: Bearer gc_live_TU_CLAVE"
{
  "balance": 4.90,
  "currency": "USD",
  "cap_diario_cents": 500,
  "gastado_hoy_cents": 10
}

GET /v1/usage

Bitácora de consumo de tu clave: las últimas peticiones con su resultado, cobro y duración. Parámetro opcional limit (1–200, default 50).

curl "https://api.activar.dev/v1/usage?limit=20" \
  -H "Authorization: Bearer gc_live_TU_CLAVE"

GET /healthz · GET /readyz

Monitoreo simple. /healthz confirma que el servicio vive; /readyz confirma que la base responde y reporta los slots de generación libres. Ambas públicas, sin autenticación.

Errores

Los errores son JSON estables: {"ok": false, "error": {"code", "message"}}. Un 502/503 jamás viene con cobro — si hubo un cobro, la operación ya trae su CID. La lista de códigos:

HTTPCódigoQué significa¿Se cobró?
400IID_INVALIDEl IID no tiene el formato de un ID de instalaciónNo
400IID_CHECKSUM_INVALIDEl IID no pasa la validación de dígito de controlNo
401KEY_MISSINGFalta el header AuthorizationNo
401KEY_INVALIDLa clave no existe o no coincideNo
403KEY_PENDINGLa clave se emitió pero aún no confirmas su entrega por DM en el botNo
403KEY_REVOKEDLa clave fue revocadaNo
402NO_BALANCESaldo insuficiente para el precio del CIDNo
429CAP_DIARIOAlcanzaste el tope diario de gasto de tu claveNo
429RATE_LIMITEDDemasiadas peticiones seguidas — respeta el Retry-AfterNo
409El IID ya está en proceso por otra petición; espera su resultado o el vencimientoNo
502UPSTREAM_ERRORMicrosoft rechazó la generación; no reintentar en automáticoNo
503BUSYSin slots libres ahora; reintenta con Retry-AfterNo
503TIMEOUTLa generación rebasó 90 s; seguro reintentarNo
503CACHE_UNAVAILABLEEl cache está temporalmente caído; reintentaNo
413PAYLOAD_TOO_LARGEBody mayor a 8 192 bytesNo
Regla de oro del cobro

El cobro es atómico con la entrega: cada petición queda registrada en tu bitácora con su cobro exacto (charged) o con cobro cero si falló. Nunca hay un cobro sin CID ni un CID sin su registro.

Próximamente

Estos endpoints están en el plan de integración del portal y de la API:

  • POST /v1/checkkey — verificación de claves (gratis, con protección anti-abuso) para herramientas y el revisor web.
  • Autenticación de sesión — login web por código de un uso, deep-link al bot.
  • CRUD de claves desde el panel — crear, listar y revocar sin pasar por el bot.
  • GET /v1/ledger — la bitácora completa de movimientos de saldo en la API.

Consigue tu clave de API en el bot

Manda /api en el bot: emites tu clave, la recibes por mensaje directo y gestionas sus topes. Tu saldo de Telegram es el mismo que consume la API.