> ## Documentation Index
> Fetch the complete documentation index at: https://supastack.dev/llms.txt
> Use this file to discover all available pages before exploring further.
> For the full documentation corpus in one file, fetch: https://supastack.dev/llms-full.txt

# API móvil

Cómo la app habla con el servidor — sesiones, alcanzabilidad y payloads.

## Guía paso a paso para principiantes

Requisitos: Lea las dos guías para principiantes que aparecen abajo y complete la configuración local de Mobile. Las variables de Expo van en `apps/mobile/.env.local`; establezca `EXPO_PUBLIC_API_URL` en un host de backend accesible desde su dispositivo. Una copia solo de Mobile no incluye un backend Web, así que inicie o conecte uno por separado. Una exportación de Expo correcta solo demuestra el bundle JavaScript, no la aceptación en dispositivos o compras.

Términos breves: un espacio de trabajo son los usuarios, datos y configuraciones separados de un equipo. El servidor es el backend confiable; Mantenga las claves del proveedor fuera del código del navegador y del teléfono. Una migración es un cambio de base de datos versionada que crea o actualiza tablas. Un modelo de IA es el motor que responde; el catálogo de modelos es la lista del servidor de ID de modelos disponibles y precios. Un proveedor es un servicio externo, como inteligencia artificial, correo electrónico o servicio de facturación. Un derecho es una concesión que permite que un espacio de trabajo utilice una función. Un webhook es un mensaje que un servicio envía al URL de otro servicio.

1. En `apps/mobile/.env.local`, configure `EXPO_PUBLIC_API_URL` en la dirección de backend en ejecución accesible desde su teléfono; no utilice `localhost` desde un dispositivo físico.

2. Siga la configuración local móvil para iniciar Expo, iniciar sesión y abrir el espacio de trabajo, la configuración y las pantallas de chat.

3. Espere datos autenticados del mismo espacio de trabajo. Si se agota el tiempo de espera de la solicitud, verifique la red del teléfono y la computadora e inicie el backend por separado en un proceso de pago solo móvil.

Para obtener código personalizado, comience con el `prompts/README.md` proporcionado y copie el mensaje más cercano: `prompts/new-app-screen.md` para una pantalla de aplicación o `prompts/new-landing-page.md` para una página pública. Para trabajos de servidor, base de datos o proveedor, asigne a su agente de codificación la tarea de esta guía y pídale que lea `AGENTS.md`, `.ai/PROJECT_CONTEXT.md` y los espejos `.ai/` correspondientes; inspeccionar los archivos fuente exactos nombrados aquí; enumerar archivos y verificaciones antes de editarlos; preservar la propiedad del espacio de trabajo y los secretos exclusivos del servidor; y mostrarte la diferencia. Dígale el comportamiento que desea, los campos de entrada y salida, los roles permitidos, los éxitos y errores esperados y la cuenta, proveedor o dispositivo de prueba. Utilice valores de muestra; Nunca pegues un verdadero secreto.

[Antes de comenzar](https://supastack.dev/es/docs/web/before-you-start.md)

[Conceptos básicos de terminales](https://supastack.dev/es/docs/web/terminal-basics.md)

[Configuración local móvil](https://supastack.dev/es/docs/mobile/ship-in-5-minutes.md)

[Mensajes del agente y memoria del proyecto](https://supastack.dev/es/docs/web/agents.md)


## Comprende el alcance nativo

Expo incluye autenticación/sesiones nativas y enlaces profundos junto con superficies de espacios de trabajo, ajustes, chat y compras RevenueCat. El comportamiento compartido y la autorización permanecen en el backend y los paquetes web; los clientes nativos de `apps/mobile/src` llaman a esas API sin incluir credenciales de proveedores.


## Usa el BFF autenticado mediante sesión

Las rutas `/api/mobile` cubren permisos, disponibilidad y sincronización de compras RevenueCat en el servidor, organizaciones, miembros, invitaciones, auditoría, claves API, webhooks, dominios, horarios y solicitudes de funciones. Mantienen la propiedad del espacio de trabajo y las comprobaciones de rol. Son distintas del contrato público con clave Bearer `sk_` `/api/v1`.

Usa `EXPO_PUBLIC_API_URL` accesible desde el dispositivo y el origen/esquema configurados; las variables públicas de Expo nunca contienen credenciales de proveedores.


## Verifica en destinos nativos

Comprueba los estados de carga/error/vacío, la reconexión, la sesión caducada, las acciones de administración prohibidas y los retornos de enlaces profundos en el dispositivo/compilación que pienses admitir. Una exportación Expo demuestra el empaquetado, no la entrega nativa ni la aceptación de compras.

[Todas las rutas API](https://supastack.dev/es/docs/web/project-structure.md)

[Flujo de sesión nativo](https://supastack.dev/es/docs/mobile/authentication.md)


## Configuración y ajustes

La app llama a la API bajo /api/mobile y la superficie versionada /api/v1 con la sesión del miembro en lugar de suposiciones de cookies de la app web. EXPO_PUBLIC_API_URL es el único origen que el cliente conoce; es público por diseño y no lleva secretos.

Los tokens de sesión vienen del flujo Better Auth Expo y se guardan en almacenamiento seguro nativo — nunca en AsyncStorage en claro ni en configuración empaquetada.

```
GET  /api/mobile/entitlement    # access state for the member
GET  /api/mobile/organization   # active workspace context
GET  /api/mobile/usage          # current-month AI spend, meter caps, and credit balance
GET  /api/mobile/appearance     # synced appearance bundle (GET/PUT)
POST /api/v1/ai-tasks            # authorized work, same as web

Session: /api/auth/* (Better Auth Expo flow)
# Optional server-only token for authenticated Expo push sends:
# EXPO_ACCESS_TOKEN=
```


## Flujo de implementación

Resuelve la sesión almacenada antes de la primera petición autenticada, refréscala cuando el servidor reporte expiración y cierra sesión limpiamente cuando sea revocada. Trata API inalcanzable y sesión inválida como estados diferentes — uno reintenta, el otro vuelve al acceso.

Mantén los payloads idénticos al contrato web: el servidor aplica las mismas reglas de workspace, entitlement y validación sin importar qué cliente llamó.


## Verificación y solución de problemas

Prueba fallos en modo avión, tokens expirados a mitad de sesión, sesiones revocadas y un arranque en frío con un token válido almacenado. Una petición que falla cerrada (denegada) es correcta; una que falla abierta es un bug a corregir antes del release.


## Siguiente

[UI nativa y temas](https://supastack.dev/es/docs/mobile/ui.md)
