Open Education API · Schema
Room
An area within a building where education can take place
CompanyEducationHigher EducationOpen StandardsInteroperabilitySpecificationsNetherlands
Properties
| Name | Type | Description |
|---|---|---|
| roomId | string | Unique id for this room |
| primaryCode | object | The primary human readable identifier for the room. This is often the source identifier as defined by the institution. |
| roomType | object | |
| abbreviation | string | The abbreviation of the name of this room |
| name | array | The name of this room |
| description | array | The description of this room. [The limited implementation of Git Hub Markdown syntax](#tag/formatting-and-displaying-results-from-API) MAY be used for rich text representation. |
| totalSeats | integer | The total number of seats located in the room |
| availableSeats | integer | The total number of available (=non-reserved) seats in the room |
| floor | string | The floor on which this room is located |
| wing | string | The wing in which this room is located |
| geolocation | object | Geolocation of the entrance of this room (WGS84 coordinate reference system) |
| otherCodes | array | An array of additional human readable codes/identifiers for the entity being described. |
| building | object | The building in which the room is located. [`expandable`](#tag/building_model) By default only the `buildingId` (a string) is returned. If the client requested an expansion of `building` the full buil |
| 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 |
| ext | object |
JSON Schema
{
"$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-room-schema.json",
"title": "Room",
"description": "An area within a building where education can take place",
"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/Room",
"type": "object",
"required": [
"roomId",
"roomType",
"name",
"primaryCode"
],
"properties": {
"roomId": {
"type": "string",
"description": "Unique id for this room",
"format": "uuid"
},
"primaryCode": {
"description": "The primary human readable identifier for the room. This is often the source identifier as defined by the institution.",
"$ref": "#/$defs/IdentifierEntry"
},
"roomType": {
"$ref": "#/$defs/roomType"
},
"abbreviation": {
"type": "string",
"description": "The abbreviation of the name of this room",
"maxLength": 256
},
"name": {
"type": "array",
"description": "The name of this room",
"minItems": 1,
"items": {
"$ref": "#/$defs/LanguageTypedString"
}
},
"description": {
"type": "array",
"description": "The description of this room. [The limited implementation of Git Hub Markdown syntax](#tag/formatting-and-displaying-results-from-API) MAY be used for rich text representation.",
"minItems": 1,
"items": {
"$ref": "#/$defs/LanguageTypedString"
}
},
"totalSeats": {
"type": "integer",
"format": "int32",
"description": "The total number of seats located in the room"
},
"availableSeats": {
"type": "integer",
"format": "int32",
"description": "The total number of available (=non-reserved) seats in the room"
},
"floor": {
"type": "string",
"description": "The floor on which this room is located"
},
"wing": {
"type": "string",
"description": "The wing in which this room is located"
},
"geolocation": {
"type": "object",
"description": "Geolocation of the entrance of this room (WGS84 coordinate reference system)",
"required": [
"latitude",
"longitude"
],
"properties": {
"latitude": {
"type": "number",
"format": "double"
},
"longitude": {
"type": "number",
"format": "double"
}
}
},
"otherCodes": {
"type": "array",
"description": "An array of additional human readable codes/identifiers for the entity being described.",
"items": {
"$ref": "#/$defs/IdentifierEntry"
}
},
"building": {
"description": "The building in which the room is located. [`expandable`](#tag/building_model)\nBy default only the `buildingId` (a string) is returned. If the client requested an expansion of `building` the full building object should be returned.\n",
"oneOf": [
{
"$ref": "#/$defs/Identifier",
"title": "buildingId"
},
{
"$ref": "#/$defs/Building",
"title": "Building 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"
}
},
"$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"
}
}
},
"Building": {
"type": "object",
"description": "An object describing a building and the properties of a building.",
"required": [
"buildingId",
"name",
"address",
"primaryCode"
],
"properties": {
"buildingId": {
"type": "string",
"description": "Unique id of this building",
"format": "uuid"
},
"primaryCode": {
"description": "The primary human readable identifier for this building. This is often the source identifier as defined by the institution.",
"$ref": "#/$defs/IdentifierEntry"
},
"abbreviation": {
"type": "string",
"description": "The abbreviation of the name of this building",
"maxLength": 256
},
"name": {
"type": "array",
"description": "The name of this building",
"minItems": 1,
"items": {
"$ref": "#/$defs/LanguageTypedString"
}
},
"description": {
"type": "array",
"description": "The description of this building.",
"minItems": 1,
"items": {
"$ref": "#/$defs/LanguageTypedString"
}
},
"address": {
"$ref": "#/$defs/Address"
},
"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"
}
},
"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"
}
}
},
"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"
]
},
"roomType": {
"type": "string",
"description": "The type of this room\n- general purpose: algemeen\n- lecture room: collegezaal\n- computer room: computerruimte\n- laboratory: laboratorium\n- office: kantoor\n- workspace: werkruimte\n- exam location: tentamenruimte\n- study room: studieruimte\n- examination room: onderzoekskamer\n- conference room: vergaderkamer\n",
"enum": [
"general purpose",
"lecture room",
"computer room",
"laboratory",
"office",
"workspace",
"exam location",
"study room",
"examination room",
"conference room"
]
}
}
}
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.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/open-education-api-room"
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.