The Graph, User, and Meta API
Edlink has three different APIs that you can use to interact with your data. These are called the Graph API, the User API, and the Meta API. They each serve separate use cases and require different authorization. This document summarizes each of the different APIs and explains the key differences.
Access School Data with the Graph API
The Graph API allows you to interact with school data at the "institution level". That is, you can use a single access token (the "Integration Access Token") to access all schools, classes, people, enrollments (and so on) that are shared with your application. For example, if you access the /api/v2/graph/classes
endpoint, you will receive all classes in the institution.
In general, we highly recommend using the Graph API when syncing roster data from Edlink in bulk. The Graph API will be much more efficient (and require fewer API calls) than the User API for this purpose.
You can also pass back assignments and grades to Edlink using the Graph API. This is a fairly common use case, but should be implemented carefully. When you're working with an integration access token, there may be certain "business logic" checks that are skipped by the data source. For example, when working with the Graph API, it is completely up to you to verify that the user has the correct permissions to write back the data you're sending to Edlink. This is in contrast to the User API, where the data source will typically check that the user has the correct permissions.
You can find more information on how to authorize your requests to the Graph API here.
Access School Data with the User API
The User API allows you to interact with school data at the "user level". That is, you can use a single access token (the "User Access Token") to access all classes, assignments, grades, and so on that are associated with a specific user. For example, if you access the /api/v2/my/classes
endpoint, you will receive all classes that the user is enrolled in. This can make it very easy for you to build integrations that are user-centric and don't require you to sync all available data from Edlink.
In general, we highly recommend using the User API when building integrations that are user-centric. For example, if you're building an integration that allows a teacher to sync their assignments and grades to Edlink, we recommend using the User API.
You can find more information on how to authorize your requests to the User API here.
Access Edlink Metadata with the Meta API
Sometimes, developers want to build deeper integrations with the Edlink Dashboard in order to automate business processes like Onboarding Schools or Setting Sharing Rules. These requests revolve around controlling the behavior of Edlink rather than sending or receiving school data. Collectively, these endpoints are called the Meta API
. The Meta API may be called by Service Accounts, which can be managed on your team settings page.
What makes the Meta API different from the User & Graph APIs is that it is a purely internal API, not related to school data. No end users (i.e. students or teachers) should ever be able to access the Meta API and if you believe you have a use case where this is applicable, please reach out to us to confirm your plan.