To ensure optimal performance and stability for all customers, we require a comprehensive testing period before granting production access to our Public API. This process helps us validate your integration patterns and ensures your application can safely and efficiently operate in a production environment.
- Minimum 1,000 API calls across your intended production endpoints
- Test with realistic data volumes that match your expected production usage
- Demonstrate consistent performance across different endpoint types
List the specific endpoints you plan to use in production, including but not limited to:
Core Data Endpoints:
/v1/patients- Patient data management/v1/appointments- Appointment scheduling and retrieval/v1/transactions- Financial transaction data/v1/events- System events and activities/v1/visits- Patient visit records/v1/documents- Document management/v1/providers- Provider information/v1/procedures- Procedure data
Specialized Endpoints:
/v1/patientprocedures- Patient procedure tracking/v1/txcases- Treatment case management/v1/patientrecares- Patient recall management/v1/clinicalnotes- Clinical documentation
Critical: Demonstrate proper pagination implementation using lastModified and lastId parameters for efficient data retrieval. Example Pagination Pattern - Initial Request:
GET /api/v1/patients?filter=lastModified>2024-01-01T00:00:00Z&pageSize=100Subsequent Requests:
GET /api/v1/patients?filter=lastModified>2024-01-01T00:00:00Z&lastId=12345&pageSize=100Pagination is the most commonly misused functionality in the API, and production access will not be granted until correct usage is demonstrated. If a pattern of misuse is identified in production, API access may be temporarily disabled until correct pagination behavior is verified.
Offset-based pagination is discouraged for large datasets and should not be used for ongoing data synchronization.
- Performance: Using
lastIdwith date filters provides the most efficient pagination - Consistency: Ensures you don't miss or duplicate records during data synchronization
- Scalability: Essential for handling large datasets in production
1. Data Synchronization Testing
- Test incremental data retrieval using
lastModifiedfilters - Verify pagination works correctly across large datasets
- Ensure no data gaps or duplicates in paginated results
- For continuous or near real-time synchronization, customers should use the Stream API instead of repeated bulk GET requests.
2. Error Handling
- Test rate limiting responses (429 status codes)
- Handle authentication failures (401/403)
- Manage timeout scenarios (408)
3. Filter Combinations
- Test complex filter combinations
- Validate date range filtering
- Test organization-specific data access
Please provide:
- Integration Architecture: How your system will consume the API
- Expected Call Volume: Daily/hourly API call estimates
- Monitoring Acknowledgement: Client responsibility for call volume and error monitoring
- Peak Usage Patterns: When you expect highest API usage
- Data Requirements: Which endpoints and data fields you need
- Error Handling Strategy: How you'll handle API errors and retries
- Response Times: Most endpoints respond within 200-500ms
- Rate Limits: Vary by endpoint. Responses include a
Rate-Limiting-Remainingheader and, when exceeded, a 429 status code with aRetry-Afterheader. - Pagination: Use
lastIdfor optimal performance with large datasets - Concurrent Requests: Test with your expected concurrent request volume
- Sandbox Testing: Complete your 1,000+ call testing in our sandbox environment
- Documentation Review: Ensure your integration follows our pagination best practices
- Performance Validation: Demonstrate consistent, reliable API usage patterns
- Production Access: Upon successful testing, verification of requests will be made by our API team, we'll provision your production credentials
- API Documentation: Complete endpoint documentation available in our developer portal
- Pagination Guide: Detailed pagination examples and best practices
- Rate Limit Information: Endpoint-specific rate limiting details
- Support Team: Available to assist with integration questions