Byma logo

Byma

Community
gauss314
byma

Datos de mercado de BYMA (Bolsas y Mercados Argentinos) via API publica: paneles de acciones lideres, CEDEARs, bonos soberanos, LECAPs/BONCAPs, ONs corporativas, cauciones, opciones y SENEBI. Historicos OHLCV de instrumentos e indices (MERVAL, BURCAP). Ficha tecnica de bonos con cronograma de amortizacion. Sin API key.

Overview

Publishergauss314
Repositoryskills
Skill namebyma
Stars
250
Forks
35
Bundled files
2
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 2 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by gauss314 on GitHub. Read the source before you install it.

Installation

Install the Byma AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/gauss314/skills/tree/main/skills/byma
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/gauss314/skills.git /tmp/skills
mkdir -p .claude/skills
cp -r /tmp/skills/skills/byma .claude/skills/byma
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Byma in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Byma on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Byma is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

BYMA — Bolsas y Mercados Argentinos

Skill para extraer datos de mercado de BYMA via su API publica de market data (open.bymadata.com.ar) — sin API key, sin autenticacion.

BYMA es la bolsa principal de Argentina (sucesora del Merval) donde se negocian:

  • Acciones lideres (panel de 20 simbolos del MERVAL).
  • CEDEARs (~1143 unicos x 2 settlements).
  • Bonos publicos soberanos + LECAPs + BONCAPs (~104 unicos x 6 variantes).
  • Obligaciones Negociables (ON) corporativas (~2117 items).
  • SENEBI ON (segmento bilateral, ~3160 items).
  • Cauciones (133 items, formato DOLAR-DDMM-U-CT-USD).
  • Opciones (~429 items con strike, OI, vencimiento).
  • Indices: S&P MERVAL (M), BURCAP (G).
  • Historicos OHLCV diarios/semanales/mensuales para todos los instrumentos.
  • Ficha tecnica de bonos (forma de amortizacion, intereses step-up, ISIN, ley aplicable, emisor).

⚠️ Aviso Legal

  • API publica de BYMA, sin documentacion oficial. Los endpoints pueden cambiar sin aviso.
  • Respetar terminos de uso de BYMA. No hacer mas de 1 req/segundo.
  • Los datos son delayed (~15 min tipico de mercado argentino).
  • Para uso comercial intensivo, contactar BYMA para licencias oficiales.

🔒 Nota sobre certificado SSL

BYMA presenta un certificado SSL cuya CA intermedia no esta incluida en el bundle certifi estandar de Python. Esto causa:

SSLError: CERTIFICATE_VERIFY_FAILED

El script usa verify=False — la conexion sigue siendo TLS-encriptada pero se omite la validacion de cadena. Es el patron estandar de las librerias publicas de BYMA (pyhomebroker, bymadata, etc.).

Si preferis no usar verify=False, podes instalar el cert intermedio de BYMA en tu trust store del sistema.


Scripts

ScriptDescripcion
fetch_byma.pyScript principal: todos los endpoints disponibles

Uso rapido

bash
# ── PANELES (POST) ────────────────────────────────────────────────────

# Panel lideres: 20 acciones MERVAL x 2 settlements (40 items)
py scripts/fetch_byma.py panel leading-equity
py scripts/fetch_byma.py panel leading-equity --t0    # solo CI (T+0)
py scripts/fetch_byma.py panel leading-equity --t1    # solo 24hs (T+1)

# Panel CEDEARs (~2000 items, lista directa)
py scripts/fetch_byma.py panel cedears

# Panel bonos publicos (1018 items, paginado a 189 por defecto)
py scripts/fetch_byma.py panel public-bonds
py scripts/fetch_byma.py panel public-bonds --all     # trae los 1018 en una llamada

# Panel ON corporativas (~2117 items, lista directa)
py scripts/fetch_byma.py panel on

# Panel cauciones (~133 items)
py scripts/fetch_byma.py panel cauciones

# Panel SENEBI ON (3160 items, paginado)
py scripts/fetch_byma.py panel senebi-on
py scripts/fetch_byma.py panel senebi-on --all        # trae los 3160 en una llamada

# Panel opciones (~429 items, con strike, OI, vencimiento)
py scripts/fetch_byma.py panel options

# ── HISTORICOS OHLCV (GET) ────────────────────────────────────────────

