> ## 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.

# Latest Verdict

> Returns the most recent AI Council verdict with individual agent votes

<Note>
  To use the playground, enter your API key in the **X-API-Key** field above.
  Don't have a key? [Get one free →](/api-reference/keys/generate)
</Note>

## Overview

Returns the most recent ruling from AIOKA's Judiciary Engine alongside the AI Council verdict.
6 specialized agents analyze 27 live market signals and vote on BTC market conditions.
The Chief Judge synthesizes all votes into a final ruling. Individual agent votes are
included in the response.

**Tier:** Free ✅
**Cache TTL:** 60 seconds

## Ruling Values

| Ruling        | Meaning                 | Action                |
| ------------- | ----------------------- | --------------------- |
| `STRONG_BUY`  | High-conviction bullish | Strong entry signal   |
| `BUY`         | Moderate bullish        | Consider entry        |
| `ACCUMULATE`  | Cautiously bullish      | Scale in gradually    |
| `HOLD`        | Neutral                 | Wait for confirmation |
| `REDUCE`      | Cautiously bearish      | Reduce exposure       |
| `SELL`        | Moderate bearish        | Exit positions        |
| `STRONG_SELL` | High-conviction bearish | Emergency exit        |

## Council Fields

The response includes optional AI Council data when available:

| Field                 | Type           | Description                                                                                                                                                        |
| --------------------- | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `council_ruling`      | string \| null | Chief Judge's ruling (same scale as `ruling`)                                                                                                                      |
| `council_confidence`  | number \| null | Chief Judge's confidence (0.0–1.0)                                                                                                                                 |
| `council_consensus`   | string \| null | Consensus level (e.g. `"STRONG"`, `"MODERATE"`, `"SPLIT"`)                                                                                                         |
| `council_explanation` | string \| null | Plain-English, jargon-free 2-3 sentence summary of WHY the council reached its ruling, synthesized by the Chief Judge. `null` if no recent council verdict exists. |
| `council_mode`        | string \| null | Operating mode: `"council"` (full AI Council active) or `"judiciary"` (fallback — Anthropic API unavailable). `null` if no council data exists yet.                |
| `agents`              | array \| null  | Individual agent votes (see below)                                                                                                                                 |
| `macro_context`       | object \| null | Macro environment context (Sprint 201). Present for all tiers.                                                                                                     |

<Note>
  **`council_mode` explained:** When the Anthropic API is unavailable, AIOKA's AI Council
  automatically falls back to the Judiciary Engine alone. `council_mode: "judiciary"` means
  the verdict was produced with reduced AI consensus (\~47% confidence baseline). Normal operation
  resumes automatically when the Anthropic API recovers. The `council_mode` field reflects
  the state at the time the response was generated, inferred from council verdict freshness.
</Note>

<Note>
  `macro_context` is available to all tiers including Free.
  For the full cross-asset breakdown with all 5 signals,
  use [GET /v1/macro/correlation](/api-reference/macro/correlation)
  (Basic tier required).
</Note>

### Agent Vote Object

Each item in the `agents` array:

| Field        | Type           | Description                                                                                                                          |
| ------------ | -------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
| `name`       | string         | Agent display name (e.g. `"CHAIN ORACLE"`, `"MACRO SAGE"`)                                                                           |
| `vote`       | string         | Agent's ruling (same scale as `ruling`)                                                                                              |
| `confidence` | number         | Agent's confidence (0.0–1.0)                                                                                                         |
| `reasoning`  | string \| null | The agent's own 2-3 sentence rationale for its vote. `null` on historical verdicts persisted before per-agent reasoning was exposed. |

**6 Agents:** CHAIN ORACLE, MACRO SAGE, SENTIMENT MONK, TECH HAWK, LIQUIDITY GUARDIAN, RISK SHIELD

