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

# Preview target changes

> Shows what saving this complete set of targets for the given scopes would create, update and delete. Nothing is saved.



## OpenAPI

````yaml /openapi.yaml post /v2/organizations/targets/preview/
openapi: 3.0.3
info:
  title: Glass Market API
  version: 1.0.0
  x-logo:
    url: https://api.glassmarkets.io/static/black.png
    backgroundColor: '#FFFFFF'
    altText: Glass Market API
  description: >

    The GlassMarkets API serves the data behind the GlassMarkets app: market
    data

    collected from crypto exchanges, and market-making data for the assets your

    organizations work on. Market makers also use it to submit the metrics they

    report.


    The base URL is `https://api.glassmarkets.io`. Requests and responses are
    JSON,

    and times are ISO 8601 in UTC. `bps` means basis points: 1 bps is 0.01%.


    ## Authentication


    1. Log in with `POST /v1/login/`, sending your email and password. The
    response
       contains a `token` and its `expiry`.
    2. Send the token on every request in the `Authorization` header:
       `Authorization: Token <token>`.

    A token expires one day after its last use, and at most 30 days after login.

    With `"remember_me": true` at login, it stays valid for at least 7 days. A

    request with a missing, expired or revoked token returns `401`: log in
    again.

    `POST /v1/logout/` revokes the token.


    If your account has two-factor authentication, login returns `202` with a

    `challenge_id`. Send it with your authentication code to `POST
    /v1/totp/login/`

    to get the token.


    ## Quickstart


    1. Log in:

       ```
       curl -X POST https://api.glassmarkets.io/v1/login/ \
         -H "Content-Type: application/json" \
         -d '{"email": "you@example.com", "password": "..."}'
       ```

    2. List your organizations with `GET /v1/organizations/`. Each organization
       lists its assets. Each asset lists the exchanges it trades on (`slug`) and
       the pairs on each exchange. Use these exact values in other requests.

       ```
       curl https://api.glassmarkets.io/v1/organizations/ \
         -H "Authorization: Token <token>"
       ```

    3. Call an endpoint with those values, for example the daily trading volume
    of
       one of your assets:

       ```
       curl -G https://api.glassmarkets.io/v2/metrics/volume/ \
         -H "Authorization: Token <token>" \
         -d assets=BTC -d interval=1d \
         -d time_start=2026-09-01T00:00:00Z -d time_end=2026-09-08T00:00:00Z
       ```

    ## Errors


    Invalid input returns `400` with the problem per field, for example

    `{"interval": ["This field is required."]}`. Other errors return a status

    code with a `detail` message: `401` when you are not logged in, `403` when
    your

    account may not use the endpoint, and `404` when the resource does not
    exist.
servers:
  - url: https://api.glassmarkets.io
security: []
tags:
  - name: Authentication
    description: Log in, log out and read the current session.
  - name: Organizations
    description: Your organizations, and the assets, exchanges and pairs each one covers.
  - name: Reported metrics
    description: Volume, depth and spread that market makers report for their assets.
  - name: Trusted metrics
    description: >-
      Volume, depth and spread that Shield measures directly from market makers'
      exchange accounts.
  - name: Market maker metrics
    description: >-
      Market-maker volume, depth, spread, uptime and coverage, combining trusted
      and reported data.
  - name: Targets
    description: >-
      Market-making targets per asset, exchange and pair, and whether they are
      met.
  - name: Market data
    description: >-
      Exchange market data for your assets: volume, spread, order book depth,
      slippage, uptime, futures and more.
  - name: Leaderboard
    description: Trading pairs across exchanges, ranked by market data.
  - name: Loans
    description: Token loans to market makers for your assets.
  - name: RFQ
    description: >-
      Requests for quotes: a project invites market makers to propose
      market-making terms for its token.
  - name: Account
    description: Manage your password, passkeys and two-factor authentication.
paths:
  /v2/organizations/targets/preview/:
    post:
      tags:
        - Targets
      summary: Preview target changes
      description: >-
        Shows what saving this complete set of targets for the given scopes
        would create, update and delete. Nothing is saved.
      operationId: v2_organizations_targets_preview_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrganizationTargetPreviewRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/OrganizationTargetPreviewRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/OrganizationTargetPreviewRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganizationTargetPreviewResponse'
          description: ''
      security:
        - tokenAuth: []
