API Documentation
REST API Documentation & Interactive cURL Reference for Reminder Service
API Environment & Dynamic URLs
Target URLs and sample cURL commands are dynamically generated from the current host.
Modifying this URL immediately updates all sample cURL commands across the entire page.
-H "Authorization: Bearer <token>".
Standard envelope with status: "success"|"error", human-readable message, and data.
Protected endpoints require JWT in Authorization: Bearer <token>. Reminders are strictly private to creator.
Fast caching (TTL 3600s). Mutations auto-invalidate targeted keys ({domain}:reminders:*) with no manual reset needed.
data/ namespaced per domain (data/{username}_{domain}.json, data/users_{domain}.json, data/reminders_{domain}.json). Supports multi-recipient dispatch (10 emails & 10 WhatsApp numbers) and recurrence schedules (hourly, daily, weekly, monthly, every 6 months, custom).
/api/login has a long server lifetime (default 1 year in JWT_TTL). Mobile clients (Flutter, React Native, Swift, Kotlin) store the token in secure storage (e.g. Flutter Secure Storage / iOS Keychain / Android EncryptedSharedPreferences) along with the login timestamp, and reuse it across app launches for 30 days without re-prompting for credentials. Simply include header Authorization: Bearer <token> on all requests.
Mobile App Integration & 1-Month Session Guide
How mobile apps (Flutter, React Native, Swift, Kotlin) authenticate and persist login for 30 days
Call POST /api/login with identifier & password. Server issues a long-lived JWT token (configured for 1 year via JWT_TTL).
Save the token in device keychain/encrypted storage (e.g. Flutter Secure Storage, iOS Keychain, Android EncryptedSharedPreferences) along with the login timestamp.
On every app launch within 30 days, bypass login screen directly to home. Pass Authorization: Bearer <token> on all subsequent API requests.
Authorization: Bearer <stored_jwt_token>
Content-Type: application/json
Accept: application/json