ApexVol Strategies API

The Strategies API from ApexVol — 5 operation(s) for strategies.

Operations 5

POST /api/mcp/data/analyze-strategy Analyzes custom legs: net premium and Greeks, max profit/loss, breakevens… #
POST /api/mcp/data/build-strategy Builds a strategy from live chain data #
POST /api/mcp/data/optimize-strategy Grid-searches strikes (iron_condor and credit_spread) and returns the winning… #
POST /api/mcp/data/pop Probability of profit for a set of option legs (N(d2)-based) #
POST /api/mcp/data/simulate-chain Black-Scholes what-if: re-price a chain at a hypothetical stock price, DTE, and… #

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/apexvol-com:apexvol-com-strategies-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

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

apexvol-com-strategies-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: 'Options-analytics API (token surface). Auth: `Authorization: Bearer avmcp_` on every request; tokens are issued to any paid or trial plan from Basic, and each endpoint follows the same tier as the web app. Rate limits: 60/min and 1,000/hr per token, plus a monthly allowance per account measured in upstream data requests, by plan. The remaining counts come back in the X-RateLimit-* and X-Monthly-Budget-Remaining headers on every response, and GET /api/mcp/data/me/usage returns the month''s meter with a per-endpoint breakdown. IV values are percentage points unless a payload says otherwise (`iv_units`). The same endpoints power the ApexVol MCP server for AI assistants: `pipx install apexvol-mcp` (PyPI), setup at https://apexvol.com/mcp. Docs: https://apexvol.com/docs/api.'
  title: ApexVol Strategies API
  version: '1.30'
