API naming and null handling made consistent
ImprovementWeek of October 22, 2026
We went through the Stoked API end to end and made the places that did the same thing differently match. Most of this is invisible, but a few names changed. If your integration reads any of the fields below, update it.
Renamed
- Waiver submissions: the
templaterelationship is nowwaiver_template, andfilter[template]is nowfilter[waiver_template], matching private events. Each answer infieldshasfield_typeinstead oftype. - Custom fields:
response_typeis nowfield_typeandoptionsis nowresponse_options, on the Custom Fields API and in advocates’meta.custom_fields. Waiver template fields already used these names. - Reply speed: records have
"type": "analytics_reply_speeds"instead of"analytics-reply-speeds", so every type name now uses underscores. The other analytics types changed the same way. - Wallet transactions: now need their own Wallet transactions permission instead of Advocates. Responses also carry
meta.wallets.
Null instead of missing
- A message’s
sender_nameis now always present, andnullwhen the advocate or prospect sent it. - A beat’s
subjectrelationship is now always present, and{"data": null}when the beat’s subject has no endpoint.
Stricter analytics filters
- An unknown
filter[period]orfilter[metric]on the analytics events, aggregates and reports endpoints now returns a400error instead of quietly using the default. So does alast-N-daysperiod longer than 366 days, which used to be cut short without warning.
Documented
- Which lists aren’t paginated, and which records are deleted outright rather than marked, so an incremental sync knows when to re-read a full list.
Related: API overview