{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"95ea763c-5f06-991b-45be-15c3befa7168","name":"ProctorU API","description":"Hello world! Welcome to ProctorU's API documentation. ProctorU's API allows users to create and modify users and exams as well as schedule and invite users to take those exams. Below you will find all of our API endpoints that provide various functionality. If you need help with anything, please reach out to `implementation@meazurelearning.com`. To get started with ProctorU's API, you will need an API key and an environment URL which you will receive during the implementation process. Happy coding!\n\n# API Key\n\nThe API Key is provided by a member of the implementation team. If you need a key, please reach out to `implementation@meazurelearning.com` for assistance. The key will need to be used in a header called `Authorization-Token`. When sending the key, please make sure it is all lower cased, and that there are no spaces at the beginning or end, or your requests may not work.\n\n# Environment URLs\n\nProctorU has two environments, one for testing and one for production. While you are building your API, please use the testing environment. Once you have finished testing, please use our production URL, `https://api.proctoru.com/api`. If you want to try one of our new features or a bug fix that you have requested, please make sure your environment points to the testing environment.\n\nFor testing, the environment URL is `https://demo.proctoru.com/api`\n\nOnce you are finished testing, we will provide you with your production environment API Key.\n\n# Requests\n\nOnce you have the API key and environment URL, you may begin making requests. Request bodies can be in json or `application/x-www-urlencoded` format. Each request can include an optional `time_sent` parameter in UTC ISO-8601 format `YYYY-MM-DDTHH24:MI:SSZ`\n\n# Response\n\nAll HTTP responses will return with a status code of `200`, and developers should rely on the `response_code` parameter to determine whether there was an error with the call. Each response code is mapped below.\n\n| Response Code | Definition |\n| --- | --- |\n| 1 | Success |\n| 2 | Failure |\n| 3 | Other |\n\nThe corresponding `message` parameter will describe a failed request.\n\n# Error Messages Documentation\n\nIf you are experiencing multiple failed requests or running into confusing error messages and would like troubleshooting help, please click [HERE](https://drive.google.com/file/d/15Spvc0eyoR_pdRO1e8bSjLiywa0AyzMW/view?usp=sharing) to view ProctorU's API Error Messages documentation. In this documentation, you can find the error messages presented to you, the cause of the messages, as well as helpful tips for solving these errors.\n\n# Workflows\n\nThere are three main workflows that institutions and organizations can choose from with the API. Selecting your workflow is as easy as asking the following questions:\n\n**1\\. Does each reservation require a unique password, or can the password be shared amongst other reservations?**\n\nFor example, schools have different passwords for each of their exams, but each exam may have thirty test-takers where all thirty will need to know the one password. This is what ProctorU refers to as a shared password.\n\nOrganizations on the other hand usually have one unique password for every user that is not shared. If you are pre-employment testing, you may have a one-time use password that is unique.\n\n**2\\. Will you be using ProctorU's reservation system or will you be developing your own?**\n\n### Choosing your workflow\n\n- If you are using shared passwords, you want to use the `addProcess` flow.\n    \n- If you are using unique passwords, but you want to use your own scheduling system, you want to use the `addAdhocProcess` flow.\n    \n- If you are using unique passwords, but you want to use our scheduling system, you want to use the `addBlueBirdExam` flow.\n    \n\nEach flow is described in more details below.\n\n<h2>addProcess</h2>\n\nThe \\`addProcess\\` flow is typically used for university exams. With this flow, you send over the user, the exam, and the reservation separately.\n\n**Best for...**\n\n- Universities\n    \n\n<h2>addAdhocProcess</h2>\n\nThe \\`addAdhocProcess\\` flow is typically used for pre-employment testing and certifications. With this flow, the user will select their exam and exam time on your site and then you send over the user and reservation to us at once instead of separately.\n\n**Best for...**\n\n- One-off exams\n    \n- Pre-Employment\n    \n- Certification\n    \n\n<h2>addBlueBirdExam</h2>\n\nThe \\`addBlueBirdExam\\` flow is typically used for one-offs or invite-only exams. With this flow, the organization or institution will create a reservation with an open window. Once the reservation is created, an email will be sent to the test-taker where once they log in, the reservation will be there waiting to be scheduled. the test-taker will then use ProctorU's scheduling system to schedule their exam in the given window. The \\`addBlueBirdExam\\` flow is a good option for integrated platforms that will not surface a scheduling interface in their interface.\n\nThis is a special case in that it can be used both as a unique password or as a shared password if need be.\n\n**Best for...**\n\n- One-off exams\n    \n- Pre-Employment\n    \n- Certification\n    \n\n<h1>Webhooks</h1>\n\nProctorU has a notification system that forwards data to an institution-specified URL based off an event. For example, if a test-taker has finished a reservation, and you want to know the time that it was completed, you may provide us a URL that we will send a POST request to with the event information.\n\nPlease visit [http://webhooks.proctoru.com/](http://webhooks.proctoru.com/) for more information as well as documentation.\n\n<h1>Other notes</h1>\n\nAll dates need to be of UTC ISO-8601 format \\`YYYY-MM-DDTHH24:MI:SSZ\\`\n\nThe `reservation_id` must always be unique. Once you cancel the reservation, the `reservation_id` can no longer be used.\n\nThe `email` and `student_id` for a user is used as the unique identifier for them. Once a user is created, that `email` and `student_id` can no longer be used.\n\nIf you are building out your own scheduling system, you will need to use a count down timer.\n\nProctorU provides the ability for the institution or the test-taker to pay for the exam. With institution pay, a fee that is returned will always be $0.00. With test-taker pay, however, a fee price will be returned. To pay for this fee, the test-taker will need to visit ProctorU's website via the URL that is returned along with the fee. The test-taker will input their credit card information and pay for the exam. If the institution has provided a return URL, the test-taker will be returned to that page once the exam is paid for.\n\nIf you are getting back the incorrect fee, please let us know.\n\n<h1>Contact</h1>\n\nIf you have any questions or need any help, please reach out to \\`[implementation@meazurelearning.com](https://mailto:implementation@meazurelearning.com)\\`","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"15609","collectionId":"95ea763c-5f06-991b-45be-15c3befa7168","publishedId":"6YzvYsJ","public":true,"publicUrl":"https://postman.proctoru.com","privateUrl":"https://go.postman.co/documentation/15609-95ea763c-5f06-991b-45be-15c3befa7168","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"EF5B25"},"documentationLayout":"classic-double-column","customisation":{"metaTags":[{"name":"description","value":""},{"name":"title","value":""}],"appearance":{"default":"light","themes":[{"name":"dark","logo":null,"colors":{"top-bar":"212121","right-sidebar":"303030","highlight":"FF6C37"}},{"name":"light","logo":null,"colors":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"EF5B25"}}]}},"version":"8.10.1","publishDate":"2023-11-29T19:14:57.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{"title":"","description":""},"logos":{"logoLight":null,"logoDark":null}},"statusCode":200},"environments":[],"user":{"authenticated":false,"permissions":{"publish":false}},"run":{"button":{"js":"https://run.pstmn.io/button.js","css":"https://run.pstmn.io/button.css"}},"web":"https://www.getpostman.com/","team":{"logo":"https://res.cloudinary.com/postman/image/upload/t_team_logo_pubdoc/v1/team/1f5738057c3ec472672b8f5164019dbd587cc30f63064b86e5592ee5087d072f","favicon":"https://proctoru.com/favicon.ico"},"isEnvFetchError":false,"languages":"[{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"HttpClient\"},{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"RestSharp\"},{\"key\":\"curl\",\"label\":\"cURL\",\"variant\":\"cURL\"},{\"key\":\"dart\",\"label\":\"Dart\",\"variant\":\"http\"},{\"key\":\"go\",\"label\":\"Go\",\"variant\":\"Native\"},{\"key\":\"http\",\"label\":\"HTTP\",\"variant\":\"HTTP\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"OkHttp\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"Unirest\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"Fetch\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"jQuery\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"XHR\"},{\"key\":\"c\",\"label\":\"C\",\"variant\":\"libcurl\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Axios\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Native\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Request\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Unirest\"},{\"key\":\"objective-c\",\"label\":\"Objective-C\",\"variant\":\"NSURLSession\"},{\"key\":\"ocaml\",\"label\":\"OCaml\",\"variant\":\"Cohttp\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"cURL\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"Guzzle\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"HTTP_Request2\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"pecl_http\"},{\"key\":\"powershell\",\"label\":\"PowerShell\",\"variant\":\"RestMethod\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"http.client\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"Requests\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"httr\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"RCurl\"},{\"key\":\"ruby\",\"label\":\"Ruby\",\"variant\":\"Net::HTTP\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"Httpie\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"wget\"},{\"key\":\"swift\",\"label\":\"Swift\",\"variant\":\"URLSession\"}]","languageSettings":[{"key":"csharp","label":"C#","variant":"HttpClient"},{"key":"csharp","label":"C#","variant":"RestSharp"},{"key":"curl","label":"cURL","variant":"cURL"},{"key":"dart","label":"Dart","variant":"http"},{"key":"go","label":"Go","variant":"Native"},{"key":"http","label":"HTTP","variant":"HTTP"},{"key":"java","label":"Java","variant":"OkHttp"},{"key":"java","label":"Java","variant":"Unirest"},{"key":"javascript","label":"JavaScript","variant":"Fetch"},{"key":"javascript","label":"JavaScript","variant":"jQuery"},{"key":"javascript","label":"JavaScript","variant":"XHR"},{"key":"c","label":"C","variant":"libcurl"},{"key":"nodejs","label":"NodeJs","variant":"Axios"},{"key":"nodejs","label":"NodeJs","variant":"Native"},{"key":"nodejs","label":"NodeJs","variant":"Request"},{"key":"nodejs","label":"NodeJs","variant":"Unirest"},{"key":"objective-c","label":"Objective-C","variant":"NSURLSession"},{"key":"ocaml","label":"OCaml","variant":"Cohttp"},{"key":"php","label":"PHP","variant":"cURL"},{"key":"php","label":"PHP","variant":"Guzzle"},{"key":"php","label":"PHP","variant":"HTTP_Request2"},{"key":"php","label":"PHP","variant":"pecl_http"},{"key":"powershell","label":"PowerShell","variant":"RestMethod"},{"key":"python","label":"Python","variant":"http.client"},{"key":"python","label":"Python","variant":"Requests"},{"key":"r","label":"R","variant":"httr"},{"key":"r","label":"R","variant":"RCurl"},{"key":"ruby","label":"Ruby","variant":"Net::HTTP"},{"key":"shell","label":"Shell","variant":"Httpie"},{"key":"shell","label":"Shell","variant":"wget"},{"key":"swift","label":"Swift","variant":"URLSession"}],"languageOptions":[{"label":"C# - HttpClient","value":"csharp - HttpClient - C#"},{"label":"C# - RestSharp","value":"csharp - RestSharp - C#"},{"label":"cURL - cURL","value":"curl - cURL - cURL"},{"label":"Dart - http","value":"dart - http - Dart"},{"label":"Go - Native","value":"go - Native - Go"},{"label":"HTTP - HTTP","value":"http - HTTP - HTTP"},{"label":"Java - OkHttp","value":"java - OkHttp - Java"},{"label":"Java - Unirest","value":"java - Unirest - Java"},{"label":"JavaScript - Fetch","value":"javascript - Fetch - JavaScript"},{"label":"JavaScript - jQuery","value":"javascript - jQuery - JavaScript"},{"label":"JavaScript - XHR","value":"javascript - XHR - JavaScript"},{"label":"C - libcurl","value":"c - libcurl - C"},{"label":"NodeJs - Axios","value":"nodejs - Axios - NodeJs"},{"label":"NodeJs - Native","value":"nodejs - Native - NodeJs"},{"label":"NodeJs - Request","value":"nodejs - Request - NodeJs"},{"label":"NodeJs - Unirest","value":"nodejs - Unirest - NodeJs"},{"label":"Objective-C - NSURLSession","value":"objective-c - NSURLSession - Objective-C"},{"label":"OCaml - Cohttp","value":"ocaml - Cohttp - OCaml"},{"label":"PHP - cURL","value":"php - cURL - PHP"},{"label":"PHP - Guzzle","value":"php - Guzzle - PHP"},{"label":"PHP - HTTP_Request2","value":"php - HTTP_Request2 - PHP"},{"label":"PHP - pecl_http","value":"php - pecl_http - PHP"},{"label":"PowerShell - RestMethod","value":"powershell - RestMethod - PowerShell"},{"label":"Python - http.client","value":"python - http.client - Python"},{"label":"Python - Requests","value":"python - Requests - Python"},{"label":"R - httr","value":"r - httr - R"},{"label":"R - RCurl","value":"r - RCurl - R"},{"label":"Ruby - Net::HTTP","value":"ruby - Net::HTTP - Ruby"},{"label":"Shell - Httpie","value":"shell - Httpie - Shell"},{"label":"Shell - wget","value":"shell - wget - Shell"},{"label":"Swift - URLSession","value":"swift - URLSession - Swift"}],"layoutOptions":[{"value":"classic-single-column","label":"Single Column"},{"value":"classic-double-column","label":"Double Column"}],"versionOptions":[],"environmentOptions":[{"value":"0","label":"No Environment"}],"canonicalUrl":"https://postman.proctoru.com/view/metadata/6YzvYsJ"}