# TeamCare APIs - [TeamCare Vendor API: Dental Data Integration](https://docs.teamcaredental.com/index.md): TeamCare offers HIPAA-compliant vendor APIs for consulting firms to integrate dental practice data, statistics, and insights into their software. - [Get Started with the TeamCare Vendor API](https://docs.teamcaredental.com/quickstart.md): Learn how to authenticate and make your first TeamCare API request in four steps: register, generate keys, get a token, and query data. - [Authenticate with the TeamCare Vendor API](https://docs.teamcaredental.com/authentication.md): Generate your TeamCare API keys from the dashboard, exchange them for a JWT Bearer Token, and include it on every protected API request. - [API Environments: Production and Staging](https://docs.teamcaredental.com/concepts/environments.md): TeamCare APIs run in production and staging environments. Use staging at staging.teamcaredental.com for testing before going live. - [API Versioning Strategy for TeamCare](https://docs.teamcaredental.com/concepts/versioning.md): TeamCare APIs use explicit URL path versioning (/v1/, /v2/) so each major version is a stable, independent interface with no silent breaking changes. - [Paginating TeamCare API Responses](https://docs.teamcaredental.com/concepts/pagination.md): TeamCare uses cursor-based pagination (after parameter) for large datasets and page-based pagination for smaller ones. Max page size is 5000 items. - [Filtering Results in TeamCare API Requests](https://docs.teamcaredental.com/concepts/filtering.md): Use the q parameter (a JSON object) in the request body to filter TeamCare API results by date ranges, string values, or array membership. - [Rate Limits and Retry Handling for Vendors](https://docs.teamcaredental.com/concepts/rate-limiting.md): TeamCare enforces per-location rate limits of 15 requests/minute and 10 token requests/minute per IP. Learn how to handle 429 responses correctly. - [API Error Codes and Troubleshooting Guide](https://docs.teamcaredental.com/concepts/errors.md): TeamCare APIs return standard HTTP error codes. Learn what 400, 401, 422, 429, and 500 responses mean and how to handle them in your integration. - [Organizations: Dental Groups in TeamCare](https://docs.teamcaredental.com/resources/organizations.md): An Organization in TeamCare represents a dental group (practice owner). Each organization can have one or more locations, each with independent data. - [Locations: Practice Sites Within an Organization](https://docs.teamcaredental.com/resources/locations.md): Locations are the individual practice sites under an Organization. Each location has its own independent dataset for patients, appointments, and treatments. - [TeamCare Vendor API Reference Overview](https://docs.teamcaredental.com/api-reference/introduction.md): Base URLs, authentication, versioning, output format, and conventions for the TeamCare Vendor API. All endpoints return JSON and require a Bearer token. - [POST /api/v1/vendors/auth/token](https://docs.teamcaredental.com/api-reference/auth/token.md): Exchange your client_id and client_secret for a JWT Bearer Token valid for 6 hours. Rate limited to 10 requests/minute per IP address. - [GET /api/v1/vendors/organizations](https://docs.teamcaredental.com/api-reference/organizations/list.md): Returns all organizations (dental groups) accessible to your vendor account. Requires a valid Bearer Token in the Authorization header. - [GET /api/v1/vendors/organizations/:id/locations](https://docs.teamcaredental.com/api-reference/locations/list.md): Returns all locations under a specific organization accessible to your vendor account. Each location has its own independent data and rate limit budget. - [GET /api/v1/vendors/locations/:id/patients](https://docs.teamcaredental.com/api-reference/patients/list.md): Returns patients for a specific location. Uses cursor-based pagination with the after parameter. Supports filtering via the q JSON body parameter. - [GET /api/v1/vendors/locations/:id/patient-referrals](https://docs.teamcaredental.com/api-reference/patients/referrals.md): Returns patient referral records for a location. Uses cursor-based pagination with the after parameter and supports date-range filtering. - [GET /api/v1/vendors/locations/:id/appointments](https://docs.teamcaredental.com/api-reference/appointments/list.md): Returns appointments for a location with cursor-based pagination. Filter by date range using the q parameter with date_gteq and date_lteq specifiers. - [GET /api/v1/vendors/locations/:id/treatments](https://docs.teamcaredental.com/api-reference/treatments/list.md): Returns treatment records for a location. Uses cursor-based pagination. Filter by date or other attributes using the q JSON body parameter. - [GET /api/v1/vendors/locations/:id/ledger-transactions](https://docs.teamcaredental.com/api-reference/ledger/transactions.md): Returns ledger (financial) transaction records for a location. Uses cursor-based pagination with the after parameter and supports date filtering. - [GET /api/v1/vendors/locations/:id/employees](https://docs.teamcaredental.com/api-reference/employees/list.md): Returns employees for a specific location. Filter by role (doctor, hygienist, specialist) or retrieve only providers using the q body parameter. - [GET /perio_charts/:perio_chart_id/perio_measurements](https://docs.teamcaredental.com/api-reference/perio-charts/measurements.md): Retrieves perio measurements for a specific perio chart. Supports delta syncing via q[fetch_modified_since] and cursor-based pagination. - [POST /api/v1/vendors/dashboard/leaderboards](https://docs.teamcaredental.com/api-reference/dashboard/leaderboards.md): Returns an iframe URL for the TeamCare leaderboards dashboard. Specify the type: doctors, hygiene, front_desk, or reactivation. - [GET /api/v1/vendors/locations/:id/scheduling_leads](https://docs.teamcaredental.com/api-reference/scheduling-leads/list.md): Returns scheduling leads for a location with cursor-based pagination. Use q[fetch_modified_since] to capture delta changes since a given UTC datetime. - [GET /api/v1/vendors/locations/:id/appointment_types](https://docs.teamcaredental.com/api-reference/appointments/types.md): Returns the list of appointment types configured for a location. Supports cursor-based pagination with the after and items query parameters. - [GET /api/v1/vendors/locations/:id/current/stats](https://docs.teamcaredental.com/api-reference/stats/current.md): Returns current practice statistics for a location: reactivation metrics, accounts receivable breakdown, and average production per patient. - [GET /api/v1/vendors/locations/:id/daily/schedule_stats](https://docs.teamcaredental.com/api-reference/stats/daily-schedule-stats.md): Returns daily schedule capacity, fill rate, and availability for a location on a given date. Filter by appointment type using q[appointment_type_id_eq]. - [GET /api/v1/vendors/locations/:id/monthly/stats](https://docs.teamcaredental.com/api-reference/stats/monthly-stats.md): Returns monthly goals and KPIs for a location. Include daily_goals=true for day-level breakdowns. Supports delta syncing via q[fetch_modified_since]. - [GET /api/v1/vendors/locations/:id/monthly/schedule_stats](https://docs.teamcaredental.com/api-reference/stats/monthly-schedule-stats.md): Returns monthly schedule capacity, fill rate, and availability for a location. Filter by appointment type using q[appointment_type_id_eq].