# Tu primera llamada

> El valor de la UF de hoy por REST o MCP, en cerca de 2 minutos y sin instalar nada. No requiere conectar ningún sistema.



`indicadores` es un conector público y gratuito, así que sirve para probar el gateway completo
(autenticación, catálogo, bitácora) antes de tocar una credencial real. Esta página te lleva de una
API key recién creada a una respuesta con la UF de hoy y su fila de auditoría.

## Antes de empezar [#antes-de-empezar]

* Una cuenta en [connect.emisso.ai](https://connect.emisso.ai) con tu organización creada.
* Una API key: créala en [connect.emisso.ai/api-keys](https://connect.emisso.ai/api-keys) y copia el
  secreto `connect_sk_…`. **Se muestra una sola vez.** Guárdalo en la variable de entorno
  `EMISSO_CONNECT_API_KEY` (por ejemplo, en tu `.env`), no en el código ni en un chat.

<Callout type="info" title="¿Todavía sin cuenta?">
  La UF también se sirve por el canal público, sin API key: `curl https://connect.emisso.ai/public/v1/indicadores/UF`.
  Es la misma data, sin fila de bitácora. El detalle está en [Indicadores](/docs/sistemas/indicadores).
</Callout>

## 1. Pide la UF de hoy [#1-pide-la-uf-de-hoy]

Empieza por REST: no hay nada que instalar y llega a todo el catálogo. MCP y el SDK opcional llegan a
la misma tool y dejan la misma auditoría.

### REST con curl [#rest-con-curl]

El cuerpo siempre es JSON con los argumentos dentro de `input`:

```bash
curl -X POST https://connect.emisso.ai/api/v1/tools/indicadores.valor.actual/execute \
  -H "Authorization: Bearer $EMISSO_CONNECT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input": {"codigo": "UF"}}'
```

Salida esperada (`200`):

```json
{
  "data": {
    "codigo": "UF",
    "fecha": "2026-08-10",
    "valor": 40846.11,
    "unidad": "CLP",
    "antiguedadDias": -1
  },
  "meta": {
    "request_id": "req_8fk2mQpw31Zx",
    "tool_id": "indicadores.valor.actual",
    "plane": "action",
    "latency_ms": 38,
    "audit_status": "recorded"
  }
}
```

### MCP [#mcp]

Con el servidor ya instalado ([cómo](/docs/agentes/mcp)), pídele a tu agente
«consulta el valor de la UF con Connect». Va a descubrir la tool con `search_docs` y a ejecutar:

```json
{ "tool": "indicadores.valor.actual", "params": { "codigo": "UF" } }
```

### SDK TypeScript (opcional) [#sdk-typescript-opcional]

<Callout type="warn" title="La versión publicada en npm es la 0.1.0">
  La versión publicada en npm (0.1.0) no incluye la emisión ni los conectores recientes; para eso usa
  REST. Sirve para este ejemplo de la UF. Comprueba tu versión con `npm view @emisso/connect version` y
  lee [qué cubre la 0.1.0](/docs/sdk).
</Callout>

```ts
import { createClient } from "@emisso/connect";

const connect = createClient({ apiKey: process.env.EMISSO_CONNECT_API_KEY! });

const uf = await connect.tools.indicadores.valor.actual({ codigo: "UF" });
console.log(uf.valor); // 40846.11, tipado como number
```

Si lo quieres, se instala con `pnpm add @emisso/connect`. El accessor devuelve la `data` ya
desenvuelta y tipada. Si necesitas el `meta` (por ejemplo el `request_id`), usa `.withResponse()`. El
detalle vive en la [guía del SDK](/docs/sdk).

## 2. Lee la respuesta como corresponde [#2-lee-la-respuesta-como-corresponde]

`fecha` puede ser futura, porque la UF y la UTM se publican por adelantado. `antiguedadDias` lo
resuelve de una vez: son los días entre `fecha` y hoy en `America/Santiago`, así que `0` significa que
el valor es de hoy y negativo que está fechado en el futuro (normal en UF y UTM; en el ejemplo, `-1`,
el valor de mañana).

Un positivo depende de la cadencia del indicador, y leerlo mal hace ver caídas donde no las hay. En los
**diarios** (`UF`, `DOLAR`, `EURO`) sí significa que la fuente está atrasada esa cantidad de días: uno o
dos sobre un fin de semana o un feriado es normal. En los **mensuales** (`IPC`, `UTM`) hay un dato por
mes fechado el día 1, así que un positivo de hasta \~31 días es lo esperado; el IPC suma su rezago de
publicación y ronda los 60: el 1 de septiembre de 2026 devuelve `fecha: 2026-07-01` con
`antiguedadDias: 62`, y eso es sano. Fija tu umbral por indicador antes de calcular plata con este
número.

Guarda también el patrón del envelope. Todo éxito llega como `{ data, meta }`, y `meta.request_id` es
tu correlativo para la bitácora y para soporte.

## 3. Comprueba la bitácora [#3-comprueba-la-bitácora]

Abre [connect.emisso.ai/bitacora](https://connect.emisso.ai/bitacora). Deberías ver una fila nueva:
`indicadores.valor.actual`, resultado `ok`, tu API key como actor y la latencia registrada. Cada
llamada que hagas desde hoy, tuya o de tu agente, deja exactamente una fila como esta.

Con eso recorriste todo el gateway (autenticación, catálogo, ejecución y auditoría), el mismo camino
que sigue cada tool del SII y de los bancos; lo único que cambia es que esas exigen una conexión.

## Próximos pasos [#próximos-pasos]

* [Conecta tu primera empresa](/docs/empezar/conectar): el enlace hosted con el que tu cliente entrega su clave del SII.
* [Sincronizar y consultar](/docs/conceptos/sincronizar-consultar): por qué leer datos reales son dos pasos.
* [Autenticación](/docs/empezar/autenticacion): scopes de las API keys y OAuth para MCP.