servers:
- url: https://apexvol.com
security:
- bearerAuth: []
tags:
- name: Strategies
paths:
  /api/mcp/data/analyze-strategy:
    post:
      description: 'Analyzes custom legs: net premium and Greeks, max profit/loss, breakevens, probability of profit, and the P&L curve. Fetches live spot when stock_price is omitted.


        **Request body:** JSON: ticker, legs [{type CALL|PUT, action BUY|SELL, strike, expiration, premium, quantity?, delta?, theta?, vega?, iv?}] — required; stock_price?, name?


        **Response shape:**

        ```json

        {

        "success": true,

        "data": {

        "breakevens": [

        752.48,

        787.52

        ],

        "legs_summary": [

        {

        "action": "SELL",

        "expiration": "2026-10-09",

        "iv": 0.1365,

        "premium": 6.36,

        "quantity": 1,

        "strike": 755.0,

        "type": "PUT"

        },

        {

        "action": "SELL",

        "expiration": "2026-10-09",

        "iv": 0.1084,

        "premium": 4.785,

        "quantity": 1,

        "strike": 785.0,

        "type": "CALL"

        },

        {

        "action": "BUY",

        "expiration": "2026-10-09",

        "iv": 0.1062,

        "premium": 3.275,

        "quantity": 1,

        "strike": 790.0,

        "type": "CALL"

        }

        ],

        "max_loss": -248.0,

        "max_profit": 252.0,

        "net_delta": -0.0256,

        "net_premium": -252.0,

        "net_theta": 0.0232,

        "net_vega": -0.1904,

        "pnl_curve": [

        [

        600.0,

        -248.0

        ],

        [

        603.5152,

        -248.0

        ],

        [

        607.0303,

        -248.0

        ]

        ],

        "probability_of_profit": 41.7,

        "risk_reward_ratio": 1.0161,

        "stock_price": 770.25,

        "strategy_name": "Iron condor from /build-strategy",

        "ticker": "SPY"

        }

        }

        ```'
      operationId: post_analyze_strategy
      requestBody:
        content:
          application/json:
            schema:
              properties:
                expiration:
                  description: 'The expiration for legs that do not name one. Range: YYYY-MM-DD, a listed expiration. Default: listing nearest 30 days.'
                  format: date
                  type: string
                legs:
                  description: 'The legs. A leg without a premium is priced from the live chain (theoretical mid, with its Greeks and IV); a strike not listed on that expiration is a 400 naming the nearest. Range: array of {type CALL|PUT, action BUY|SELL, strike, quantity?, expiration?, premium?, delta?, theta?, vega?, iv?}.'
                  items:
                    type: object
                  type: array
                name:
                  description: 'A label for the result. Range: text.'
                  type: string
                stock_price:
                  default: live
                  description: 'Override spot. Range: dollars.'
                  type: number
                ticker:
                  description: 'The underlying. Range: symbol.'
                  type: string
              required:
              - ticker
              - legs
              type: object
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: '#/components/schemas/PostAnalyzeStrategyResponse'
                  success:
                    type: boolean
                type: object
          description: 'Success: payload under `data` with `success: true`.'
        '400':
          description: A parameter is malformed; the error names it.
        '401':
          description: Missing, invalid, expired or revoked token.
        '403':
          description: The endpoint needs a higher plan than the token's owner has (required_tier in the body).
        '404':
          description: Unknown path (did_you_mean in the body) or a symbol with no listed options.
        '424':
          description: The data feed did not answer for this symbol; retry.
        '429':
          description: Per-token rate limit or the monthly allowance (budget_exceeded). Retry-After says how long, in seconds.
      summary: 'Analyzes custom legs: net premium and Greeks, max profit/loss, breakevens…'
      tags:
      - Strategies
  /api/mcp/data/build-strategy:
    post:
      description: 'Builds a strategy from live chain data. Returns the legs (strike, premium, Greeks) plus full analysis (net premium/Greeks, max profit/loss, breakevens, POP, P&L curve).


        **Request body:** JSON: ticker, strategy_type (required); expiration, dte (default 30), width (default 5), target_delta (default 0.30)


        **Response shape:**

        ```json

        {

        "success": true,

        "data": {

        "analysis": {

        "breakevens": [

        750.5426,

        784.4574

        ],

        "legs_summary": [

        {

        "action": "BUY",

        "expiration": "2026-10-23",

        "iv": 0.1478,

        "premium": 5.2712,

        "quantity": 1,

        "strike": 748.0,

        "type": "PUT"

        },

        {

        "action": "SELL",

        "expiration": "2026-10-23",

        "iv": 0.1415,

        "premium": 6.3543,

        "quantity": 1,

        "strike": 753.0,

        "type": "PUT"

        },

        {

        "action": "SELL",

        "expiration": "2026-10-23",

        "iv": 0.1123,

        "premium": 4.1813,

        "quantity": 1,

        "strike": 782.0,

        "type": "CALL"

        }

        ],

        "max_loss": -254.26,

        "max_profit": 245.74,

        "net_delta": -0.023,

        "net_premium": -245.74,

        "net_theta": 0.0387,

        "net_vega": -0.1297,

        "pnl_curve": [

        [

        598.4,

        -254.26

        ],

        [

        601.8949,

        -254.26

        ],

        [

        605.3899,

        -254.26

        ]

        ],

        "probability_of_profit": 40.7,

        "risk_reward_ratio": 0.9665,

        "stock_price": 764.41,

        "strategy_name": "Iron Condor",

        "ticker": "SPY"

        },

        "created_at": "2026-09-24T14:43:08.842078",

        "legs": [

        {

        "action": "BUY",

        "delta": -0.2496,

        "expiration": "2026-10-23",

        "iv": 0.1478,

        "premium": 5.2712,

        "quantity": 1,

        "strike": 748.0,

        "theta": -0.2281,

        "type": "PUT",

        "vega": 0.6937

        },

        {

        "action": "SELL",

        "delta": -0.3001,

        "expiration": "2026-10-23",

        "iv": 0.1415,

        "premium": 6.3543,

        "quantity": 1,

        "strike": 753.0,

        "theta": -0.2324,

        "type": "PUT",

        "vega": 0.7404

        },

        {

        "action": "SELL",

        "delta": 0.2936,

        "expiration": "2026-10-23",

        "iv": 0.1123,

        "premium": 4.1813,

        "quantity": 1,

        "strike": 782.0,

        "theta": -0.1821,

        "type": "CALL",

        "vega": 0.7549

        }

        ],

        "name": "Iron Condor",

        "stock_price": 764.41,

        "ticker": "SPY"

        }

        }

        ```'
      operationId: post_build_strategy
      requestBody:
        content:
          application/json:
            schema:
              properties:
                dte:
                  default: 30
                  description: 'Target days to expiration. Range: days.'
                  type: integer
                expiration:
                  description: 'Expiration; dte is used when absent. Range: YYYY-MM-DD.'
                  format: date
                  type: string
                strategy_type:
                  description: 'Which structure. Range: iron_condor, credit_spread, straddle, strangle and others.'
                  type: string
                target_delta:
                  default: 0.3
                  description: 'Short-strike delta. Range: 0.05 to 0.50.'
                  maximum: 0.5
                  minimum: 0.05
                  type: number
                ticker:
                  description: 'The underlying. Range: symbol.'
                  type: string
                width:
                  default: 5
                  description: 'Wing width. Range: dollars.'
                  type: number
              required:
              - ticker
              - strategy_type
              type: object
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: '#/components/schemas/PostBuildStrategyResponse'
                  success:
                    type: boolean
                type: object
          description: 'Success: payload under `data` with `success: true`.'
        '400':
          description: A parameter is malformed; the error names it.
        '401':
          description: Missing, invalid, expired or revoked token.
        '403':
          description: The endpoint needs a higher plan than the token's owner has (required_tier in the body).
        '404':
          description: Unknown path (did_you_mean in the body) or a symbol with no listed options.
        '424':
          description: The data feed did not answer for this symbol; retry.
        '429':
          description: Per-token rate limit or the monthly allowance (budget_exceeded). Retry-After says how long, in seconds.
      summary: Builds a strategy from live chain data
      tags:
      - Strategies
  /api/mcp/data/optimize-strategy:
    post:
      description: 'Grid-searches strikes (iron_condor and credit_spread) and returns the winning strategy with its analysis.


        **Request body:** JSON: ticker, strategy_type (required); target ∈ max_profit | min_loss | risk_reward | probability (default max_profit; other values optimize net credit)


        **Response shape:**

        ```json

        {

        "success": true,

        "data": {

        "analysis": {

        "breakevens": [

        743.435,

        793.565

        ],

        "legs_summary": [

        {

        "action": "SELL",

        "expiration": "2026-10-09",

        "iv": 0.1433,

        "premium": 5.155,

        "quantity": 1,

        "strike": 749.0,

        "type": "PUT"

        },

        {

        "action": "SELL",

        "expiration": "2026-10-09",

        "iv": 0.1064,

        "premium": 3.805,

        "quantity": 1,

        "strike": 788.0,

        "type": "CALL"

        },

        {

        "action": "BUY",

        "expiration": "2026-10-09",

        "iv": 0.1014,

        "premium": 0.985,

        "quantity": 1,

        "strike": 804.0,

        "type": "CALL"

        }

        ],

        "max_loss": -1943.5,

        "max_profit": 556.5,

        "net_delta": -0.0046,

        "net_premium": -556.5,

        "net_theta": 0.1098,

        "net_vega": -0.6744,

        "pnl_curve": [

        [

        579.2,

        -1943.5

        ],

        [

        583.0949,

        -1943.5

        ],

        [

        586.9899,

        -1943.5

        ]

        ],

        "probability_of_profit": 49.4,

        "risk_reward_ratio": 0.2863,

        "stock_price": 770.25,

        "strategy_name": "Iron Condor",

        "ticker": "SPY"

        },

        "created_at": "2026-09-08T08:07:39.442751",

        "legs": [

        {

        "action": "SELL",

        "delta": -0.2475,

        "expiration": "2026-10-09",

        "iv": 0.1433,

        "premium": 5.155,

        "quantity": 1,

        "strike": 749.0,

        "theta": -0.1721,

        "type": "PUT",

        "vega": 0.7443

        },

        {

        "action": "SELL",

        "delta": 0.2561,

        "expiration": "2026-10-09",

        "iv": 0.1064,

        "premium": 3.805,

        "quantity": 1,

        "strike": 788.0,

        "theta": -0.121,

        "type": "CALL",

        "vega": 0.7869

        },

        {

        "action": "BUY",

        "delta": 0.1014,

        "expiration": "2026-10-09",

        "iv": 0.1014,

        "premium": 0.985,

        "quantity": 1,

        "strike": 804.0,

        "theta": -0.0655,

        "type": "CALL",

        "vega": 0.4502

        }

        ],

        "name": "Iron Condor",

        "optimization_target": "max_profit",

        "stock_price": 770.25,

        "ticker": "SPY"

        }

        }

        ```'
      operationId: post_optimize_strategy
      requestBody:
        content:
          application/json:
            schema:
              properties:
                strategy_type:
                  description: 'Which structure. Range: iron_condor or credit_spread.'
                  enum:
                  - iron_condor
                  - credit_spread
                  type: string
                target:
                  default: max_profit
                  description: 'What to optimize. Range: max_profit, min_loss, risk_reward, probability.'
                  enum:
                  - max_profit
                  - min_loss
                  - risk_reward
                  - probability
                  type: string
                ticker:
                  description: 'The underlying. Range: symbol.'
                  type: string
              required:
              - ticker
              - strategy_type
              type: object
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: '#/components/schemas/PostOptimizeStrategyResponse'
                  success:
                    type: boolean
                type: object
          description: 'Success: payload under `data` with `success: true`.'
        '400':
          description: A parameter is malformed; the error names it.
        '401':
          description: Missing, invalid, expired or revoked token.
        '403':
          description: The endpoint needs a higher plan than the token's owner has (required_tier in the body).
        '404':
          description: Unknown path (did_you_mean in the body) or a symbol with no listed options.
        '424':
          description: The data feed did not answer for this symbol; retry.
        '429':
          description: Per-token rate limit or the monthly allowance (budget_exceeded). Retry-After says how long, in seconds.
      summary: Grid-searches strikes (iron_condor and credit_spread) and returns the winning…
      tags:
      - Strategies
  /api/mcp/data/pop:
    post:
      description: 'Probability of profit for a set of option legs (N(d2)-based).


        **Request body:** JSON body: legs (required: option_type, action, strike, iv, premium, quantity) · stock_price (required) · days_to_exp (required)


        **Response shape:**

        ```json

        {

        "success": true,

        "data": {

        "legs_count": 4,

        "probability_of_profit": 41.7

        }

        }

        ```'
      operationId: post_pop
      requestBody:
        content:
          application/json:
            schema:
              properties:
                days_to_exp:
                  description: 'Days to expiration. Range: days.'
                  type: integer
                legs:
                  description: 'The legs. Range: array of {option_type, action, strike, iv, premium, quantity}.'
                  items:
                    type: object
                  type: array
                stock_price:
                  description: 'Spot. Range: dollars.'
                  type: number
              required:
              - legs
              - stock_price
              - days_to_exp
              type: object
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: '#/components/schemas/PostPopResponse'
                  success:
                    type: boolean
                type: object
          description: 'Success: payload under `data` with `success: true`.'
        '400':
          description: A parameter is malformed; the error names it.
        '401':
          description: Missing, invalid, expired or revoked token.
        '403':
          description: The endpoint needs a higher plan than the token's owner has (required_tier in the body).
        '404':
          description: Unknown path (did_you_mean in the body) or a symbol with no listed options.
        '424':
          description: The data feed did not answer for this symbol; retry.
        '429':
          description: Per-token rate limit or the monthly allowance (budget_exceeded). Retry-After says how long, in seconds.
      summary: Probability of profit for a set of option legs (N(d2)-based)
      tags:
      - Strategies
  /api/mcp/data/simulate-chain:
    post:
      description: 'Black-Scholes what-if: re-price a chain at a hypothetical stock price, DTE, and IV shift. Pass chain rows from GET /chain, or just ticker (+ optional expiration) and the server fetches the chain.


        **Request body:** JSON body: sim_price (required) · sim_dte (required) · iv_adjustment (percent, default 0) · chain (rows, optional) · ticker/expiration (used when chain omitted) · strikes_around (default 20)


        **Response shape:**

        ```json

        {

        "success": true,

        "data": {

        "chain": [

        {

        "Call Ask": 17.7104,

        "Call Bid": 17.6704,

        "Delta Call": 0.9877,

        "Delta Put": -0.0188,

        "Gamma Call": 0.004,

        "Gamma Put": 0.0053,

        "IV Call": 0.0612,

        "IV Put": 0.0663,

        "IVx Call": 0.1324,

        "IVx Put": 0.0076,

        "Put Ask": 0.0694,

        "Put Bid": 0.0494,

        "Strike": 769.0,

        "Theta Call": -0.112,

        "Theta Put": -0.0179,

        "Vega Call": 0.0414,

        "Vega Put": 0.0599

        },

        {

        "Call Ask": 16.7084,

        "Call Bid": 16.6884,

        "Delta Call": 0.9852,

        "Delta Put": -0.0222,

        "Gamma Call": 0.0048,

        "Gamma Put": 0.0063,

        "IV Call": 0.0596,

        "IV Put": 0.0646,

        "IVx Call": 0.1334,

        "IVx Put": 0.0089,

        "Put Ask": 0.0796,

        "Put Bid": 0.0596,

        "Strike": 770.0,

        "Theta Call": -0.1137,

        "Theta Put": -0.0199,

        "Vega Call": 0.0486,

        "Vega Put": 0.0688

        },

        {

        "Call Ask": 15.7199,

        "Call Bid": 15.6999,

        "Delta Call": 0.9816,

        "Delta Put": -0.0282,

        "Gamma Call": 0.0059,

        "Gamma Put": 0.0078,

        "IV Call": 0.0584,

        "IV Put": 0.0639,

        "IVx Call": 0.1349,

        "IVx Put": 0.0115,

        "Put Ask": 0.1005,

        "Put Bid": 0.0805,

        "Strike": 771.0,

        "Theta Call": -0.116,

        "Theta Put": -0.024,

        "Vega Call": 0.0586,

        "Vega Put": 0.0841

        }

        ],

        "expiration": "2026-09-08",

        "iv_adjustment": 5,

        "sim_dte": 10,

        "sim_price": 785.65

        }

        }

        ```'
      operationId: post_simulate_chain
      requestBody:
        content:
          application/json:
            schema:
              properties:
                chain:
                  description: 'Rows to re-price. Range: rows from /chain.'
                  type: string
                expiration:
                  default: nearest
                  description: 'Which expiration to fetch. Range: YYYY-MM-DD.'
                  format: date
                  type: string
                iv_adjustment:
                  default: 0
                  description: 'Shift applied to every IV. Range: IV points.'
                  type: number
                sim_dte:
                  description: 'Days to expiration in the scenario. Range: days.'
                  type: integer
                sim_price:
                  description: 'Hypothetical spot. Range: dollars.'
                  type: number
                strikes_around:
                  default: 20
                  description: 'Strikes per side. Range: 0 for all.'
                  type: integer
                ticker:
                  description: 'Fetch the chain when rows are omitted. Range: symbol.'
                  type: string
              required:
              - sim_price
              - sim_dte
              type: object
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: '#/components/schemas/PostSimulateChainResponse'
                  success:
                    type: boolean
                type: object
          description: 'Success: payload under `data` with `success: true`.'
        '400':
          description: A parameter is malformed; the error names it.
        '401':
          description: Missing, invalid, expired or revoked token.
        '403':
          description: The endpoint needs a higher plan than the token's owner has (required_tier in the body).
        '404':
          description: Unknown path (did_you_mean in the body) or a symbol with no listed options.
        '424':
          description: The data feed did not answer for this symbol; retry.
        '429':
          description: Per-token rate limit or the monthly allowance (budget_exceeded). Retry-After says how long, in seconds.
      summary: 'Black-Scholes what-if: re-price a chain at a hypothetical stock price, DTE, and…'
      tags:
      - Strategies
