For Developers

Create Source

POST https://ed.link/api/v2/teams/:team_id/sources

Creates and initializes a new source for the team.

Permissions

Requires the sources.create system permission.

Parameters

ParameterTypeRequiredDescription
:team_idUUIDYesThe ID of the team.

Request Body

PropertyTypeRequiredDescription
nameStringYesHuman-readable name for the source.
provider_idUUIDYesIdentifier of the LMS, SIS, or identity provider.
import_intervalStringYesSchedule interval for data synchronization (e.g. daily, hourly).
tokenStringNoOAuth authorization code or secret token if applicable for provider onboarding.
application_idUUIDNoAssociated application ID.
region_idUUIDNoStorage region identifier where data should reside.
propertiesObjectNoCustom provider configuration options and integration flags.
configurationObjectNoDetailed provider credentials and connection settings.

Sample Request

const response = await axios.post(
    `https://ed.link/api/v2/teams/${team_id}/sources`,
    {
        name: 'Oakridge School District Canvas',
        provider_id: '90e0c0df-bc7b-402a-a9cb-b20bf4437a34',
        import_interval: 'daily',
        configuration: {
            url: 'https://oakridge.instructure.com'
        }
    },
    {
        headers: {
            authorization: `Bearer ${user_session_token}`,
            'content-type': 'application/json'
        }
    }
);

Sample Response

{
    "$data": {
        "id": "7b5a19cb-9ea8-4b71-9b16-564ec5ea0b12",
        "created_date": "2024-02-10T14:30:00.000Z",
        "updated_date": "2024-02-10T14:30:00.000Z",
        "name": "Oakridge School District Canvas",
        "state": "active",
        "provider_id": "90e0c0df-bc7b-402a-a9cb-b20bf4437a34",
        "team_id": "6a9e99a8-e165-4d0d-9b7d-6062a4be682d",
        "configuration": {
            "url": "https://oakridge.instructure.com"
        }
    }
}