Last Updated: Auto-generated by Autonomous Full-Stack Guardian
Base URL: https://your-app.vercel.app/api (production) or http://localhost:3000/api (development)
All API routes (except public endpoints) require authentication via Supabase JWT token.
Authorization: Bearer <supabase-jwt-token>
Content-Type: application/json
- Authenticate via Supabase Auth
- Get token from session
- Include token in
Authorizationheader
Check application health.
Response:
{
"status": "ok",
"timestamp": "2025-01-XXT00:00:00Z"
}Detailed health check.
Response:
{
"status": "ok",
"database": "connected",
"supabase": "connected",
"timestamp": "2025-01-XXT00:00:00Z"
}Get application metrics.
Response:
{
"requests": 1000,
"errors": 5,
"avgLatency": 120
}Ingest telemetry event.
Request:
{
"userId": "uuid",
"app": "web",
"type": "file_created",
"path": "/path/to/file",
"meta": {}
}Response:
{
"ok": true,
"id": "event-uuid"
}Get telemetry events.
Query Parameters:
userId(required) - User IDlimit(optional) - Number of events (default: 50)offset(optional) - Pagination offset
Response:
{
"events": [
{
"id": "uuid",
"userId": "uuid",
"type": "file_created",
"path": "/path/to/file",
"timestamp": "2025-01-XXT00:00:00Z"
}
],
"total": 100,
"limit": 50,
"offset": 0
}Get user privacy consent status.
Response:
{
"consentGiven": true,
"dataRetentionDays": 14,
"monitoringEnabled": true
}Update privacy consent.
Request:
{
"consentGiven": true,
"dataRetentionDays": 14,
"monitoringEnabled": true
}Response:
{
"ok": true
}Export user data.
Response:
{
"downloadUrl": "https://...",
"expiresAt": "2025-01-XXT00:00:00Z"
}Delete user data.
Response:
{
"ok": true,
"deletedAt": "2025-01-XXT00:00:00Z"
}Get user insights.
Query Parameters:
userId(required) - User IDtimeRange(optional) - Time range (7d, 30d, 90d)
Response:
{
"patterns": [
{
"fileExtension": ".tsx",
"count": 150,
"lastUsed": "2025-01-XXT00:00:00Z"
}
],
"suggestions": [
{
"type": "integration",
"title": "Consider using TypeScript",
"description": "..."
}
]
}Compare patterns over time.
Query Parameters:
userId(required) - User IDperiod1(required) - First periodperiod2(required) - Second period
Response:
{
"period1": {
"totalFiles": 100,
"patterns": [...]
},
"period2": {
"totalFiles": 150,
"patterns": [...]
},
"changes": [...]
}Chat with AI assistant.
Request:
{
"message": "What files should I focus on?",
"context": {}
}Response:
{
"response": "Based on your patterns...",
"suggestions": [...]
}Get AI-powered recommendations.
Query Parameters:
userId(required) - User ID
Response:
{
"recommendations": [
{
"type": "tool",
"title": "Consider using ESLint",
"reason": "You're using TypeScript frequently",
"priority": "high"
}
]
}Privacy cleanup cron job (requires CRON_SECRET).
Headers:
Authorization: Bearer <CRON_SECRET>
Response:
{
"success": true,
"deleted": 50,
"timestamp": "2025-01-XXT00:00:00Z"
}Metrics collection cron job (requires CRON_SECRET).
Headers:
Authorization: Bearer <CRON_SECRET>
Response:
{
"ok": true,
"collected": 100,
"timestamp": "2025-01-XXT00:00:00Z"
}List available integrations.
Response:
{
"integrations": [
{
"id": "zapier",
"name": "Zapier",
"enabled": true,
"connected": false
}
]
}Connect an integration.
Request:
{
"credentials": {
"apiKey": "..."
}
}Response:
{
"ok": true,
"integrationId": "zapier"
}All errors follow this format:
{
"error": "Error message",
"code": "ERROR_CODE",
"details": {}
}UNAUTHORIZED- Authentication requiredFORBIDDEN- Insufficient permissionsNOT_FOUND- Resource not foundVALIDATION_ERROR- Invalid inputINTERNAL_ERROR- Server error
200- Success201- Created400- Bad Request401- Unauthorized403- Forbidden404- Not Found500- Internal Server Error
API routes are rate-limited:
- 60 requests per minute per IP
- 1000 requests per hour per IP
Rate limit headers:
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 59
X-RateLimit-Reset: 1640995200
Meta Ads ETL webhook (requires ZAPIER_SECRET).
Headers:
Authorization: Bearer <ZAPIER_SECRET>
Request:
{
"data": {}
}TikTok Ads ETL webhook (requires ZAPIER_SECRET).
Headers:
Authorization: Bearer <ZAPIER_SECRET>
Request:
{
"data": {}
}# Get health status
curl https://your-app.vercel.app/api/health
# Ingest telemetry event
curl -X POST https://your-app.vercel.app/api/telemetry/ingest \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"userId": "uuid",
"type": "file_created",
"path": "/path/to/file"
}'
# Get insights
curl https://your-app.vercel.app/api/insights?userId=uuid \
-H "Authorization: Bearer <token>"// Using fetch
const response = await fetch('https://your-app.vercel.app/api/insights?userId=uuid', {
headers: {
'Authorization': `Bearer ${token}`,
'Content-Type': 'application/json'
}
});
const data = await response.json();- 2025-01-XX - Initial API documentation
- All endpoints subject to change
For API issues or questions:
- Check health reports in
/reports - Review error logs
- Create an issue on GitHub