# Historico de un instrumento — formato simbolo: "TICKER 24HS"
py scripts/fetch_byma.py historico "GGAL 24HS"
py scripts/fetch_byma.py historico "ALUA 24HS"
py scripts/fetch_byma.py historico "AAPL 24HS"        # CEDEAR ARS
py scripts/fetch_byma.py historico "AAPLD 24HS"       # CEDEAR USD
py scripts/fetch_byma.py historico "AL30 24HS"        # Bono ARS
py scripts/fetch_byma.py historico "AL30D 24HS"       # Bono USD
py scripts/fetch_byma.py historico "AL30C 24HS"       # Bono CCL
py scripts/fetch_byma.py historico "GD30 24HS"
py scripts/fetch_byma.py historico "TZX26 24HS"       # BONCAP
py scripts/fetch_byma.py historico "TY30P 24HS"       # BONCAP

# Con rango de fechas (default: ultimos 30 dias)
py scripts/fetch_byma.py historico "GGAL 24HS" --desde 2024-05-15 --hasta 2026-06-05

# Resolutions: D (diario), W (semanal), M (mensual)
py scripts/fetch_byma.py historico "GGAL 24HS" --resolution W
py scripts/fetch_byma.py historico "GGAL 24HS" --resolution M

# ── INDICES ────────────────────────────────────────────────────────────

# Historico del S&P MERVAL
py scripts/fetch_byma.py indice M
py scripts/fetch_byma.py indice M --desde 2025-01-01 --hasta 2026-06-05

# Historico del BURCAP
py scripts/fetch_byma.py indice G

# ── FICHA TECNICA DE BONOS ─────────────────────────────────────────────

# Ficha tecnica completa: forma de amortizacion, intereses, ISIN, ley, emisor
py scripts/fetch_byma.py bond-info AE38            # Bono soberano USD 2038 step-up
py scripts/fetch_byma.py bond-info AL30            # Bono soberano USD 2030 ley local
py scripts/fetch_byma.py bond-info GD30            # Bono soberano USD 2030 ley NY
py scripts/fetch_byma.py bond-info AE38C           # Variante CCL (misma ficha)
py scripts/fetch_byma.py bond-info AE38D           # Variante USD MEP (misma ficha)
py scripts/fetch_byma.py bond-info BPOA7           # BOPREAL Serie 1 A
py scripts/fetch_byma.py bond-info TY30P           # BONCAP
py scripts/fetch_byma.py bond-info TZX26           # BONCAP CER
py scripts/fetch_byma.py bond-info S237Q           # LECAP
py scripts/fetch_byma.py bond-info SBC1C           # ON corporativa

# ── COMBINADO ──────────────────────────────────────────────────────────

# Snapshot de todos los paneles + MERVAL + BURCAP
py scripts/fetch_byma.py all

# ── OUTPUT ─────────────────────────────────────────────────────────────

# Guardar a archivo JSON
py scripts/fetch_byma.py panel leading-equity -o leading.json
py scripts/fetch_byma.py all -o snapshot_byma.json

# Modo silencioso (solo JSON, sin logs)
py scripts/fetch_byma.py panel cauciones -q

Endpoints disponibles

ModoDataEndpoint
panel leading-equityTop 20 acciones MERVAL x 2 settlements (40 items)POST /leading-equity
panel cedearsCEDEARs (~2000 items)POST /cedears
panel public-bondsBonos soberanos + LECAPs/BONCAPs (~1018 items)POST /public-bonds
panel onONs corporativas (~2117 items)POST /negociable-obligations
panel caucionesCauciones (~133 items)POST /cauciones
panel senebi-onSENEBI ONs (~3160 items, paginado)POST /senebi-obligaciones-negociables
panel optionsOpciones (~429 items)POST /options
historico <SYM>OHLCV diario/semanal/mensual de un instrumentoGET /chart/historical-series/history?symbol={...}
indice <COD>OHLCV de un indice (M=MERVAL, G=BURCAP)GET /chart/index-historical-series/history?symbol={...}
bond-info <TICKER>Ficha tecnica de bono/LECAP/BONCAP/ON (amortizacion, intereses, ISIN, emisor)POST /bnown/fichatecnica/especies/general
allSnapshot de todos los paneles + indices(combinado)

Total: 10 endpoints publicos verificados ✅ (8 POST + 2 historicos GET).

Base URL

https://open.bymadata.com.ar/vanoms-be-core/rest/api/bymadata/free

