# Inicio rápido del SDK
El SDK de Python de Klarety le da a su código un solo objeto, `Nexus`, que llega a todo su espacio de trabajo: SQL, tablas, archivos y carpetas, conexiones, agentes y trabajos. Esta página lo lleva a su primera consulta en unos cinco minutos.
## Antes de empezar [#antes-de-empezar]
- **Python 3.11 o posterior.** Verifíquelo con `python3 --version`.
- **Una clave de API.** Solo los administradores del espacio de trabajo crean claves; si no lo es, pídala a uno (vea [Miembros](/docs/es/workspace/members)).
- **Créditos en el espacio de trabajo.** Una clave gasta los créditos del espacio de trabajo, así que las consultas solo corren mientras haya.
El SDK y la CLI de Klarety están disponibles bajo solicitud. Para solicitar acceso para su espacio de trabajo, [contáctenos](https://klarety.ai/contact).
### Instale el SDK [#instale-el-sdk]
```bash
pip install klarety
```
Use un entorno virtual si trabaja en más de un proyecto:
```bash
python3 -m venv .venv
source .venv/bin/activate
pip install klarety
```
### Cree una clave de API [#cree-una-clave-de-api]
Abra , seleccione **Crear clave** y verifique que es usted. Dé a la clave un **Nombre** (por ejemplo "Portátil" o "Servidor de producción"), elija su **Acceso** y defina cuándo **Vence**. Deje vacío **Orígenes del navegador**; es solo para claves que se usan desde una página web.
Copie la clave ahora. Se muestra una sola vez.
### Ponga la clave en su entorno [#ponga-la-clave-en-su-entorno]
El SDK lee la clave de `KLARETY_API_KEY`, así que nunca tiene que aparecer en su código.
```bash
export KLARETY_API_KEY="paste-your-key-here"
```
En un portátil también puede guardarla en el llavero del sistema con la CLI: vea [Autenticación](/docs/es/developers/authentication).
### Conéctese y revise su cuenta [#conéctese-y-revise-su-cuenta]
```python title="first_query.py"
from klarety import AuthError, Nexus
try:
nexus = Nexus.connect()
except AuthError as refused:
raise SystemExit(f"Sign-in failed: {refused}")
with nexus:
account = nexus.account()
print("Workspace:", account.org_id)
print("Plan:", account.plan)
print("Credits:", account.credits)
```
`Nexus.connect()` cambia su clave por un token de una hora y lo renueva. `account()` devuelve un `Account` con `org_id`, `user_id`, `roles`, `plan` y `credits`. `plan` y `credits` son `None` si no se pudieron leer, así un saldo desconocido se distingue de cero.
### Ejecute su primera consulta [#ejecute-su-primera-consulta]
Agregue esto dentro del bloque `with nexus:`:
```python
result = nexus.sql("SELECT 1 AS ok")
print(result.rows)
```
Ejecútelo:
```bash
python first_query.py
```
## Compruebe que funcionó [#compruebe-que-funcionó]
Verá el ID de su espacio de trabajo, su plan, su saldo de créditos y la fila de la consulta:
```text
Workspace:
Plan:
Credits:
[{'ok': 1}]
```
`nexus.sql()` devuelve un `ResultSet`. Sus `rows` son diccionarios por nombre de columna, `bytes_scanned` indica cuántos datos leyó la consulta y `truncated` es `True` cuando había más filas de las devueltas. [Ejecutar SQL](/docs/es/developers/sql) explica cada campo.
## Un primer script completo [#un-primer-script-completo]
Este script lista sus tablas y consulta una, con manejo de errores real.
```python title="list_and_query.py"
from klarety import (
AuthError,
InsufficientCreditsError,
Nexus,
RefusedError,
ServiceError,
)
try:
with Nexus.connect() as nexus:
tables = nexus.tables.list()
for table in tables:
print(table["name"])
if tables:
first = tables[0]["name"]
result = nexus.sql(f"SELECT * FROM {first} LIMIT 5")
for row in result.rows:
print(row)
except AuthError:
print("The key was not accepted. Check KLARETY_API_KEY, or create a new key.")
except InsufficientCreditsError:
print("The workspace is out of credits. Add credits in the app.")
except RefusedError as refused:
print(f"Not allowed: {refused}")
except ServiceError as failed:
print(f"Klarety could not answer, try again shortly: {failed}")
```
## Conéctese sin la variable de entorno [#conéctese-sin-la-variable-de-entorno]
Puede pasar la clave directamente, por ejemplo cuando la lee de su propio almacén de secretos:
```python
nexus = Nexus.connect(api_key=my_secret_store.get("klarety"))
```
`connect()` también acepta `timeout` (segundos por solicitud, 30 por defecto). Cierre la conexión al terminar, con `nexus.close()` o usando `with`.
Una clave actúa como todo su espacio de trabajo y gasta sus créditos. Nunca la suba a un repositorio ni la pegue en una página web. Si se filtra, revóquela de inmediato en .
## Si algo sale mal [#si-algo-sale-mal]
| Lo que ve | Qué significa | Qué hacer |
| --- | --- | --- |
| `AuthError: pass an api key or set KLARETY_API_KEY` | No se encontró una clave. | Exporte `KLARETY_API_KEY` en la misma terminal, o pase `api_key=`. |
| `AuthError: api key rejected` | La clave es incorrecta, fue revocada o venció. | Cree una clave nueva y úsela. |
| `InsufficientCreditsError` | El espacio de trabajo no tiene créditos para este trabajo. | Agregue créditos y vuelva a ejecutarlo. |
| `ModuleNotFoundError: klarety` | El SDK está instalado en otro Python. | Active su entorno virtual e instálelo de nuevo. |
## Próximos pasos [#próximos-pasos]
- [Autenticación](/docs/es/developers/authentication): tokens, rotación de claves y el llavero.
- [Ejecutar SQL](/docs/es/developers/sql): parámetros, estimaciones y resultados grandes.
- [Cargar datos](/docs/es/developers/ingest): cargue sus archivos en tablas.
- [CLI](/docs/es/developers/cli): el mismo SDK desde su terminal.