Releasesv0.1.0
Read data

Menstrual cycles derived from the recorded flow

GET
/v1/users/{id}/menstrual-cycles

Derived at read time from the menstrual_flow category samples, so it always agrees with them, deletions included. A flow day is a local calendar day (the sample's timezone metadata, else UTC) with a flow sample whose label is not none; a period is a run of flow days with gaps of at most 2 days; a cycle runs from a period's first day to the day before the next period's first day, and the latest cycle is open (end_date and cycle_length_days null). Intermenstrual bleeding never starts a period. Nothing is predicted. start and end compare as dates and select cycles by start_date. A call reads at most 50000 flow samples: a page can then hold fewer than limit cycles and still carry a next_cursor. See docs/menstrual-cycles.md.

Authorization

tenantKey
headerAuthorizationBearer <token>

Tenant API key, ohs_sk_ + 43 base62 characters.

Path Parameters

id*string
Formatuuid

Query Parameters

start?|

Inclusive lower bound, RFC 3339 or YYYY-MM-DD.

end?|

Exclusive upper bound, RFC 3339 or YYYY-MM-DD. Must not be before start.

cursor?string

The next_cursor of the previous page.

limit?integer
Range1 <= value <= 1000
Default100

Header Parameters

Authorization*string

The tenant API key, as a bearer secret.

Response Body

One page, by start_date.

application/json
  1. response
data*array<>
next_cursor*|

Null on the last page.

curl -X GET 'http://localhost:8080/v1/users/497f6eca-6276-4993-bfeb-53cbbbba6f08/menstrual-cycles' \  -H 'Authorization: Bearer ohs_sk_...'
{  "next_cursor": "string",  "data": [    {      "start_date": "2019-08-24",      "period_end_date": "2019-08-24",      "period_length_days": 1,      "end_date": "2019-08-24",      "cycle_length_days": 1,      "providers": [        "string"      ],      "flow_days": [        {          "date": "2019-08-24",          "flow": "unspecified",          "providers": [            "string"          ]        }      ]    }  ]}
Edit on GitHub