Convenciones de simbolos

Historicos: formato TICKER 24HS

⚠️ TODOS los historicos requieren el sufijo 24HS (con espacio). Sin sufijo retorna HTTP 400. El sufijo CI tambien retorna 400 (no soportado). 48HS retorna 200 con 0 puntos.

TipoEjemplo
AccionGGAL 24HS, ALUA 24HS, YPFD 24HS
CEDEAR ARSAAPL 24HS, MSFT 24HS
CEDEAR USDAAPLD 24HS, MSFTD 24HS
Bono soberano ARSAL30 24HS, GD30 24HS, AE38 24HS
Bono soberano USD MEPAL30D 24HS, GD30D 24HS
Bono soberano CCLAL30C 24HS, GD30C 24HS
LECAP/BONCAPTY30P 24HS, TZX26 24HS

Bonos: convencion de sufijos por moneda

SufijoVarianteEjemplo
(sin)ARS — paridad en pesosAL30
CCCL (Contado con Liquidacion / EXT)AL30C
DUSD MEPAL30D
X, Y, Zotras variantes (intra-day, settlement alt.)AL30X

Indices conocidos

CodigoIndice
MS&P MERVAL
GBURCAP

Otros codigos (A, B, V, etc.) son aceptados pero retornan series con todos ceros — probablemente indices deprecated.


Filtros comunes en POST paneles

FiltroDescripcion
T0=trueSolo settlementType=1 (CI / Contado Inmediato)
T1=trueSolo settlementType=2 (24hs)
T2=trueSolo settlementType=3 (48hs — practicamente vacio)
page_size=5000Trae todo el dataset en una sola llamada (recomendado para public-bonds y senebi-on)

⚠️ El parametro page (numero de pagina) es ignorado por la API — siempre devuelve pagina 1. Workaround: usar page_size grande o flag --all.


Consideraciones tecnicas

Datos devueltos por panel (todos)

Cada item incluye:

CampoTipoDescripcion
symbolstringTicker BYMA.
settlementTypestring"1" (CI) o "2" (24hs).
securityTypestringCS (Common Stock), CD (CEDEAR), GO (Government Obligation), CORP (ON), QS (Caucion), OPT (Option).
denominationCcystringARS, USD, EXT.
marketstringBYMA o SENEBI.
tradefloatUltimo precio operado.
closingPricefloatCierre del dia.
settlementPricefloatPrecio de settlement.
openingPrice, tradingHighPrice, tradingLowPricefloatOHL del dia.
previousClosingPrice, previousSettlementPricefloatCierre / settlement anterior.
imbalancefloatVariacion % vs anterior (decimal: -0.0098 = -0.98%).
volume, tradeVolumefloatVolumen nominal.
volumeAmountfloatMonto efectivo en moneda.
vwapfloatVolume-Weighted Average Price.
bidPrice, offerPricefloatMejor bid/offer (0 fuera de horario).
quantityBid, quantityOfferfloatCantidades de bid/offer.
numberOfOrdersintNumero total de ordenes del dia.
openInterestfloatInteres abierto (real en opciones/cauciones; 0 en acciones).
tickDirectionint-1 / 0 / +1 (downtick / unchanged / uptick).
tradeHourstringHora del ultimo trade.

Campos extra en bonos / ONs / cauciones / opciones

CampoDescripcion
maturityDateFecha de vencimiento (ISO YYYY-MM-DD).
daysToMaturityDias hasta vencimiento.
underlyingSymbolUnderlying (solo cauciones y opciones).
optionTypeCALL o PUT (solo opciones).

Datos devueltos por historico e indice

json
{
  "s": "ok",
  "t": [unix_seconds, ...],
  "o": [opens, ...],
  "h": [highs, ...],
  "l": [lows, ...],
  "c": [closes, ...],
  "v": [volumes, ...]
}
CampoDescripcion
sStatus: "ok", "no_data", "error".
t[]Timestamps unix UTC SECONDS (no millis).
o[], h[], l[], c[]OHLC alineados por indice.
v[]Volumen (suele ser 0 en indices).

Datos devueltos por bond-info

Devuelve {content, data, empty, upgrade} donde data[0] (cuando existe) contiene la ficha tecnica del bono. Para acciones, opciones y tickers inexistentes: data: [] y empty: true.

Campos del data[0]:

