Best Practices
Get the most out of the AI Body Scan API with these recommended patterns and tips.
🔑 API Key Management
🔒
Secure Storage
- Store API keys in environment variables, never in code
- Use secrets management (AWS Secrets Manager, GCP Secret Manager)
- Never commit keys to version control
- Rotate keys regularly (every 90 days)
🚫
Key Scoping
- Use separate keys per environment (dev/staging/prod)
- Implement proper key prefixes (sk_live_, sk_test_)
- Set up separate keys per application
- Monitor key usage for anomalies
📸 Photo Quality
✅
Pre-validation
- Validate image dimensions client-side before upload
- Check file size (max 16MB)
- Verify image format (PNG, JPG, WebP)
- Show preview before submitting
📱
Mobile Optimization
- Compress images before upload (>1MB)
- Use progressive JPEG for faster upload start
- Implement offline queue for poor connectivity
- Show upload progress indicator
⚡ Performance
⏱️
Request Optimization
- Use connection pooling for highvolume
- Implement request timeout (30s recommended)
- Add retry with exponential backoff
- Cache health check results (5 min TTL)
📊
Rate Limiting
- Implement client-side rate limiting
- Queue requests during high traffic
- Use webhooks for async processing
- Monitor 429 responses
🛡️ Error Handling
❌
Retry Strategy
- Retry on 5xx errors (exponential backoff)
- Don't retry on 4xx errors
- Max 3 retries per request
- Log failures for monitoring
💬
User Feedback
- Show specific error messages
- Provide actionable suggestions
- Allow easy photo retake
- Don't expose raw API errors
📈 Monitoring
📉
Key Metrics
- API latency (p50, p95, p99)
- Success/failure rates
- Measurement accuracy feedback
- Quota usage tracking
🔔
Alerting
- Alert on >5% error rate
- Alert on quota >80%
- Alert on high latency
- Set up webhook notifications
🏗️ Architecture
🔄
Resiliency Patterns
- Implement circuit breaker
- Use bulkhead pattern for isolation
- Add dead letter queue for failures
- Plan for graceful degradation
📦
Scalability
- Design for horizontal scaling
- Use async processing
- Implement caching layer
- Consider CDN for static assets