Scenario Deep Link Handler
API Contract
REST
/api/v1/scenario-deep-links
7 endpoints
GET
/api/v1/scenario-deep-links/api/v1/scenario-deep-links
List generated deep links (useful for audit and QA)
Public
Response Example
{
"data": [
{
"id": "dl_7a1b2c",
"prompt_id": "ph_9c1d4e",
"user_id": "usr_4bc8d2",
"scenario_id": "missed_activity_3day",
"route_uri": "eirapp://wizard/activity?scenario=missed_activity_3day&activity_id=act_7e2f9a&chapter_id=ch_boston_001",
"wizard_route": "/activity-wizard",
"created_at": "2026-03-26T08:00:00Z",
"acted_upon_at": null
}
],
"pagination": {
"page": 1,
"limit": 20,
"total": 43
}
}
GET
/api/v1/scenario-deep-links/api/v1/scenario-deep-links/:id
Fetch a single deep link record
Public
Response Example
{
"id": "dl_7a1b2c",
"prompt_id": "ph_9c1d4e",
"user_id": "usr_4bc8d2",
"scenario_id": "missed_activity_3day",
"activity_id": "act_7e2f9a",
"chapter_id": "ch_boston_001",
"route_uri": "eirapp://wizard/activity?scenario=missed_activity_3day&activity_id=act_7e2f9a&chapter_id=ch_boston_001",
"wizard_route": "/activity-wizard",
"wizard_args": {
"scenario_id": "missed_activity_3day",
"activity_id": "act_7e2f9a",
"chapter_id": "ch_boston_001",
"prefill_date": "2026-03-24"
},
"created_at": "2026-03-26T08:00:00Z",
"acted_upon_at": null
}
POST
/api/v1/scenario-deep-links/api/v1/scenario-deep-links
Generate a deep link for a scenario prompt (maps to buildWizardRouteArgs + getRouteUri)
Public
Request Example
{
"prompt_id": "ph_9c1d4e",
"user_id": "usr_4bc8d2",
"scenario_id": "missed_activity_3day",
"activity_id": "act_7e2f9a",
"chapter_id": "ch_boston_001"
}
Response Example
{
"id": "dl_7a1b2c",
"prompt_id": "ph_9c1d4e",
"user_id": "usr_4bc8d2",
"scenario_id": "missed_activity_3day",
"activity_id": "act_7e2f9a",
"chapter_id": "ch_boston_001",
"route_uri": "eirapp://wizard/activity?scenario=missed_activity_3day&activity_id=act_7e2f9a&chapter_id=ch_boston_001",
"wizard_route": "/activity-wizard",
"wizard_args": {
"scenario_id": "missed_activity_3day",
"activity_id": "act_7e2f9a",
"chapter_id": "ch_boston_001",
"prefill_date": "2026-03-24"
},
"created_at": "2026-03-26T09:00:00Z",
"acted_upon_at": null
}
PUT
/api/v1/scenario-deep-links/api/v1/scenario-deep-links/:id
Update deep link record metadata
Public
Request Example
{
"acted_upon_at": "2026-03-26T10:05:00Z"
}
Response Example
{
"id": "dl_7a1b2c",
"prompt_id": "ph_9c1d4e",
"acted_upon_at": "2026-03-26T10:05:00Z",
"updated_at": "2026-03-26T10:05:00Z"
}
DELETE
/api/v1/scenario-deep-links/api/v1/scenario-deep-links/:id
Delete a deep link record
Public
Response Example
{
"deleted": true,
"id": "dl_7a1b2c"
}
PATCH
/api/v1/scenario-deep-links/api/v1/scenario-deep-links/:prompt_id/acted-upon
Mark a prompt as acted upon after the user navigates via deep link (maps to markPromptActedUpon)
Public
Request Example
{
"acted_upon_at": "2026-03-26T10:05:00Z"
}
Response Example
{
"prompt_id": "ph_9c1d4e",
"acted_upon_at": "2026-03-26T10:05:00Z",
"status": "acted_upon"
}
GET
/api/v1/scenario-deep-links/api/v1/scenario-deep-links/route
Resolve the wizard route URI for a prompt without persisting a deep link record (maps to getRouteUri)
Public
Response Example
{
"prompt_id": "ph_9c1d4e",
"route_uri": "eirapp://wizard/activity?scenario=missed_activity_3day&activity_id=act_7e2f9a&chapter_id=ch_boston_001",
"wizard_route": "/activity-wizard",
"expires_at": "2026-03-27T08:00:00Z"
}