Create a Clever application in the Clever developer dashboard and configure it as a Secure Sync application; obtain your client_id and client_secret from the dashboard, and note your sandbox district bearer token for testing.
Authorize access to a district's data: the district connects your app via the Clever district dashboard, which generates a district-specific bearer token; in production, retrieve this token through the OAuth 2.0 authorization code flow at https://clever.com/oauth/authorize.
Call GET https://api.clever.com/v3.0/districts to verify your token is valid and retrieve the district object; the response identifies the district you have access to.
Fetch roster data using the typed endpoints: GET /v3.0/schools, /v3.0/sections, GET /v3.0/users?role=student (or teacher, staff, district_admin); all endpoints return paginated results with next links in the response.
Use the Events API (GET /v3.0/events) to retrieve incremental changes since your last sync timestamp; events describe created, updated, and deleted records and are available for the previous 30 days.
Sync your application's user and roster data by matching on Clever's stable id field; store the Clever id as your external identifier to support future delta syncs and event-based updates.
Known gotchas
Section and Events endpoints are only accessible with district-app bearer tokens belonging to Secure Sync customers; SSO-only tokens do not grant access to roster data and will return 403 errors.
Clever requires applications to sync at least once per day; the Events API window is only 30 days — polling less frequently than that risks missing changes and requiring a full re-sync.
The /v3.0/users endpoint returns all user types by default; filtering by role=student is not always supported in all response formats — check the role field on each returned user object rather than assuming the filter excludes all non-student records.
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp