{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"b4d90f05-84c2-48dc-adb6-357cee34a2b8","name":"TeamCare APIs","description":"TeamCare offers vendor APIs that allow seamless integration of your dental office data with your website. Leverage our HIPAA-compliant, opt-in APIs to access rich statistical insights generated by your healthcare practice.\n\n## Getting Started\n\nThis step-by-step guide will help you get started with using the APIs to integrate them into your software solution.\n\nThese APIs are designed for consulting firms (aka client aka account aka teamcare-vendor aka agency tenant), which must first register on TeamCare. After registration, they can add associated practices (aka organizations aka practice tenant) under their account. Once set up, the firm can begin using the available API resources listed below.\n\nFor more information about a specific endpoint, click its name to view detailed documentation, including supported query parameters and usage instructions.\n\nFollow Below Steps\n\n- Step 1 : Register your consulting firm on TeamCare\n    \n- Step 2 : Add practices to your consulting firm\n    \n- Step 3 : Get an authorization\n    \n- Step 4 : Fetching and displaying data\n    \n\n# Environments\n\nThe _Environment_ dropdown represents the API environment from which data requests can be made. The API is deployed to the **production** as well as **staging (test)** environment, which points to `https://dev.teamcaredental.com`.\n\nWhen an environment (like \"production\") is selected, all the environment variables defined for that environment are automatically resolved to their corresponding values. For example, a variable like `{teamcare-vendors}` would be cast to production environment.  \ni.e. `{{teamcare-vendors}}`\n\nIf **no environment** is selected, the request will display the raw variable names (e.g., `{teamcare-vendors}`) instead of resolved values. This is standard behavior in tools like Postman.\n\n# **Versioning Strategy**\n\nOur APIs are versioned explicitly using the URL path (e.g., `/v1/`, `/v2/`) to avoid breaking changes. Each major version is treated as a stable interface.\n\n# Output Formats\n\nCurrently, TeamCare APIs support only the JSON format.\n\n# Error Codes\n\n| HTTP Status Code | Error Description |\n| --- | --- |\n| 422 | Unprocessable Entity |\n| 400 | Bad Request |\n| 500 | Internal Server Error |\n| 401 | Unauthorized Error |\n\n# Pagination\n\nWe’ve implemented pagination to ensure consistent responses, even when data changes between requests. To improve reliability and efficiency, we’ve transitioned from page-based pagination to cursor-based pagination. Now, instead of using the `page` parameter, you should use the `after` parameter for **larger datasets** (i.e. appointments, treatments, patietns, ledger transactions and patient referrals), which should contain the ID of the last item from the previous page. This approach offers a more stable way to paginate through dynamic datasets. You can specify the number of **items** to return using a query parameter, with a maximum allowed value of **5000**. For rest we will keep using `page` parameter.\n\n# Filteration\n\nIn the Teamcare APIs, you can filter results using the `q` parameter, which is a special JSON object placed in the request body. For example, if the `Appointment` model includes a `date` attribute and filtering is supported, you can use keys like `date_#{specifier}` within `q`. Supported specifiers include `gt`, `lt`, `gteq`, and `lteq` for numeric or date fields, `in` for array fields and `cont` or `eq` for string fields.\n\n# Authentication\n\nAfter registering your consulting firm and adding clients, we will provide you with authentication keys that include a `client_id` and `client_secret`. These keys will be packaged securely and should not be shared, as they uniquely identify your consulting firm.\n\nOnce you have these credentials, you will need to include them in the authentication request body in raw JSON format. This will grant your consulting firm access along with a JWT-secured authentication token. The token is valid for one hour; once it expires, you will need to regenerate it by making the same request.\n\n# Quickstart\n\nAs mentioned above, once authentication is successful, the response will include a `token` field containing a Bearer Token. You must include this token as a **Bearer Token** in the `Authorization` header of all subsequent requests to access protected resources.\n\n#### Organizations\n\nOrganization represent the list of accessible locations under a specific parent company owned by a dental group. To retrieve this list, you must make the request with a valid authentication token.\n\n#### Locations\n\nEach organization has multiple locations associated with it, which are accessible to the authenticated account.\n\n#### Why support multiple locations per organization?\n\nSometimes a practice owner operates multiple locations under the same practice. To manage this, we treat each location as part of the same organization but store their data separately in our database.  \nIn most cases, an organization has a single location, which is the preferred setup. However, for multi-location practices, an organization can have multiple locations, each with its own distinct set of data.","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"7993244","team":1361685,"collectionId":"b4d90f05-84c2-48dc-adb6-357cee34a2b8","publishedId":"2sB2cVgNKy","public":true,"publicUrl":"https://api.teamcaredental.com","privateUrl":"https://go.postman.co/documentation/7993244-b4d90f05-84c2-48dc-adb6-357cee34a2b8","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"56B3AB"},"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":"56B3AB"}},{"name":"light","logo":null,"colors":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"56B3AB"}}]}},"version":"8.10.1","publishDate":"2025-12-15T19:50:50.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{"title":"","description":""},"logos":{"logoLight":null,"logoDark":null}},"statusCode":200},"environments":[{"name":"Production","id":"f910d4ff-48f8-490d-adee-0ea794ca4706","owner":"13328423","values":[{"key":"velox_secret_key","value":"3bTlbioyFZJLq3Zc/vJmyqmMGZd3jJ1Sl7xAz1nRi0kylSK+w4dL/IxHV0J3e2NvPKtaGrPDpQ4VnJYs","enabled":true,"type":"secret"},{"key":"velox_access_id","value":"AbzBX27hmYCa9GqpVUEeteJhZHrnVOwiCsQw+roMXrue","enabled":true,"type":"default"},{"key":"base_url","value":"https://ds-prod.tx24sevendev.com/v1","enabled":true,"type":"default"},{"key":"teamcare","value":"https://app.teamcaredental.com/api/v1/mobile","enabled":true,"type":"default"},{"key":"dentrix_ascend","value":"https://prod.hs1api.com","enabled":true,"type":"default"},{"key":"dentrix_client_id","value":"b6eUg6jCScWauoV8UAYEp7p6A84xjIxD","enabled":true,"type":"default"},{"key":"dentrix_client_secret","value":"MwtrGnpP1Fj9auTN","enabled":true,"type":"default"},{"key":"teamcare_bahammas","value":"https://app.teamcaredental.com/api/v1/bahammas","enabled":true,"type":"default"},{"key":"teamcare_ai","value":"https://ai.teamcaredental.com","enabled":true,"type":"default"},{"key":"teamcare-prod","value":"https://app.teamcaredental.com","enabled":true,"type":"default"},{"key":"teamcare-vendors","value":"https://app.teamcaredental.com/api/v1/vendors","enabled":true,"type":"default"},{"key":"client_id","value":"0dad71ba0110f6fd166c8ee3cfe840","enabled":true,"type":"secret"},{"key":"client_secret","value":"367ea3002e9bc3b181aabced3386a9af80","enabled":true,"type":"secret"},{"key":"annie_ai","value":"https://api.helloannie.com/v1","enabled":true,"type":"default"},{"key":"teamcare-annie","value":"https://app.teamcaredental.com/api/v1/annie","enabled":true,"type":"default"},{"key":"ai_token","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/20fde4e234da06357bee8c5677dc629729289e39f88ec40d250a24f2446ceb7f","favicon":"https://teamcaredental.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"},{"label":"Production","value":"13328423-f910d4ff-48f8-490d-adee-0ea794ca4706"}],"canonicalUrl":"https://api.teamcaredental.com/view/metadata/2sB2cVgNKy"}