<RequestExample>
  ```bash curl theme={null}
  curl https://api.aioka.io/v1/verdict/latest \
    -H "X-API-Key: aik_free_your_key_here"
  ```

  ```python Python theme={null}
  import httpx

  resp = httpx.get(
      "https://api.aioka.io/v1/verdict/latest",
      headers={"X-API-Key": "aik_free_your_key_here"},
  )
  data = resp.json()
  print(data["ruling"], data["confidence"])

  # Access individual agent votes
  if data.get("agents"):
      for agent in data["agents"]:
          print(f"  {agent['name']}: {agent['vote']} ({agent['confidence']:.0%})")
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  {
    "ruling": "ACCUMULATE",
    "confidence": 0.782,
    "score": 0.438,
    "btc_price": 67124.0,
    "timestamp": "2026-04-03T10:22:00Z",
    "council_ruling": "BUY",
    "council_confidence": 0.72,
    "council_consensus": "MODERATE",
    "council_explanation": "The council leaned bullish because on-chain demand is strengthening while broader market conditions stay supportive. Short-term momentum is soft, so the stance is a measured buy rather than aggressive.",
    "agents": [
      {"name": "CHAIN ORACLE", "vote": "BUY", "confidence": 0.81, "reasoning": "Exchange net flows turned sharply negative as long-term holders accumulate. SOPR above 1 confirms profitable holders are not capitulating."},
      {"name": "MACRO SAGE", "vote": "ACCUMULATE", "confidence": 0.65, "reasoning": "A weakening dollar and easing real yields create a supportive backdrop for risk assets and hard-money narratives."},
      {"name": "SENTIMENT MONK", "vote": "BUY", "confidence": 0.74, "reasoning": "Fear & Greed sits in neutral territory, leaving room for upside without the froth that precedes local tops."},
      {"name": "TECH HAWK", "vote": "HOLD", "confidence": 0.58, "reasoning": "Price is consolidating around the 200 EMA with RSI near 50, an indecisive posture that warrants patience."},
      {"name": "LIQUIDITY GUARDIAN", "vote": "BUY", "confidence": 0.77, "reasoning": "Order book depth is balanced and stablecoin reserves on exchanges are rising, signalling dry powder ready to deploy."},
      {"name": "RISK SHIELD", "vote": "ACCUMULATE", "confidence": 0.69, "reasoning": "No major macro event is imminent and volatility is contained, so a measured scale-in is acceptable."}
    ],
    "council_mode": "council",
    "macro_context": {
      "assessment": "BULLISH",
      "key_driver": "Dollar weakening + Nasdaq ATH",
      "primary_risk": "DXY reversal could create headwind"
    },
    "cached": true,
    "cache_ttl_seconds": 45
  }
  ```

  ```json 401 theme={null}
  {
    "detail": {
      "error": "missing_api_key",
      "message": "Provide your API key in the X-API-Key header."
    }
  }
  ```

  ```json 429 theme={null}
  {
    "detail": {
      "error": "daily_limit_exceeded",
      "message": "Daily limit of 100 calls reached for free tier.",
      "calls_today": 100,
      "limit": 100,
      "reset_at": "2026-04-04T00:00:00Z",
      "upgrade_url": "https://aioka.io/pricing"
    }
  }
  ```
</ResponseExample>


## OpenAPI

````yaml GET /v1/verdict/latest
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/verdict/latest:
    get:
      tags:
        - Verdict
      summary: Latest AI Council Verdict
      description: >-
        Returns the most recent AI Council verdict.


        6 specialized AI agents analyze 27 live market signals and reach a
        consensus ruling.


        The `council_explanation` field carries a plain-English, jargon-free 2-3
        sentence

        summary of WHY the council reached its ruling (synthesized by the Chief
        Judge).

        It is `null` when no recent council verdict exists.


        Each item in the `agents` array also carries a `reasoning` field — that
        agent's

        own 2-3 sentence rationale for its individual vote. It is `null` on
        historical

        verdicts persisted before per-agent reasoning was exposed.


        **Tier:** Free ✅

        **Cache TTL:** 60 seconds

        **Rate limit:** 100 calls/day, 2/minute


        ### Ruling values

        | Ruling | Meaning |

        |--------|---------|

        | `STRONG_BUY` | High-conviction bullish |

        | `BUY` | Moderate bullish |

        | `ACCUMULATE` | Cautiously bullish |

        | `HOLD` | Neutral — wait |

        | `REDUCE` | Cautiously bearish |

        | `SELL` | Moderate bearish |

        | `STRONG_SELL` | High-conviction bearish |
      operationId: get_latest_verdict_v1_verdict_latest_get
      responses:
        '200':
          description: Latest verdict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VerdictLatestResponse'
        '401':
          description: Invalid or missing API key
        '429':
          description: Rate limit exceeded
      security:
        - APIKeyHeader: []
