Loading...

Intellischool.ID API v1.0

The Intellischool.ID API enables the programmatic provisioning of users, brand templates, identity providers, app registrations, and other associated identity objects.


Base URI

The Intellischool.ID API is distinct from our other APIs, and can only be accessed via https://api.intellischool.id.


Required scopes

In order to interact with the Intellischool.ID API, your auth token must have at least one of the following scopes enabled.

  • Name
    https://schema.intellischool.net/scope/id/tenant-core.readonly
    Type
    Description

    Read-only access to Users, Tenants, Tenant-Users, Branding, Identity Providers, and Apps, in the context of a tenant.

  • Name
    https://schema.intellischool.net/scope/id/tenant-core.write
    Type
    Description

    Write access to Users, Tenants, Tenant-Users, Branding, Identity Providers, and Apps, in the context of a tenant.

  • Name
    https://schema.intellischool.net/scope/id/apps.readonly
    Type
    Description

    Read-only access to Apps, in the context of an app developer.

  • Name
    https://schema.intellischool.net/scope/id/apps.write
    Type
    Description

    Write access to Apps, in the context of an app developer.


GET /apps/:id?

Apps

Retrieve a collection of apps owned by the tenant or developer associated with the auth token.

Optional attributes

  • Name
    id
    Type
    uuid

    The ID of a specific app to retrieve.

Request

GET
/apps/:id?
curl -G https://api.intellischool.id/apps \ -H "Authorization: Bearer {token}"

Response

[{"id":"20b8abbe-0195-4f5e-9e63-a2a7361d570b","name":"My OAuth App","owner":{"type":"tenant","id":"089525de-0053-40a9-9946-e84fb5021e8f"},"auth_type":"oauth2","oauth2":{"redirect_uris":["https://my-fake-app.net/auth/callback"]}}, {"id":"a6cb7db4-a240-49eb-85cd-142b011159dc","name":"My SAML App","owner":{"type":"developer","id":"88fa8ee6-bbd7-415a-839a-f92388df3b11"},"auth_type":"saml","saml":{"metadata_url":"https://my-saml-app.net/saml/metadata.xml","metadata_xml":"{xml metadata}","entity_id":"https://my-saml-app.net/unique-identifier","reply_url":"https://my-saml-app.net/saml/acs","sign_on_url":"https://my-saml-app.net/saml/sign-on","relay_state":null,"sign_out_url":"https://my-saml.app.net/saml/sign-out","claims":[{"namespace":"http://schemas.xmlsoap.org/ws/2005/05/identity/claims","claims":[{"name":"givenname","value":"user.given_name"},{"name":"surname","value":"user.family_name"},{"name":"nameidentifier","value":"user.email"},{"name":"emailaddress","value":"user.email"}]}]}}]

GET /identity-providers/:id?

Identity providers

Returns a collection of identity providers, or a single identity provider if a valid ID is provided. Only returns objects that are in use by the tenant associated with the auth token presented.

The payload will vary depending on the type of the identity provider. Intellischool-managed providers (i.e. those that are not tenant-specific) will only return an ID and a button graphic.

Optional attributes

  • Name
    id
    Type
    string|uuid

    The identifier of the Identity Provider to retrieve. For core providers, this value is a string. For tenant-specific providers, this value is a 36-character UUID.

Request

GET
/identity-providers/:id?
curl -G https://api.intellischool.id/identity-providers \ -H "Authorization: Bearer {token}"

Response

[{"id":"google","button_graphic":"{svg image}"}, {"id":"88712891-dc46-41f1-b786-10d1f103f32c","button_graphic":"{svg image}","provision_just_in_time":true,"tenant":"089525de-0053-40a9-9946-e84fb5021e8f","type":"lti1.3","lti":{"client_id":"08291832910321afd9","oidc_authentication_url":"https://canvas.test.instructure.com/api/lti/authorize_redirect","oauth_access_token_url":"https://canvas.test.instructure.com/login/oauth2/token","jwks_url":"https://canvas.test.instructure.com/api/lti/security/jwks","issuer":"https://canvas.test.instructure.com","validate_lti_tokens_at_oidc_login":false,"deployment_id":"918af09dce88"}}, {"id":"0ff0341c-9c03-4512-806a-b4a8b36c4fd2","button_graphic":"{svg image}","provision_just_in_time":true,"tenant":"089525de-0053-40a9-9946-e84fb5021e8f","type":"oauth2","oauth2":{"client_id":"17283719231","authorization_url":"https://my-fake-idp.net/oauth2/authorize","token_url":"https://my-fake-idp.net/oauth2/token","scope":["openid","profile","email"],"oidc_discovery":"https://my-fake-idp.net/.well-known/openid-configuration","jwks_url":"https://my-fake-idp.net/.well-known/jwks.json"}}]

GET /tenants/:id?

Tenants

Retrieve a collection of tenants, or a single tenant if a tenant ID is provided. Will only return tenants that are associated with the auth token.

Optional attributes

  • Name
    id
    Type
    uuid

    The 36-character UUID of the tenant to retrieve.

Request

GET
/tenants/:id?
curl -G https://api.intellischool.id/tenants/089525de-0053-40a9-9946-e84fb5021e8f \ -H "Authorization: Bearer {token}"

Response

[{"id":"089525de-0053-40a9-9946-e84fb5021e8f","name":"Ridgeback Primary School","customer_id":801283728109,"govt_id":"52932","environment":"PRODUCTION","status":"NORMAL","region":{"id":"au-nsw","name":"Australia - New South Wales","provider":"gcp","provider_region_id":"australia-southeast1","region":"New South Wales","region_code":"NSW","country":"Australia","country_code":"AU"}}]

