{"info":{"_postman_id":"ed55231a-5dce-4dfd-aada-c443667671a8","name":"CoderPad Screen API","description":"<html><head></head><body><p>Documentation for the CoderPad Screen API (formerly known as CodinGame for Work)</p>\n<h1 id=\"version\">Version</h1>\n<p>This is the documentation for version v1.1 of the API which is the latest version available.</p>\n<p>API version will be incremented for any breaking changes.</p>\n<p>WARNING: over time, new fields may be added to the responses JSON objects for this version of the API.<br>This does not constitute a breaking change and the version of the API will NOT be incremented.<br>Please, make sure your deserialization code does not break when a new field is added to a response JSON object.</p>\n<h1 id=\"server-selection\">Server selection</h1>\n<p>If you're using our EU server, you'll need to ensure the basepath is set to <code>https://www.codingame.eu</code>. Otherwise, if you're using the US server, your basepath will be <code>https://www.codingame.com</code>.</p>\n<h1 id=\"authentication\">Authentication</h1>\n<p>An API key must be declared in the http headers of each request. The name of the header parameter is <code>API-Key</code>.</p>\n<img src=\"https://content.pstmn.io/0562c095-366c-47a3-ad69-83c199184c2b/aW1hZ2UucG5n\" width=\"918\" height=\"193\">\n\n<p>If the API key is invalid, the request will produce a <strong>401</strong> error.<br>Once you have received your API key, you can pass it in the header of the requests, for instance:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-bash\">curl --header  \"API-Key: your_api_key\" \\\n    --request GET \\\n    https://www.codingame.com/assessment/api/v1.1/campaigns\n\n</code></pre>\n<h2 id=\"api-key-access\">API Key Access</h2>\n<p>To access your CoderPad Screen API key, simply click on <strong>ACCOUNT</strong> in the top navigation menu, and then select <strong>Integration</strong>. You'll then be presented with the following page:</p>\n<img src=\"https://d2h1bfu6zrdxog.cloudfront.net/wp-content/uploads/2022/12/CG_api_key.png\" alt=\"CoderPad\">\n\n<p>Then click <strong>Generate key</strong> to create a key that you can then copy and use in your desired integration.</p>\n<h1 id=\"errors\">Errors</h1>\n<p>The API uses standard HTTP status codes to indicate the success or failure of the API call.<br>The body of the response will be JSON in the following format:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n  \"code\": \"specific code for the error\",\n  \"message\": \"explanatory message\"\n}\n\n</code></pre><p>Error codes can be <code>InvalidTestId</code>, <code>NotFoundTestId</code>, <code>InvalidCampaignId</code>, <code>BadCandidateEmailFormat</code>, <code>BadRecruiterEmailFormat</code>, <code>CandidateNameTooLong</code><br>depending on the request.</p>\n<p>The error <code>code</code> is required while the <code>message</code> is optional.</p>\n<p>Contact Support:<br>Email: <a href=\"https://null\">support@coderpad.io</a></p>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[{"content":"Version","slug":"version"},{"content":"Server selection","slug":"server-selection"},{"content":"Authentication","slug":"authentication"},{"content":"Errors","slug":"errors"}],"owner":"19859046","collectionId":"ed55231a-5dce-4dfd-aada-c443667671a8","publishedId":"2s9XxvTa6m","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"publishDate":"2023-09-27T14:13:13.000Z"},"item":[{"name":"v1.1","item":[{"name":"Tests","item":[{"name":"Get all test sessions status","id":"7e66439f-d61c-4264-8ceb-63d283387f3c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"apikey","apikey":{"value":"{{{{api_key}}}}","key":"<key>"},"isInherited":false},"method":"GET","header":[{"key":"Content-Type","value":"application/json"}],"url":"{{basepath}}/tests?from=&to=&start=&limit=&campaignId&product&candidateEmail","urlObject":{"path":["tests"],"host":["{{basepath}}"],"query":[{"description":{"content":"<p><code>integer &lt;int64&gt;</code> Fetch the test sessions sent after this date (timestamp in ms).</p>\n","type":"text/plain"},"key":"from","value":""},{"description":{"content":"<p><code>integer &lt;int64&gt;</code> Fetch the test sessions sent before this date (timestamp in ms)</p>\n","type":"text/plain"},"key":"to","value":""},{"description":{"content":"<p><code>integer &lt;int32&gt;</code> Index of the first test session to pick (min: 0). Default is <strong>0</strong>. </p>\n","type":"text/plain"},"key":"start","value":""},{"description":{"content":"<p><code>integer &lt;int32&gt;</code> Maximum number of test sessions to fetch (min: 1, max: 50). Default is <strong>50</strong>.</p>\n","type":"text/plain"},"key":"limit","value":""},{"description":{"content":"<p><code>integer &lt;int32&gt;</code> Fetch the test sessions for a specific campaign id.</p>\n","type":"text/plain"},"key":"campaignId","value":null},{"description":{"content":"<p><code>string</code> Fetch the test sessions belonging a specific product. Values: <strong>screen</strong>, <strong>map</strong>.</p>\n","type":"text/plain"},"key":"product","value":null},{"description":{"content":"<p><code>string</code> Fetch the test sessions for a specific candidate email.</p>\n","type":"text/plain"},"key":"candidateEmail","value":null}],"variable":[]}},"response":[{"id":"a548f040-b828-4a52-8352-9ee7feb6f0a3","name":"return the test sessions status","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"/assessment/api/v1.1/tests?from=<long>&to=<long>&start=&limit=","host":["/assessment/api"],"path":["v1.1","tests"],"query":[{"description":"fetch the test sessions sent after this date (timestamp in ms)","key":"from","value":"<long>"},{"description":"fetch the test sessions sent before this date (timestamp in ms)","key":"to","value":"<long>"},{"description":"index of the first test session to pick (min: 0)","key":"start","value":""},{"description":"maximum number of test sessions to fetch (min: 1, max: 50)","key":"limit","value":""}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"tests\": [\n    {\n      \"status\": \"waiting\",\n      \"url\": \"<string>\",\n      \"report\": {\n        \"duration\": \"<long>\",\n        \"warnings\": [\n          \"<string>\",\n          \"<string>\"\n        ],\n        \"points\": \"<integer>\",\n        \"score\": \"<double>\",\n        \"technologies\": {\n          \"addc2\": {\n            \"points\": \"<integer>\",\n            \"score\": \"<double>\",\n            \"skills\": {\n              \"fugiat_2\": {\n                \"points\": \"<integer>\",\n                \"score\": \"<double>\",\n                \"total_points\": \"<integer>\"\n              },\n              \"Ut339\": {\n                \"points\": \"<integer>\",\n                \"score\": \"<double>\",\n                \"total_points\": \"<integer>\"\n              },\n              \"esse_f\": {\n                \"points\": \"<integer>\",\n                \"score\": \"<double>\",\n                \"total_points\": \"<integer>\"\n              }\n            },\n            \"total_points\": \"<integer>\",\n            \"comparative_score\": \"<double>\"\n          },\n          \"proident1b2\": {\n            \"points\": \"<integer>\",\n            \"score\": \"<double>\",\n            \"skills\": {\n              \"uta8\": {\n                \"points\": \"<integer>\",\n                \"score\": \"<double>\",\n                \"total_points\": \"<integer>\"\n              }\n            },\n            \"total_points\": \"<integer>\",\n            \"comparative_score\": \"<double>\"\n          },\n          \"nostrudf6\": {\n            \"points\": \"<integer>\",\n            \"score\": \"<double>\",\n            \"skills\": {\n              \"est8\": {\n                \"points\": \"<integer>\",\n                \"score\": \"<double>\",\n                \"total_points\": \"<integer>\"\n              },\n              \"irure_5_\": {\n                \"points\": \"<integer>\",\n                \"score\": \"<double>\",\n                \"total_points\": \"<integer>\"\n              }\n            },\n            \"total_points\": \"<integer>\",\n            \"comparative_score\": \"<double>\"\n          }\n        },\n        \"total_duration\": \"<long>\",\n        \"total_points\": \"<integer>\",\n        \"comparative_score\": \"<double>\",\n        \"community_stats\": [\n          \"<integer>\",\n          \"<integer>\"\n        ]\n      },\n      \"id\": \"<integer>\",\n      \"id_test\": \"<integer>\",\n      \"campaign_id\": \"<integer>\",\n      \"candidate_name\": \"<string>\",\n      \"candidate_email\": \"<string>\",\n      \"tags\": [\n        \"<string>\",\n        \"<string>\"\n      ],\n      \"send_time\": \"<long>\",\n      \"start_time\": \"<long>\",\n      \"end_time\": \"<long>\",\n      \"test_url\": \"<string>\",\n      \"candidate_language\": \"<string>\",\n      \"questions\": [\n        {\n          \"id\": \"<integer>\",\n          \"last_activity_time\": \"<long>\"\n        },\n        {\n          \"id\": \"<integer>\",\n          \"last_activity_time\": \"<long>\"\n        }\n      ]\n    },\n    {\n      \"status\": \"aborted\",\n      \"url\": \"<string>\",\n      \"report\": {\n        \"duration\": \"<long>\",\n        \"warnings\": [\n          \"<string>\",\n          \"<string>\"\n        ],\n        \"points\": \"<integer>\",\n        \"score\": \"<double>\",\n        \"technologies\": {\n          \"voluptate_2e0\": {\n            \"points\": \"<integer>\",\n            \"score\": \"<double>\",\n            \"skills\": {\n              \"consectetura1_\": {\n                \"points\": \"<integer>\",\n                \"score\": \"<double>\",\n                \"total_points\": \"<integer>\"\n              },\n              \"dolore0b\": {\n                \"points\": \"<integer>\",\n                \"score\": \"<double>\",\n                \"total_points\": \"<integer>\"\n              }\n            },\n            \"total_points\": \"<integer>\",\n            \"comparative_score\": \"<double>\"\n          }\n        },\n        \"total_duration\": \"<long>\",\n        \"total_points\": \"<integer>\",\n        \"comparative_score\": \"<double>\",\n        \"community_stats\": [\n          \"<integer>\",\n          \"<integer>\"\n        ]\n      },\n      \"id\": \"<integer>\",\n      \"id_test\": \"<integer>\",\n      \"campaign_id\": \"<integer>\",\n      \"candidate_name\": \"<string>\",\n      \"candidate_email\": \"<string>\",\n      \"tags\": [\n        \"<string>\",\n        \"<string>\"\n      ],\n      \"send_time\": \"<long>\",\n      \"start_time\": \"<long>\",\n      \"end_time\": \"<long>\",\n      \"test_url\": \"<string>\",\n      \"candidate_language\": \"<string>\",\n      \"questions\": [\n        {\n          \"id\": \"<integer>\",\n          \"last_activity_time\": \"<long>\"\n        },\n        {\n          \"id\": \"<integer>\",\n          \"last_activity_time\": \"<long>\"\n        }\n      ]\n    }\n  ],\n  \"pagination\": {\n    \"start\": \"<integer>\",\n    \"limit\": \"<integer>\",\n    \"total\": \"<integer>\",\n    \"has_more_items\": \"<boolean>\",\n    \"next_start\": \"<integer>\"\n  }\n}"},{"id":"235d423c-046f-44b9-a56f-dbcb0fd7b952","name":"bad request","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"/assessment/api/v1.1/tests?from=<long>&to=<long>&start=&limit=","host":["/assessment/api"],"path":["v1.1","tests"],"query":[{"description":"fetch the test sessions sent after this date (timestamp in ms)","key":"from","value":"<long>"},{"description":"fetch the test sessions sent before this date (timestamp in ms)","key":"to","value":"<long>"},{"description":"index of the first test session to pick (min: 0)","key":"start","value":""},{"description":"maximum number of test sessions to fetch (min: 1, max: 50)","key":"limit","value":""}]}},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"code\": \"<string>\",\n  \"message\": \"<string>\"\n}"}],"_postman_id":"7e66439f-d61c-4264-8ceb-63d283387f3c"},{"name":"Get test session status","id":"226e87af-39f4-44ff-8dd9-0ad3b4e936b9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"apikey","apikey":{"value":"{{{{api_key}}}}","key":"<key>"},"isInherited":false},"method":"GET","header":[{"key":"Content-Type","value":"application/json"}],"url":"{{basepath}}/tests/:id?withCommunityStats","urlObject":{"path":["tests",":id"],"host":["{{basepath}}"],"query":[{"description":{"content":"<p><code>boolean</code> Includes in the result the distribution of the scores expected for a test with this questions. Default is <strong>false</strong>.</p>\n","type":"text/plain"},"key":"withCommunityStats","value":null}],"variable":[{"description":{"content":"<p><code>integer &lt;int32&gt;</code> Id of the test session to be fetched.</p>\n","type":"text/plain"},"type":"any","value":"","key":"id"}]}},"response":[{"id":"c9e56020-ac08-453a-9582-5ef71740af70","name":"Return the test status","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"/assessment/api/v1.1/tests/:id?withCommunityStats=false","host":["/assessment/api"],"path":["v1.1","tests",":id"],"query":[{"key":"withCommunityStats","value":"false"}],"variable":[{"key":"id","value":""}]}},"status":"Return the test status","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": \"completed\",\n    \"url\": \"https://screen.coderpad.io/work/dashboard/campaign/1647306/candidates?selected=13188658&openDetailedReport=false\",\n    \"report\": {\n        \"duration\": 688,\n        \"warnings\": [\n            \"Candidate left the full-screen environment, using another monitor or window.\",\n            \"Several people were present at the same time during the question\"\n        ],\n        \"points\": 530,\n        \"score\": 84.12698412698413,\n        \"technologies\": {\n            \"Java\": {\n                \"points\": 80,\n                \"score\": 44.44444444444444,\n                \"skills\": {\n                    \"Language knowledge\": {\n                        \"points\": 0,\n                        \"score\": 0.0,\n                        \"total_points\": 80\n                    },\n                    \"Problem solving\": {\n                        \"points\": 80,\n                        \"score\": 80.0,\n                        \"total_points\": 100\n                    }\n                },\n                \"total_points\": 180,\n                \"comparative_score\": 33.166666666666664\n            },\n            \"Language independent\": {\n                \"points\": 450,\n                \"score\": 100.0,\n                \"skills\": {\n                    \"Code understanding\": {\n                        \"points\": 0,\n                        \"score\": 0.0,\n                        \"total_points\": 0\n                    },\n                    \"Problem solving\": {\n                        \"points\": 390,\n                        \"score\": 100.0,\n                        \"total_points\": 390\n                    },\n                    \"Reliability\": {\n                        \"points\": 60,\n                        \"score\": 100.0,\n                        \"total_points\": 60\n                    }\n                },\n                \"total_points\": 450,\n                \"comparative_score\": 100.0\n            }\n        },\n        \"total_duration\": 2570,\n        \"total_points\": 630,\n        \"comparative_score\": 53.7063492063492\n    },\n    \"id\": 13188658,\n    \"id_test\": 13188658,\n    \"organization_id\": \"4143ca74-2f0e-4151-90d6-e1428739450b\",\n    \"campaign_id\": 1647306,\n    \"candidate_name\": \"Luke Duncan\",\n    \"candidate_email\": \"luke.will.duncan@gmail.com\",\n    \"send_time\": 1769042802384,\n    \"start_time\": 1769042842216,\n    \"end_time\": 1769043535523,\n    \"test_url\": \"https://screen-ide.coderpad.io/?id=1318865801511b22d3e7b19d0a8be7e464254d73\",\n    \"candidate_language\": \"en\",\n    \"questions\": [\n        {\n            \"id\": 1106735,\n            \"last_activity_time\": 1769043248900\n        }\n    ],\n    \"last_activity_time\": 1769043248900,\n    \"approval_status\": \"TO_REVIEW\"\n}"},{"id":"e0dbb0e9-21bb-4584-ba29-bd4e267b1d55","name":"bad request","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"/assessment/api/v1.1/tests/:id?withCommunityStats=false","host":["/assessment/api"],"path":["v1.1","tests",":id"],"query":[{"key":"withCommunityStats","value":"false"}],"variable":[{"key":"id"}]}},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"code\": \"<string>\",\n  \"message\": \"<string>\"\n}"}],"_postman_id":"226e87af-39f4-44ff-8dd9-0ad3b4e936b9"},{"name":"Delete a test session","id":"912cce13-690f-4506-bc42-580886f6b776","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"apikey","apikey":{"value":"{{{{api_key}}}}","key":"<key>"},"isInherited":false},"method":"DELETE","header":[{"key":"Content-Type","value":"application/json"}],"url":"{{basepath}}/tests/:id","urlObject":{"path":["tests",":id"],"host":["{{basepath}}"],"query":[],"variable":[{"description":{"content":"<p><code>integer &lt;int32&gt;</code> Id of the test session to be deleted.</p>\n","type":"text/plain"},"type":"any","value":"","key":"id"}]}},"response":[{"id":"4a9df827-f096-41d9-af3e-dac5da8346fe","name":"success","originalRequest":{"method":"DELETE","header":[],"url":{"raw":"/assessment/api/v1.1/tests/:id","host":["/assessment/api"],"path":["v1.1","tests",":id"],"variable":[{"key":"id","value":""}]}},"status":"success","code":204,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""},{"id":"33f8f1ba-3f6d-481a-bc54-c2f0c19bcc9b","name":"bad request","originalRequest":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"/assessment/api/v1.1/tests/:id","host":["/assessment/api"],"path":["v1.1","tests",":id"],"variable":[{"key":"id"}]}},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"code\": \"<string>\",\n  \"message\": \"<string>\"\n}"}],"_postman_id":"912cce13-690f-4506-bc42-580886f6b776"},{"name":"Cancel a test invitation","id":"a4b09a6c-9e41-46f2-a333-53def4a6879a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"apikey","apikey":{"value":"{{{{api_key}}}}","key":"<key>"},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"url":"{{basepath}}/tests/:id/actions/cancel","urlObject":{"path":["tests",":id","actions","cancel"],"host":["{{basepath}}"],"query":[],"variable":[{"description":{"content":"<p><code>integer &lt;int32&gt;</code> Id of the test session to be canceled.</p>\n","type":"text/plain"},"type":"any","value":"","key":"id"}]}},"response":[{"id":"06986fdb-638a-416e-b156-157ee6895926","name":"success","originalRequest":{"method":"POST","header":[],"url":{"raw":"/assessment/api/v1.1/tests/:id/actions/cancel","host":["/assessment/api"],"path":["v1.1","tests",":id","actions","cancel"],"variable":[{"key":"id","value":""}]}},"status":"success","code":204,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""},{"id":"b99abc43-7194-43ef-8cd1-73d1b7c06bdd","name":"bad request","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"/assessment/api/v1.1/tests/:id/actions/cancel","host":["/assessment/api"],"path":["v1.1","tests",":id","actions","cancel"],"variable":[{"key":"id"}]}},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"code\": \"<string>\",\n  \"message\": \"<string>\"\n}"}],"_postman_id":"a4b09a6c-9e41-46f2-a333-53def4a6879a"},{"name":"Resend a test invitation","id":"0877a43b-450c-4575-a4df-55cc21cc99dd","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"apikey","apikey":{"value":"{{{{api_key}}}}","key":"<key>"},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"url":"{{basepath}}/tests/:id/actions/resend","urlObject":{"path":["tests",":id","actions","resend"],"host":["{{basepath}}"],"query":[],"variable":[{"description":{"content":"<p><code>integer &lt;int32&gt;</code> Id of the test to be resent.</p>\n","type":"text/plain"},"type":"any","value":"","key":"id"}]}},"response":[{"id":"fb2f894a-c161-4bf1-9ddc-3e919a473f92","name":"success","originalRequest":{"method":"POST","header":[],"url":{"raw":"/assessment/api/v1.1/tests/:id/actions/resend","host":["/assessment/api"],"path":["v1.1","tests",":id","actions","resend"],"variable":[{"key":"id"}]}},"status":"No Content","code":204,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""},{"id":"31532c39-f00e-42c9-8075-5938d2b6e9e0","name":"bad request","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"/assessment/api/v1.1/tests/:id/actions/resend","host":["/assessment/api"],"path":["v1.1","tests",":id","actions","resend"],"variable":[{"key":"id"}]}},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"code\": \"<string>\",\n  \"message\": \"<string>\"\n}"}],"_postman_id":"0877a43b-450c-4575-a4df-55cc21cc99dd"},{"name":"Export a test report","id":"bd5cf78b-70d6-4922-a553-3119c47228d4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"apikey","apikey":{"value":"{{{{api_key}}}}","key":"<key>"},"isInherited":false},"method":"GET","header":[{"key":"Content-Type","value":"application/octet-stream"}],"url":"{{basepath}}/tests/:id/report?report_type&anonymous&include_rank&include_comparative_score","urlObject":{"path":["tests",":id","report"],"host":["{{basepath}}"],"query":[{"description":{"content":"<p><code>enum &lt;string&gt;</code> Type of report to export. A full report includes the candidates' answers to each test question. Options are \"full\" and \"simplified\". Default is <strong>full</strong>.</p>\n","type":"text/plain"},"key":"report_type","value":null},{"description":{"content":"<p><code>boolean</code> If the report should be anonymous or not. Default is <strong>false</strong>.</p>\n","type":"text/plain"},"key":"anonymous","value":null},{"description":{"content":"<p><code>boolean</code> If the rank should be included or not. Default is <strong>true</strong>.</p>\n","type":"text/plain"},"key":"include_rank","value":null},{"description":{"content":"<p><code>boolean</code> If the comparative score should be included or not. Default is <strong>true</strong>.</p>\n","type":"text/plain"},"key":"include_comparative_score","value":null}],"variable":[{"description":{"content":"<p><code>integer &lt;int32&gt;</code> Id of the test session.</p>\n","type":"text/plain"},"type":"any","value":"","key":"id"}]}},"response":[{"id":"d768317e-3316-4106-b69d-a6d4941ca39d","name":"return the pdf report","originalRequest":{"method":"GET","header":[],"url":{"raw":"/assessment/api/v1.1/tests/:id/report?report_type=&anonymous=&include_rank=&include_comparative_score=","host":["/assessment/api"],"path":["v1.1","tests",":id","report"],"query":[{"description":"Type of report to export. A full report includes the candidates' answers to each test question.","key":"report_type","value":""},{"description":"if the report should be anonymous or not","key":"anonymous","value":""},{"description":"if the rank should be included or not","key":"include_rank","value":""},{"description":"if the comparative score should be included or not","key":"include_comparative_score","value":""}],"variable":[{"key":"id"}]}},"status":"OK","code":200,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""},{"id":"4d127915-b951-4c62-85c7-5ebd5d3b8433","name":"bad request","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/octet-stream"}],"url":{"raw":"/assessment/api/v1.1/tests/:id/report?report_type=&anonymous=&include_rank=&include_comparative_score=","host":["/assessment/api"],"path":["v1.1","tests",":id","report"],"query":[{"description":"Type of report to export. A full report includes the candidates' answers to each test question.","key":"report_type","value":""},{"description":"if the report should be anonymous or not","key":"anonymous","value":""},{"description":"if the rank should be included or not","key":"include_rank","value":""},{"description":"if the comparative score should be included or not","key":"include_comparative_score","value":""}],"variable":[{"key":"id"}]}},"status":"Bad Request","code":400,"_postman_previewlanguage":"text","header":[{"key":"Content-Type","value":"application/octet-stream"}],"cookie":[],"responseTime":null,"body":"{\n  \"code\": \"<string>\",\n  \"message\": \"<string>\"\n}"}],"_postman_id":"bd5cf78b-70d6-4922-a553-3119c47228d4"}],"id":"f67dad27-2d84-4e45-9558-26cf52988b4f","_postman_id":"f67dad27-2d84-4e45-9558-26cf52988b4f","description":""},{"name":"Campaigns","item":[{"name":"Get all test campaigns","id":"0f8c843a-a6f2-495f-a96b-6c233c654930","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"apikey","apikey":{"value":"{{{{api_key}}}}","key":"<key>"},"isInherited":false},"method":"GET","header":[{"key":"Content-Type","value":"application/json"}],"url":"{{basepath}}/campaigns","urlObject":{"path":["campaigns"],"host":["{{basepath}}"],"query":[],"variable":[]}},"response":[{"id":"519f6b32-9a1f-4c08-a574-3183c3e8d8c1","name":"Return an array of test campaigns","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"/assessment/api/v1.1/campaigns"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"[\n  {\n    \"id\": \"<integer>\",\n    \"name\": \"<string>\",\n    \"languages\": [\n      \"<string>\",\n      \"<string>\"\n    ],\n    \"pinned\": \"<boolean>\",\n    \"archived\": \"<boolean>\"\n  },\n  {\n    \"id\": \"<integer>\",\n    \"name\": \"<string>\",\n    \"languages\": [\n      \"<string>\",\n      \"<string>\"\n    ],\n    \"pinned\": \"<boolean>\",\n    \"archived\": \"<boolean>\"\n  }\n]"}],"_postman_id":"0f8c843a-a6f2-495f-a96b-6c233c654930"},{"name":"Send an invitation","id":"6559dff7-d578-4903-b0ca-5bd290007a6a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"apikey","apikey":{"value":"{{{{api_key}}}}","key":"<key>"},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"candidate_email\": \"<string>\",\n    \"candidate_name\": \"<string>\",\n    \"recruiter_email\": \"<string>\",\n    \"tags\": \"<string>\",\n    \"send_invitation_email\": \"<boolean>\",\n    \"send_notification_email_on_bounce\": false\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{basepath}}/campaigns/:campaign_id/actions/send","description":"<h3 id=\"request-body-definitions\">Request body definitions</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Name</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>candidate_email</td>\n<td><code>string</code> Email of the candidate, if not provided nothing will be sent to the candidate.</td>\n</tr>\n<tr>\n<td>candidate_name</td>\n<td><code>string</code> Name of the candidate.</td>\n</tr>\n<tr>\n<td>recruiter_email</td>\n<td><code>string</code> email of the recruiter who will receive the test result.</td>\n</tr>\n<tr>\n<td>tags</td>\n<td><code>string</code> Tags for this test separated by comma.</td>\n</tr>\n<tr>\n<td>send_invitation_email</td>\n<td><code>boolean</code> Whether send an invitation email to the candidate or not, must be <strong>false</strong> if 'candidate_email' is null. 'send_invitation_email' is <strong>true</strong> by default when 'candidate_email' is provided, and <strong>false</strong> otherwise.</td>\n</tr>\n<tr>\n<td>send_notification_email_on_bounce</td>\n<td><code>boolean</code> Whether to send an email to the recruiter when the candidate's invitation bounces (for example, when the candidate's email is rejected by the server) or not. Default: <strong>false</strong>.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["campaigns",":campaign_id","actions","send"],"host":["{{basepath}}"],"query":[],"variable":[{"description":{"content":"<p><code>integer &lt;int32&gt;</code> Id of test campaign used for the test session.</p>\n","type":"text/plain"},"type":"any","value":"","key":"campaign_id"}]}},"response":[{"id":"7b1e3ab6-5c68-416e-be0b-95f6d10e2a2a","name":"successful operation","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"candidate_email\": \"<string>\",\n  \"candidate_name\": \"<string>\",\n  \"recruiter_email\": \"<string>\",\n  \"tags\": \"<string>\",\n  \"send_invitation_email\": \"<boolean>\",\n  \"send_notification_email_on_bounce\": false\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":{"raw":"/assessment/api/v1.1/campaigns/:campaign_id/actions/send","host":["/assessment/api"],"path":["v1.1","campaigns",":campaign_id","actions","send"],"variable":[{"key":"campaign_id"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"id\": \"<integer>\",\n  \"test_url\": \"<string>\"\n}"},{"id":"dc43f939-21ba-46f1-a084-930e8d338e06","name":"bad request","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"candidate_email\": \"<string>\",\n  \"candidate_name\": \"<string>\",\n  \"recruiter_email\": \"<string>\",\n  \"tags\": \"<string>\",\n  \"send_invitation_email\": \"<boolean>\",\n  \"send_notification_email_on_bounce\": false\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":{"raw":"/assessment/api/v1.1/campaigns/:campaign_id/actions/send","host":["/assessment/api"],"path":["v1.1","campaigns",":campaign_id","actions","send"],"variable":[{"key":"campaign_id"}]}},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"code\": \"<string>\",\n  \"message\": \"<string>\"\n}"}],"_postman_id":"6559dff7-d578-4903-b0ca-5bd290007a6a"}],"id":"34452db6-391e-4f7b-afac-de2befc1fbe7","_postman_id":"34452db6-391e-4f7b-afac-de2befc1fbe7","description":""},{"name":"Webhook","item":[{"name":"Get webhook configuration","id":"e2f4b9e7-1fc3-4f24-8294-4589f4927fba","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"apikey","apikey":{"value":"{{{{api_key}}}}","key":"<key>"},"isInherited":false},"method":"GET","header":[{"key":"Content-Type","value":"application/json"}],"url":"{{basepath}}/webhook","urlObject":{"path":["webhook"],"host":["{{basepath}}"],"query":[],"variable":[]}},"response":[{"id":"8583f9dc-2156-44b7-b2ba-506fd863de98","name":"success","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"/assessment/api/v1.1/webhook"},"status":"No Content","code":204,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"url\": \"<string>\"\n}"},{"id":"ba83c348-a3a7-47eb-9b62-ded02be0a458","name":"not found","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"/assessment/api/v1.1/webhook"},"status":"Not Found","code":404,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"code\": \"<string>\",\n  \"message\": \"<string>\"\n}"}],"_postman_id":"e2f4b9e7-1fc3-4f24-8294-4589f4927fba"},{"name":"Create webhook","id":"aa44b506-5825-4526-ba9c-311c200f02af","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"apikey","apikey":{"value":"{{{{api_key}}}}","key":"<key>"},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"\"string\"","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{basepath}}/webhook","description":"<p>You can create a webhook or contact us to do so.</p>\n<p>Only one webhook can be configured at a time. A new subscription will replace the existing one.</p>\n<p>The request body is simply the string of the URL to send the data to.</p>\n","urlObject":{"path":["webhook"],"host":["{{basepath}}"],"query":[],"variable":[]}},"response":[{"id":"d87a650f-49c3-41f5-be35-ce54d2119508","name":"success","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"<string>","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"/assessment/api/v1.1/webhook"},"status":"No Content","code":204,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":"{\r\n  \"code\": \"<string>\",\r\n  \"message\": \"<string>\"\r\n}"},{"id":"ffb22d60-e196-45dd-8a91-a6d81f175d2b","name":"bad request","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"<string>","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"/assessment/api/v1.1/webhook"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"code\": \"<string>\",\n  \"message\": \"<string>\"\n}"},{"id":"644db2c1-3303-4d9c-87a2-a941bbb9895e","name":"invalid url","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"<string>","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"/assessment/api/v1.1/webhook"},"status":"Unprocessable Entity (WebDAV) (RFC 4918)","code":422,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"code\": \"<string>\",\n  \"message\": \"<string>\"\n}"}],"_postman_id":"aa44b506-5825-4526-ba9c-311c200f02af"},{"name":"Delete Webhook","id":"23893e85-202b-4c49-be58-8e992bbb9e35","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"apikey","apikey":{"value":"{{{{api_key}}}}","key":"<key>"},"isInherited":false},"method":"DELETE","header":[],"url":"{{basepath}}/webhook","urlObject":{"path":["webhook"],"host":["{{basepath}}"],"query":[],"variable":[]}},"response":[{"id":"a95c412e-2330-4eb0-af6a-1bb8045ade32","name":"success","originalRequest":{"method":"DELETE","header":[],"url":"/assessment/api/v1.1/webhook"},"status":"No Content","code":204,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":"{\r\n  \"code\": \"<string>\",\r\n  \"message\": \"<string>\"\r\n}"}],"_postman_id":"23893e85-202b-4c49-be58-8e992bbb9e35"},{"name":"Webhook callback","id":"475e3bbb-11ae-4b89-b001-4663c1bc513c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"event\": \"test_status_changed\",\r\n    \"data\": {\r\n        \"status\": \"completed\",\r\n        \"url\": \"https://www.codingame.com/work/dashboard/campaign/69/candidates/?selected=42\",\r\n        \"report\": {\r\n            \"duration\": 2009,\r\n            \"warnings\": [\r\n                \"string\"\r\n            ],\r\n            \"points\": 40,\r\n            \"score\": 6.06,\r\n            \"technologies\": {\r\n                \"property1\": {\r\n                    \"points\": 20,\r\n                    \"score\": 6.06,\r\n                    \"skills\": {\r\n                        \"property1\": {\r\n                            \"points\": 20,\r\n                            \"score\": 6.06,\r\n                            \"total_points\": 330\r\n                        },\r\n                        \"property2\": {\r\n                            \"points\": 20,\r\n                            \"score\": 6.06,\r\n                            \"total_points\": 330\r\n                        }\r\n                    },\r\n                    \"total_points\": 330,\r\n                    \"comparative_score\": 13.9\r\n                },\r\n                \"property2\": {\r\n                    \"points\": 20,\r\n                    \"score\": 6.06,\r\n                    \"skills\": {\r\n                        \"property1\": {\r\n                            \"points\": 20,\r\n                            \"score\": 6.06,\r\n                            \"total_points\": 330\r\n                        },\r\n                        \"property2\": {\r\n                            \"points\": 20,\r\n                            \"score\": 6.06,\r\n                            \"total_points\": 330\r\n                        }\r\n                    },\r\n                    \"total_points\": 330,\r\n                    \"comparative_score\": 13.9\r\n                }\r\n            },\r\n            \"total_duration\": 2700,\r\n            \"total_points\": 660,\r\n            \"comparative_score\": 13.9,\r\n            \"community_stats\": [\r\n                0\r\n            ]\r\n        },\r\n        \"id\": 42,\r\n        \"id_test\": 42,\r\n        \"campaign_id\": 42,\r\n        \"candidate_name\": \"Jean Dupont\",\r\n        \"candidate_email\": \"jean.dupont@codingame.com\",\r\n        \"tags\": [\r\n            \"string\"\r\n        ],\r\n        \"send_time\": 0,\r\n        \"start_time\": 0,\r\n        \"end_time\": 0,\r\n        \"test_url\": \"string\",\r\n        \"candidate_language\": \"string\",\r\n        \"questions\": [\r\n            {\r\n                \"id\": 123456,\r\n                \"last_activity_time\": 1685545371216\r\n            }\r\n        ]\r\n    }\r\n}","options":{"raw":{"language":"json"}}},"url":"example.com/v1.1/webhook","description":"<h3 id=\"request-body-schema\">Request body schema</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Name</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>event</td>\n<td><code>string</code> The type of event that triggered the webhook. For example, <code>test_status_changed.</code></td>\n</tr>\n<tr>\n<td>data</td>\n<td><code>object (result)</code> The data relevant to the event; this will be the same object that is returned from the <em>Get test session status</em> endpoint.</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"data-object\"><code>data</code> object</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Name</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>status</td>\n<td><code>enum</code> The test status. Enumerations are: <strong>aborted</strong>, <strong>canceled</strong>, <strong>completed</strong>, <strong>expired</strong>, <strong>in progress</strong>, and <strong>waiting</strong>.</td>\n</tr>\n<tr>\n<td>url</td>\n<td><code>string</code> URL to the test report through the dashboard application.</td>\n</tr>\n<tr>\n<td>report</td>\n<td><code>object (report)</code> The test report.</td>\n</tr>\n<tr>\n<td>id</td>\n<td><code>integer</code> The test id</td>\n</tr>\n<tr>\n<td>id_test</td>\n<td><code>integer</code> The test id (deprecated, see id).</td>\n</tr>\n<tr>\n<td>campaign_id</td>\n<td><code>integer</code> The campaign id</td>\n</tr>\n<tr>\n<td>candidate_name</td>\n<td><code>string</code> The name of the candidate.</td>\n</tr>\n<tr>\n<td>candidate_email</td>\n<td><code>string</code> The email of the candidate.</td>\n</tr>\n<tr>\n<td>tags</td>\n<td><code>Array of strings</code> The tags of the candidate.</td>\n</tr>\n<tr>\n<td>send_time</td>\n<td><code>integer</code> Timestamp (in milliseconds) when the test has been sent.</td>\n</tr>\n<tr>\n<td>start_time</td>\n<td><code>integer</code> Timestamp (in milliseconds) when the test has been started.</td>\n</tr>\n<tr>\n<td>end_time</td>\n<td><code>integer</code> Timestamp (in milliseconds) when the test has been ended.</td>\n</tr>\n<tr>\n<td>test_url</td>\n<td><code>string</code> The url to the test.</td>\n</tr>\n<tr>\n<td>candidate_language</td>\n<td><code>string</code> The language chosen by the candidate to take the test if they started the test, <strong>null</strong> otherwise.</td>\n</tr>\n<tr>\n<td>questions</td>\n<td><code>Array of objects (questions)</code> Questions and their last activity time.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["v1.1","webhook"],"host":["example.com"],"query":[],"variable":[]}},"response":[],"_postman_id":"475e3bbb-11ae-4b89-b001-4663c1bc513c"}],"id":"ce1d2650-54f6-4ece-aacf-394378ee5536","description":"<p>The webbhook endpoint allows you to configure the URL to call after a change of status of a candidate.</p>\n<p>Every time a candidate event is triggered on the CoderPad Screen platform, your webhook is updated with the event type and any necessary details.</p>\n","_postman_id":"ce1d2650-54f6-4ece-aacf-394378ee5536"}],"id":"ad2c7995-2e23-4826-94d6-f6d9dd8d2d5b","_postman_id":"ad2c7995-2e23-4826-94d6-f6d9dd8d2d5b","description":""}],"variable":[{"key":"baseUrl","value":"/assessment/api"},{"key":"yourUrl","value":"example.com"}]}