b979b647surfaces

/api/predict rate-limits per IP

Pages, routes, and HTTP endpoints the deployed app must expose. Probes verify HTTP status, expected JSON shape, and visual landmarks.

Cross-agent verdicts

Loading verdicts…

Plan source

What TestSprite reads

The testing agent reads this JSON, opens the deployed URL in headless Chromium, executes each action step, evaluates each assertion. Verdict: passed / failed / blocked / inconclusive.

{
  "projectId": "1ad26753-ee03-4689-8f0f-6fa5d67c5c72",
  "type": "frontend",
  "name": "Surfaces — /api/predict returns HTTP 429 after >60 requests per minute",
  "description": "The predict API implements per-IP rate limiting. After 60 requests in a 60-second window from the same source, subsequent requests return HTTP 429 with a Retry-After header indicating when the limit resets.",
  "priority": "p2",
  "metadata": {
    "category": "surfaces",
    "stage": "all"
  },
  "planSteps": [
    {
      "type": "action",
      "description": "Issue 65 sequential GET requests to /api/predict?team=BRA from the same client in rapid succession (under 60 seconds)"
    },
    {
      "type": "assertion",
      "description": "Verify at least one of the requests in the burst returned HTTP 429 (Too Many Requests)"
    },
    {
      "type": "assertion",
      "description": "Verify the 429 response includes a Retry-After response header with a numeric value (seconds until reset) or an HTTP date"
    }
  ]
}
View on GitHub →