components:
  schemas:
    VerdictLatestResponse:
      properties:
        ruling:
          type: string
          title: Ruling
        confidence:
          type: number
          title: Confidence
        score:
          type: number
          title: Score
        btc_price:
          anyOf:
            - type: number
            - type: 'null'
          title: Btc Price
        timestamp:
          type: string
          format: date-time
          title: Timestamp
        council_ruling:
          anyOf:
            - type: string
            - type: 'null'
          title: Council Ruling
        council_confidence:
          anyOf:
            - type: number
            - type: 'null'
          title: Council Confidence
        council_consensus:
          anyOf:
            - type: string
            - type: 'null'
          title: Council Consensus
        council_explanation:
          anyOf:
            - type: string
            - type: 'null'
          title: Council Explanation
        agents:
          anyOf:
            - items:
                $ref: '#/components/schemas/AgentVerdictItem'
              type: array
            - type: 'null'
          title: Agents
        council_mode:
          anyOf:
            - type: string
            - type: 'null'
          title: Council Mode
        macro_context:
          anyOf:
            - $ref: '#/components/schemas/MacroContextItem'
            - type: 'null'
        cached:
          type: boolean
          title: Cached
        cache_ttl_seconds:
          type: integer
          title: Cache Ttl Seconds
      type: object
      required:
        - ruling
        - confidence
        - score
        - btc_price
        - timestamp
        - cached
        - cache_ttl_seconds
      title: VerdictLatestResponse
      example:
        agents:
          - confidence: 0.78
            name: CHAIN ORACLE
            reasoning: >-
              Exchange net flows turned sharply negative as long-term holders
              accumulate. SOPR above 1 confirms profitable holders are not
              capitulating.
            vote: BULLISH
          - confidence: 0.72
            name: MACRO SAGE
            reasoning: >-
              A weakening dollar and easing real yields create a supportive
              backdrop for risk assets and hard-money narratives.
            vote: BULLISH
          - confidence: 0.72
            name: SENTIMENT MONK
            reasoning: >-
              Fear & Greed sits in neutral territory, leaving room for upside
              without the froth that precedes local tops.
            vote: BULLISH
          - confidence: 0.72
            name: TECH HAWK
            reasoning: >-
              Price holds above the 200 EMA with RSI in the mid-50s, a
              constructive trend posture without overbought risk.
            vote: BULLISH
          - confidence: 0.72
            name: LIQUIDITY GUARDIAN
            reasoning: >-
              Order book depth is balanced and stablecoin reserves on exchanges
              are rising, signalling dry powder ready to deploy.
            vote: BULLISH
          - confidence: 0.78
            name: RISK SHIELD
            reasoning: >-
              Short-term momentum is soft and a macro data print is imminent, so
              position sizing should stay measured.
            vote: REDUCE
        btc_price: 67124
        cache_ttl_seconds: 60
        cached: true
        confidence: 0.278
        council_confidence: 0.72
        council_consensus: STRONG
        council_explanation: >-
          The council leaned bullish because on-chain demand is strengthening
          while broader market conditions stay supportive. Short-term momentum
          is soft, so the stance is a measured buy rather than aggressive.
        council_mode: council
        council_ruling: BUY
        ruling: ACCUMULATE
        score: 0.438
        timestamp: '2026-04-03T10:22:00Z'
    AgentVerdictItem:
      properties:
        name:
          type: string
          title: Name
        vote:
          type: string
          title: Vote
        confidence:
          type: number
          title: Confidence
        reasoning:
          anyOf:
            - type: string
            - type: 'null'
          title: Reasoning
      type: object
      required:
        - name
        - vote
        - confidence
      title: AgentVerdictItem
      description: Individual AI council agent vote — exposed via /v1/verdict/latest.
    MacroContextItem:
      properties:
        assessment:
          type: string
          title: Assessment
        key_driver:
          type: string
          title: Key Driver
        primary_risk:
          type: string
          title: Primary Risk
      type: object
      required:
        - assessment
        - key_driver
        - primary_risk
      title: MacroContextItem
      description: >-
        Lightweight macro environment context embedded in verdict response —
        Sprint 201.
  securitySchemes:
    APIKeyHeader:
      type: apiKey
      description: 'Your AIOKA Intelligence API key (format: aik_{tier}_{random})'
      in: header
      name: X-API-Key

````