GET /tenants/:tenant_id/apps/:app_id?

Tenant Apps

Retrieves a collection of the apps deployed by the identified tenant, or a single app if a valid app_id is specified.

Required attributes

  • Name
    tenant_id
    Type
    uuid

    The ID of the tenant for which to retrieve the collection of deployed apps.

Optional attributes

  • Name
    app_id
    Type
    uuid

    The ID of a specific app for which to retrieve deployment details.

Request

GET
/tenants/:tenant_id/apps/:app_id?
curl -G https://api.intellischool.id/tenants/089525de-0053-40a9-9946-e84fb5021e8f/apps

Response

[{"deployment_id":"c32a1d1c-3fcb-4246-b2fa-f3037efe905c","app_id":"20b8abbe-0195-4f5e-9e63-a2a7361d570b","tenant_id":"089525de-0053-40a9-9946-e84fb5021e8f","scope":["https://schema.intellischool.net/scope/analytics/pulse.read","https://schema.intellischool.net/scope/data-ops/webhooks.read"],"app":{"id":"20b8abbe-0195-4f5e-9e63-a2a7361d570b","name":"My App"}}]

GET /tenants/:id/constituencies

Tenant Constituencies

Returns a collection of constituencies in use by the identified tenant.

Required attributes

  • Name
    id
    Type
    uuid

    The ID of the tenant for which to receive the constituencies.

Request

GET
/tenants/:id/constituencies
curl -G https://api.intellischool.id/tenants/089525de-0053-40a9-9946-e84fb5021e8f/constituencies \ -H "Authorization: Bearer {token}"

Response

[{"id":"student","name":"Student","enable_self_service_provisioning":false,"allowed_identity_providers":["dc69b159-1469-48ff-b2a5-39c09993c083"]}, {"id":"staff","name":"Staff","enable_self_service_provisioning":false,"allowed_identity_providers":["microsoft"]}, {"id":"parent_caregiver","name":"Parent/Caregiver","enable_self_service_provisioning":true,"allowed_identity_providers":["google","microsoft","apple","linkedin","twitter"]}]

GET /tenants/:id/users

Tenant Users

Retrieves a collection of users associated with the identified tenant.

Required attributes

  • Name
    id
    Type
    uuid

    The UUID of the tenant for which to retrieve users.

Request

GET
/tenants/:id/users
curl -G https://api.intellischool.net/tenants/089525de-0053-40a9-9946-e84fb5021e8f/users \ -H "Authorization: Bearer {token}"

Response

[{"user_email":"user@test.com","tenant_id":"089525de-0053-40a9-9946-e84fb5021e8f","constituencies":["staff","parent_caregiver"],"user":{"id":"6ae9ffef-8b43-4d98-9e83-cc9594977e47","email":"user@test.com","name":"Test User","nickname":"tuser","picture":"https://gravatar.com/test@user.com"}}]

GET /users/:email?

Users

Retrieve a collection of users, or a single user if an e-mail address is provided. Will only return users that have a Tenant-User object linking the user to the tenant associated with the auth token.

Optional attributes

  • Name
    email
    Type
    string

    E-mail address of a specific user to retrieve.

Request

GET
/users/:email?
curl -G https://api.intellischool.id/users/user@test.com \ -H "Authorization: Bearer {token}"

Response

[{"id":"6ae9ffef-8b43-4d98-9e83-cc9594977e47","email":"user@test.com","name":"Test User","nickname":"tuser","picture":"https://gravatar.com/test@user.com","idp_identifiers":[{"id":"28f7e402-6e77-47b9-9874-3cfcc256d5ab","idp_id":"google"},{"id":"5b22043f-49c8-4e28-928b-48362d59ce2a","idp_id":"linkedin"}]}]

GET /vanity-domains/:domain?

Vanity domains

Returns a collection of vanity domains for the tenant associated with the provided auth token. Note: vanity domains require an Intellischool.ID Advanced licence.

Optional attributes

  • Name
    domain
    Type
    string

    A fully-qualified domain name for the vanity domain.

Request

GET
/vanity-domains/:domain?
curl -G https://api.intellischool.id/vanity-domains/sso.myfakeschool.edu.au \ -H "Authorization: Bearer {token}"

Response

[{"domain":"sso.myfakeschool.edu.au","owner":{"type":"tenant","id":"089525de-0053-40a9-9946-e84fb5021e8f"},"tenants":["089525de-0053-40a9-9946-e84fb5021e8f"],"status":"PENDING_DNS","brand_configuration":{"portal_name":"My School SSO","primary_color":"#FF0000","secondary_color":"#0000FF","typefaces":{"sans":[{"name":"My Custom Typeface","source":"file","file_type":"woff","file":"{base64-encoded font file}"},{"name":"Roboto","source":"google"}],"serif":[{"name":"Georgia","source":"google"}]},"font_styles":{"header":["sans","font-semibold"],"prose":["serif"]},"layout":"center","logo":{"light":"{SVG or base64-encoded PNG image}","dark":"{SVG or base64-encoded PNG image}"},"background":{"color":{"dark":"#1E2938","light":"#CAD1F2"},"gradient":{"from":"#1E2938","via":null,"to":"#2A3445"},"image":"{SVG or base64-encoded PNG image}","position":"center","repeat":"no-repeat","size":"cover"}}}]