Instructure Developer Documentation Portal
Community
  • Introduction
  • Services
    • Elevate Standards Alignment - AB Connect API
      • Introduction
        • Authentication
        • Addressing Object Properties
        • Requesting Additional Properties in the Response
        • Filtering Using ODATA Like Statements
        • Sorting
        • Facets
        • Paging Data
        • Call Throttling
        • Working with Related Object
        • Error Responses
        • Character Set Support
        • How To Articles, Recommendations and Suggestions
        • Examples
        • Using AB Connect's Embeddable Widgets
      • Reference
        • Standards
        • Standard Collections
        • Events
        • Topics
        • Concepts
        • Assets
        • Asset Definitions
        • Asset Collections
        • Managing and Predicting Relationships
        • Providers
    • Canvas LMS
      • Basics
        • GraphQL
        • API Change Log
        • SIS IDs
        • Pagination
        • Throttling
        • Compound Documents
        • File Uploads
        • API Endpoint Attributes
        • Masquerading
      • OAuth2
        • OAuth2 Overview
        • OAuth2 Endpoints
        • Developer Keys
      • Resources
        • Access Tokens
        • Account Calendars
        • Account Domain Lookups
        • Account Notifications
        • Account Reports
        • Accounts
        • Accounts (LTI)
        • Admins
        • Analytics
        • Announcement External Feeds
        • Announcements
        • API Token Scopes
        • Appointment Groups
        • Assignment Extensions
        • Assignment Groups
        • Assignments
        • Authentication Providers
        • Authentications Log
        • Blackout Dates
        • BlockEditorTemplate
        • Blueprint Courses
        • Bookmarks
        • Brand Configs
        • Calendar Events
        • Collaborations
        • CommMessages
        • Communication Channels
        • Conferences
        • Content Exports
        • Content Migrations
        • Content Security Policy Settings
        • Content Shares
        • Conversations
        • Course Audit log
        • Course Pace
        • Course Quiz Extensions
        • Course Reports
        • Courses
        • Custom Gradebook Columns
        • Developer Key Account Bindings
        • Developer Keys
        • Discussion Topics
        • Enrollment Terms
        • Enrollments
        • ePortfolios
        • ePub Exports
        • Error Reports
        • External Tools
        • Favorites
        • Feature Flags
        • Files
        • Grade Change Log
        • Gradebook History
        • Grading Period Sets
        • Grading Periods
        • Grading Standards
        • Group Categories
        • Groups
        • History
        • InstAccess tokens
        • JWTs
        • Late Policy
        • Learning Object Dates
        • Line Items
        • LiveAssessments
        • Logins
        • LTI Launch Definitions
        • LTI Registrations
        • LTI Resource Links
        • Media Objects
        • Moderated Grading
        • Modules
        • Names and Role
        • New Quiz Items
        • New Quizzes
        • New Quizzes Accommodations
        • New Quizzes Reports
        • Notification Preferences
        • Originality Reports
        • Outcome Groups
        • Outcome Imports
        • Outcome Results
        • Outcomes
        • Pages
        • Peer Reviews
        • Planner
        • Poll Sessions
        • PollChoices
        • Polls
        • PollSubmissions
        • Proficiency Ratings
        • Progress
        • Public JWK
        • Quiz Assignment Overrides
        • Quiz Extensions
        • Quiz IP Filters
        • Quiz Question Groups
        • Quiz Questions
        • Quiz Reports
        • Quiz Statistics
        • Quiz Submission Events
        • Quiz Submission Files
        • Quiz Submission Questions
        • Quiz Submission User List
        • Quiz Submissions
        • Quizzes
        • Result
        • Roles
        • Rubrics
        • Sandboxes
        • Score
        • Search
        • Sections
        • Services
        • Shared Brand Configs
        • SIS Import Errors
        • SIS Imports
        • SIS Integration
        • Smart Search
        • Submission Comments
        • Submissions
        • Tabs
        • Temporary Enrollment Pairings
        • User Observees
        • Users
        • What If Grades
      • Outcomes
        • Outcomes CSV Format
      • Group Categories
        • Group Categories CSV Format
      • SIS
        • SIS CSV Format
      • External Tools
        • LTI
          • Introduction
          • Registration
          • Launch Overview
          • Configuring
          • Variable Substitutions
          • Deep Linking
          • Grading
          • Provisioning
          • PostMessage
          • Platform Notification Service
          • Placements
            • Placements Overview
            • Navigation
            • Homework Submission
            • Editor Button
            • Migration Selection
            • Link Selection (Modules)
            • Assignment Selection
            • Collaborations
        • xAPI
        • Canvas Roles
        • Plagiarism Detection Platform
          • Overview
          • Plagiarism Detection Platform Assignments
          • Plagiarism Detection Platform Users
          • Plagiarism Detection Submissions
          • Webhooks Subscriptions for Plagiarism Platform
          • JWT Access Tokens
      • Data Services
        • Live Events
          • Overview
            • Introduction
            • Setup
            • Caliper
            • Metadata
          • Event Format
            • Canvas
              • Account
              • Asset
              • Assignment
              • Attachment
              • Content
              • Conversation
              • Course
              • Discussion
              • Enrollment
              • Grade
              • Group
              • Learning
              • Logged
              • Module
              • Outcome
              • Outcomes
              • Plagiarism
              • Quiz
              • Rubric
              • Sis
              • Submission
              • Syllabus
              • User
              • Wiki
            • Caliper IMS 1.1
              • Assessment
              • Basic
              • Forum
              • Grading
              • Navigation Events
              • Session
    • Catalog
      • APIs
        • Analytics
        • Bulk Enrollments
        • Catalogs
        • Certificates
        • Completed Certificates
        • Courses
        • Email Domain Set
        • Enrollments
        • Orders
        • Programs
        • Progresses
        • Tags
        • User Registrations
        • Users
        • Waitlist Applicants
    • Credentials
      • Getting Started
      • Authentication
        • Password-Based Authentication
        • Authorization Code-Based Authentication
      • Pagination
      • APIs
        • Assertions
        • Backpack
        • Badgeclasses
        • Issuers
        • Organizations
        • Users
      • Release Notes
    • Data Access Platform
      • Key Concepts
      • Data Formats
      • Rate Limits & Policies
      • Datasets
        • Namespaces
          • canvas
            • canvas types
          • canvas_logs
          • catalog
        • Additional Notes
        • Entity Relationship Diagram
      • Query API
        • Authentication
        • Reference
      • Command Line (DAP CLI)
        • Getting Started
        • Secure Connection
        • Reference
          • dap snapshot
          • dap incremental
          • dap list
          • dap schema
          • dap initdb
          • dap syncdb
          • dap dropdb
      • Client Library
        • Examples
        • Reference
      • Release Notes
      • Status
    • DataSync
      • Interop API
      • Interop Data API
      • Grades Exchange API
      • OneRoster API
      • Platform API
    • Instructure Media
      • API Reference
        • Captions
        • Collection
        • Courses
        • Group
        • Insights
        • Media
        • Media Upload
        • Ping
        • Professional Captioning
        • Tags
        • Transfer Media
        • User
    • Quizzes
      • Quiz API
