Skip to content

Developer portal

POST /tenant/ai/explain

Generate AI explanation for a finding with optional context.

PilotPOST /tenant/ai/explainAuth: viewer | operator | admin

Summary

Generate AI explanation for a finding with optional context.

Example

curl

curl -X POST "https://sparkling-vibrancy-production-1a7a.up.railway.app/tenant/ai/explain" \
  -H "Authorization: Bearer 811f31d4-5b8e-4ed0-a7a2-8176e05eba63" \
  -H "Content-Type: application/json" \
  -d '{
  "finding": {
    "id": "f_001",
    "title": "RSA-1024 certificate"
  },
  "context": "external API edge"
}'

Request body

FieldTypeRequiredDescription
findingobjectNo

Finding payload to explain.

contextstringNo

Extra context to tailor explanation.

Response

FieldTypeRequiredDescription
summarystringNo

High-level explanation.

impactstringNo

Business/security impact summary.

nextStepsstring[]No

Suggested remediation actions.

Errors

CodeMeaningTypical causeSuggested fix
401UnauthorizedMissing or invalid API key in Authorization, x-api-key, or query param.Send Bearer <key> or x-api-key with a valid tenant token.
403ForbiddenValid key but insufficient role (viewer attempting write) or wrong admin key.Use operator or admin role key; check RBAC matrix.
404Not foundScan, schedule, share link, or resource id does not exist or expired.Verify id and tenant scope; share links expire per expiresHours.
422Unprocessable entityInvalid payload shape, unsupported scenario, or infeasible constraints.Fix field errors in response detail; relax constraints and retry.
429Too many requestsPer-key rate limit exceeded (default 300 requests per minute) or public endpoint limit.Backoff with jitter; cache results; request higher limit for production.
500Internal server errorUnexpected backend failure; includes requestId in response.Retry with exponential backoff; contact support with requestId if persistent.
503Service unavailablePersistence disabled, auth DB unreachable, or admin API not configured.Retry shortly; schedules require Postgres persistence enabled.

See the full errors reference.