CampoTipoDescripcion
leystringJurisdiccion aplicable: Nacional, Extranjera, Nueva York, Inglaterra. Critico para distinguir AL30 (ley local) de GD30 (ley NY).
formaAmortizacionstringTEXTO PLANO con el cronograma de amortizacion (numero de cuotas, periodicidad, fechas, %). Para bullet: "Al vencimiento".
interesstringTEXTO PLANO con esquema de devengo de intereses. Para step-up describe cada tramo de tasa. Para CER describe el ajuste por inflacion.
denominacionMinimaintDenominacion minima de emision.
fechaEmisionstringYYYY-MM-DD HH:MM:SS.f.
fechaVencimientostringYYYY-MM-DD HH:MM:SS.f.
fechaDevenganInteresesstringFecha inicio devengo (suele estar vacia).
codigoIsinstringISIN del instrumento.
tipoEspeciestringTitulos Publicos, Obligaciones Negociables, Letras del Tesoro.
tipoObligacionstringClasificacion regulatoria: Valores Publicos Nacionales, Provinciales, Corporativos.
tipoGarantiastringComun, etc.
defaultstringEstado de default (vacio si esta al dia).
montoNominalintMonto nominal total emitido.
montoResidualintMonto residual actual (post-amortizaciones).
denominacionstringNombre oficial completo del bono.
insTypestringBOND.
paisLeystringPais de ley aplicable.
monedastringDolares, Pesos, Pesos Ajustables por CER, Dolar Linked.
emisorstringGobierno Nacional, Provincia de Buenos Aires, YPF S.A., etc.

Diferencia entre paneles dict y list

PanelTipo responseEstructura
leading-equity, public-bonds, senebi-ondict{content: {page_number, page_count, page_size, total_elements_count}, data: [...], empty, upgrade}
cedears, on, cauciones, optionslist[item, item, ...] directo

Flags adicionales

FlagDescripcion
--allForza page_size=5000 para traer todo en una sola llamada
--t0Solo settlementType=1 (CI)
--t1Solo settlementType=2 (24hs)
--page NNumero de pagina (ignorado por la API — usar --all)
--page-size NItems por pagina (default: 200)
--desde YYYY-MM-DDFecha desde (historicos)
--hasta YYYY-MM-DDFecha hasta (historicos)
--resolution XD, W, M (default: D)
-o archivo.jsonGuardar output a archivo
-q / --quietModo silencioso (solo JSON)

Rate limiting

No hay rate limiting documentado. Recomendado:

  • Minimo 0.3 segundos entre requests.
  • El modo all usa time.sleep(0.3) automaticamente.

Manejo de errores

StatusCausas tipicas
400Simbolo invalido (sin 24HS, ticker desconocido)
401Endpoint inexistente (BYMA usa 401 generico, no 404)
415Content-Type erroneo (POST debe ser application/json)
500Error interno de BYMA

Conversion de fechas

python
from datetime import datetime, timezone
# Unix seconds -> datetime
dt = datetime.fromtimestamp(ts, tz=timezone.utc)
# datetime -> Unix seconds
ts = int(datetime(2026, 6, 5, tzinfo=timezone.utc).timestamp())

Estructura del skill

skills/byma/
├── SKILL.md                          # Este archivo (guia rapida)
├── references/
│   └── REFERENCE.md                  # Documentacion completa de todos los endpoints
└── scripts/
    └── fetch_byma.py                 # Script principal

Documentacion detallada: Consultar references/REFERENCE.md para documentacion exhaustiva de cada endpoint, schemas JSON, codigos de settlementType/securityType, manejo del cert SSL, paginacion y consideraciones tecnicas.

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Byma AI skill do?

Datos de mercado de BYMA (Bolsas y Mercados Argentinos) via API publica: paneles de acciones lideres, CEDEARs, bonos soberanos, LECAPs/BONCAPs, ONs corporativas, cauciones, opciones y SENEBI. Historicos OHLCV de instrumentos e indices (MERVAL, BURCAP). Ficha tecnica de bonos con cronograma de amortizacion. Sin API key.

Why use Byma on TypingMind?

Because you install it once and use it with any model. Byma is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Byma in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/gauss314/skills/tree/main/skills/byma. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Byma?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Byma?

As many as you like. As long as a model supports skills, you can use Byma with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Byma AI skill free?

Yes. It is published on GitHub by gauss314 under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