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.
/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").
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
| Plan | Precio | Mercados | Límite de tasa | Cuota/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:
| Tipo | Qué cuenta | Qué 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 |
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ámetro | Tipo | Descripción |
|---|---|---|
| market_type | path | crypto / forex / stocks |
| exchange | path | bybit, binance, okx, moex, nasdaq, etc. — depende del mercado y la región de despliegue |
| instrument | path | spot, perpetual, futures, stock, major, etc. |
| volume_min / volume_max | query, opcional | Filtro de volumen |
| change_min / change_max | query, opcional | Filtro 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ámetro | Tipo | Descripción |
|---|---|---|
| symbol | path | Ej. BTC_USDT o BTC/USDT |
| timeframe | path | 1m, 5m, 15m, 1h, 4h, 1d, etc. |
| limit | query, opcional | Nú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ámetro | Tipo | Descripción |
|---|---|---|
| market | query, opcional | crypto/forex/stocks — si se omite, todos los mercados de tu plan |
| verdict | query, opcional | growth/decline — si se omite, ambos |
| limit | query, opcional | 10 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ámetro | Tipo | Descripción |
|---|---|---|
| limit | query, opcional | 90 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ódigo | Motivo |
|---|---|
| 400 | market_type inválido (solo se permite crypto/forex/stocks) |
| 401 | Clave ausente, inválida o revocada |
| 403 | Cliente suspendido/contrato vencido, o el mercado no está incluido en tu plan |
| 404 | Aún no hay analítica calculada para este símbolo |
| 429 | Límite de tasa o cuota mensual superados |
| 502 | Error temporal de un proveedor de datos (exchange/feed de cotizaciones) — reintenta más tarde |
| 503 | Servicio 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).