Developers
V1CommunityChallengesIdProgress

Upload absolute cumulative steps since the server-issued countingFrom

Poll about every 15 seconds. measuredAt is the observation cutoff (observed-until), not upload time. Count only from the server-issued countingFrom through measuredAt, never past endsAt. A final upload may arrive up to five minutes after endsAt; the reading must still be at most five minutes old. Reuse the exact measuredAt, source and steps on retry. Scores remain provisional and cannot award rewards. Uploads must be monotonic and below 300 steps/minute both cumulatively and since the last observation cutoff. No manual, OCR or mock source is accepted.

POST
/v1/community/challenges/{id}/progress
AuthorizationBearer <token>

In: header

Path Parameters

id*string
Match^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
Formatuuid

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

curl -X POST "https://example.com/v1/community/challenges/497f6eca-6276-4993-bfeb-53cbbbba6f08/progress" \  -H "Content-Type: application/json" \  -d '{    "steps": 0,    "measuredAt": "2019-08-24T14:15:22Z",    "countingFrom": "2019-08-24T14:15:22Z",    "source": "healthkit"  }'
{  "status": "accepted",  "enrollment": {    "participantId": "9f6624b5-5f99-42b6-899f-30f2b369cbd7",    "alias": "string",    "joinedAt": "2019-08-24T14:15:22Z",    "countingFrom": "2019-08-24T14:15:22Z",    "shareLeaderboard": true,    "sharePublicDisplay": true,    "steps": 0,    "measuredAt": "2019-08-24T14:15:22Z",    "provisional": true,    "rewardEligible": false  }}