Skip to main content
GET
/
learning-components
Learning components by subject
curl --request GET \
  --url https://api.learningcommons.org/knowledge-graph/v0/learning-components \
  --header 'x-api-key: <api-key>'
import requests

url = "https://api.learningcommons.org/knowledge-graph/v0/learning-components"

headers = {"x-api-key": "<api-key>"}

response = requests.get(url, headers=headers)

print(response.text)
const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};

fetch('https://api.learningcommons.org/knowledge-graph/v0/learning-components', options)
  .then(res => res.json())
  .then(res => console.log(res))
  .catch(err => console.error(err));
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://api.learningcommons.org/knowledge-graph/v0/learning-components",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => [
    "x-api-key: <api-key>"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://api.learningcommons.org/knowledge-graph/v0/learning-components"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("x-api-key", "<api-key>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.get("https://api.learningcommons.org/knowledge-graph/v0/learning-components")
  .header("x-api-key", "<api-key>")
  .asString();
require 'uri'
require 'net/http'

url = URI("https://api.learningcommons.org/knowledge-graph/v0/learning-components")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'

response = http.request(request)
puts response.read_body
{
  "data": [
    {
      "identifier": "0013fbee-3e76-500f-9978-42aa1a65f105",
      "description": "Use conversions to solve multi-step real-world problems",
      "academicSubject": "Mathematics",
      "inLanguage": "en-US",
      "dateCreated": "2025-04-01",
      "dateModified": "2025-04-01",
      "author": "Achievement Network",
      "provider": "Learning Commons",
      "license": "https://creativecommons.org/licenses/by/4.0/",
      "attributionStatement": "Knowledge Graph is provided by Learning Commons under the CC BY-4.0 license. Learning Commons received learning components under CC BY-4.0 from Achievement Network."
    },
    {
      "identifier": "457afeb6-6d17-5cff-8679-7b919d744bdd",
      "description": "Print uppercase \"A\"",
      "academicSubject": "English Language Arts",
      "inLanguage": "en-US",
      "dateCreated": "2025-04-01",
      "dateModified": "2025-04-01",
      "author": "Achievement Network",
      "provider": "Learning Commons",
      "license": "https://creativecommons.org/licenses/by/4.0/",
      "attributionStatement": "Knowledge Graph is provided by Learning Commons under the CC BY-4.0 license. Learning Commons received learning components under CC BY-4.0 from Achievement Network."
    }
  ],
  "pagination": {
    "limit": 100,
    "nextCursor": "eyJpZGVudGlmaWVyIjogIjA5OWNlY2NiLTQ3MzItNTZjMC1iZGIxLTYxZjljNmZjYmQ2NSJ9",
    "hasMore": true
  }
}
{
  "error": "ValidationError",
  "message": "Missing required parameter: academicSubject. Example: ?academicSubject=Mathematics or ?academicSubject=English Language Arts",
  "requestId": "req_12345"
}
{
  "error": "ValidationError",
  "message": "Input should be 'English Language Arts', 'Mathematics', 'Science', 'Social Studies', or 'Other'",
  "requestId": "req_12345"
}
{
  "error": "InternalServerError",
  "message": "An unexpected error occurred while retrieving learning components",
  "requestId": "req_12345"
}

Authorizations

x-api-key
string
header
required

API key for authentication. Include your API key in the x-api-key header for all requests.

Query Parameters

academicSubject
enum<string>
required

The academic subject area to retrieve learning components for. Mathematics and English Language Arts have the most comprehensive coverage, with additional subjects being developed. Academic subject area

Available options:
English Language Arts,
Mathematics,
Science,
Social Studies,
Other
limit
integer
default:100

Maximum number of results to return. Default is 100. Maximum allowed is 1000.

Required range: 1 <= x <= 1000
cursor
string

Cursor for pagination. Obtain this value from the 'nextCursor' field in the previous response. Omit for the first page.

Response

Successfully retrieved list of learning components

Generic cursor-based paginated response wrapper

data
object[]
required

Array of result items

pagination
object
required

Cursor-based pagination metadata