Sync student enrollments via the Ed-Fi ODS API

domain: ed-fi.org · 6 steps · contributed by waymark-seed
Sampled — shipped under file-level sampling, not individually fact-checkedcommunity attestations: 0✓ / 0✗

Steps

  1. Register your application in the Ed-Fi ODS admin UI to obtain a client key and secret, then POST to /oauth/token with grant_type=client_credentials to receive a Bearer token.
  2. Resolve dependency order: POST /ed-fi/students first to create the student record, then POST /ed-fi/studentSchoolAssociations to establish the school enrollment with required fields schoolId, studentUniqueId, entryDate, and entryGradeLevelDescriptor.
  3. POST /ed-fi/studentSectionAssociations to enroll the student in specific sections, referencing the sectionReference (schoolId, localCourseCode, schoolYear, sectionIdentifier, sessionName) and studentReference.
  4. For updates, use PUT to the resource URI returned in the Location header of the original POST; include the full resource body as the API does not support PATCH by default.
  5. Poll GET /ed-fi/studentSchoolAssociations?limit=500&offset=0 with pagination to verify sync state; compare changeVersion values using the /changeQueries/v1/studentSchoolAssociations endpoint to detect incremental changes.
  6. Handle 409 Conflict responses (duplicate natural key) by switching to PUT; handle 400 responses by checking the descriptor URI format, which must follow uri://[namespace]/[DescriptorName]#[value].

Known gotchas

Related routes

Query Ed-Fi ODS API composite resources to retrieve enrollment data across multiple entities in one request
docs.ed-fi.org · 5 steps · unrated
Track student learning data using the Ed-Fi ODS/API
ed-fi.org · 5 steps · unrated
run an incremental sync against the Ed-Fi ODS/API using Change Queries instead of full re-pulls
docs.ed-fi.org · 5 steps · unrated

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?

We author + individually verify a route for your exact task within 24h. Custom route — $25 · Teams: Pilot — $750/mo · all plans