Powered by GitBook

Copyright © 2008-2024 Instructure, Inc. All rights reserved. Various trademarks held by their respective owners.

On this page

Was this helpful?

  1. Services
  2. Elevate Standards Alignment - AB Connect API
  3. Reference

Standard Collections

When there is a need to quickly identify and refer to a filtered collection of standards, the "Standard Collection" is what provides a solution. Standard Collection stores the filters object with a name and a guid as reference.

  • The "filters" is a JSON object that stores "filters (standard hierarchy)", "globalFilters". Searching filters are generated from this object to narrow down the result set the client wants to use.

  • The "name" identifies the standard collection in human readable format.

  • The "guid" identifies the standard collection in machine readable format.

The "filters" object

The "filters" object stores the filtering expression for the standard collection. This stores standard hierarchy and global filters which helps to filter to only the desired standards.

Here is a formal description about the filters object. For a practical explanation see the example below.

  • filters (object, required) - JSON API object for filters object containing various fields like: "filters (standard hierarchy)", "globalFilters"

    • filters (object) - Standard hierarchy

      • key (string) - Standard hierarchy element ID (guid or "root")

      • value (object) - Standard hierarchy element parameters

        • collections (array) - Array of GUIDs for the elements which are one level below in the hierarchy.

        • id (GUID) - GUID of the element in the hierarchy. (Same as the key.)

        • parentId (GUID) - GUID for the element which is one level above in the hierarchy.

        • state (string) - State is saying if the item element in the hierarchy is selected or not. Values can be: "checked" [+], "indeterminate" [-], "unchecked" [ ]

        • type (string) - Type of position in the hierarchy. Values in hierarchical order: "region" > "publication" > "document" > "section" > "standard".

    • globalFilters (object) - Standard global filters: filtering by standard facets

      • key (string) - Standard facet description. (Eg: "document.publication.regions":)

      • value (object) - Standard facet parameters

        • guid (GUID) - GUID of the element in the hierarchy. (Eg.: "A832862C-901A-11DF-A622-0C319DFF4B22")

        • name (text) - Value of the facet parameter. (Eg.: "California")

