Terra

Integration

API
Unified API
SDK
SDK
Authentication
Authentication
Streaming
Streaming
Blood
Blood Report API
Planned Workout
Planned Workout
AI Interface
AI Interface

User engagement

Graph API
Graph API
Scores
Health Scores
Rewards
Health Rewards

Use cases

Enterprise
Enterprise
Insurance
Insurance

Developers

Wearable Data
Wearable Data
Community
Community
Documentation
Documentation

Learn

Blog
Blog
Podcast
Podcast
Events
Events
Reports
Reports

Company

Customers
Customers
Careers
Careers
Partners
Partners
Support
Support
Become an integration
Become an integration


Cookie Preferences

Essential CookiesAlways On
Advertisement Cookies
Analytics Cookies

Crunch Time: Embrace the Cookie Monster Within!

We use cookies to enhance your browsing experience and analyse our traffic. By clicking “Accept All”, you consent to our use of cookies according to our Cookie Policy. You can change your mind any time by visiting out cookie policy.

zap

Latest

zap

Popular

API

Unified API

SDK

Phone SDK

Authentication

Widget

Streaming

Streaming

Graph API

Graph API

Inconsistency in data

All

PlannedBovid7 months ago

Hi everyone, I am facing an issue. One webhook received has x number steps and x distance and after a few milliseconds another webhook is received with 0 steps and still x distance, for same user. I am overwriting the data received as your docs state and this is causing problem for us. This is happening among almost all of the users

terra

Vanessaadmin5 months ago

For Daily events, Terra sends updated totals throughout the day, every time the user moves. Each new payload is simply “the latest snapshot so far.” That’s why the recommended pattern is:

→ When you receive a Daily payload, overwrite the data for that date using the newest one.

To do this correctly, use metadata.start_time as the unique identifier (per user). Just take the date part, ignore the time - since the metric represents that entire day’s running total.

About cases where you get:

  • a valid payload (e.g., 3,500 steps), and

  • milliseconds later, a payload with 0 steps but the same distance

--> This isn’t something documented as expected behavior. It usually points to one of the following:

  • Provider quirks (some devices briefly send partial or incomplete snapshots)
  • Sync timing issues (data arriving mid-refresh from the vendor)
  • Multi-device conflicts (two connected devices reporting different states within seconds)

In all cases, the overwrite rule protects you: the “latest correct snapshot” will naturally replace any glitchy intermediate values.

If this pattern persists for a specific vendor or user, we can escalate to investigate whether it's a provider-specific edge case.