Documentation Index
Fetch the complete documentation index at: https://lupitor-docs.com/llms.txt
Use this file to discover all available pages before exploring further.
Overview
The health check endpoint allows you to monitor the API’s availability and status. It’s designed for uptime monitoring services like Instatus, UptimeRobot, Pingdom, etc. Endpoint:GET /api/health
Authentication: None required (public endpoint)
Rate Limit: 60 requests per minute per IP address
Response Codes
| Status Code | Meaning |
|---|---|
200 | API is healthy and operational |
429 | Rate limit exceeded (too many requests) |
503 | API is unhealthy (backend unavailable) |
Response Format
Healthy (200 OK)
Unhealthy (503 Service Unavailable)
Rate Limited (429 Too Many Requests)
Usage
Basic Check
cURL
JavaScript
Python
With Rate Limit Headers
cURL
Monitoring Setup
Instatus
- Go to your Instatus dashboard
- Add a new monitor
- URL:
https://YOUR_DEPLOYMENT.lupitor.com/api/health - Method: GET
- Check interval: 1-5 minutes
- Expected status: 200
- Alert on: Non-200 responses or timeout
UptimeRobot
- Add new monitor
- Monitor Type: HTTP(s)
- Friendly Name: AI CSR API
- URL:
https://YOUR_DEPLOYMENT.lupitor.com/api/health - Monitoring Interval: 5 minutes
Pingdom
- Add new uptime check
- Name: AI CSR API Health
- URL:
https://YOUR_DEPLOYMENT.lupitor.com/api/health - Check interval: 1 minute
- Alert when down
What It Checks
The health endpoint verifies: ✅ API Server - Next.js server is responding ✅ Backend Connection - Convex database is reachable ✅ Query Execution - Can execute simple queries Does NOT check:- ❌ LiveKit voice service status
- ❌ External integrations (OpenAI, etc.)
- ❌ Specific feature availability
Best Practices
For Monitoring Services
- ✅ Set check interval to 1-5 minutes - Frequent enough to catch issues, infrequent enough to stay under rate limit
- ✅ Alert on 3+ consecutive failures - Avoid false alarms from transient issues
- ✅ Monitor from multiple regions - Detect regional outages
- ✅ Set reasonable timeout - 30 seconds is plenty
For Internal Health Checks
JavaScript
Rate Limiting
The health endpoint is rate limited to 60 requests per minute per IP address. This is intentionally generous to accommodate:- ✅ Multiple monitoring services
- ✅ Internal health checks
- ✅ Testing and development
429 response. Simply wait until the reset time indicated in the response.
Status Page
Our public status page uses this endpoint: status.lupitor.com You can subscribe for:- Email notifications
- Slack/Discord webhooks
- SMS alerts (enterprise only)
- RSS feed
Troubleshooting
Getting 429 (Rate Limited)
Cause: More than 60 requests per minute from your IP Solution:- Reduce check frequency
- Wait for rate limit reset time
- Use multiple IP addresses if necessary
Getting 503 (Service Unavailable)
Cause: Backend database (Convex) is unreachable Solution:- Check status page
- Wait a few minutes and retry
- Contact support if persists: support@lupitor.com
Timing Out
Cause: Network issues or server overload Solution:- Check your network connection
- Verify DNS resolution
- Try from different network/region
- Check status page
Questions?
- Status Page: status.lupitor.com
- Support: support@lupitor.com
- Documentation: API Reference