API Reference
Programmatic answer-readiness audits for AI agents, CI pipelines, and automation. The API is currently in beta and intentionally lower-prominence than the core web audit flow.
Authentication
All API requests require a Bearer token in the Authorization header. Get your API key from the developer dashboard. Keys are only shown once at creation or rotation time.
Authorization: Bearer wtfaq_live_abc123...
Submit Analysis
POST /api/v1/analyze
Start a new paid/API audit. Returns immediately with an analysis ID for polling.
Request
curl -X POST https://whatthefaq.ai/api/v1/analyze \
-H "Authorization: Bearer wtfaq_live_abc123..." \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com"}'Request Body
urlstring, requiredThe website URL to analyze. Must be publicly accessible.
Response (202 Accepted)
{
"analysisId": "550e8400-e29b-41d4-a716-446655440000",
"status": "pending",
"pollUrl": "/api/v1/analyze/550e8400-e29b-41d4-a716-446655440000"
}Get Analysis Result
GET /api/v1/analyze/:id
Poll for analysis status and results. Analysis typically takes 60-90 seconds. Polling does not consume monthly credits.
Request
curl https://whatthefaq.ai/api/v1/analyze/550e8400... \ -H "Authorization: Bearer wtfaq_live_abc123..."
Response (in progress)
{
"analysisId": "550e8400...",
"url": "https://example.com",
"status": "analyzing",
"statusMessage": "Running AI analysis..."
}Response (completed)
{
"analysisId": "550e8400...",
"url": "https://example.com",
"status": "completed",
"score": 72,
"grade": "C",
"verdict": "Decent effort, but your users deserve better.",
"categoryScores": [...],
"fullReport": {
"contentAudit": { "questionAudits": [...], ... },
"gapAnalysis": { "missingTopics": [...], ... },
"seoAnalysis": { ... },
"writer": { "suggestedFaqs": [...], ... }
},
"completedAt": "2026-03-13T..."
}Rate Limits
| Limit | Value | Notes |
|---|---|---|
| Burst | 10 requests / minute | Enforced per API key |
| Monthly quota | Per key | Check your dashboard for the quota assigned to your key. |
Error Codes
| Code | Meaning |
|---|---|
| 400 | Missing or invalid request body |
| 401 | Invalid or missing API key |
| 404 | Analysis ID not found |
| 500 | Internal server error |