components:
  schemas:
    OrganizationTargetPreviewRequest:
      type: object
      properties:
        scopes:
          type: array
          items:
            $ref: '#/components/schemas/OrganizationTargetPreviewScope'
          maxItems: 100
        targets:
          type: array
          items:
            $ref: '#/components/schemas/TargetCreateItem'
          maxItems: 100
        apply_scaling:
          type: boolean
          default: true
      required:
        - scopes
    OrganizationTargetPreviewResponse:
      type: object
      properties:
        prefill:
          $ref: '#/components/schemas/OrganizationTargetPreviewPrefillResponse'
        changes:
          type: array
          items:
            $ref: '#/components/schemas/OrganizationTargetPreviewChangeResponse'
        summary:
          $ref: '#/components/schemas/OrganizationTargetPreviewSummaryResponse'
        batch:
          $ref: '#/components/schemas/OrganizationTargetPreviewBatchResponse'
      required:
        - batch
        - changes
        - prefill
        - summary
    OrganizationTargetPreviewScope:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/TypeEnum'
        organization:
          type: string
        asset:
          type: string
        metrics:
          type: array
          items:
            type: string
          maxItems: 25
      required:
        - asset
        - metrics
        - organization
        - type
    TargetCreateItem:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/TypeEnum'
        organization:
          type: string
        asset:
          type: string
        exchange:
          type: string
        pair:
          type: string
        metric:
          type: string
          description: |-

            ### **Global (gb) metrics:**
            - `volume/volume`
            - `volume/twap`
            - `volume/vwap`
            - `spread/mid_price`
            - `spread/spread_abs`
            - `spread/spread_bps`
            - `depth/bid_0bps`
            - `depth/bid_0.05bps`
            - `depth/bid_0.1bps`
            - `depth/bid_0.15bps`
            - `depth/bid_0.25bps`
            - `depth/bid_0.5bps`
            - `depth/bid_0.75bps`
            - `depth/bid_1bps`
            - `depth/bid_2bps`
            - `depth/bid_3bps`
            - `depth/bid_5bps`
            - `depth/bid_10bps`
            - `depth/bid_15bps`
            - `depth/bid_20bps`
            - `depth/bid_25bps`
            - `depth/bid_30bps`
            - `depth/bid_40bps`
            - `depth/bid_50bps`
            - `depth/bid_60bps`
            - `depth/bid_75bps`
            - `depth/bid_100bps`
            - `depth/bid_150bps`
            - `depth/bid_200bps`
            - `depth/bid_300bps`
            - `depth/bid_500bps`
            - `depth/n_bid_0bps`
            - `depth/n_bid_0.05bps`
            - `depth/n_bid_0.1bps`
            - `depth/n_bid_0.15bps`
            - `depth/n_bid_0.25bps`
            - `depth/n_bid_0.5bps`
            - `depth/n_bid_0.75bps`
            - `depth/n_bid_1bps`
            - `depth/n_bid_2bps`
            - `depth/n_bid_3bps`
            - `depth/n_bid_5bps`
            - `depth/n_bid_10bps`
            - `depth/n_bid_15bps`
            - `depth/n_bid_20bps`
            - `depth/n_bid_25bps`
            - `depth/n_bid_30bps`
            - `depth/n_bid_40bps`
            - `depth/n_bid_50bps`
            - `depth/n_bid_60bps`
            - `depth/n_bid_75bps`
            - `depth/n_bid_100bps`
            - `depth/n_bid_150bps`
            - `depth/n_bid_200bps`
            - `depth/n_bid_300bps`
            - `depth/n_bid_500bps`
            - `depth/ask_0bps`
            - `depth/ask_0.05bps`
            - `depth/ask_0.1bps`
            - `depth/ask_0.15bps`
            - `depth/ask_0.25bps`
            - `depth/ask_0.5bps`
            - `depth/ask_0.75bps`
            - `depth/ask_1bps`
            - `depth/ask_2bps`
            - `depth/ask_3bps`
            - `depth/ask_5bps`
            - `depth/ask_10bps`
            - `depth/ask_15bps`
            - `depth/ask_20bps`
            - `depth/ask_25bps`
            - `depth/ask_30bps`
            - `depth/ask_40bps`
            - `depth/ask_50bps`
            - `depth/ask_60bps`
            - `depth/ask_75bps`
            - `depth/ask_100bps`
            - `depth/ask_150bps`
            - `depth/ask_200bps`
            - `depth/ask_300bps`
            - `depth/ask_500bps`
            - `depth/n_ask_0bps`
            - `depth/n_ask_0.05bps`
            - `depth/n_ask_0.1bps`
            - `depth/n_ask_0.15bps`
            - `depth/n_ask_0.25bps`
            - `depth/n_ask_0.5bps`
            - `depth/n_ask_0.75bps`
            - `depth/n_ask_1bps`
            - `depth/n_ask_2bps`
            - `depth/n_ask_3bps`
            - `depth/n_ask_5bps`
            - `depth/n_ask_10bps`
            - `depth/n_ask_15bps`
            - `depth/n_ask_20bps`
            - `depth/n_ask_25bps`
            - `depth/n_ask_30bps`
            - `depth/n_ask_40bps`
            - `depth/n_ask_50bps`
            - `depth/n_ask_60bps`
            - `depth/n_ask_75bps`
            - `depth/n_ask_100bps`
            - `depth/n_ask_150bps`
            - `depth/n_ask_200bps`
            - `depth/n_ask_300bps`
            - `depth/n_ask_500bps`
            - `slippage/slippage_buy_at_100`
            - `slippage/slippage_buy_at_1000`
            - `slippage/slippage_buy_at_10000`
            - `slippage/slippage_buy_at_50000`
            - `slippage/slippage_buy_at_100000`
            - `slippage/slippage_buy_at_250000`
            - `slippage/slippage_buy_at_500000`
            - `slippage/slippage_buy_at_1000000`
            - `slippage/slippage_buy_at_5000000`
            - `slippage/slippage_buy_at_10000000`
            - `slippage/slippage_sell_at_100`
            - `slippage/slippage_sell_at_1000`
            - `slippage/slippage_sell_at_10000`
            - `slippage/slippage_sell_at_50000`
            - `slippage/slippage_sell_at_100000`
            - `slippage/slippage_sell_at_250000`
            - `slippage/slippage_sell_at_500000`
            - `slippage/slippage_sell_at_1000000`
            - `slippage/slippage_sell_at_5000000`
            - `slippage/slippage_sell_at_10000000`
            - `uptime/spread/0bps`
            - `uptime/spread/0.05bps`
            - `uptime/spread/0.1bps`
            - `uptime/spread/0.15bps`
            - `uptime/spread/0.25bps`
            - `uptime/spread/0.5bps`
            - `uptime/spread/0.75bps`
            - `uptime/spread/1bps`
            - `uptime/spread/2bps`
            - `uptime/spread/3bps`
            - `uptime/spread/5bps`
            - `uptime/spread/10bps`
            - `uptime/spread/15bps`
            - `uptime/spread/20bps`
            - `uptime/spread/25bps`
            - `uptime/spread/30bps`
            - `uptime/spread/40bps`
            - `uptime/spread/50bps`
            - `uptime/spread/60bps`
            - `uptime/spread/75bps`
            - `uptime/spread/100bps`
            - `uptime/spread/150bps`
            - `uptime/spread/200bps`
            - `uptime/spread/300bps`
            - `uptime/spread/500bps`
            - `uptime/depth/25000_at_0bps`
            - `uptime/depth/50000_at_0bps`
            - `uptime/depth/100000_at_0bps`
            - `uptime/depth/150000_at_0bps`
            - `uptime/depth/250000_at_0bps`
            - `uptime/depth/25000_at_0.05bps`
            - `uptime/depth/50000_at_0.05bps`
            - `uptime/depth/100000_at_0.05bps`
            - `uptime/depth/150000_at_0.05bps`
            - `uptime/depth/250000_at_0.05bps`
            - `uptime/depth/25000_at_0.1bps`
            - `uptime/depth/50000_at_0.1bps`
            - `uptime/depth/100000_at_0.1bps`
            - `uptime/depth/150000_at_0.1bps`
            - `uptime/depth/250000_at_0.1bps`
            - `uptime/depth/25000_at_0.15bps`
            - `uptime/depth/50000_at_0.15bps`
            - `uptime/depth/100000_at_0.15bps`
            - `uptime/depth/150000_at_0.15bps`
            - `uptime/depth/250000_at_0.15bps`
            - `uptime/depth/25000_at_0.25bps`
            - `uptime/depth/50000_at_0.25bps`
            - `uptime/depth/100000_at_0.25bps`
            - `uptime/depth/150000_at_0.25bps`
            - `uptime/depth/250000_at_0.25bps`
            - `uptime/depth/25000_at_0.5bps`
            - `uptime/depth/50000_at_0.5bps`
            - `uptime/depth/100000_at_0.5bps`
            - `uptime/depth/150000_at_0.5bps`
            - `uptime/depth/250000_at_0.5bps`
            - `uptime/depth/25000_at_0.75bps`
            - `uptime/depth/50000_at_0.75bps`
            - `uptime/depth/100000_at_0.75bps`
            - `uptime/depth/150000_at_0.75bps`
            - `uptime/depth/250000_at_0.75bps`
            - `uptime/depth/25000_at_1bps`
            - `uptime/depth/50000_at_1bps`
            - `uptime/depth/100000_at_1bps`
            - `uptime/depth/150000_at_1bps`
            - `uptime/depth/250000_at_1bps`
            - `uptime/depth/25000_at_2bps`
            - `uptime/depth/50000_at_2bps`
            - `uptime/depth/100000_at_2bps`
            - `uptime/depth/150000_at_2bps`
            - `uptime/depth/250000_at_2bps`
            - `uptime/depth/25000_at_3bps`
            - `uptime/depth/50000_at_3bps`
            - `uptime/depth/100000_at_3bps`
            - `uptime/depth/150000_at_3bps`
            - `uptime/depth/250000_at_3bps`
            - `uptime/depth/25000_at_5bps`
            - `uptime/depth/50000_at_5bps`
            - `uptime/depth/100000_at_5bps`
            - `uptime/depth/150000_at_5bps`
            - `uptime/depth/250000_at_5bps`
            - `uptime/depth/25000_at_10bps`
            - `uptime/depth/50000_at_10bps`
            - `uptime/depth/100000_at_10bps`
            - `uptime/depth/150000_at_10bps`
            - `uptime/depth/250000_at_10bps`
            - `uptime/depth/25000_at_15bps`
            - `uptime/depth/50000_at_15bps`
            - `uptime/depth/100000_at_15bps`
            - `uptime/depth/150000_at_15bps`
            - `uptime/depth/250000_at_15bps`
            - `uptime/depth/25000_at_20bps`
            - `uptime/depth/50000_at_20bps`
            - `uptime/depth/100000_at_20bps`
            - `uptime/depth/150000_at_20bps`
            - `uptime/depth/250000_at_20bps`
            - `uptime/depth/25000_at_25bps`
            - `uptime/depth/50000_at_25bps`
            - `uptime/depth/100000_at_25bps`
            - `uptime/depth/150000_at_25bps`
            - `uptime/depth/250000_at_25bps`
            - `uptime/depth/25000_at_30bps`
            - `uptime/depth/50000_at_30bps`
            - `uptime/depth/100000_at_30bps`
            - `uptime/depth/150000_at_30bps`
            - `uptime/depth/250000_at_30bps`
            - `uptime/depth/25000_at_40bps`
            - `uptime/depth/50000_at_40bps`
            - `uptime/depth/100000_at_40bps`
            - `uptime/depth/150000_at_40bps`
            - `uptime/depth/250000_at_40bps`
            - `uptime/depth/25000_at_50bps`
            - `uptime/depth/50000_at_50bps`
            - `uptime/depth/100000_at_50bps`
            - `uptime/depth/150000_at_50bps`
            - `uptime/depth/250000_at_50bps`
            - `uptime/depth/25000_at_60bps`
            - `uptime/depth/50000_at_60bps`
            - `uptime/depth/100000_at_60bps`
            - `uptime/depth/150000_at_60bps`
            - `uptime/depth/250000_at_60bps`
            - `uptime/depth/25000_at_75bps`
            - `uptime/depth/50000_at_75bps`
            - `uptime/depth/100000_at_75bps`
            - `uptime/depth/150000_at_75bps`
            - `uptime/depth/250000_at_75bps`
            - `uptime/depth/25000_at_100bps`
            - `uptime/depth/50000_at_100bps`
            - `uptime/depth/100000_at_100bps`
            - `uptime/depth/150000_at_100bps`
            - `uptime/depth/250000_at_100bps`
            - `uptime/depth/25000_at_150bps`
            - `uptime/depth/50000_at_150bps`
            - `uptime/depth/100000_at_150bps`
            - `uptime/depth/150000_at_150bps`
            - `uptime/depth/250000_at_150bps`
            - `uptime/depth/25000_at_200bps`
            - `uptime/depth/50000_at_200bps`
            - `uptime/depth/100000_at_200bps`
            - `uptime/depth/150000_at_200bps`
            - `uptime/depth/250000_at_200bps`
            - `uptime/depth/25000_at_300bps`
            - `uptime/depth/50000_at_300bps`
            - `uptime/depth/100000_at_300bps`
            - `uptime/depth/150000_at_300bps`
            - `uptime/depth/250000_at_300bps`
            - `uptime/depth/25000_at_500bps`
            - `uptime/depth/50000_at_500bps`
            - `uptime/depth/100000_at_500bps`
            - `uptime/depth/150000_at_500bps`
            - `uptime/depth/250000_at_500bps`
            - `top_of_book/bid_price`
            - `top_of_book/bid_amount`
            - `top_of_book/ask_price`
            - `top_of_book/ask_amount`

            ### **Market Maker (mm) metrics:**
            - `volume/volume`
            - `spread/spread_bps`
            - `depth/bid_0bps`
            - `depth/bid_0.05bps`
            - `depth/bid_0.1bps`
            - `depth/bid_0.15bps`
            - `depth/bid_0.25bps`
            - `depth/bid_0.5bps`
            - `depth/bid_0.75bps`
            - `depth/bid_1bps`
            - `depth/bid_2bps`
            - `depth/bid_3bps`
            - `depth/bid_5bps`
            - `depth/bid_10bps`
            - `depth/bid_15bps`
            - `depth/bid_20bps`
            - `depth/bid_25bps`
            - `depth/bid_30bps`
            - `depth/bid_40bps`
            - `depth/bid_50bps`
            - `depth/bid_60bps`
            - `depth/bid_75bps`
            - `depth/bid_100bps`
            - `depth/bid_150bps`
            - `depth/bid_200bps`
            - `depth/bid_300bps`
            - `depth/bid_500bps`
            - `depth/ask_0bps`
            - `depth/ask_0.05bps`
            - `depth/ask_0.1bps`
            - `depth/ask_0.15bps`
            - `depth/ask_0.25bps`
            - `depth/ask_0.5bps`
            - `depth/ask_0.75bps`
            - `depth/ask_1bps`
            - `depth/ask_2bps`
            - `depth/ask_3bps`
            - `depth/ask_5bps`
            - `depth/ask_10bps`
            - `depth/ask_15bps`
            - `depth/ask_20bps`
            - `depth/ask_25bps`
            - `depth/ask_30bps`
            - `depth/ask_40bps`
            - `depth/ask_50bps`
            - `depth/ask_60bps`
            - `depth/ask_75bps`
            - `depth/ask_100bps`
            - `depth/ask_150bps`
            - `depth/ask_200bps`
            - `depth/ask_300bps`
            - `depth/ask_500bps`
            - `coverage/volume/volume_coverage`
            - `coverage/depth/bid_0bps_coverage`
            - `coverage/depth/bid_0.05bps_coverage`
            - `coverage/depth/bid_0.1bps_coverage`
            - `coverage/depth/bid_0.15bps_coverage`
            - `coverage/depth/bid_0.25bps_coverage`
            - `coverage/depth/bid_0.5bps_coverage`
            - `coverage/depth/bid_0.75bps_coverage`
            - `coverage/depth/bid_1bps_coverage`
            - `coverage/depth/bid_2bps_coverage`
            - `coverage/depth/bid_3bps_coverage`
            - `coverage/depth/bid_5bps_coverage`
            - `coverage/depth/bid_10bps_coverage`
            - `coverage/depth/bid_15bps_coverage`
            - `coverage/depth/bid_20bps_coverage`
            - `coverage/depth/bid_25bps_coverage`
            - `coverage/depth/bid_30bps_coverage`
            - `coverage/depth/bid_40bps_coverage`
            - `coverage/depth/bid_50bps_coverage`
            - `coverage/depth/bid_60bps_coverage`
            - `coverage/depth/bid_75bps_coverage`
            - `coverage/depth/bid_100bps_coverage`
            - `coverage/depth/bid_150bps_coverage`
            - `coverage/depth/bid_200bps_coverage`
            - `coverage/depth/bid_300bps_coverage`
            - `coverage/depth/bid_500bps_coverage`
            - `coverage/depth/ask_0bps_coverage`
            - `coverage/depth/ask_0.05bps_coverage`
            - `coverage/depth/ask_0.1bps_coverage`
            - `coverage/depth/ask_0.15bps_coverage`
            - `coverage/depth/ask_0.25bps_coverage`
            - `coverage/depth/ask_0.5bps_coverage`
            - `coverage/depth/ask_0.75bps_coverage`
            - `coverage/depth/ask_1bps_coverage`
            - `coverage/depth/ask_2bps_coverage`
            - `coverage/depth/ask_3bps_coverage`
            - `coverage/depth/ask_5bps_coverage`
            - `coverage/depth/ask_10bps_coverage`
            - `coverage/depth/ask_15bps_coverage`
            - `coverage/depth/ask_20bps_coverage`
            - `coverage/depth/ask_25bps_coverage`
            - `coverage/depth/ask_30bps_coverage`
            - `coverage/depth/ask_40bps_coverage`
            - `coverage/depth/ask_50bps_coverage`
            - `coverage/depth/ask_60bps_coverage`
            - `coverage/depth/ask_75bps_coverage`
            - `coverage/depth/ask_100bps_coverage`
            - `coverage/depth/ask_150bps_coverage`
            - `coverage/depth/ask_200bps_coverage`
            - `coverage/depth/ask_300bps_coverage`
            - `coverage/depth/ask_500bps_coverage`
            - `uptime/spread/spread_uptime`
            - `uptime/depth/bid_0bps`
            - `uptime/depth/bid_0.05bps`
            - `uptime/depth/bid_0.1bps`
            - `uptime/depth/bid_0.15bps`
            - `uptime/depth/bid_0.25bps`
            - `uptime/depth/bid_0.5bps`
            - `uptime/depth/bid_0.75bps`
            - `uptime/depth/bid_1bps`
            - `uptime/depth/bid_2bps`
            - `uptime/depth/bid_3bps`
            - `uptime/depth/bid_5bps`
            - `uptime/depth/bid_10bps`
            - `uptime/depth/bid_15bps`
            - `uptime/depth/bid_20bps`
            - `uptime/depth/bid_25bps`
            - `uptime/depth/bid_30bps`
            - `uptime/depth/bid_40bps`
            - `uptime/depth/bid_50bps`
            - `uptime/depth/bid_60bps`
            - `uptime/depth/bid_75bps`
            - `uptime/depth/bid_100bps`
            - `uptime/depth/bid_150bps`
            - `uptime/depth/bid_200bps`
            - `uptime/depth/bid_300bps`
            - `uptime/depth/bid_500bps`
            - `uptime/depth/ask_0bps`
            - `uptime/depth/ask_0.05bps`
            - `uptime/depth/ask_0.1bps`
            - `uptime/depth/ask_0.15bps`
            - `uptime/depth/ask_0.25bps`
            - `uptime/depth/ask_0.5bps`
            - `uptime/depth/ask_0.75bps`
            - `uptime/depth/ask_1bps`
            - `uptime/depth/ask_2bps`
            - `uptime/depth/ask_3bps`
            - `uptime/depth/ask_5bps`
            - `uptime/depth/ask_10bps`
            - `uptime/depth/ask_15bps`
            - `uptime/depth/ask_20bps`
            - `uptime/depth/ask_25bps`
            - `uptime/depth/ask_30bps`
            - `uptime/depth/ask_40bps`
            - `uptime/depth/ask_50bps`
            - `uptime/depth/ask_60bps`
            - `uptime/depth/ask_75bps`
            - `uptime/depth/ask_100bps`
            - `uptime/depth/ask_150bps`
            - `uptime/depth/ask_200bps`
            - `uptime/depth/ask_300bps`
            - `uptime/depth/ask_500bps`
                    
        threshold:
          type: number
          format: double
        direction:
          $ref: '#/components/schemas/DirectionEnum'
        telegram_notifications:
          type: boolean
          default: false
        scaling_enabled:
          type: boolean
        scaling_source:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/ScalingSourceEnum'
            - $ref: '#/components/schemas/NullEnum'
        scaling_reference_price:
          type: number
          format: double
          nullable: true
        market_hours:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/MarketHoursEnum'
            - $ref: '#/components/schemas/NullEnum'
      required:
        - asset
        - direction
        - exchange
        - metric
        - organization
        - pair
        - threshold
        - type
    OrganizationTargetPreviewPrefillResponse:
      type: object
      properties:
        default:
          type: array
          items:
            $ref: '#/components/schemas/OrganizationTargetPreviewTargetResponse'
        market_hours:
          type: object
          additionalProperties:
            type: array
            items:
              $ref: '#/components/schemas/OrganizationTargetPreviewTargetResponse'
      required:
        - default
        - market_hours
    OrganizationTargetPreviewChangeResponse:
      type: object
      properties:
        action:
          $ref: >-
            #/components/schemas/OrganizationTargetPreviewChangeResponseActionEnum
        existing_id:
          type: integer
          nullable: true
        before:
          allOf:
            - $ref: '#/components/schemas/OrganizationTargetPreviewTargetResponse'
          nullable: true
        after:
          allOf:
            - $ref: '#/components/schemas/OrganizationTargetPreviewTargetResponse'
          nullable: true
        changed_fields:
          type: array
          items:
            type: string
        used_default_fallback:
          type: boolean
      required:
        - action
        - after
        - before
        - changed_fields
        - existing_id
        - used_default_fallback
    OrganizationTargetPreviewSummaryResponse:
      type: object
      properties:
        added:
          type: integer
        modified:
          type: integer
        removed:
          type: integer
      required:
        - added
        - modified
        - removed
    OrganizationTargetPreviewBatchResponse:
      type: object
      properties:
        delete_ids:
          type: array
          items:
            type: integer
        create_targets:
          type: array
          items:
            $ref: '#/components/schemas/TargetCreateItem'
      required:
        - create_targets
        - delete_ids
    TypeEnum:
      enum:
        - gb
        - mm
      type: string
      description: |-
        * `gb` - Global
        * `mm` - Market Maker
    DirectionEnum:
      enum:
        - above
        - below
      type: string
      description: |-
        * `above` - Above
        * `below` - Below
    ScalingSourceEnum:
      enum:
        - asset_twap_24h
        - loan_twap
        - manual
      type: string
      description: |-
        * `asset_twap_24h` - Asset Twap 24H
        * `loan_twap` - Loan Twap
        * `manual` - Manual
    NullEnum:
      enum:
        - null
    MarketHoursEnum:
      enum:
        - market-hours
        - pre-market
        - after-hours
        - overnight
        - weekend-hours
      type: string
      description: |-
        * `market-hours` - Market Hours
        * `pre-market` - Pre Market
        * `after-hours` - After Hours
        * `overnight` - Overnight
        * `weekend-hours` - Weekend Hours
    OrganizationTargetPreviewTargetResponse:
      type: object
      properties:
        id:
          type: integer
          nullable: true
        type:
          $ref: '#/components/schemas/TypeEnum'
        organization:
          type: string
        asset:
          type: string
        exchange:
          type: string
        pair:
          type: string
        metric:
          type: string
        threshold:
          type: number
          format: double
        display_threshold:
          type: number
          format: double
        direction:
          $ref: '#/components/schemas/DirectionEnum'
        active:
          type: boolean
        telegram_notifications:
          type: boolean
        market_hours:
          type: string
        scaling:
          $ref: '#/components/schemas/OrganizationTargetPreviewScalingResponse'
      required:
        - active
        - asset
        - direction
        - display_threshold
        - exchange
        - id
        - market_hours
        - metric
        - organization
        - pair
        - scaling
        - telegram_notifications
        - threshold
        - type
    OrganizationTargetPreviewChangeResponseActionEnum:
      enum:
        - added
        - modified
        - removed
      type: string
      description: |-
        * `added` - added
        * `modified` - modified
        * `removed` - removed
    OrganizationTargetPreviewScalingResponse:
      type: object
      properties:
        mode:
          type: string
        enabled:
          type: boolean
        scaling_source:
          type: string
          nullable: true
        reference_price:
          type: number
          format: double
          nullable: true
      required:
        - enabled
        - mode
        - reference_price
        - scaling_source
  securitySchemes:
    tokenAuth:
      type: apiKey
      in: header
      name: Authorization
      description: >-
        Token-based authentication with required prefix "Token ". Example:
        "Token 9944b09199c62bcf9418ad846dd0e4bbdfc6ee4b"
      x-default: Token <token>

````