Example to build a "filter expression" from the "filters" object

Here is a filters object. Let's see how filter expression can be generated from it step-by-step:

        "filters": {
          "assetType": "NLP_MHE",
          "facets": [
            {
              "label": "Grade",
              "id": "Grade",

              "field": {
                "name": "education_levels.grades",
                "id": "education_levels.grades.guid"
              },
              "facet": {
                "name": "data.descr",
                "id": "data.guid"
              },
              "selectedFilters": [
                {
                  "data": {
                    "descr": "Kindergarten",
                    "guid": "F1F9FA12-3B53-11E0-A421-F4B24952E9DF",
                    "code": "K",
                    "seq": 20
                  }
                },
                {
                  "data": {
                    "descr": "9th Grade",
                    "guid": "ABBAABBA-ACDC-ACDC-B042-495E9DFF4B22",
                    "code": "9",
                    "seq": 20,
                  }
                },
              ],
            },
            {
              "id": "Subject",
              "label": "Subject",
              "field": {
                "name": "disciplines.subjects",
                "id": "disciplines.subjects.ids"
              },
              "facet": {
                "name": "data.descr",
                "id": "data.guid"
              },
              "selectedFilters": [
                {
                  "data": {
                    "descr": "Mathematics",
                    "guid": "495E9DFF-3B53-11E0-B042-C4B222F1FB2F",
                    "code": "MATH"
                  },
                  "count": 2488
                }
              ]
            }
          ]
        }

The left side of the expression starts with filter[asset] =. There are two elements in the filters.facets array, so there will be two expressions on the right side. For example expressions expr_1 and expr_2. These are the basis of the filtering. The expr_1 is built up from filters.facets[0] and the expr_2 is built up from filters.facets[1].

    filter[asset] = expr_1 and expr_2

Expressions are built up from a "field" and set of "values". The filter will give back those assets which have given the "values" on the given "field".

    expr: field in (values)

Let's find the "field" values. In the JSON object the "field" is defined by field.id.

