Skip to main content
The API is in limited early release and is only available to some private beta usersBecause the API is an early release, current users should expect occasional breaking changes.
This tutorial shows you how to use Knowledge Graph to access state standards and apply them to common content-tagging and content-creation workflows. State standards are modeled in Knowledge Graph as two core entities: StandardsFramework and StandardsFrameworkItem. Learn more about these entities in the data reference for Academic Standards. Here is how the standards data is modeled.
Learning Components Dataset Data Model Diagram High Level
SVG

What you’ll do

  • Using standards identifiers to find deeper-level relationships

What you’ll need

  • A Learning Commons Platform account
  • An API key generated in the Learning Commons Platform
  • Your base URL from the Learning Commons Platform
  • Node or Python (optional, for running code examples)

STEP 1: Set up environment variables

  1. Set up your environment variables for your API key and base URL:
# .env

# Knowledge Graph API credentials - get these from the Learning Commons Portal
API_KEY=your_api_key_here
BASE_URL=https://api.learningcommons.org/knowledge-graph/v0

STEP 2: Query for standards data

  1. Use the /standards-frameworks endpoint to get the California math standards framework:
curl -X GET \
  -H "x-api-key: YOUR_API_KEY" \
  "https://api.learningcommons.org/knowledge-graph/v0/standards-frameworks?jurisdiction=California&academicSubject=Mathematics"
The returned data for California math standards framework should look like this:
{
  "caseIdentifierUUID": "c6487102-d7cb-11e8-824f-0242ac160002",
  "name": "California Common Core State Standards - Mathematics",
  "jurisdiction": "California",
  "academicSubject": "Mathematics"
}
  1. Use the /academic-standards endpoint with filters to get middle school standard groupings within the California math standards framework, using the identifier returned by the previous code block. To show specificity, we’re going to look for middle school standards groupings. The standards groupings are useful if you’re looking to get a set of standards that states tend to group by names like clusters, domains, etc.
# Replace YOUR_FRAMEWORK_UUID with the caseIdentifierUUID from the previous step
curl -X GET \
  -H "x-api-key: YOUR_API_KEY" \
  "https://api.learningcommons.org/knowledge-graph/v0/academic-standards?standardsFrameworkCaseIdentifierUUID=YOUR_FRAMEWORK_UUID&normalizedStatementType=Standard%20Grouping&gradeLevel=6&gradeLevel=7&gradeLevel=8"
The returned data for California middle school math standard clusters and domains should look like this:
Some StandardsFrameworkItems won’t have a statementCode, depending on how a given state has published their standards framework.
[
  {
    "caseIdentifierUUID": "5ebeb890-d7cc-11e8-824f-0242ac160002",
    "statementCode": "6.RP.A",
    "description": "Understand ratio concepts and use ratio reasoning to solve problems.",
    "normalizedStatementType": "Standard Grouping",
    "statementType": "Cluster",
    "gradeLevel": ["6"]
  },
  //...
]
  1. Use the /academic-standards endpoint to get individual standards for all of middle school math in California:
# Replace YOUR_FRAMEWORK_UUID with the caseIdentifierUUID from Step 2
curl -X GET \
  -H "x-api-key: YOUR_API_KEY" \
  "https://api.learningcommons.org/knowledge-graph/v0/academic-standards?standardsFrameworkCaseIdentifierUUID=YOUR_FRAMEWORK_UUID&normalizedStatementType=Standard&gradeLevel=6&gradeLevel=7&gradeLevel=8"
If we wanted to, we could also filter on a specific Standard Grouping to specify even further.
The returned data for the standards within cluster 8.G.B should look like this:
[
  {
    "caseIdentifierUUID": "5ec25ed1-d7cc-11e8-824f-0242ac160002",
    "statementCode": "8.EE.B.5",
    "description": "Graph proportional relationships, interpreting the unit rate...",
    "normalizedStatementType": "Standard",
    "gradeLevel": ["8"]
  },
  // ...
]
Try querying additional grades or subjects, swapping in another state, or integrating this data into your content tagging workflow.