EyesOnAssets Public API

Acceso B2B de pago mediante clave de API a los mismos datos que ven los usuarios en el sitio: el screener en vivo (precio/cambio/volumen en crypto, forex y acciones) y el módulo Analytics (puntuación técnica + fundamental de −100 a +100 por activo). No requiere cuenta en el sitio — solo una clave.

REST / JSON URL base: /api/v1/public Auth: cabecera X-API-Key

Autenticación

Cada solicitud debe incluir una cabecera X-API-Key con tu clave. Las claves se emiten manualmente tras acordar un plan/contrato — no hay alta autoservicio para esta API (ver "Cómo obtener acceso").

Mantén tu clave en secreto. Nunca la incluyas en código del lado del cliente (navegador/móvil) — solo en el servidor. Una clave comprometida puede revocarse de inmediato a petición.

Inicio rápido

# Consulta tu plan, límites y cuota mensual restante
curl -H "X-API-Key: eoa_live_YOUR_KEY" \
  https://your-domain/api/v1/public/usage
# Puntuación Analytics de cada activo del mercado crypto
curl -H "X-API-Key: eoa_live_YOUR_KEY" \
  https://your-domain/api/v1/public/analytics/crypto/list

Precios

PlanPrecioMercadosLímite de tasaCuota/mes
Starter $250/mes 1 a tu elección (crypto / forex / acciones) 30 req/min 20.000
Business $500/mes Los tres (screener + analytics combinados) 120 req/min 150.000
Enterprise a medida Los tres + soporte prioritario 600 req/min ilimitado

Puedes consultar tu plan actual, restricciones de mercado y duración del contrato en cualquier momento mediante GET /usage.

Límites y cuota

Hay dos límites independientes:

TipoQué cuentaQué ocurre al superarlo
Límite de tasa Solicitudes por minuto, según el plan 429 Too Many Requests, reintenta más tarde
Cuota mensual Total de solicitudes en el mes calendario 429 Cuota mensual superada — mejora tu plan o espera al mes siguiente
Ambos límites se aplican por clave (más precisamente, por cliente si tienes varias claves), no por dirección IP — puedes llamar a la API con seguridad desde varios servidores detrás de NAT.

Referencia de endpoints

GET/api/v1/public/usage

Tu plan actual, mercados permitidos, límites y cuántas solicitudes has usado este mes. No cuesta más que una solicitud normal contra tu cuota mensual.

{
  "org_name": "Acme Trading LLC",
  "tier": "business",
  "status": "active",
  "allowed_markets": ["crypto", "forex", "stocks"],
  "rate_limit": "120/minute",
  "monthly_quota": 150000,
  "used_this_month": 4213,
  "contract_expires_at": null
}

GET/api/v1/public/screener/{market_type}/{exchange}/{instrument}

Datos del screener en vivo: precio, % de cambio, volumen para cada instrumento de la combinación mercado/exchange/tipo.

ParámetroTipoDescripción
market_typepathcrypto / forex / stocks
exchangepathbybit, binance, okx, moex, nasdaq, etc. — depende del mercado y la región de despliegue
instrumentpathspot, perpetual, futures, stock, major, etc.
volume_min / volume_maxquery, opcionalFiltro de volumen
change_min / change_maxquery, opcionalFiltro de % de cambio
# Ejemplo
curl -H "X-API-Key: ..." \
  ".../api/v1/public/screener/crypto/bybit/spot?volume_min=1000000"

GET/api/v1/public/ohlcv/{market_type}/{exchange}/{symbol}/{timeframe}

Velas OHLCV de un símbolo concreto.

ParámetroTipoDescripción
symbolpathEj. BTC_USDT o BTC/USDT
timeframepath1m, 5m, 15m, 1h, 4h, 1d, etc.
limitquery, opcionalNúmero de velas, 200 por defecto, máx. 1000

GET/api/v1/public/analytics/{market}/list

Puntuación Analytics de cada activo con puntuación en un mercado: veredicto, puntuación global, precio, cambio, minigráfico de precio.

GET/api/v1/public/analytics/{market}/{symbol}