components:
  schemas:
    PostSimulateChainResponse:
      properties:
        chain:
          items:
            properties:
              Call Ask:
                type: number
              Call Bid:
                type: number
              Delta Call:
                type: number
              Delta Put:
                type: number
              Gamma Call:
                type: number
              Gamma Put:
                type: number
              IV Call:
                type: number
              IV Put:
                type: number
              IVx Call:
                type: number
              IVx Put:
                type: number
              Put Ask:
                type: number
              Put Bid:
                type: number
              Strike:
                type: number
              Theta Call:
                type: number
              Theta Put:
                type: number
              Vega Call:
                type: number
              Vega Put:
                type: number
            type: object
          type: array
        expiration:
          type: string
        iv_adjustment:
          type: integer
        sim_dte:
          type: integer
        sim_price:
          type: number
      type: object
    PostAnalyzeStrategyResponse:
      properties:
        breakevens:
          items:
            type: number
          type: array
        legs_summary:
          items:
            properties:
              action:
                type: string
              expiration:
                type: string
              iv:
                type: number
              premium:
                type: number
              quantity:
                type: integer
              strike:
                type: number
              type:
                type: string
            type: object
          type: array
        max_loss:
          type: number
        max_profit:
          type: number
        net_delta:
          type: number
        net_premium:
          type: number
        net_theta:
          type: number
        net_vega:
          type: number
        pnl_curve:
          items:
            items:
              type: number
            type: array
          type: array
        probability_of_profit:
          type: number
        risk_reward_ratio:
          type: number
        stock_price:
          type: number
        strategy_name:
          type: string
        ticker:
          type: string
      type: object
    PostOptimizeStrategyResponse:
      properties:
        analysis:
          properties:
            breakevens:
              items:
                type: number
              type: array
            legs_summary:
              items:
                properties:
                  action:
                    type: string
                  expiration:
                    type: string
                  iv:
                    type: number
                  premium:
                    type: number
                  quantity:
                    type: integer
                  strike:
                    type: number
                  type:
                    type: string
                type: object
              type: array
            max_loss:
              type: number
            max_profit:
              type: number
            net_delta:
              type: number
            net_premium:
              type: number
            net_theta:
              type: number
            net_vega:
              type: number
            pnl_curve:
              items:
                items:
                  type: number
                type: array
              type: array
            probability_of_profit:
              type: number
            risk_reward_ratio:
              type: number
            stock_price:
              type: number
            strategy_name:
              type: string
            ticker:
              type: string
          type: object
        created_at:
          type: string
        legs:
          items:
            properties:
              action:
                type: string
              delta:
                type: number
              expiration:
                type: string
              iv:
                type: number
              premium:
                type: number
              quantity:
                type: integer
              strike:
                type: number
              theta:
                type: number
              type:
                type: string
              vega:
                type: number
            type: object
          type: array
        name:
          type: string
        optimization_target:
          type: string
        stock_price:
          type: number
        ticker:
          type: string
      type: object
    PostBuildStrategyResponse:
      properties:
        analysis:
          properties:
            breakevens:
              items:
                type: number
              type: array
            legs_summary:
              items:
                properties:
                  action:
                    type: string
                  expiration:
                    type: string
                  iv:
                    type: number
                  premium:
                    type: number
                  quantity:
                    type: integer
                  strike:
                    type: number
                  type:
                    type: string
                type: object
              type: array
            max_loss:
              type: number
            max_profit:
              type: number
            net_delta:
              type: number
            net_premium:
              type: number
            net_theta:
              type: number
            net_vega:
              type: number
            pnl_curve:
              items:
                items:
                  type: number
                type: array
              type: array
            probability_of_profit:
              type: number
            risk_reward_ratio:
              type: number
            stock_price:
              type: number
            strategy_name:
              type: string
            ticker:
              type: string
          type: object
        created_at:
          type: string
        legs:
          items:
            properties:
              action:
                type: string
              delta:
                type: number
              expiration:
                type: string
              iv:
                type: number
              premium:
                type: number
              quantity:
                type: integer
              strike:
                type: number
              theta:
                type: number
              type:
                type: string
              vega:
                type: number
            type: object
          type: array
        name:
          type: string
        stock_price:
          type: number
        ticker:
          type: string
      type: object
    PostPopResponse:
      properties:
        legs_count:
          type: integer
        probability_of_profit:
          type: number
      type: object
  securitySchemes:
    bearerAuth:
      description: ApexVol API token (avmcp_...) from apexvol.com/account, API Access.
      scheme: bearer
      type: http