facets[0].field.id = "education_levels.grades.guid"`
facets[1].field.id = "disciplines.subjects.ids"

Substitute these as "fields" into the filter expression.

    filter[asset] = education_levels.grades.guid in (values_1) and disciplines.subjects.ids in (values_2)

Let's find the "values". The variables' names that are holding the "values" are defined by the facet.id. The "values" are those items in the selectedFilters object which have the object-path defined in the facet.id.

The variable for "values_1" is facet.id = "data.guid". Let's gather the values from selectedFilters.data.guid and generate the "values_1".

    selectedFilters[0].data.guid = "F1F9FA12-3B53-11E0-A421-F4B24952E9DF"
    selectedFilters[1].data.guid = "ABBAABBA-ACDC-ACDC-B042-495E9DFF4B22"
    ==> 
    values_1 = "F1F9FA12-3B53-11E0-A421-F4B24952E9DF", "ABBAABBA-ACDC-ACDC-B042-495E9DFF4B22"

The variable for "values_2" is facet.id = "data.guid". Let's gather the values from selectedFilters.data.guid and generate the "values_2".

    selectedFilters[0].data.guid = "495E9DFF-3B53-11E0-B042-C4B222F1FB2F"
    ==> 
    values_2 = "495E9DFF-3B53-11E0-B042-C4B222F1FB2F"

Finally substitute the "values" into the filter expression:

    filter[asset] = education_levels.grades in ("F1F9FA12-3B53-11E0-A421-F4B24952E9DF", "ABBAABBA-ACDC-ACDC-B042-495E9DFF4B22") and disciplines.subjects.ids in ("495E9DFF-3B53-11E0-B042-C4B222F1FB2F")

This example will filter only those assets which are in the grade: "Kindergarten" or "9th Grade" and are in the subject: "Mathematics".

Standard Collection

When there is a need to quickly identify and refer to a filtered collection of standards, the "Standard Collection" is what provides a solution. Standard Collection stores the filters object name and a guid as reference.

List All Standard Collections

  • To list Standard Collections the partner has access to, send a GET to the endpoint.

  • To find a Standard Collection by exact name, send a GET to the endpoint with the collection_name parameter. This gives back only the case sensitive exact match if there is any.

  • To search Standard Collections by name, send a GET to the endpoint with the search_collection_name parameter. This search uses case insensitive partial matching.

Create a new Standard Collection

To create a Standard Collection within the AB Connects system, you send a POST request to the endpoint. The body of the POST contains the Standard Collection definition in JSON format.

The response will be the same as a GET by GUID request for the created Standard Collection.

Working with Standards Collection

Retrieving the Details of a Standard Collection

To get the Standard Collections you've created, call the endpoint with a GET while supplying the AB GUID for the Standard Collection. To retrieve the GUID, use the list and search functionality.

Modifying a Standard Collection

To update a Standard Collection, send a PATCH to the Standard Collection URL (with GUID) sending JSON in the body similar to that in the create statement. The JSON body only needs to contain the attributes that need to be updated. You can update the name or filters fields for the Standard Collection. You can update only one of these or all.

The response will contain the modified Standard Collection just as it would be in a GET by GUID request for the created Standard Collection.

Deleting a Standard Collection

To delete a Standard Collection you've created, send a DELETE the endpoint while supplying the AB GUID for the Standard Collection. If you have the name for the Standard Collection but not the AB GUID, see the section on searching for Standard Collections.

PreviousStandardsNextEvents

Last updated 7 months ago

Was this helpful?

To get the available facets for standards check the facet_summary at for details.

facets
get
Query parameters
partner.idstringRequired

Your partner ID - you should have gotten them from AB Support or when you signed up for a sandbox account.

auth.signaturestringRequired

Signature for the request authorization.

auth.expiresstringRequired

Expiration timestamp for the authorization.

fields[standard_collections]stringOptional

comma separated list of field names

filter[standard_collections]stringOptional

an ODATA-like query string used to filter

sort[standard_collections]stringOptional

a comma separated list of property names specifying the sort order of the returned results

limitnumberOptional

The page size for the response dataset. limit must be 100 or less.

offsetnumberOptional

How far into the dataset you are paging

Responses
200
OK
application/json
400
Bad Request
application/json
401
Authentication Error
application/json
404
Entity not found
application/json
get
GET /rest/v4.1/standard_collections HTTP/1.1
Host: api.abconnect.instructure.com
Accept: */*
{
  "links": {
    "self": "text",
    "first": "text",
    "last": "text",
    "next": "text",
    "prev": "text"
  },
  "meta": {
    "took": 1,
    "limit": 1,
    "count": 1,
    "offset": 1
  },
  "data": [
    {
      "guid": "text",
      "name": "text",
      "filters": {
        "ANY_ADDITIONAL_PROPERTY": "anything"
      },
      "advanced_search": {
        "ANY_ADDITIONAL_PROPERTY": "anything"
      }
    }
  ]
}
get
Path parameters
guidstringRequired

guid of specified standard collection

Query parameters
partner.idstringRequired

Your partner ID - you should have gotten them from AB Support or when you signed up for a sandbox account.

auth.signaturestringRequired

Signature for the request authorization.

auth.expiresstringRequired

Expiration timestamp for the authorization.

fields[standard_collections]stringOptional

comma separated list of field names

Responses
200
OK
application/json
400
Bad Request
application/json
401
Authentication Error
application/json
409
Conflict
application/json
422
Unprocessable content
application/json
get
GET /rest/v4.1/standard_collections/{guid} HTTP/1.1
Host: api.abconnect.instructure.com
Accept: */*
{
  "links": {
    "self": "text"
  },
  "meta": {
    "took": 1
  },
  "data": {
    "guid": "text",
    "name": "text",
    "filters": {
      "ANY_ADDITIONAL_PROPERTY": "anything"
    },
    "advanced_search": {
      "ANY_ADDITIONAL_PROPERTY": "anything"
    }
  }
}
delete
Path parameters
guidstringRequired

guid of specified standard collection

Query parameters
partner.idstringRequired

Your partner ID - you should have gotten them from AB Support or when you signed up for a sandbox account.

auth.signaturestringRequired

Signature for the request authorization.

auth.expiresstringRequired

Expiration timestamp for the authorization.

Responses
200
OK
application/json
401
Authentication Error
application/json
403
Unauthorized
application/json
404
Entity not found
application/json
delete
DELETE /rest/v4.1/standard_collections/{guid} HTTP/1.1
Host: api.abconnect.instructure.com
Accept: */*
{
  "meta": {
    "took": 1
  }
}
  • The "filters" object
  • Example to build a "filter expression" from the "filters" object
  • Standard Collection
  • List All Standard Collections
  • GET/standard_collections
  • Create a new Standard Collection
  • POST/standard_collections
  • Working with Standards Collection
  • Retrieving the Details of a Standard Collection
  • GET/standard_collections/{guid}
  • Modifying a Standard Collection
  • PATCH/standard_collections/{guid}
  • Deleting a Standard Collection
  • DELETE/standard_collections/{guid}
post
Query parameters
partner.idstringRequired

Your partner ID - you should have gotten them from AB Support or when you signed up for a sandbox account.

auth.signaturestringRequired

Signature for the request authorization.

auth.expiresstringRequired

Expiration timestamp for the authorization.

Body
Responses
201
Created
application/json
post
POST /rest/v4.1/standard_collections HTTP/1.1
Host: api.abconnect.instructure.com
Content-Type: application/json
Accept: */*
Content-Length: 58

{
  "data": {
    "name": "text",
    "filters": {},
    "advanced_search": {}
  }
}
201

Created

{
  "links": {
    "self": "text"
  },
  "meta": {
    "took": 1
  },
  "data": {
    "guid": "text",
    "name": "text",
    "filters": {
      "ANY_ADDITIONAL_PROPERTY": "anything"
    },
    "advanced_search": {
      "ANY_ADDITIONAL_PROPERTY": "anything"
    }
  }
}
patch
Path parameters
guidstringRequired

guid of specified standard collection

Query parameters
partner.idstringRequired

Your partner ID - you should have gotten them from AB Support or when you signed up for a sandbox account.

auth.signaturestringRequired

Signature for the request authorization.

auth.expiresstringRequired

Expiration timestamp for the authorization.

Body
Responses
200
OK
application/json
400
Bad Request
application/json
401
Authentication Error
application/json
404
Entity not found
application/json
422
Unprocessable content
application/json
patch
PATCH /rest/v4.1/standard_collections/{guid} HTTP/1.1
Host: api.abconnect.instructure.com
Content-Type: application/json
Accept: */*
Content-Length: 72

{
  "data": {
    "guid": "text",
    "name": "text",
    "filters": {},
    "advanced_search": {}
  }
}
{
  "links": {
    "self": "text"
  },
  "meta": {
    "took": 1
  },
  "data": {
    "guid": "text",
    "name": "text",
    "filters": {
      "ANY_ADDITIONAL_PROPERTY": "anything"
    },
    "advanced_search": {
      "ANY_ADDITIONAL_PROPERTY": "anything"
    }
  }
}