{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-PublicAPI/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":[]},"type":"markdown"},"seo":{"title":"Production Access Requirements for Public API","llmstxt":{"hide":false,"sections":[{"title":"Table of contents","includeFiles":["**/*"],"excludeFiles":[]}],"excludeFiles":[]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"production-access-requirements-for-public-api","__idx":0},"children":["Production Access Requirements for Public API"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"overview","__idx":1},"children":["Overview"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["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."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"testing-requirements","__idx":2},"children":["Testing Requirements"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"volume-testing","__idx":3},"children":["Volume Testing"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Minimum 1,000 API calls across your intended production endpoints"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Test with realistic data volumes that match your expected production usage"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Demonstrate consistent performance across different endpoint types"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"endpoint-coverage","__idx":4},"children":["Endpoint Coverage"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["List the specific endpoints you plan to use in production, including but not limited to:"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Core Data Endpoints:"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/v1/patients"]}," - Patient data management"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/v1/appointments"]}," - Appointment scheduling and retrieval"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/v1/transactions"]}," - Financial transaction data"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/v1/events"]}," - System events and activities"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/v1/visits"]}," - Patient visit records"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/v1/documents"]}," - Document management"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/v1/providers"]}," - Provider information"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/v1/procedures"]}," - Procedure data"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Specialized Endpoints:"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/v1/patientprocedures"]}," - Patient procedure tracking"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/v1/txcases"]}," - Treatment case management"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/v1/patientrecares"]}," - Patient recall management"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/v1/clinicalnotes"]}," - Clinical documentation"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"pagination-testing-requirements","__idx":5},"children":["Pagination Testing Requirements"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Critical:"]}," Demonstrate proper pagination implementation using ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["lastModified"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["lastId"]}," parameters for efficient data retrieval. Example Pagination Pattern - Initial Request:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"header":{"controls":{"copy":{}}},"source":"GET /api/v1/patients?filter=lastModified>2024-01-01T00:00:00Z&pageSize=100\n"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Subsequent Requests:"]}]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"header":{"controls":{"copy":{}}},"source":"GET /api/v1/patients?filter=lastModified>2024-01-01T00:00:00Z&lastId=12345&pageSize=100\n"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Pagination 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."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Offset-based pagination is discouraged for large datasets and should not be used for ongoing data synchronization."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"why-this-pattern-matters","__idx":6},"children":["Why This Pattern Matters"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Performance:"]}," Using ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["lastId"]}," with date filters provides the most efficient pagination"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Consistency:"]}," Ensures you don't miss or duplicate records during data synchronization"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Scalability:"]}," Essential for handling large datasets in production"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"testing-scenarios","__idx":7},"children":["Testing Scenarios"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["1. Data Synchronization Testing"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Test incremental data retrieval using ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["lastModified"]}," filters"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Verify pagination works correctly across large datasets"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Ensure no data gaps or duplicates in paginated results"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["For continuous or near real-time synchronization, customers should use the Stream API instead of repeated bulk GET requests."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["2. Error Handling"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Test rate limiting responses (429 status codes)"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Handle authentication failures (401/403)"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Manage timeout scenarios (408)"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["3. Filter Combinations"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Test complex filter combinations"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Validate date range filtering"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Test organization-specific data access"]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"required-documentation","__idx":8},"children":["Required Documentation"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Please provide:"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Integration Architecture:"]}," How your system will consume the API"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Expected Call Volume:"]}," Daily/hourly API call estimates"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Monitoring Acknowledgement:"]}," Client responsibility for call volume and error monitoring"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Peak Usage Patterns:"]}," When you expect highest API usage"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Data Requirements:"]}," Which endpoints and data fields you need"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Error Handling Strategy:"]}," How you'll handle API errors and retries"]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"performance-expectations","__idx":9},"children":["Performance Expectations"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Response Times:"]}," Most endpoints respond within 200-500ms"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Rate Limits:"]}," Vary by endpoint. Responses include a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Rate-Limiting-Remaining"]}," header and, when exceeded, a 429 status code with a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Retry-After"]}," header."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Pagination:"]}," Use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["lastId"]}," for optimal performance with large datasets"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Concurrent Requests:"]}," Test with your expected concurrent request volume"]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"next-steps","__idx":10},"children":["Next Steps"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Sandbox Testing:"]}," Complete your 1,000+ call testing in our sandbox environment"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Documentation Review:"]}," Ensure your integration follows our pagination best practices"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Performance Validation:"]}," Demonstrate consistent, reliable API usage patterns"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Production Access:"]}," Upon successful testing, verification of requests will be made by our API team, we'll provision your production credentials"]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"support-resources","__idx":11},"children":["Support Resources"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["API Documentation:"]}," Complete endpoint documentation available in our developer portal"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Pagination Guide:"]}," Detailed pagination examples and best practices"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Rate Limit Information:"]}," Endpoint-specific rate limiting details"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Support Team:"]}," Available to assist with integration questions"]}]}]},"headings":[{"value":"Production Access Requirements for Public API","id":"production-access-requirements-for-public-api","depth":1},{"value":"Overview","id":"overview","depth":2},{"value":"Testing Requirements","id":"testing-requirements","depth":2},{"value":"Volume Testing","id":"volume-testing","depth":3},{"value":"Endpoint Coverage","id":"endpoint-coverage","depth":3},{"value":"Pagination Testing Requirements","id":"pagination-testing-requirements","depth":3},{"value":"Why This Pattern Matters","id":"why-this-pattern-matters","depth":3},{"value":"Testing Scenarios","id":"testing-scenarios","depth":3},{"value":"Required Documentation","id":"required-documentation","depth":2},{"value":"Performance Expectations","id":"performance-expectations","depth":2},{"value":"Next Steps","id":"next-steps","depth":2},{"value":"Support Resources","id":"support-resources","depth":2}],"frontmatter":{"title":"Obtaining Prod Access","toc":true,"category":"getting-started","description":"Production access requirements for the Public API including testing requirements, endpoint coverage, and performance expectations.","seo":{"title":"Production Access Requirements for Public API"}},"lastModified":"2026-07-09T16:43:02.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/publicapi/obtaining-prod-access","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}