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

# Rank market makers by target uptime

> Ranks market makers by how many of their active depth and spread targets they hit, weighting each asset by the market maker's volume and depth at 100 bps. The window must be a completed 24 hours on whole hours. `methodology` describes the weighting.



## OpenAPI

````yaml /openapi.yaml get /v2/organizations/market-maker-metrics/uptime/rankings/
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/market-maker-metrics/uptime/rankings/:
    get:
      tags:
        - Market maker metrics
      summary: Rank market makers by target uptime
      description: >-
        Ranks market makers by how many of their active depth and spread targets
        they hit, weighting each asset by the market maker's volume and depth at
        100 bps. The window must be a completed 24 hours on whole hours.
        `methodology` describes the weighting.
      operationId: v2_organizations_market_maker_metrics_uptime_rankings_get
      parameters:
        - in: query
          name: assets
          schema:
            type: array
            items:
              type: string
            maxItems: 100
          description: >-
            Comma seperated list of assets `<asset>,<asset>`.Defaults to all
            assets the user has access to if not provided.
        - in: query
          name: lookback
          schema:
            enum:
              - 30-minutes
              - 1-hour
              - 3-hours
              - 6-hours
              - 12-hours
              - 1-day
              - 7-days
              - 1-month
              - 3-months
              - 6-months
              - 1-year
            type: string
            minLength: 1
          description: |-
            * `30-minutes` - 30-minutes
            * `1-hour` - 1-hour
            * `3-hours` - 3-hours
            * `6-hours` - 6-hours
            * `12-hours` - 12-hours
            * `1-day` - 1-day
            * `7-days` - 7-days
            * `1-month` - 1-month
            * `3-months` - 3-months
            * `6-months` - 6-months
            * `1-year` - 1-year
        - in: query
          name: organizations
          schema:
            type: array
            items:
              type: string
            maxItems: 100
          description: >-
            Comma seperated list of organization slugs `<slug>,<slug>`.Defaults
            to all organizations the user is member of, if not
            provided.Available organizations are returned in the
            `/v1/organizations` endpoint.
        - in: query
          name: time_end
          schema:
            type: string
            format: date-time
        - in: query
          name: time_start
          schema:
            type: string
            format: date-time
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/OrganizationMarketMakerUptimeRankingsResponse
          description: ''
      security:
        - tokenAuth: []
components:
  schemas:
    OrganizationMarketMakerUptimeRankingsResponse:
      type: object
      properties:
        time_start:
          type: string
          format: date-time
        time_end:
          type: string
          format: date-time
        methodology:
          $ref: >-
            #/components/schemas/OrganizationMarketMakerUptimeRankingsMethodology
        rankings:
          type: array
          items:
            $ref: '#/components/schemas/OrganizationMarketMakerUptimeRanking'
      required:
        - methodology
        - rankings
        - time_end
        - time_start
    OrganizationMarketMakerUptimeRankingsMethodology:
      type: object
      properties:
        target_window_hours:
          type: integer
        target_hit_ratio:
          type: number
          format: double
        depth_bps:
          type: number
          format: double
        missing_liquidity:
          type: string
        volume_weight:
          type: number
          format: double
        depth_weight:
          type: number
          format: double
      required:
        - depth_bps
        - depth_weight
        - missing_liquidity
        - target_hit_ratio
        - target_window_hours
        - volume_weight
    OrganizationMarketMakerUptimeRanking:
      type: object
      properties:
        rank:
          type: integer
        organization:
          $ref: '#/components/schemas/OrganizationTargetsOrganizationResponse'
        score:
          type: number
          format: double
        hit_target_count:
          type: integer
        target_count:
          type: integer
        total_volume:
          type: number
          format: double
        total_depth:
          type: number
          format: double
        weighting:
          type: object
          additionalProperties:
            type: number
            format: double
        assets:
          type: array
          items:
            $ref: '#/components/schemas/OrganizationMarketMakerUptimeRankingAsset'
      required:
        - assets
        - hit_target_count
        - organization
        - rank
        - score
        - target_count
        - total_depth
        - total_volume
        - weighting
    OrganizationTargetsOrganizationResponse:
      type: object
      properties:
        slug:
          type: string
        name:
          type: string
      required:
        - name
        - slug
    OrganizationMarketMakerUptimeRankingAsset:
      type: object
      properties:
        asset:
          type: string
        score:
          type: number
          format: double
        hit_target_count:
          type: integer
        target_count:
          type: integer
        volume:
          type: number
          format: double
        depth:
          type: number
          format: double
        volume_share:
          type: number
          format: double
        depth_share:
          type: number
          format: double
        weight:
          type: number
          format: double
      required:
        - asset
        - depth
        - depth_share
        - hit_target_count
        - score
        - target_count
        - volume
        - volume_share
        - weight
  securitySchemes:
    tokenAuth:
      type: apiKey
      in: header
      name: Authorization
      description: >-
        Token-based authentication with required prefix "Token ". Example:
        "Token 9944b09199c62bcf9418ad846dd0e4bbdfc6ee4b"
      x-default: Token <token>

````