{"openapi":"3.1.0","info":{"title":"People Pages API","description":"This API gives you access to the public telephone directory of the University of Twente, a.k.a. People Pages. For more information about using this API and/or publishing data, please contact M&C Online Media.","version":"1.0.0","contact":{"name":"M&C Online Media","url":"https://www.utwente.nl/en/service-portal/services/mc/","email":"onlinemedia-mc@utwente.nl"}},"servers":[{"url":"https://people.utwente.nl/peoplepagesopenapi/","description":"People Pages API"}],"paths":{"/contacts":{"parameters":[{"in":"query","name":"query","description":"Search full text.\n","schema":{"type":"string"}},{"in":"query","name":"buildingId","description":"Filter by building ID.\n\nUse comma separated list for multiple buildings (OR filter).\n","schema":{"type":"array","items":{"type":"string"}}},{"in":"query","name":"mail","description":"Filter by email address.\n\nOnly the primary UT email address.\n","schema":{"type":"string"}},{"in":"query","name":"name","description":"Filter by name.\n\nUse spaces to search for multiple terms (AND filter).\n\nMay contain wildcards, e.g. `*kamp*`.\n","schema":{"type":"string"}},{"in":"query","name":"organizationId","description":"Filter by organization ID (department or section).\n\nUse comma seperated list for multiple organizational units (OR filter).\n","schema":{"type":"array","items":{"type":"string"}}},{"in":"query","name":"phone","description":"Filter by phone number.\n\nMatches complete numbers `+31534891234` or extensions `1234`.\n","schema":{"type":"string"}},{"in":"query","name":"affiliation","description":"Filter by type of affiliation/relationship.\n\nUse comma seperated list for multiple types (OR filter).\n\nUse `wp` for faculty staff, `professor` for faculty professor, `obp` for supporting staff and `misc` for others (including general numbers for secretariat, servicedesks, etc.)\n","schema":{"type":"array","items":{"type":"string","enum":["wp","professor","obp","misc"]}}},{"in":"query","name":"order","description":"The field(s) to sort on.\n\nUse comma separated list or multiple order parameters to specify subsequent ordering.\n","schema":{"type":"array","default":"relevancy","items":{"type":"string","enum":["displayName_asc","displayName_desc","location_asc","location_desc","organization_asc","organization_desc"]}}},{"$ref":"#/components/parameters/pageSizeWithDefault"},{"$ref":"#/components/parameters/pageStart"},{"$ref":"#/components/parameters/lang"}],"get":{"summary":"Get a list of all contacts: persons and business contacts like secretariat or servicedesk.","description":"You can perform full text search using the 'query' parameter and/or use specific filters 'name', 'buildingId' and 'organziationId'.\n\nExample 1. Find contacts using full text search:<br>\n[https://people.utwente.nl/peoplepagesopenapi/contacts?query=ict+serv](https://people.utwente.nl/peoplepagesopenapi/contacts?query=ict+serv)\n\nExample 2. List staff from faculty \"TNW\" within building \"Carré\":<br>\n[https://people.utwente.nl/peoplepagesopenapi/contacts?organizationId=TNW&buildingId=CR&affiliation=wp%2cobp&pageSize=1000](https://people.utwente.nl/peoplepagesopenapi/contacts?organizationId=TNW&buildingId=CR&affiliation=wp%2cobp&pageSize=1000)\n","responses":{"200":{"description":"A list of contacts","content":{"application/json":{"schema":{"$ref":"#/components/schemas/contacts_get_response"}}}},"401":{"$ref":"#/components/responses/default401"},"403":{"$ref":"#/components/responses/default403"}}}},"/contacts/{contactId}":{"parameters":[{"$ref":"#/components/parameters/contactId"},{"$ref":"#/components/parameters/lang"}],"get":{"summary":"Get a single contact.","description":"Returns HTTP error code **404** if the specified contact ID does not exist.","responses":{"200":{"description":"A list of contacts","content":{"application/json":{"schema":{"$ref":"#/components/schemas/contacts_get_response"}}}},"401":{"$ref":"#/components/responses/default401"},"403":{"$ref":"#/components/responses/default403"},"404":{"$ref":"#/components/responses/default404"}}}},"/buildings":{"parameters":[{"in":"query","name":"name","description":"Filter by name.\n\nMay contain wildcards, e.g. `horst*`.\n","schema":{"type":"string"}},{"in":"query","name":"order","description":"The field to sort on.","schema":{"type":"string","default":"buildingId_asc","enum":["buildingId_asc","buildingId_desc","name_asc","name_desc"]}},{"$ref":"#/components/parameters/pageSize"},{"$ref":"#/components/parameters/pageStart"}],"get":{"summary":"Get a list of all buildings.","description":"Example 1. Get all buildings:<br>\n[https://people.utwente.nl/peoplepagesopenapi/buildings](https://people.utwente.nl/peoplepagesopenapi/buildings)\n\nExample 2. Find all buildings starting with \"Hor\", restrict to max 10 results:<br>\n[https://people.utwente.nl/peoplepagesopenapi/buildings?name=hor*&order=name_asc&pageSize=10](https://people.utwente.nl/peoplepagesopenapi/buildings?name=hor*&order=name_asc&pageSize=10)\n","responses":{"200":{"description":"A list of buildings","content":{"application/json":{"schema":{"$ref":"#/components/schemas/buildings_get_response"}}}},"401":{"$ref":"#/components/responses/default401"},"403":{"$ref":"#/components/responses/default403"}}}},"/buildings/{buildingId}":{"parameters":[{"$ref":"#/components/parameters/buildingId"},{"$ref":"#/components/parameters/lang"}],"get":{"summary":"Get a single building.","description":"Returns HTTP error code **404** if the specified building ID does not exist.","responses":{"200":{"description":"A list of buildings","content":{"application/json":{"schema":{"$ref":"#/components/schemas/buildings_get_response"}}}},"401":{"$ref":"#/components/responses/default401"},"403":{"$ref":"#/components/responses/default403"},"404":{"$ref":"#/components/responses/default404"}}}},"/organizations":{"parameters":[{"in":"query","name":"name","description":"Filter by name\n\nMay contain wildcards, e.g. `*technology*`\n","schema":{"type":"string"}},{"in":"query","name":"type","description":"Filter by type","schema":{"type":"array","items":{"type":"string","enum":["department","cluster","section"]}}},{"in":"query","name":"parentId","description":"Filter by parent organization to get a list of all sections of a department.","schema":{"type":"string"}},{"in":"query","name":"order","description":"The field to sort on.","schema":{"type":"string","default":"organizationId_asc","enum":["organizationId_asc","organizationId_desc","name_asc","name_desc","type_asc","type_desc"]}},{"$ref":"#/components/parameters/pageSize"},{"$ref":"#/components/parameters/pageStart"}],"get":{"summary":"Get a list of all organizational units (departments, clusters and sections).","description":"Example 1. Get all organizations:<br>\n[https://people.utwente.nl/peoplepagesopenapi/organizations](https://people.utwente.nl/peoplepagesopenapi/organizations)\n\nExample 2. Get all departments, ordered by name:<br>\n[https://people.utwente.nl/peoplepagesopenapi/organizations?type=department&order=name_asc](https://people.utwente.nl/peoplepagesopenapi/organizations?type=department&order=name_asc)\n\nExample 3. Get clusters and sections 11 - 20 of \"TNW\":<br>\n[https://people.utwente.nl/peoplepagesopenapi/organizations?parentId=TNW&pageSize=10&pageStart=10](https://people.utwente.nl/peoplepagesopenapi/organizations?parentId=TNW&pageSize=10&pageStart=10)\n","responses":{"200":{"description":"A list of organizations","content":{"application/json":{"schema":{"$ref":"#/components/schemas/organizations_get_response"}}}},"401":{"$ref":"#/components/responses/default401"},"403":{"$ref":"#/components/responses/default403"}}}},"/organizations/{organizationId}":{"parameters":[{"$ref":"#/components/parameters/organizationId"},{"$ref":"#/components/parameters/lang"}],"get":{"summary":"Get a single organizational unit (department, cluster or section).","description":"Returns HTTP error code **404** if the specified organization ID does not exist.","responses":{"200":{"description":"A list of organizations","content":{"application/json":{"schema":{"$ref":"#/components/schemas/organizations_get_response"}}}},"401":{"$ref":"#/components/responses/default401"},"403":{"$ref":"#/components/responses/default403"},"404":{"$ref":"#/components/responses/default404"}}}}},"components":{"responses":{"default400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/defaulterror"}}},"description":"Bad request"},"default401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/defaulterror"}}},"description":"Authentication is required"},"default403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/defaulterror"}}},"description":"Access to this resource has been denied"},"default404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/defaulterror"}}},"description":"The requested resource does not exist"},"default405":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/defaulterror"}}},"description":"The requested method is not supported for this resource"},"default409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/defaulterror"}}},"description":"A conflict happened when modifying this resource"},"default412":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/defaulterror"}}},"description":"The resource has been modified by another user"},"default500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/defaulterror"}}},"description":"An internal error has occurred"},"default503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/defaulterror"}}},"description":"Service not available"}},"schemas":{"defaulterror":{"properties":{"status":{"type":"number"},"code":{"type":"string"},"error":{"type":"string"}},"required":["status","error"],"type":"object"},"contact":{"type":"object","additionalProperties":false,"required":["contactId","name","displayName","profileUrl"],"properties":{"contactId":{"description":"Contact ID.","example":"u.twente","type":"string"},"name":{"description":"Full composite name, including titles.","example":"ir. U. van Twente MSc","type":"string"},"displayName":{"description":"Sortable display name.","example":"Twente, U. van","type":"string"},"givenName":{"description":"First name of this person.","type":"string"},"jobtitle":{"description":"Fucntion title of this person (language specific).","type":"string"},"mail":{"description":"Email address.","type":"string","format":"email"},"phoneWork":{"description":"Work phone number.","type":"string"},"phoneMobile":{"description":"Mobile phone number.","type":"string"},"phoneAssistant":{"description":"Phone number of assistant.","type":"string"},"phoneIfNoAnswer":{"description":"Alternative phone number if no response.","type":"string"},"profileUrl":{"description":"URL to the profile page (language specific).","type":"string","format":"uri"},"researchUrl":{"description":"URL to the research page.","type":"string","format":"uri"},"googleScholarUrl":{"description":"URL to the Google Scholar page.","type":"string","format":"uri"},"researchGateUrl":{"description":"URL to the ResearchGate page.","type":"string","format":"uri"},"pictureUrl":{"description":"URL to the profile picture.\n\nPictures are subject to privacy settings and may not be cached.\n","type":"string","format":"uri"},"affiliations":{"description":"Affiliation(s) for this person.\n\nPossible values are `wp` for faculty staff, `professor` for faculty professor, `obp` for supporting staff and `misc` for others (including general numbers for secretariat, servicedesks, etc.).\n","type":"string"},"locations":{"description":"Visiting locations (on campus).\n\nContact Location Schema.\n","type":"array","items":{"type":"object","additionalProperties":false,"required":["location"],"properties":{"location":{"description":"Description of the location.","example":"Spiegel 701","type":"string"},"buildingId":{"description":"Building ID (if applicable).","example":"SP","type":"string"},"latitude":{"description":"The latitude of the main entrance of the building.","example":52.23979,"type":"number"},"longitude":{"description":"The longitude of the main entrance of the building.","example":6.850018,"type":"number"}}}},"organizations":{"description":"Organizations this person is working for.\n\nContact Organization Schema.\n","type":"array","items":{"type":"object","additionalProperties":false,"required":["organizationId","department"],"properties":{"organizationId":{"description":"Organization ID.","example":"TNW-EDU-BMT","type":"string"},"department":{"description":"Department (i.e. faculty or service department)","example":"TNW","type":"string"},"cluster":{"description":"Cluster within department","example":"EDU","type":"string"},"section":{"description":"Section within department or cluster.","example":"BMT","type":"string"}}}}}},"contacts_get_response":{"type":"object","additionalProperties":false,"required":["found","data"],"properties":{"found":{"description":"The number of contacts found.","type":"integer"},"data":{"description":"Contact schema","type":"array","items":{"$ref":"#/components/schemas/contact"}},"pageSize":{"description":"The maximum number of results.","type":"integer"},"pageStart":{"description":"The row to start from (0 index based - i.e. 0 is the first row).","type":"integer"}}},"building":{"type":"object","additionalProperties":false,"required":["buildingId","name"],"properties":{"buildingId":{"description":"Building ID.","example":"SP","type":"string"},"name":{"description":"The name of the building.","example":"Spiegel","type":"string"},"latitude":{"description":"The latitude of the main entrance of the building.","example":52.23979,"type":"number"},"longitude":{"description":"The longitude of the main entrance of the building.","example":6.850018,"type":"number"}}},"buildings_get_response":{"type":"object","additionalProperties":false,"required":["found","data"],"properties":{"found":{"description":"The number of buildings found.","type":"integer"},"data":{"description":"Building schema","type":"array","items":{"$ref":"#/components/schemas/building"}},"pageSize":{"description":"The maximum number of results.","type":"integer"},"pageStart":{"description":"The row to start from (0 index based - i.e. 0 is the first row).","type":"integer"}}},"organization":{"type":"object","additionalProperties":false,"required":["organizationId","name","type"],"properties":{"organizationId":{"description":"Organization ID.","example":"TNW-EDU-BMT","type":"string"},"name":{"description":"The name of the organizational unit.","example":"Biomedical Technology","type":"string"},"type":{"description":"The type of this organization unit.","type":"string","enum":["department","cluster","section"]},"parentId":{"description":"The parent of this organization unit.","example":"TNW-EDU","type":"string"}}},"organizations_get_response":{"type":"object","additionalProperties":false,"required":["found","data"],"properties":{"found":{"description":"The number of organizations found.","type":"integer"},"data":{"description":"Organization schema","type":"array","items":{"$ref":"#/components/schemas/organization"}},"pageSize":{"description":"The maximum number of results.","type":"integer"},"pageStart":{"description":"The row to start from (0 index based - i.e. 0 is the first row).","type":"integer"}}}},"parameters":{"contactId":{"in":"path","name":"contactId","description":"Contact ID.","required":true,"schema":{"$ref":"#/components/schemas/contact/properties/contactId"}},"buildingId":{"in":"path","name":"buildingId","description":"Building ID.","required":true,"schema":{"$ref":"#/components/schemas/building/properties/buildingId"}},"organizationId":{"in":"path","name":"organizationId","description":"Organzation ID.","required":true,"schema":{"$ref":"#/components/schemas/organization/properties/organizationId"}},"pageSize":{"in":"query","name":"pageSize","description":"The maximum number of results.\n\nIf not given, return all results.\n","schema":{"type":"integer"}},"pageSizeWithDefault":{"in":"query","name":"pageSize","description":"The maximum number of results.","schema":{"type":"integer","default":20}},"pageStart":{"in":"query","name":"pageStart","description":"The row to start from (0 index based - i.e. 0 is the first row).","schema":{"type":"integer","default":0}},"lang":{"in":"query","name":"lang","description":"The language code to return results in, defaults to the default language of the domain (i.e. `en` for people.utwente.nl and `nl` for personen.utwente.nl).","example":"en","schema":{"type":"string"}}},"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"Hash"}}},"security":[{"bearerAuth":[]}]}
