Enterprise: the API, webhooks and MCP server are live for schools on the Enterprise plan. The owner allows every key and AI connection. Ask about Enterprise
On this page
API Reference / Waivers
Waivers
Read required/optional waiver completion per roster swimmer using the school’s active templates and the supplied applicability context. Signing requests, bulk re-sign and ZIP export are outside the public API.
Retry-After and X-RateLimit-RemainingPer key or agent connection, on the Enterprise plan.
/v1/waiversList family waiver status
Requires family_id. Compares applicable active templates with each swimmer’s recorded response. Optional declines count as completed. Per-school completion excludes responses from staff who are now revoked, disabled or inactive. No response has status missing; missing_only=true returns incomplete entries, including a required decline that does not complete the waiver. The MCP list_waivers_missing tool enables missing_only.
Access: waivers:read · MCP: list_waivers_missing
Headers
- AuthorizationstringRequired
Bearer <token>: an API key or an agent OAuth access token. App subscription routes require a dedicated app key. - Swum-Versiondate
Pins the response shape. Default:
2026-10-25.
Query parameters
- updated_sincedate-time
Effective update time after an ISO 8601 timestamp with an explicit time zone. Follow every page, including the legacy-record suffix.
- limitinteger
1–200; default 50. Minimum 1. Maximum 200. Default: 50.
- cursorstring
Opaque next_cursor from the previous page. Keep the same filters.
- family_idstringRequired
The family document id. Write bodies also accept parent_uid. At most 128 characters.
- missing_onlyboolean
Default false; true returns incomplete entries. Default: false.
- statusstring
Optional accepted, declined, missing or all. Allowed: "accepted", "declined", "missing", "all".
- location_idstring
Uses the verified class location when class_id is supplied, otherwise this explicit location, otherwise the family assigned location. A location contradicting the class returns 400. Unknown locations exclude location-scoped templates. At most 128 characters.
- class_idstring
Optional owner-verified class context; its location determines location-scoped applicability. At most 128 characters.
- plan_idstring
Optional owner lesson-plan context. At most 128 characters.
- product_scopestring
Default lesson_products. Default: "lesson_products".
Pagination
Keep calling with cursor=next_cursor until next_cursor is null. A filtered page may be short or empty while a next cursor remains.
Applicability context
The response also includes applicability_context and program_scoped_waivers_excluded. Without explicit class_id or plan_id, program-specific templates are excluded; do not treat this as proof every school program waiver is satisfied. No waiver HTML, signature or IP is returned. Signed PDF links are managed in the app.
curl "${SWUM_API_BASE:-https://api.swum.ai}/v1/waivers" \
-G \
--data-urlencode 'family_id=family_example' \
--data-urlencode 'missing_only=true' \
-H "Authorization: Bearer ${SWUM_API_KEY}"{
"data": [
{
"id": "waiver_example:swimmer_example",
"waiver_id": "waiver_example",
"waiver_name": "School waiver",
"swimmer_id": "swimmer_example",
"family_id": "family_example",
"status": "missing",
"is_optional": false,
"completed": false,
"signed_at": null,
"updated_at": null
}
],
"next_cursor": null,
"applicability_context": {
"location_id": "pool_example",
"product_scope": "lesson_products",
"plan_id": null,
"class_id": null
},
"program_scoped_waivers_excluded": true
}