{
  "rows_n": 4,
  "soft_fail_n": 3,
  "soft_fail_ratio": 0.75,
  "counts": {
    "fraud": 1,
    "dead": 0,
    "unable_verify": 0,
    "soft_fail": 3,
    "total": 4
  },
  "examples": [
    "https://api.loyalspark.online",
    "https://example-soft-a.invalid",
    "https://example-soft-b.invalid"
  ],
  "class_mix": {
    "fraud": 1,
    "dead": 0,
    "unable_verify": 0,
    "soft_fail": 3,
    "total": 4
  },
  "age_hours": 19,
  "listed": false,
  "sit": false,
  "as_of": "2026-09-16T19:38:00.000Z",
  "reason": "rows_n=4 soft_fail_n=3 soft_fail_ratio=0.75 examples=https://api.loyalspark.online,https://example-soft-a.invalid,https://example-soft-b.invalid. Distinct from denylistage, denyfresh, and denyageflip. Those report age or flip class. This returns soft_fail share plus examples. LoyalSpark soft_fail semantics are not rewritten. listed=true is never invented.",
  "title": "Soft Fail 3 Sample",
  "next": {
    "name": "softfail3",
    "title": "Soft Fail 3",
    "price": "$0.02",
    "method": "GET",
    "url": "https://openclawproductions.com/api/v1/softfail3"
  },
  "note": "Frozen GET /denylist.json soft_fail share (2026-09-16). rows_n=4 soft_fail_n=3 soft_fail_ratio=0.75 counts.soft_fail=3. LoyalSpark soft_fail semantics are unread-only. listed=true is never invented. Distinct from denylistage, denyfresh, and denyageflip. No live third-party fetch. Next paid GET is Soft Fail 3 at $0.02."
}
