TypeScript
@expys/sdk on npm. Works in browsers, Expo / React Native, and Node 18+.Swift
ExpysSDK via SwiftPM or CocoaPods. iOS 15+, macOS 12+, async/await.Kotlin
com.expys:sdk on Maven Central. Coroutine-native; one artifact for JVM
and Android.Install
0.1.0. CocoaPods (pod 'ExpysSDK', '~> 0.1') and Maven coordinates are covered on each language page.
One method surface, three languages
The member-mode flow - check eligibility, list offers, redeem the first one - is identical in shape across the SDKs. Here is the same flow in all three:AsyncIterable / AsyncThrowingStream / Flow); everything else is guaranteed
identical. See SDK differences for the full contract.
What’s shared
- Member-mode and server-mode methods with the same names everywhere. Server-mode methods require an Org-API-Key and must run only on your backend.
- A common configuration vocabulary:
token,environment,baseUrl,refreshToken,tokenExpiresAt,maxRetries,timeout, and more. See the configuration reference. - One error taxonomy: every API error carries a stable
code, an HTTPstatus, a coarse category, and arequestId. See Errors. - Built-in reliability: full-jitter retries on
429/5xx, automaticIdempotency-Keyon writes, and proactive plus reactive token refresh.
Next steps
Quickstart
Install an SDK, mint a member token, and run your first flow.
Authentication
The two-token model and the token-refresh contract every SDK shares.
Configuration
Every option, with its default and per-language type.
SDK differences
The handful of intentional, idiomatic per-language differences.