API Integration
Client API Reference
The client API at content-api.vanilla.nl serves published content to mobile apps. All requests require HMAC-SHA256 authentication. Content responses are encrypted with AES-256-GCM.
This document covers everything needed to build a client that fetches content from the API.
Authentication (HMAC-SHA256)
Every request must include signed headers. The server validates the signature, timestamp, and nonce before processing.
Required headers
| Header | Format | Description |
|---|---|---|
Vanilla-Timestamp | Unix seconds (integer string) | Current time. Must be within ±300s of server time. |
Vanilla-Nonce | UUID v4 | Unique per request. Rejected if reused within 5 minutes. |
Vanilla-App-Version | Semver string | App version (e.g., 1.2.3). Used for snapshot resolution. |
Vanilla-App-Build | String | Build number (e.g., 42). |
Vanilla-App-OS | String | Platform identifier: iOS or Android. |
Vanilla-App-Language | Locale code | Requested language (e.g., en, de). Lowercase. |
Vanilla-Signature | Hex string | HMAC-SHA256 of the canonical string. |
You must also include at least one of: