Native iOS and Android
Use Sovaria from Swift or Kotlin today through the HTTP API, and what the native SDKs will cover.
Native SDKs for Swift and Kotlin are generated from the same API description as the Dart, JavaScript and Python SDKs and follow the Flutter SDK feature for feature. Until they ship, every feature is plain HTTP on your project URL:
| Task | Request |
|---|---|
| Sign in | POST /api/v1/auth/project/login { email, password, org_id, project_id } |
| Refresh (rotates) | POST /api/v1/auth/refresh { refresh_token } |
| Provider sign-in | GET /api/v1/auth/sso/{provider}/authorize?…&code_challenge=…&mode=json → POST /api/v1/auth/sso/exchange |
| Register a push token | POST /api/v1/push/devices { token, platform, provider } (user token) |
| Attestation | POST /api/v1/attest/challenge → POST /api/v1/attest/exchange → header X-Sovaria-Attestation |
| Devices | GET /api/v1/auth/devices, DELETE /api/v1/auth/devices/{id} |
- Send the anon key as
Authorization: Bearer <anon key>until the user signs in, then their access token. - Keep the refresh token in the Keychain (
kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly) or the Android Keystore. - Use
ASWebAuthenticationSession(iOS) or Custom Tabs (Android) for provider sign-in, never an embedded web view. - APNs device tokens (hex) register with
provider: "apns"; FCM tokens withprovider: "fcm".
Something unclear or missing on this page?Tell us