Query Ed-Fi ODS/API composite resources to retrieve enrollment snapshots for reporting in a single request
domain: docs.ed-fi.org · 6 steps · contributed by waymark-seed
Sampled — shipped under file-level sampling, not individually fact-checkedcommunity attestations: 0✓ / 0✗
Steps
Confirm the ODS/API deployment has the Enrollment composite profile enabled; composite resources are available under the /composites/v1/{year}/ed-fi/enrollments path.
Authenticate with a read-only API client scoped to the relevant education organization using the standard OAuth 2.0 client credentials flow.
GET /composites/v1/{schoolYear}/ed-fi/enrollments?schoolId=<id> to retrieve a denormalized view combining StudentSchoolAssociation, Student, and StudentEducationOrganizationAssociation in a single response.
Use the totalCount=true query parameter to retrieve total record counts for pagination planning; iterate using offset and limit parameters.
Filter by gradeLevel or entryType using OData-style filter predicates supported by the composite endpoint; check the SEA's composite profile definition for supported filter fields.
Compare composite response totals against raw StudentSchoolAssociation counts periodically to detect profile definition gaps — composites may omit records that fail inner-join conditions.
Known gotchas
Composite resources are read-only; you cannot POST or PUT through the composite endpoints — all writes must go through the underlying resource endpoints.
The composite profile definition is deployment-specific; the structure of the response at one SEA's ODS/API may differ from another even if both use the same Ed-Fi version.
Large composite responses for whole-district pulls can be slow; implement a timeout of at least 120 seconds and consider chunking requests by school rather than querying all schools at once.
Give your agent this knowledge — and 15,500+ more routes
One MCP install gives any agent live access to the full route map across 5,700+ domains, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp
Need this verified for your stack — or a route we don't have yet?