Informe completo de un activo: cada factor (técnico + fundamental) con pesos y explicaciones, puntuación técnica/fundamental/global y un resumen de texto.

{
  "market": "crypto", "symbol": "BTC",
  "overall_score": 16, "verdict": "neutral",
  "factors": [
    { "name": "rsi", "value": "54.1", "sentiment": "neutral", "explanation": "RSI 54 — dentro del rango normal" }
    // ...
  ]
}

GET/api/v1/public/analytics/top-setups

Las mejores ideas por magnitud del desequilibrio de factores en este momento, en lugar del desglose de un solo activo — ordenadas por |overall_score| para un mercado o en todos los mercados que permita tu plan.

ParámetroTipoDescripción
marketquery, opcionalcrypto/forex/stocks — si se omite, todos los mercados de tu plan
verdictquery, opcionalgrowth/decline — si se omite, ambos
limitquery, opcional10 por defecto, máx. 100

GET/api/v1/public/analytics/{market}/stats

Rendimiento histórico de veredictos en este mercado: tasa de acierto y retorno medio por horizonte (1/5/21/30 días), con un intervalo de confianza de Wilson del 95%. win_rate: null significa que aún no hay datos suficientes para mostrar un número — no que sea 0.

[
  { "verdict": "growth", "horizon_days": 21, "sample_size": 142,
    "is_significant": true, "win_rate": 0.61,
    "win_rate_ci_low": 0.54, "win_rate_ci_high": 0.68,
    "avg_return_pct": 3.2, "source": "backfill" }
]

GET/api/v1/public/analytics/{market}/{symbol}/history

Instantáneas históricas de puntuación/veredicto de un activo — para ejecutar tu propio backtest de tu lado.

ParámetroTipoDescripción
limitquery, opcional90 por defecto, máx. 1000 (más reciente primero)

Webhooks — push en lugar de polling

En lugar de consultar /analytics/{market}/{symbol} de forma periódica, puedes suscribirte a una notificación cada vez que cambie el veredicto (growth ↔ decline ↔ neutral).

POST /api/v1/public/webhooks
{ "callback_url": "https://your-server/hook", "market": "crypto" }
// la respuesta contiene "secret" — se muestra una sola vez, guárdalo

GET /api/v1/public/webhooks       // lista tus suscripciones
DELETE /api/v1/public/webhooks/{id} // cancela una suscripción

Cada entrega es un POST a tu callback_url con una cabecera X-Webhook-Signature (HMAC-SHA256 del cuerpo de la solicitud usando tu secreto — verifícalo para distinguirnos de una falsificación). callback_url debe ser https://. Tras 10 entregas fallidas consecutivas, la suscripción se desactiva automáticamente.

{
  "event": "verdict_changed", "market": "crypto", "symbol": "BTC",
  "old_verdict": "neutral", "new_verdict": "growth",
  "overall_score": 24, "timestamp": "2026-07-26T04:00:00+00:00"
}

Códigos de error

CódigoMotivo
400market_type inválido (solo se permite crypto/forex/stocks)
401Clave ausente, inválida o revocada
403Cliente suspendido/contrato vencido, o el mercado no está incluido en tu plan
404Aún no hay analítica calculada para este símbolo
429Límite de tasa o cuota mensual superados
502Error temporal de un proveedor de datos (exchange/feed de cotizaciones) — reintenta más tarde
503Servicio de datos aún no inicializado (justo tras reiniciar el servidor)

Mercados y exchanges

La API cubre crypto, forex y acciones (aún sin bonos — no incluidos en el paquete). El conjunto exacto de exchanges disponibles para una combinación exchange/instrument dada depende de la región de despliegue del servidor; si no estás seguro de qué exchanges están disponibles, pregúntanos al emitir tu clave, o empieza con crypto/bybit/spot, disponible en todas las regiones.

Cómo obtener acceso

El acceso se emite manualmente tras acordar un plan — escríbenos describiendo tu caso de uso y el volumen esperado de solicitudes, y te ayudaremos a elegir un plan y enviarte una clave. Deliberadamente no hay alta autoservicio ni emisión instantánea de claves en el sitio — protege tanto a ti (incorporación personalizada) como a nosotros (control sobre el uso de los datos).