Overview


Enriched Document Store API - Curricular Skills Dataset

This page contains the information to use the Enriched Document Store API data along with the curricular skills dataset.

Authentication & Authorization

To access the Enriched Document Store API, clients must obtain an OAuth 2.0 bearer token with the eds scope.

Group Access (Standard Users)

Standard access is managed through Groups, identified by a UUID. The support team must create a Group UUID and attach specific claims to the user's profile to grant access.

Required Claims

Two types of claims are required for proper access:

  1. Region & Access Level Claim: Defines the allowed regions and the permission level (e.g., bulk access).

    • Format: eds:[REGION_LIST]:[GROUP_UUID]:[ACCESS_LEVEL]
    • Example: eds:[US,CA]:d4e8f14b-bbe2-41d5-8db7-7e4cbe5aa13e:bulk
    • Supported Regions: us, uk, ca
  2. Dataset Type Claim: Specifies the dataset the user can access. For Curricular Skills, the type is CS.

    • Format: eds:[GROUP_UUID]:CS
    • Example: eds:d4e8f14b-bbe2-41d5-8db7-7e4cbe5aa13e:CS

Note: Both claims must be present and use the same Group UUID for the API to function correctly.

Permission Levels

The [ACCESS_LEVEL] in the Region & Access Level claim determines the user's capabilities:

  • r → Read-only (GET)
  • rw → Read + Write (GET, POST, PATCH)
  • rwt → Read + Write + Delete (GET, POST, PATCH, DELETE)
  • bulk → Full Access along with access to bulk creation and bulk update endpoints

Admin Access

Admin users have full access to all groups and documents, as well as exclusive access to schema management endpoints.

  • Required Claim: eds:admin

With this claim, the user can:

  • Access documents across all groups.
  • Create, update, and delete schemas via the /schemas endpoints.

Schema Management

The /schemas endpoints allow for the creation, retrieval, update, and deletion of document schemas.

Important: These endpoints are restricted to users with the eds:admin claim. Standard group users cannot modify schemas.


Filtering & Searching

All data endpoints (including /totals and /search) have an extensive filter request property allowing you to filter documents down to specific subsets for analysis.

Filters can be applied to:

  • Core Fields: title, description, child_of. These fields accept a simple list of values (exact match).
  • Metadata Fields: meta.* (e.g., meta.institution, meta.skills, meta.course_code). These fields support both shorthand (list) and verbose (complex object) syntax.

Supported metadata fields include: meta.institution, meta.skills, meta.course_code, meta.cip_code, meta.is_published, and more.

Shorthand Syntax

A simple list of items. This works for both core fields and metadata fields.

{
  "meta.institution": [
    "University of Example",
    "Tech Institute"
  ]
}

These filters match all documents where the institution is either "University of Example" or "Tech Institute".

This shorthand filter syntax is equivalent to the following in the verbose form (for metadata fields):

{
  "meta.institution": {
    "include": [
      "University of Example",
      "Tech Institute"
    ],
    "include_op": "or"
  }
}

Verbose Syntax

An object defining inclusive/exclusive items and optional operators defining how to match those items in a document. This is supported by metadata fields (meta.*).

{
  "meta.skills": {
    "include": [
      "Python",
      "Machine Learning"
    ],
    "include_op": "and",
    "exclude": [
      "Java"
    ],
    "exclude_op": "or"
  }
}

These filters match all documents that mention both "Python" and "Machine Learning" skills but don't mention "Java".

Note: The include_op and exclude_op fields apply to include and exclude fields respectively; they default to or if unspecified.

  • and – match documents that include/exclude all items in the list
  • or – match documents that include/exclude any of the items in the list

Glossary

The metrics available in this API are listed below.

MetricDefinition
documentsThe number of documents that match your filters.

Quotas

By default all clients have rate limiting of 10 requests per second, and their limit can be changed through Auth claims. For more detail on the quota system see our Authentication Quota document.