---
title: "Admin Diagnose"
method: GET
path: "/api/tradeworkz/admin/diagnose"
tags: ["TradeWorkz"]
---

# Admin Diagnose

`GET /api/tradeworkz/admin/diagnose`

## Request

- Base URL: `https://api.zerogex.io` (the document declares no server; this is the origin it was published from)
- URL: `https://api.zerogex.io/api/tradeworkz/admin/diagnose`
- Auth: HTTP bearer

Explain per-bot why an entry did or did not fire on the current tick.

Rebuilds one MarketSnapshot per universe, then runs every enabled
bot's ``open_criteria`` inline and captures:

  * The raw snapshot (spot, walls, GEX, regime, session progress).
  * Whether the bot returned a signal — and if not, which gate
    rejected it, walked in the same order the bot uses at tick time.
  * For any bot that DID emit a signal: whether ``spread_price``
    would return a fillable per-share debit, which is the single
    biggest reason "signal fires but no trade is inserted." A
    missing or stale ``option_chains`` row for the ATM strike is
    the usual culprit.
  * Scheduler status + when it last ticked (best-effort log-derived).

This endpoint is read-only — it never inserts a position or
persists any state — so it is safe to hit repeatedly during
diagnosis. Admin-scoped for consistency with the other
``/admin/*`` endpoints.

## Response `200`

Successful Response

- object

---

[API](https://skmtc.dev/zerogex/apis/zerogex-api.md) · [All operations](https://skmtc.dev/zerogex/apis/zerogex-api/llms.txt) · [OpenAPI document](https://skmtc.dev/zerogex/apis/zerogex-api/revisions/753b26bf0592?raw)
