{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"857492cd-46d0-4ff6-a8ba-f53531c20792","name":"ICANotes API","description":"Document Version 1.1<br/>\nAPI Version 1.0<br/>\nICANotes Version 11.6\n\n\nThe ICANotes API (hereinafter \"The API\" or \"The ICANotes API\") allows you to perform various operations with our API services using a client that supports https via ssl. Please continue reading below for further information.\n\nThe API is built using predictable URLs that make writing application easy. The API follows HTTP rules, enabling a wide range of HTTP clients to interact with the API.\n\nThis entire document is be a public facing URL that is listed in https://chpl.healthit.gov/#/search\n\n\n# Terms and Conditions of Use\n\nPlease read these Terms of Use before using the API hosted on ICANotes. These terms of Use apply to all users of the API. If you do not agree with these Terms of Use, do not use the API. Usage of the API constitutes acceptance of these Terms of Use. \n\n## Purpose \n\nThe purpose of the API is to allow you to access the protected PHI of patients. The documentation is provided to developers as stated in this document with no other warranties, either expressed or implied. ICANotes retains the rights to the intellectual property contained in the API.\n\n## Usage\n\nDevelopers may use the API provided they adhere to the following terms and conditions:\n\n-  Protect the password that you use to access the API and for all activities performed using the password. Do not share the password. Report any breach of security or unauthorized use of the password to ICANotes immediately.\n\n-  Developers are responsible for adhering to all relevant laws, including but not limited to, HIPAA and violation of intellectual property rights. \n\n-  Use the most current version of the API which is available through the ICANotes website. ICANotes reserves the right to monitor usage of the API to protect the integrity, confidentiality and security of PHI. ICANotes may update the API at any time without notification to the developers.\n\n-  Developers may keep copies of the API documentation for their own use. It should not be shared with others. To share the documentation with other developers, developers should provide the link to the API on the ICANotes website.\n\n## License\n\nICANotes grants you a non-exclusive, non-transferable, limited revocable license to access the ICANotes API. You may not, on your own, or through a third party, attempt to derive the source code of the API or modify and create a derivative work based on the components of the API.\n\n## Termination\n\nICANotes may terminate the right to use and access the API if it is determined that usage is in violation of these terms and conditions.\n\n## Amendment\n\nICANotes reserves the right to amend these terms. We will try to provide notice prior to amended terms taking effect. Any amendment will be effective upon posting of the updated terms on the ICANotes API site. \n\n\n\n# Authentication\n\nAll ICANotes API endpoint requests are required to have a:\n\n 1. userKey\n 2. userToken\n\nThis may be obtained by logging into the Patient Portal and requesting the credentials.\n\nThese values are then entered as parameters into the request. For example:\nhttps://r2.icanotes.com/API/EndPoint?userKey={{userKey}}&userSecret={{userSecret}}\n\n\n\n### Points To Note\n\n-   You can manage (regenerate or delete) your active userTokens created at the Patient Portal. \n\n-   userTokens do not get deleted unless you delete them from the Patient Portal page yourself. There is no need to create multiple userTokens to send out requests, but you do have the ability to generate as many as needed.\n\n-   userTokens carry important information about your identity. Please be sure to keep them secure and secret.\n\n\n\n\n\n# HTTP Methods\n\nAt Present, ICANotes API uses the following HTTP Verbs for every action:\n\n 1. GET\n 2. POST\n\n\n\n\n\n# Response\n\nResponses will be in JSON format. \n\n\n\n\n\n\n# Errors\n\nICANotes API uses HTTP status codes to indicate the success or failure of an API call. In general, status codes in the 2xx range means success; 4xx range means there was an error in the provided information, and those in the 5xx range indicates server side errors. Commonly used HTTP status codes are listed below:\n\n\n|Status Code | Descriptions |\n|--|--|\n|2xx| Success  |\n|4xx|Bad request sent to server|\n|5xx |Server Side Error |\n\n\n|Status Code|Description  |\n|--|--|\n|200|Success - The request was successfully completed.  |\n|400|Bad request - The request cannot be performed, usually because of malformed parameter or missing parameter.|\n|401 |Unauthorized (Invalid AuthToken) - The request was rejected because of an invalid AuthToken.|\n|403|Forbidden - The user does not have enough permission, is possibly not an user of the respective organization to access the resource, or the request to the API was sent incorrectly. |\n|429 | Too many requests - Too many requests were made within a certain time frame. |\n|500 | The ICANotes API server encountered an error which prevents it from fulfilling the request. Although this rarely happens, we recommend you to contact us at [ticket@icanotes.com](mailto:ticket@icanotes.com) if you receive this error. Please be sure to include the error message, what endpoint you were trying to access, and any other pertinent data you feel may be relevant. Thank you! |  \n\n\n\n\n\n\n# API Call Limit\n\nICANotes' API at present does not impose an overall API request limit. However this is subject to change at any time asper our API TOS. We do however, have safeguards in place that promote a better quality of service and availability to users. To make sure everyone is serviced in a timely manner, if users attempt to abuse, overload, or spam the endpoints, they will receive a 429 status code. They will then need to wait 15 minutes before attempting to try their access again. \n\n\n# How to Use\n\nIn order to utilize this API there are a few things that must first be configured. Although we have the ability to interact with any client that supports http transactions via ssl, our supported client is Postman. You do not need any third party software for this to work however. \n\n1. You must first download the Postman collection of our API endpoints. \n2. You must obtain the userKey and userSecret by going to the patient portal of ICANotes. \n3. You must then open Postman. \n4. Click on the gear in the upper right of Postman, and choose \"Create an Environment\".\n5. Specify the environment name. \n6. Enter a variable called userKey - this is the userKey obtained from the Patient portal. \n7. Enter a variable called userSecret - this is the userSecret obtained from the Patient portal. \n8. Place a call to the PatientID endpoint. \n9. Take the patientID value that was returned, we then create a variable called patientID. \n10. You are now ready to begin using the API endpoints via Postman.\n\n\n# FAQ\n\n1. **How do I obtain a patient's lab orders?**\n  * In the *Observation* endpoint, you may query for a patient's lab results with their _patientID_. \n\n2. **How do I obtain a patient's UDI information?**\n  * In the *Device* endpoint, the UDI information for the patient's device is returned in the *udi* data object, which is returned with any queries made to the endpoint. \n\n3. **How do I obtain a patient's Assessment and Plan of Treatment information?**\n  * In the *Care Plan* endpoint, if there is assessment and treatment information which was generated for a patient within the scope of the current query, that information will be displayed.\n\n4. **How do I obtain  a patient's name, sex, date of birth, race, ethnicity, and preferred language?**\n\n  * That information can be queried from the  _demographics_ endpoint.\n\n\n\n\n\n","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"2843466","team":132527,"collectionId":"857492cd-46d0-4ff6-a8ba-f53531c20792","publishedId":"RW1bozWC","public":true,"publicUrl":"https://documenter-api.postman.tech/view/2843466/RW1bozWC","privateUrl":"https://go.postman.co/documentation/2843466-857492cd-46d0-4ff6-a8ba-f53531c20792","customColor":{"top-bar":"EEEEEE","right-sidebar":"1B4660","highlight":"78AF2A"},"documentationLayout":"classic-double-column","version":"8.10.1","publishDate":"2018-09-13T21:15:46.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{},"logos":{}},"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/634c842a3b0f6a77e3210a48650537db2053649675f230561f4bcf038eaf31d6","favicon":""},"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://documenter.gw.postman.com/view/metadata/RW1bozWC"}