> ## 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

# Mobiele API

Hoe de app met de server praat — sessies, bereikbaarheid en payloads.

## Walkthrough voor beginners

Vereisten: Lees de twee onderstaande beginnershandleidingen en voltooi de lokale mobiele installatie. Zet Expo-waarden in `apps/mobile/.env.local`; stel `EXPO_PUBLIC_API_URL` in op een backend-host die uw apparaat kan bereiken. Een mobiel afrekenen heeft geen webbackend, dus start of sluit er apart een aan. Een succesvolle Expo-export bewijst de JavaScript-bundel, niet de acceptatie van het apparaat of de aankoop.

Korte termen: een werkruimte bestaat uit de afzonderlijke gebruikers, gegevens en instellingen van één team. De server is de vertrouwde backend; houd providersleutels uit de browser- en telefooncode. Een migratie is een versiebeheer van de database, waarbij tabellen worden gemaakt of bijgewerkt. Een AI-model is de motor die antwoord geeft; de modelcatalogus is de serverlijst met beschikbare model-ID's en prijzen. Een provider is een externe service, zoals een AI-, e-mail- of factureringsservice. Een recht is een subsidie ​​waarmee een werkruimte een functie kan gebruiken. Een webhook is een bericht dat de ene service naar de URL van een andere service verzendt.

1. Stel in `apps/mobile/.env.local` `EXPO_PUBLIC_API_URL` in op het actieve backend-adres dat bereikbaar is vanaf uw telefoon; gebruik de `localhost` niet vanaf een fysiek apparaat.

2. Volg Mobiele lokale installatie om Expo te starten, in te loggen en de werkruimte, instellingen en chatschermen te openen.

3. Verwacht geauthenticeerde gegevens uit dezelfde werkruimte. Als er een time-out voor verzoeken optreedt, controleer dan het telefoon- en computernetwerk en start de backend afzonderlijk in een afrekenfunctie voor alleen mobiel.

Voor aangepaste code begint u met de meegeleverde `prompts/README.md` en kopieert u de dichtstbijzijnde prompt: `prompts/new-app-screen.md` voor een app-scherm of `prompts/new-landing-page.md` voor een openbare pagina. Voor server-, database- of providerwerk geeft u uw codeeragent de taak van deze handleiding en vraagt ​​u hem om `AGENTS.md`, `.ai/PROJECT_CONTEXT.md` en overeenkomende `.ai/`-mirrors te lezen; inspecteer de exacte bronbestanden die hier worden genoemd; maak een lijst van bestanden en controleer deze voordat u deze bewerkt; behoud van het eigendom van de werkruimte en geheimen voor de server; en laat je het verschil zien. Vertel het gewenste gedrag, invoer- en uitvoervelden, toegestane rollen, verwacht succes en fouten, en het testaccount, de provider of het apparaat. Gebruik voorbeeldwaarden; plak nooit een echt geheim.

[Voordat u begint](https://supastack.dev/nl/docs/web/before-you-start.md)

[Basisbeginselen van de terminal](https://supastack.dev/nl/docs/web/terminal-basics.md)

[Mobiele lokale installatie](https://supastack.dev/nl/docs/mobile/ship-in-5-minutes.md)

[Agentprompts en projectgeheugen](https://supastack.dev/nl/docs/web/agents.md)


## Begrijp het oorspronkelijke bereik

Expo bevat native authenticatie/sessie en deep links naast werkruimte, instellingen, chat en RevenueCat-aankoopoppervlakken. Gedeeld zakelijk gedrag en autorisatie blijven in de webbackend/pakketten; native clients onder `apps/mobile/src` roepen deze API's aan zonder providerreferenties in te sluiten.


## Gebruik de sessie-geverifieerde BFF

De `/api/mobile`-routes omvatten rechten, RevenueCat-aankoopbeschikbaarheid en serversynchronisatie, organisatie, leden, uitnodigingen, audit, API-sleutels, webhooks, domeinen, planningen en functieverzoeken. Ze behouden het eigendom van de werkruimte en rolcontroles. Ze verschillen van de `sk_` dragersleutel `/api/v1` overheidsopdracht.

Gebruik uw apparaatbereikbare `EXPO_PUBLIC_API_URL` en de geconfigureerde oorsprong/schema; openbare Expo-variabelen bevatten nooit providerreferenties.


## Verifieer op native doelen

Controleer de laad-/fout-/lege status, maak opnieuw verbinding, verlopen sessie, verboden beheeracties en deep-link-retouren op het apparaat/de build die u wilt ondersteunen. Een Expo-export bewijst dat er sprake is van bundeling, en niet van oorspronkelijke levering of aankoopacceptatie.

[Alle API-routes](https://supastack.dev/nl/docs/web/project-structure.md)

[Native sessiestroom](https://supastack.dev/nl/docs/mobile/authentication.md)


## Setup en configuratie

De app roept de API aan onder /api/mobile en het geversioneerde /api/v1-oppervlak met de sessie van het lid in plaats van webapp-cookie-aannames. EXPO_PUBLIC_API_URL is de enige origin die de client kent; hij is by design publiek en draagt geen secrets.

Sessietokens komen uit de Better Auth Expo-flow en worden in native secure storage bewaard — nooit in plaintext AsyncStorage of gebundelde configuratie.

```
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=
```


## Implementatieworkflow

Resolv de opgeslagen sessie vóór de eerste geauthenticeerde request, ververs wanneer de server verlopen meldt, en log netjes uit wanneer hij wordt ingetrokken. Behandel API-onbereikbaarheid en ongeldige sessie als verschillende states — de eerste retry't, de tweede keert terug naar inloggen.

Houd payloads identiek aan het webcontract: de server handhaaft dezelfde workspace-, entitlement- en validatieregels ongeacht welke client belt.


## Verificatie en probleemoplossing

Test failures in vliegtuigmodus, halverwege verlopen tokens, ingetrokken sessies en een koude start met een geldig opgeslagen token. Een request die gesloten faalt (geweigerd) is correct; een die open faalt is een bug om vóór release te fixen.


## Volgende

[Native UI en theming](https://supastack.dev/nl/docs/mobile/ui.md)
