> ## Documentation Index
> Fetch the complete documentation index at: https://docs.aioka.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Run TAO Council

> Manually trigger a TAO Council deliberation and return the latest persisted verdict

<Note>
  Pro tier endpoint -- requires a valid Pro API key. Rate-limited to
  5/min per tier (council deliberation is Anthropic API-cost heavy).
</Note>

**Tier:** Pro (\$199/mo)
**Rate limit:** 5/min
**Cache:** None

## How It Works

The TAO council auto-refreshes every 30 minutes via an internal background
loop running inside the AIOKA core service. This endpoint allows a manual
out-of-band refresh when you need a verdict before the next scheduled run.

> **Implementation note:** Due to A-1 service isolation (the public API
> cannot import from the internal service), this endpoint returns the
> latest verdict from the database. The actual Anthropic API call to
> deliberate is triggered via the internal `/tao_council` Telegram command
> or by the 30-minute auto-refresh loop. If no new verdict has been
> produced in the last 2 minutes, the response reflects the last known
> verdict with `success: true` and a `detail` message explaining the
> trigger mechanism.

## Request

No request body required -- `POST` with your API key is sufficient.

## Response Fields

| Field                      | Type           | Meaning                                                                                                                                                                                              |
| -------------------------- | -------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `success`                  | bool           | `true` if a verdict was returned. `false` if no verdict exists yet (first 30 minutes after deploy).                                                                                                  |
| `verdict`                  | object \| null | The latest persisted TAO council verdict. Same structure as `GET /v1/tao/council`.                                                                                                                   |
| `verdict.id`               | string         | UUID                                                                                                                                                                                                 |
| `verdict.ruling`           | string         | `STRONG_BUY` / `BUY` / `ACCUMULATE` / `HOLD` / `REDUCE` / `SELL` / `STRONG_SELL` / `AVOID`                                                                                                           |
| `verdict.confidence`       | number         | 0.0 -- 1.0                                                                                                                                                                                           |
| `verdict.agentVotes`       | object         | Per-agent breakdown from all 6 TAO specialist agents                                                                                                                                                 |
| `verdict.riskFlags`        | array          | Active risk flags                                                                                                                                                                                    |
| `verdict.chiefRationale`   | string \| null | Chief Judge plain-language rationale                                                                                                                                                                 |
| `verdict.plainExplanation` | string \| null | Plain-English, jargon-free 2-3 sentence summary of WHY the council reached its ruling, synthesized by the Chief Judge in the same call. `null` for historical verdicts recorded before this feature. |
| `verdict.snapshotSignals`  | object         | Signal readings at deliberation time                                                                                                                                                                 |
| `verdict.createdAt`        | string         | ISO 8601 timestamp                                                                                                                                                                                   |
| `detail`                   | string \| null | Human-readable note on trigger status or error context                                                                                                                                               |

<RequestExample>
  ```bash curl theme={null}
  curl -X POST https://api.aioka.io/v1/tao/council/run \
    -H "X-API-Key: aik_pro_your_key_here"
  ```
</RequestExample>

<ResponseExample>
  ```json 200 (verdict returned) theme={null}
  {
    "success": true,
    "verdict": {
      "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "ruling": "ACCUMULATE",
      "confidence": 0.74,
      "agentVotes": {
        "SUBNET_ORACLE": {"ruling": "BUY", "confidence": 0.78},
        "MACRO_SAGE": {"ruling": "ACCUMULATE", "confidence": 0.71},
        "AI_NARRATIVE": {"ruling": "BUY", "confidence": 0.82},
        "MOMENTUM_HUNTER": {"ruling": "ACCUMULATE", "confidence": 0.69},
        "LIQUIDITY_GUARDIAN": {"ruling": "ACCUMULATE", "confidence": 0.73},
        "RISK_WARDEN": {"ruling": "HOLD", "confidence": 0.61}
      },
      "riskFlags": [],
      "chiefRationale": "Subnet growth and AI narrative tailwinds support accumulation. RISK_WARDEN's HOLD dissent noted.",
      "plainExplanation": "The council leaned bullish on TAO because subnet activity and the AI narrative are gaining strength while liquidity conditions remain healthy. Momentum supports the move, so the stance is a measured buy.",
      "snapshotSignals": {
        "tao_price": 289.40,
        "rsi_1h": 54.2,
        "ema_200": 281.30
      },
      "createdAt": "2026-05-06T08:30:00+00:00"
    },
    "detail": "Latest verdict returned. Out-of-band trigger via /tao_council Telegram command on the internal service."
  }
  ```

  ```json 200 (no verdict yet) theme={null}
  {
    "success": false,
    "verdict": null,
    "detail": "No verdict yet -- TAO council auto-refreshes every 30 minutes. First verdict expected within 2 minutes of deploy."
  }
  ```

  ```json 503 (council unavailable) theme={null}
  {
    "error": "tao_council_unavailable",
    "message": "TAO council read failed; retry in a moment."
  }
  ```
