Payload
The document the edge serves, field by field.
A complete payload
{
"v": 1,
"app": "app_9f2kq3",
"env": "production",
"published_at": "2026-07-20T09:12:00Z",
"key_id": "k1",
"maintenance": {
"active": false,
"starts_at": null,
"ends_at": null,
"message_key": "maint_default",
"show_eta": true,
"button_url": null
},
"update": {
"ios": {
"min": "4.0.0",
"target": "4.2.0",
"store_url": "https://apps.apple.com/app/id000000",
"soft": { "max_snoozes": 3, "cooldown_hours": 24 }
}
},
"values": { "checkout_enabled": true },
"messages": {
"en": {
"force_title": "Update required",
"force_body": "Please update to keep using the app.",
"soft_title": "Update available",
"soft_body": "A new version is ready."
}
}
}Fields
| Field | Meaning |
|---|---|
v | Payload version. Bumped only for breaking changes |
key_id | Which signing key to verify against |
maintenance.active | Server-evaluated and authoritative: the device never checks the schedule itself |
maintenance.ends_at | Display only |
update.platform.min | Below this: blocked |
update.platform.target | Below this but at or above min: nudged |
values | Your own remote-config keys. Arbitrary JSON |
messages | messages[locale][key], falling back per key to en |
Unknown fields are ignored by SDKs, so the control plane can add one without breaking apps already in the field.