Dynamic Ingest API
Update dynamic widget feeds programmatically. Content field names match your layout's derived schema (dynamic bindings).
Endpoint
POST https://glance-api.fly.dev/ingest/{feed_id}
Authorization: Bearer {write_key}
Content-Type: application/jsonFind the feed ID and write key on the feed detail page in the iOS app or web console. Keep the write key secret.
Request body
{
"schema_type": "dynamic",
"template_id": "YOUR_UI_TEMPLATE_UUID",
"content": {
"revenue": 12450,
"headline": "Today's revenue"
},
"metadata": {
"source": "my-backend"
},
"intent": {
"update_widget": true,
"send_push": false
}
}- template_id — UUID of the layout (UI template) attached to the feed.
- content — object keyed by binding names from the derived schema (without
{{ }}wrappers). - intent — optional; controls widget update and push behavior (same as legacy feeds).
Validation
Glance validates content against the layout's derived schema. Missing required fields or wrong types return a 400 response with details. See Upload Content for field types.
Legacy schema ingest (Summary, Status, …) uses a different payload shape. See Legacy Webhook API.