PUT /groups/{groupId}/census replaces the full census. Members are upserted by email when present, otherwise by externalId, so re-pushing your roster is always safe and idempotent.
Member schema
Limits: up to 10,000 members per census, 6 dependents per member.
Quoting vs enrollment requirements
- To quote
- To enroll
Per member:
zip + one of dob | age. That’s it.This is deliberate: you can generate a quote from the minimal data every HR system has, before asking anyone for names or emails. Dependent dobs sharpen the rating (a spouse without one is rated at the employee’s age; a child without one is rated as a 10-year-old), but they’re optional.Per-row errors: bad rows never block good ones
A census write is row-by-row. Valid rows are stored; invalid rows are rejected and reported with their index. A 142-row upload with one bad ZIP stores 141 members:errors: rows that were rejected. Fix and re-PUT; upserts make re-sending the clean rows harmless.warnings: non-blocking issues, today chiefly members missingemail. They quote fine but will fail enrollment.
Reading the census back
GET /groups/{groupId}/census returns what’s stored, each member with a server-assigned memberId:
memberId mapped to your employee record; it’s the handle for single-member updates (PATCH /members/{memberId}) in census sync.
Census intake is enrollment and eligibility data. Before live mode, a BAA and data processing agreement are executed covering exactly this data. See Compliance.