Analyses
POST /v1/analyses/{id}/followup
Ask a clarifying question on an existing analysis without re-running it
Asks a follow-up question against an existing analysis. The AI uses the same evidence as the original analysis plus your question — no re-fetching of logs, no quota cost.
When to use follow-ups vs. new analyses: see Follow-up questions.
Authentication
API key with analysis:create permission.
Endpoint
POST /v1/analyses/{id}/followupPath parameters
| Param | Type | Notes |
|---|---|---|
id | UUID | The analysis id |
Request body
| Field | Type | Required | Notes |
|---|---|---|---|
question | string (1–2000 chars) | ✓ | The question to ask |
{
"question": "Was this related to the deploy at 13:55?"
}Response
200 OK
{
"success": true,
"data": {
"id": "fup_a1b2c3...",
"analysisId": "ana_x1y2z3...",
"answer": "...",
"additionalEvidence": []
}
}| Field | Type | Notes |
|---|---|---|
id | string | The follow-up id |
answer | string | Plain-text answer from the AI |
additionalEvidence | array | Optional log lines the AI surfaced for the answer |
Error responses
| Status | error.code | When |
|---|---|---|
| 400 | VALIDATION_ERROR | id is not a UUID, or question is empty / too long |
| 401 | UNAUTHORIZED | Missing or invalid API key |
| 403 | FORBIDDEN | Key lacks analysis:create |
| 403 | FEATURE_NOT_AVAILABLE | Plan-tier follow-up limit reached (Starter has 0) |
| 404 | NOT_FOUND | No analysis with that id |
Example
curl -X POST https://api.sigsentry.com/v1/analyses/ana_x1y2/followup \
-H "Authorization: Bearer ss_secret_..." \
-H "Content-Type: application/json" \
-d '{ "question": "Was this related to the deploy at 13:55?" }'Limits
Per-analysis follow-up caps by plan: see Follow-up questions → Limits.
Idempotency
POST /v1/analyses/{id}/followup honors the Idempotency-Key header
— see Idempotency.