</ResponseExample>


## OpenAPI

````yaml POST /v1/tao/council/run
openapi: 3.1.0
info:
  title: AIOKA Intelligence API
  description: |

    ## AI-powered crypto market intelligence

    AIOKA Intelligence API provides real-time access to our AI Council verdicts,
    market signals, regime detection, and Ghost Trader entry signals.

    ### Tiers
    - **Free**: 100 calls/day — Verdict + Regime
    - **Basic** ($49/mo): 1,000 calls/day — + Signals
    - **Pro** ($199/mo): 10,000 calls/day — + Council + Ghost

    ### Authentication
    Pass your API key in the `X-API-Key` header:

    ```
    X-API-Key: aik_free_xxxxxxxxxxxx
    ```

    ### Get your API key
    `POST /v1/keys/generate` (free tier, no credit card)
  contact:
    name: AIOKA Support
    url: https://docs.aioka.io/
    email: api@aioka.io
  license:
    name: Commercial
    url: https://aioka.io/terms
  version: 1.0.0
servers:
  - url: https://api.aioka.io
    description: Production — AIOKA Intelligence API
security: []
paths:
  /v1/tao/council/run:
    post:
      tags:
        - TAO Ghost Trader
      summary: Manually trigger TAO Council deliberation
      description: |-
        Triggers an out-of-band TAO Council deliberation and persists the
        verdict to ``tao_council_verdicts``. Returns the freshly persisted
        verdict (or last known verdict on convene failure).

        **Tier:** Pro
        **Rate limit:** 5/min (per tier; council is API-cost heavy)
      operationId: run_tao_council_v1_tao_council_run_post
      responses:
        '200':
          description: Council run result
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TAOCouncilRunResponse'
        '401':
          description: Missing or invalid API key
        '403':
          description: Tier insufficient
        '503':
          description: Council unavailable -- Anthropic API misconfigured
      security:
        - APIKeyHeader: []
components:
  schemas:
    TAOCouncilRunResponse:
      properties:
        success:
          type: boolean
          title: Success
        verdict:
          anyOf:
            - $ref: '#/components/schemas/TAOCouncilVerdict'
            - type: 'null'
        detail:
          anyOf:
            - type: string
            - type: 'null'
          title: Detail
      type: object
      required:
        - success
      title: TAOCouncilRunResponse
    TAOCouncilVerdict:
      properties:
        id:
          type: string
          title: Id
        ruling:
          type: string
          title: Ruling
        confidence:
          type: number
          title: Confidence
        agentVotes:
          type: object
          title: Agentvotes
        riskFlags:
          items:
            type: string
          type: array
          title: Riskflags
        chiefRationale:
          anyOf:
            - type: string
            - type: 'null'
          title: Chiefrationale
        snapshotSignals:
          type: object
          title: Snapshotsignals
        createdAt:
          type: string
          format: date-time
          title: Createdat
        plainExplanation:
          anyOf:
            - type: string
            - type: 'null'
          title: Plainexplanation
      type: object
      required:
        - id
        - ruling
        - confidence
        - createdAt
      title: TAOCouncilVerdict
  securitySchemes:
    APIKeyHeader:
      type: apiKey
      description: 'Your AIOKA Intelligence API key (format: aik_{tier}_{random})'
      in: header
      name: X-API-Key

````