Open Education API · Schema

Group

A group is simply a collection of persons. Groups can be used to accommodate various usecases. Groups MAY optionally have a relation to an Offering, however the meaning of such relations is left unspecified and is left up to the implementer.

CompanyEducationHigher EducationOpen StandardsInteroperabilitySpecificationsNetherlands

Properties

Name Type Description
groupId string Unique id for this group
primaryCode object The primary human readable identifier for this group. This is often the source identifier as defined by the institution.
groupType object
name array The name of this group
description array The description of this group
startDate string The day on which this group starts being active, RFC3339 (full-date)
endDate string The day on which this group ends being active, RFC3339 (full-date)
personCount number The number of persons that are member of this group
otherCodes array An array of additional human readable codes/identifiers for the entity being described.
consumers array The additional consumer elements that can be provided, see the [documentation on support for specific consumers](https://openonderwijsapi.nl/v5/#/technical/consumers-and-profiles/) for more informatio
organization object The organization that manages this group. [`expandable`](.#tag/organization_model) By default only the `organizationId` (a string) is returned. If the client requested an expansion of `organization` t
ext object
View JSON Schema on GitHub

JSON Schema

open-education-api-group-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/open-education-api/main/json-schema/open-education-api-group-schema.json",
  "title": "Group",
  "description": "A group is simply a collection of persons. Groups can be used to accommodate various usecases.\n\nGroups MAY optionally have a relation to an Offering, however the meaning of such relations is left unspecified and is left up to the implementer.\n",
  "x-generated": "2026-10-09",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/open-education-api-v5-openapi.yml#/components/schemas/Group",
  "type": "object",
  "required": [
    "groupId",
    "groupType",
    "name",
    "primaryCode"
  ],
  "properties": {
    "groupId": {
      "type": "string",
      "description": "Unique id for this group",
      "format": "uuid"
    },
    "primaryCode": {
      "description": "The primary human readable identifier for this group. This is often the source identifier as defined by the institution.",
      "$ref": "#/$defs/IdentifierEntry"
    },
    "groupType": {
      "$ref": "#/$defs/groupType"
    },
    "name": {
      "type": "array",
      "description": "The name of this group",
      "minItems": 1,
      "items": {
        "$ref": "#/$defs/LanguageTypedString"
      }
    },
    "description": {
      "type": "array",
      "description": "The description of this group",
      "minItems": 1,
      "items": {
        "$ref": "#/$defs/LanguageTypedString"
      }
    },
    "startDate": {
      "type": "string",
      "description": "The day on which this group starts being active, RFC3339 (full-date)",
      "format": "date"
    },
    "endDate": {
      "type": "string",
      "description": "The day on which this group ends being active, RFC3339 (full-date)",
      "format": "date"
    },
    "personCount": {
      "type": "number",
      "description": "The number of persons that are member of this group",
      "format": "int32",
      "minimum": 0
    },
    "otherCodes": {
      "type": "array",
      "description": "An array of additional human readable codes/identifiers for the entity being described.",
      "items": {
        "$ref": "#/$defs/IdentifierEntry"
      }
    },
    "consumers": {
      "description": "The additional consumer elements that can be provided, see the [documentation on support for specific consumers](https://openonderwijsapi.nl/v5/#/technical/consumers-and-profiles/) for more information about this mechanism.",
      "type": "array",
      "items": {
        "$ref": "#/$defs/Consumer"
      }
    },
    "organization": {
      "description": "The organization that manages this group. [`expandable`](.#tag/organization_model)\nBy default only the `organizationId` (a string) is returned. If the client requested an expansion of `organization` the full organization object should be returned.\n",
      "oneOf": [
        {
          "$ref": "#/$defs/Identifier",
          "title": "organizationId"
        },
        {
          "$ref": "#/$defs/Organization",
          "title": "Expanded organization"
        }
      ]
    },
    "ext": {
      "$ref": "#/$defs/Ext"
    }
  },
  "$defs": {
    "Address": {
      "type": "object",
      "description": "The full street address",
      "required": [
        "addressType"
      ],
      "properties": {
        "addressType": {
          "$ref": "#/$defs/addressType"
        },
        "street": {
          "type": "string",
          "description": "The street name"
        },
        "streetNumber": {
          "type": "string",
          "description": "The street number"
        },
        "additional": {
          "type": "array",
          "description": "Further details like building name, suite, apartment number, etc.",
          "minItems": 1,
          "items": {
            "$ref": "#/$defs/LanguageTypedString"
          }
        },
        "postalCode": {
          "type": "string",
          "description": "Postal code"
        },
        "city": {
          "type": "string",
          "description": "name of the city / locality"
        },
        "countryCode": {
          "type": "string",
          "description": "the country code according to [iso-3166-1-alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)"
        },
        "geolocation": {
          "type": "object",
          "description": "Geolocation of the entrance of this address (WGS84 coordinate reference system)",
          "required": [
            "latitude",
            "longitude"
          ],
          "properties": {
            "latitude": {
              "type": "number",
              "format": "double"
            },
            "longitude": {
              "type": "number",
              "format": "double"
            }
          }
        },
        "ext": {
          "$ref": "#/$defs/Ext"
        }
      }
    },
    "Consumer": {
      "type": "object",
      "description": "Object for communicating data to a specific consumer (destination). This object has no relationship with the `consumer` query parameter.",
      "required": [
        "consumerKey"
      ],
      "properties": {
        "consumerKey": {
          "description": "The key of the consumer (destination) for which this information is intended. See the [consumer registry](https://openonderwijsapi.nl/v5/#/technical/consumers-and-profiles/) for more information.",
          "type": "string"
        }
      },
      "additionalProperties": true
    },
    "Ext": {
      "type": "object",
      "description": "Object for additional non-standard attributes"
    },
    "Identifier": {
      "type": "string",
      "description": "An identifier of another resource.",
      "format": "uuid"
    },
    "IdentifierEntry": {
      "type": "object",
      "properties": {
        "codeType": {
          "$ref": "#/$defs/codeType"
        },
        "code": {
          "description": "Human readable value for the code/identifier",
          "type": "string"
        }
      },
      "required": [
        "codeType",
        "code"
      ],
      "additionalProperties": false
    },
    "LanguageTypedString": {
      "type": "object",
      "description": "A String with an associated language code.",
      "properties": {
        "language": {
          "description": "The language used in the described entity. A string formatted according to RFC3066.",
          "type": "string",
          "pattern": "^[a-z]{2,4}(-[A-Z][a-z]{3})?(-([A-Z]{2}|[0-9]{3}))?$"
        },
        "value": {
          "description": "String to describe the entity.",
          "type": "string"
        }
      }
    },
    "Organization": {
      "type": "object",
      "description": "A description of a group of people working together to achieve a goal",
      "required": [
        "organizationId",
        "organizationType",
        "name",
        "shortName",
        "primaryCode"
      ],
      "properties": {
        "organizationId": {
          "type": "string",
          "description": "Unique id of this organization",
          "format": "uuid",
          "readOnly": true
        },
        "primaryCode": {
          "description": "The primary human readable identifier for the organization. This is often the source identifier as defined by the institution.",
          "$ref": "#/$defs/IdentifierEntry",
          "readOnly": true
        },
        "organizationType": {
          "$ref": "#/$defs/organizationType"
        },
        "name": {
          "type": "array",
          "description": "The name of the organization",
          "minItems": 1,
          "items": {
            "$ref": "#/$defs/LanguageTypedString"
          }
        },
        "shortName": {
          "type": "string",
          "description": "Short name of the organization",
          "maxLength": 256
        },
        "description": {
          "type": "array",
          "description": "Any general description of the organization should clearly mention the type of higher education organization, especially in the case of a binary system. In Dutch; universiteit (university) or hogeschool (university of applied sciences).",
          "minItems": 1,
          "items": {
            "$ref": "#/$defs/LanguageTypedString"
          }
        },
        "addresses": {
          "type": "array",
          "description": "Addresses of this organization",
          "items": {
            "$ref": "#/$defs/Address"
          }
        },
        "link": {
          "type": "string",
          "description": "URL of the organization's website",
          "format": "uri",
          "maxLength": 2048
        },
        "logo": {
          "type": "string",
          "description": "Logo of this organization",
          "format": "uri",
          "maxLength": 2048
        },
        "otherCodes": {
          "type": "array",
          "description": "An array of additional human readable codes/identifiers for the entity being described.",
          "minItems": 1,
          "items": {
            "$ref": "#/$defs/IdentifierEntry"
          }
        },
        "parent": {
          "description": "The organizational unit which is the parent of this organization. [`expandable`](#tag/organization_model)\nBy default only the `organizationId` (a string) is returned. If the client requested an expansion of `organization` the full organization object should be returned.\n",
          "oneOf": [
            {
              "$ref": "#/$defs/Identifier",
              "title": "organizationId"
            },
            {
              "$ref": "#/$defs/Organization",
              "title": "Organization object"
            }
          ]
        },
        "children": {
          "type": "array",
          "description": "All the organizational units for which this organization is the parent. [`expandable`](#tag/organization_model)\nBy default only the `organizationId` (a string) is returned. If the client requested an expansion of `organization` the full organization object should be returned.\n",
          "items": {
            "oneOf": [
              {
                "$ref": "#/$defs/Identifier",
                "title": "organizationId"
              },
              {
                "$ref": "#/$defs/Organization",
                "title": "Organization object"
              }
            ]
          }
        },
        "consumers": {
          "description": "The additional consumer elements that can be provided, see the [documentation on support for specific consumers](https://openonderwijsapi.nl/v5/#/technical/consumers-and-profiles/) for more information about this mechanism.",
          "type": "array",
          "items": {
            "$ref": "#/$defs/Consumer"
          }
        },
        "ext": {
          "$ref": "#/$defs/Ext"
        }
      }
    },
    "addressType": {
      "type": "string",
      "description": "Address type\n- postal: post\n- visit: bezoek\n- deliveries: bezorg\n- billing: factuur\n- teaching: the address where education takes place\n",
      "enum": [
        "postal",
        "visit",
        "deliveries",
        "billing",
        "teaching"
      ]
    },
    "codeType": {
      "type": "string",
      "description": "The code/identifier type. \n\nThis is an *extensible enumeration*. Use `x-` to prefix custom values\n\nThe predefined values are:\n  - `brin`: The registration number for a Dutch educational institution that is issued by the Dutch Ministry of Education, Culture and Science\n  - `crohoCreboCode`: programs with a CREBO and CROHO number are accredited by the Dutch Ministry of Education, Culture and Science (OCW)\n  - `programCode`: Identifier for the program (collection of courses)\n  - `componentCode`: The code for a component (part of a course)\n  - `offeringCode`: The code to identify a specific offering (program, course or component offering)\n  - `organizationId`: The identifier for the organization\n  - `buildingId`: The number or code to identify a building\n  - `bagId`: The identification of a building as it is known in the Dutch Building Administration (BAG)\n  - `roomCode`: The code for a room\n  - `systemId`: Identifier assigned to an entity in context of a specific system\n  - `productId`: Identifier assigned to a specific product\n  - `nationalIdentityNumber`: Identifier assigned by the governement of the person. e.g. a social security number in the USA\n  - `studentNumber`: Identifier for the student\n  - `studielinkNumber`: Identifier for the person as determined by Studielink\n  - `esi`: European Student Identifier\n  - `userName`: The name of a user\n  - `accountId`: Identifier assigned to a specific account\n  - `emailAdress`: An email address\n  - `groupCode`: The identifier for a group (of persons)\n  - `isbn`: International Standard Book Number that serve as product identifiers for Books\n  - `issn`: International Standard Book Number that serve as product identifiers for periodicals\n  - `orcId`: Open Researcher and Contributor ID\n  - `uuid`: A universally unique identifier\n  - `schacHome`: Home organization using the domain name of the organization\n  - `identifier`: Generic Identifier\n",
      "x-ooapi-extensible-enum": [
        "brin",
        "crohoCreboCode",
        "programCode",
        "componentCode",
        "offeringCode",
        "organizationId",
        "buildingId",
        "bagId",
        "roomCode",
        "systemId",
        "productId",
        "nationalIdentityNumber",
        "studentNumber",
        "studielinkNumber",
        "esi",
        "userName",
        "accountId",
        "emailAdress",
        "groupCode",
        "isbn",
        "issn",
        "orcId",
        "uuid",
        "schacHome",
        "identifier"
      ]
    },
    "groupType": {
      "type": "string",
      "description": "The type of this group\n- learning group: A collection of participants carrying out common learning activities\n- class: A collection of participants carrying out jointly scheduled educational activities\n- team: A collection of members of a team, either students, employees or mixed.\n",
      "enum": [
        "learning group",
        "class",
        "team"
      ]
    },
    "organizationType": {
      "type": "string",
      "description": "The type of this organization. Each OOAPI endpoint should have a single organization with type `root`, describing the root organization.\n- root: the root of this organization, representing the Educational Institution itself\n- institute: instituut\n- department: departement\n- faculty: faculteit\n- branch: vestiging\n- academy: academie\n- school: school\n",
      "enum": [
        "root",
        "institute",
        "department",
        "faculty",
        "branch",
        "academy",
        "school"
      ]
    }
  }
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/open-education-api-group"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.