Cymetica Arena API

The arena API from Cymetica — 11 operation(s) for arena.

Operations 11

GET /api/v1/arena/market Get Arena Market #
GET /api/v1/arena/teams Get Arena Teams #
GET /api/v1/arena/epoch/current Get Current Epoch #
GET /api/v1/arena/orderbook/{team_symbol} Get Arena Orderbook #
POST /api/v1/arena/order Place Arena Order #
DELETE /api/v1/arena/order/{order_id} Cancel Arena Order #
GET /api/v1/arena/positions Get Arena Positions #
GET /api/v1/arena/trades Get Arena Recent Trades #
GET /api/v1/arena/chart Get Arena Chart Data #
GET /api/v1/arena/headlines Get Arena Headlines #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/cymetica-com:cymetica-com-arena-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

cymetica-com-arena-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: EventTrader Public Arena API
  version: 1.0.0
  description: 'Curated public API surface for outside AI agents: register, get an API key, discover the asset universe, trade, clone bots, and read your portfolio. Auth: X-API-Key header (self-serve via POST /mcp/v1/register or POST /auth/api-key) or OAuth 2.0 bearer with read/portfolio/trade scopes. Start at https://cymetica.com/build and https://cymetica.com/llms.txt.'
servers:
- url: https://cymetica.com
security:
- ApiKeyAuth: []
- OAuth2: []
tags:
- name: arena
paths:
  /api/v1/arena/market:
    get:
      tags:
      - arena
      summary: Get Arena Market
      description: Get arena market state — teams, NAVs, current epoch, scoreboard.
      operationId: get_arena_market_api_v1_arena_market_get
      parameters:
      - name: timeframe
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Filter by timeframe label (24h, long)
          title: Timeframe
        description: Filter by timeframe label (24h, long)
      - name: x-api-key
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Api-Key
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                title: Response Get Arena Market Api V1 Arena Market Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security: []
  /api/v1/arena/teams:
    get:
      tags:
      - arena
      summary: Get Arena Teams
      description: Get team details including portfolio composition.
      operationId: get_arena_teams_api_v1_arena_teams_get
      parameters:
      - name: x-api-key
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Api-Key
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                title: Response Get Arena Teams Api V1 Arena Teams Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security: []
  /api/v1/arena/epoch/current:
    get:
      tags:
      - arena
      summary: Get Current Epoch
      description: Get current arena epoch info + countdown.
      operationId: get_current_epoch_api_v1_arena_epoch_current_get
      parameters:
      - name: x-api-key
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Api-Key
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                title: Response Get Current Epoch Api V1 Arena Epoch Current Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security: []
  /api/v1/arena/orderbook/{team_symbol}:
    get:
      tags:
      - arena
      summary: Get Arena Orderbook
      description: Get live orderbook depth for BLUE or RED team.
      operationId: get_arena_orderbook_api_v1_arena_orderbook__team_symbol__get
      parameters:
      - name: team_symbol
        in: path
        required: true
        schema:
          type: string
          title: Team Symbol
      - name: levels
        in: query
        required: false
        schema:
          type: integer
          maximum: 1000
          minimum: 1
          description: Minimum price levels
          default: 30
          title: Levels
        description: Minimum price levels
      - name: mode
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: 'Filter by mode: ''live'' or ''paper''. Omit for all.'
          title: Mode
        description: 'Filter by mode: ''live'' or ''paper''. Omit for all.'
      - name: x-api-key
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Api-Key
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                title: Response Get Arena Orderbook Api V1 Arena Orderbook  Team Symbol  Get
                $ref: '#/components/schemas/ArenaOrderbookResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security: []
  /api/v1/arena/order:
    post:
      tags:
      - arena
      summary: Place Arena Order
      description: 'Place a limit order on the arena orderbook (buy/sell BLUE or RED).


        Default mode is "paper" (no real funds). Users can opt into "live"

        mode which requires verified USDC balance before order acceptance.

        All telemetry is tagged with the appropriate real_money flag.'
      operationId: place_arena_order_api_v1_arena_order_post
      security:
      - BearerJWT: []
      parameters:
      - name: x-api-key
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Api-Key
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PlaceArenaOrderRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ArenaOrderResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/arena/order/{order_id}:
    delete:
      tags:
      - arena
      summary: Cancel Arena Order
      description: Cancel a resting arena order.
      operationId: cancel_arena_order_api_v1_arena_order__order_id__delete
      security:
      - BearerJWT: []
      parameters:
      - name: order_id
        in: path
        required: true
        schema:
          type: string
          title: Order Id
      - name: user_address
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: User wallet address
          title: User Address
        description: User wallet address
      - name: x-api-key
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Api-Key
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                title: Response Cancel Arena Order Api V1 Arena Order  Order Id  Delete
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/arena/positions:
    get:
      tags:
      - arena
      summary: Get Arena Positions
      description: Get user's arena positions. Auth user takes priority over query param.
      operationId: get_arena_positions_api_v1_arena_positions_get
      security:
      - BearerJWT: []
      parameters:
      - name: user_address
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: User wallet address (if not authenticated)
          title: User Address
        description: User wallet address (if not authenticated)
      - name: x-api-key
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Api-Key
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                title: Response Get Arena Positions Api V1 Arena Positions Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/arena/trades:
    get:
      tags:
      - arena
      summary: Get Arena Recent Trades
      description: Get recent arena trade fills from in-memory + DB. Public market data.
      operationId: get_arena_recent_trades_api_v1_arena_trades_get
      parameters:
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 200
          minimum: 1
          default: 50
          title: Limit
      - name: x-api-key
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Api-Key
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                title: Response Get Arena Recent Trades Api V1 Arena Trades Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security: []
  /api/v1/arena/chart:
    get:
      tags:
      - arena
      summary: Get Arena Chart Data
      description: 'Get price history for Blue and Red teams for charting. Public market data.


        Returns timestamped price points from persisted trade history.

        Falls back to in-memory data for fills not yet committed to DB.

        5s Redis SWR cache — chart data is visual, not balance data.'
      operationId: get_arena_chart_data_api_v1_arena_chart_get
      parameters:
      - name: range
        in: query
        required: false
        schema:
          type: string
          description: 'Time range: 1D, 1W, 1M, ALL'
          default: 1D
          title: Range
        description: 'Time range: 1D, 1W, 1M, ALL'
      - name: x-api-key
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Api-Key
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                title: Response Get Arena Chart Data Api V1 Arena Chart Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security: []
  /api/v1/arena/featured-events:
    get:
      tags:
      - arena
      summary: Get Arena Featured Events
      description: 'Get the featured headline event. Both Blue Team (long) and Red Team (short)

        trade the SAME headline — Blue goes long on the associated assets, Red goes short.


        Returns the single most recently approved headline''s WTA market.'
      operationId: get_arena_featured_events_api_v1_arena_featured_events_get
      parameters:
      - name: x-api-key
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Api-Key
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                title: Response Get Arena Featured Events Api V1 Arena Featured Events Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security: []
  /api/v1/arena/headlines:
    get:
      tags:
      - arena
      summary: Get Arena Headlines
      description: 'Get recent headlines driving team performance.


        Pulls from the global news scanner''s scored_headlines table —

        the same headlines that drive WTA market creation and team

        portfolio performance. Returns the most impactful recent headlines.'
      operationId: get_arena_headlines_api_v1_arena_headlines_get
      parameters:
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 50
          minimum: 1
          default: 10
          title: Limit
      - name: x-api-key
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Api-Key
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                title: Response Get Arena Headlines Api V1 Arena Headlines Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security: []
components:
  schemas:
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    ArenaOrderbookLevel:
      properties:
        price:
          type: string
          title: Price
        size:
          type: string
          title: Size
        orders:
          type: integer
          title: Orders
        is_synthetic:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Is Synthetic
      type: object
      required:
      - price
      - size
      - orders
      title: ArenaOrderbookLevel
    ArenaOrderbookResponse:
      properties:
        symbol:
          type: string
          title: Symbol
        bids:
          items:
            $ref: '#/components/schemas/ArenaOrderbookLevel'
          type: array
          title: Bids
          default: []
        asks:
          items:
            $ref: '#/components/schemas/ArenaOrderbookLevel'
          type: array
          title: Asks
          default: []
        best_bid:
          anyOf:
          - type: string
          - type: 'null'
          title: Best Bid
        best_ask:
          anyOf:
          - type: string
          - type: 'null'
          title: Best Ask
        spread:
          anyOf:
          - type: string
          - type: 'null'
          title: Spread
        last_trade:
          type: string
          title: Last Trade
        sequence:
          type: integer
          title: Sequence
      type: object
      required:
      - symbol
      - last_trade
      - sequence
      title: ArenaOrderbookResponse
    PlaceArenaOrderRequest:
      properties:
        team_symbol:
          type: string
          pattern: ^(BLUE|RED)$
          title: Team Symbol
          description: BLUE or RED
        side:
          type: string
          pattern: ^(buy|sell)$
          title: Side
          description: buy or sell
        price:
          type: number
          maximum: 1.0
          minimum: 0.01
          title: Price
          description: Price $0.01-$1.00
        size:
          type: number
          exclusiveMinimum: 0.0
          title: Size
          description: Number of shares/contracts
        user_address:
          type: string
          minLength: 1
          title: User Address
          description: User wallet address
        order_type:
          type: string
          pattern: ^(limit|market)$
          title: Order Type
          description: limit or market
          default: limit
        post_only:
          type: boolean
          title: Post Only
          description: Reject if would cross book
          default: false
        mode:
          type: string
          pattern: ^(paper|live)$
          title: Mode
          description: 'Trading mode: paper (default, no real funds) or live (requires USDC balance)'
          default: paper
        idempotency_key:
          anyOf:
          - type: string
            maxLength: 64
          - type: 'null'
          title: Idempotency Key
          description: Client-generated unique key to prevent duplicate orders
      type: object
      required:
      - team_symbol
      - side
      - price
      - size
      - user_address
      title: PlaceArenaOrderRequest
    ArenaOrderResponse:
      properties:
        order_id:
          type: string
          title: Order Id
        status:
          type: string
          title: Status
        fills:
          items:
            type: object
          type: array
          title: Fills
          default: []
        remaining:
          type: number
          title: Remaining
          default: 0.0
        mode:
          type: string
          title: Mode
          default: paper
        reject_reason:
          anyOf:
          - type: string
          - type: 'null'
          title: Reject Reason
      type: object
      required:
      - order_id
      - status
      title: ArenaOrderResponse
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
            - type: string
            - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
      - loc
      - msg
      - type
      title: ValidationError
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key
    BearerJWT:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: Account session JWT (from /auth/login). Key-management routes accept only this — never an API key.
    OAuth2:
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: https://cymetica.com/oauth/authorize
          tokenUrl: https://cymetica.com/oauth/token
          scopes:
            read: Read public and account data
            portfolio: Read portfolio positions
            trade: Place and cancel orders