{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"7d54c006-ab1f-418c-8572-ae3e40ded1ca","name":"AssessFirst API Documentation [Deprecated]","description":"Welcome to the [AssessFirst](https://www.assessfirst.com/) API documentation. Our **REST API** allows programmatic access to AssessFirst resources (e.g. users, predictive models, groups, webhooks…) so developers can build integrations with 3rd-party and/or internal software systems. Each API resource has available actions that can be performed on it. Supported resources and their endpoints are listed on the left.\n\n##### API tokens\n\nThe first thing you'll need to do is retrieve an **API token**. This token will be used in **all requests** in the AF-Token header. If you are developing an integration for a client you can ask him directly otherwise you can ask the API team at [api@assessfirst.com](https://mailto:api@assessfirst.com). Each API key is associated with a customer. Results returned from various responses are based on the customer datas.\n\n##### Locales and URL\n\nIf you need to change the results language, the **\"locale\"** param is available on every endpoint.\n\nThe URL are :\n\n- Production URL: [https://app.assessfirst.com/betty/{endpoint}](https://app.assessfirst.com/betty/%7Bendpoint%7D)\n    \n- Staging URL: [https://simu.assessfirst.com/betty/{endpoint}](https://simu.assessfirst.com/betty/%7Bendpoint%7D)\n    \n\nIf you have any question or feedback, do not hesitate to send us an email at [api@assessfirst.com](https://mailto:api@assessfirst.com)\n\n##### Security and data protection\n\n- Each endpoint is protected by an API token retrievable by admin user only.\n    \n- HTTPS on our 443 port with TLS 1.2 minimum required\n    \n- Each token is encrypted in our database in AES256 + unique salt\n    \n- Only one token can be generated at the time\n    \n- Rate limit: 100 request per minute. Each request submission is subject to a 60 second cooldown\n    \n- All user datas are protected and accessible with this API token.\n    \n\n# ATS integration use case\n\nHere is an example workflow you can integrate with the endpoints we have available at [this link (first example)](https://whimsical.com/integration-examples-Uze4zEUxZxKVXe2kuFvfrJ)\n\n#### Minimal requierements\n\nAfter several integrations, we notice that several **minimum requirements** need to be integrated to have a great user experience:\n\n- Management of the predictive models (named targets in the doc). It’s the main value of our product, so the recruiters will need to be able select the predictive models through a real time list (with the GET targets) and retrieve the the scores and results and the predict success link with the GET adequacies/{token}\n    \n- A lot of reports are available, the minimum reports to display the 3 most used reports which are: the in depth analysis of the SHAPE, DRIVE and BRAIN on the \"reports\" object of the Get user/{uuid}. Use the web_link not to host the PDF\n    \n- The invitation needs to be sent with the email of the recruiter in charge of the job in the POST send-invitation. Otherwise we can’t match the candidate to the right recruiter nor can we send the invitation in the correct language.\n    \n- The global adequacy score of a candidate to a predictive model needs to be easily reachable in the ATS.\n    \n\n#### Guidelines\n\nFor our common clients to have a seamless experience, we have a few other **guidelines** you can follow:\n\n- We advice you to let the recruiters setup a job with a predictive model, so they don't have to chose one for each candidate.\n    \n- Sometimes the recruiters don't want to have the results of a predictive model, so we advice to add an option not to link a job to one (for example an entry in the list of predictive models to chose).\n    \n- Some predictive models have same names, there aren't solutions for now (we are solving the issue). Just to plan no unicity in the list of predictive models.\n    \n- There are two brain tests in the API, Brain and Adaptive brain. The one to use is the Adaptive brain.\n    \n\n# Iframe integration use case\n\nHere is an example workflow you can integrate with the endpoints we have available at [this link (thrid example)](https://whimsical.com/integration-examples-Uze4zEUxZxKVXe2kuFvfrJ)\n\nIf you want to integrate our tool in your solution, we have a few **guidelines** on the integration:\n\n- If you don’t want the candidates to receive an AssessFirst email, create the user with a POST user and ask the API team in AssessFirst to **deactivate the email invitation.**\n    \n- There are **3 different iframes** for each test, you can receive a webhook each time a candidate finishes a test.\n    \n- If a candidate already has an account, you will receive a message from the POST user asking you to use the iframe GET auth so the candidate can log in AssessFirst and **consents to share its datas.**","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":true,"owner":"6943651","team":279650,"collectionId":"7d54c006-ab1f-418c-8572-ae3e40ded1ca","publishedId":"TVes8SV5","public":true,"publicUrl":"https://documenter-api.postman.tech/view/6943651/TVes8SV5","privateUrl":"https://go.postman.co/documentation/6943651-7d54c006-ab1f-418c-8572-ae3e40ded1ca","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"documentationLayout":"classic-double-column","customisation":{"metaTags":[{"name":"description","value":""},{"name":"title","value":"AssessFirst API v2 (2025)"}],"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":"FF6C37"}}]}},"version":"8.10.1","publishDate":"2025-05-16T13:52:31.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{"title":"AssessFirst API v2 (2025)","description":""},"logos":{"logoLight":null,"logoDark":null}},"statusCode":200},"environments":[{"name":"Prod","id":"ebe6fb8a-97e9-4af1-b094-b848d1569a6a","owner":"3924247","values":[{"key":"domain","value":"https://app.assessfirst.com","enabled":true},{"key":"public_key","value":"bwO9OfYhnbXFNs5e","enabled":true},{"key":"secret_key","value":"OXqlPWYF6BI0CoGab5Yqmk1RksEgT774","enabled":true},{"key":"user_id","value":"59482","enabled":true},{"key":"af-authorization","value":"AF bwO9OfYhnbXFNs5e:NzM3ZTIxYjJlYmM0MWMxNGVlYjliZjg1M2MzOWI3OGJmMDVkM2ZkMA==","enabled":true},{"key":"af-timestamp","value":1603268579182,"enabled":true},{"key":"key_iframe","value":"ODFVKXcExlapQELgDKrS3fUznlLmNPOn","enabled":true},{"key":"email","value":"postman_frd3ubjuywd@yopmail.com","enabled":true},{"key":"firstname","value":"firstname_okqm0c5mol","enabled":true},{"key":"gender","value":"m","enabled":true},{"key":"lastname","value":"lastname_me7dwjv8gi","enabled":true},{"key":"locale","value":"fr-FR","enabled":true},{"key":"token","value":"cDsVyrXKNsNUEaRsCTp9Wazn6xQtK6Znb45T76vlA32GANd6RkMJLlYa8Nd3vFX3pWT7t87dqtHCIhk0O6ViR9ftvk","enabled":true},{"key":"job_profile_ids","value":"12693,11642","enabled":true},{"key":"report","value":1,"enabled":true},{"key":"target","value":"f3986c75ae69422688447bc457d83988","enabled":true},{"key":"ts_bearer","value":"","enabled":true},{"key":"smartrecruiters_bearer","value":"","enabled":true},{"key":"betty_af_token","value":"lylkCuu9FkBVhjFdLZ2yen9e5plZ1FzoeSNeER5w","enabled":true,"type":"default"},{"key":"smartrecruiters_bearer_master","value":"","enabled":true,"type":"any"},{"key":"ts_client_id","value":"a8027ff4-6c8c-43e4-807f-90fb75d2fa24","enabled":true},{"key":"ts_secret","value":"WU/A4N9TCazBnmie1SbN","enabled":true,"type":"default"},{"key":"smartrecruiters_customer_bearer","value":"","enabled":true,"type":"any"}],"published":true}],"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/6174caf4c5d9f05014bf145b7d5b4d5097059c567f32651c37f57a125d354dcf","favicon":"https://res.cloudinary.com/postman/image/upload/v1650965962/team/q3lw9xmhyxmjl3grci5e.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"},{"label":"Prod","value":"3924247-ebe6fb8a-97e9-4af1-b094-b848d1569a6a"}],"canonicalUrl":"https://documenter.gw.postman.com/view/metadata/TVes8SV5"}