Swagger

Dashboard

2 endpoints.

2 endpoints

Dashboard

GET/dashboard/statsDashboard stats

Dashboard metrics for a day, week, month or custom period, across every project the session user can access — or one project when projectId is given.

  • Operations carries the counts: total, byStatus, and byNetwork.
  • Fees groups platform fees by network and then by fee token: token totals, plus per-token USD from the price snapshotted on each fee, in micros where 1e6 = $1.
  • A separate lifi section carries the routing fee earned on swap and cross_chain_swap operations — totals, grouped by operation kind, and grouped by network and fee token.
  • Fee USD fields are null when no price was snapshotted for that token or operation.
  • projectEarnings splits the projects' own markups per leg, as transferUsdMicros and privateUsdMicros. They count realized operations only and are also included in projectEarnedUsdMicros.

Authentication: Bearer JWT (project member)

Input — query and path parameters

projectId string
Optional project id filter
period string
day | week | month | custom (default day)
from ISO datetime
Required when period=custom
to ISO datetime
Range end; defaults to now
includeTestnets string
Boolean-as-string, default false. Testnet networks are excluded from results unless true; an explicit networkId filter takes precedence.

Output — example response (200)

{
  "period": "week",
  "operations": {
    "total": 42,
    "byStatus": {
      "confirmed": 40,
      "failed": 2
    },
    "byNetwork": {
      "42161": 42
    }
  },
  "fees": {
    "totalCollectedUsdMicros": "1250000",
    "totalNetUsdMicros": "900000",
    "byNetwork": [
      {
        "networkId": "42161",
        "operations": 42,
        "collectedUsdMicros": "1250000",
        "netUsdMicros": "900000",
        "tokens": [
          {
            "feeAssetId": "0xB97E...",
            "symbol": "USDC",
            "decimals": 6,
            "gasFeeRaw": "850000",
            "staticFeeRaw": "50000",
            "transferFeeRaw": "400000",
            "collectedFeeRaw": "1250000",
            "netRevenueRaw": "1250000",
            "operations": 40,
            "collectedUsdMicros": "1250000",
            "netUsdMicros": "900000"
          }
        ]
      }
    ]
  },
  "lifi": {
    "totalFeeUsdMicros": "300000",
    "byKind": {
      "swap": {
        "operations": 5,
        "feeUsdMicros": "200000"
      },
      "cross_chain_swap": {
        "operations": 2,
        "feeUsdMicros": "100000"
      }
    },
    "byNetwork": [
      {
        "networkId": "42161",
        "tokens": [
          {
            "assetId": "0xB97E...",
            "symbol": "USDC",
            "decimals": 6,
            "feeTokenRaw": "300000",
            "feeUsdMicros": "300000",
            "operations": 7
          }
        ]
      }
    ]
  }
}

Output — every status this endpoint answers with

StatusWhen
200Stats.
400Invalid request body or query parameters
401Missing or invalid credentials
Open in Swagger
GET/dashboard/project-earningsProject markup earnings

What projects earned from their own markup, grouped by project, network, operation kind and the asset the markup was paid in.

  • A markup is paid in the token that moved, so a project can earn in several assets. feeUsdMicros (1e6 = $1) is null for an asset with no trusted price, and null never means zero.
  • Only realized operations count: a prepared but abandoned or reverted operation moved nothing.
  • Platform staff read every project; anyone else reads only the projects they belong to, and asking for another project answers an empty list rather than an error.

Authentication: Bearer JWT (project member)

Input — query and path parameters

projectId string
Optional project id filter
period string
day | week | month | custom (default day)
from ISO datetime
Required when period=custom
to ISO datetime
Range end; defaults to now
networkId string
Optional network filter; repeat it or comma-separate to select several
kind string
Optional operation kind filter; repeat it or comma-separate to select several
includeTestnets string
Boolean-as-string, default false. Testnet networks are excluded from results unless true; an explicit networkId filter takes precedence.

Output — example response (200)

{
  "groups": [
    {
      "projectId": "ugtp_project_a1b2c3d4e5f6",
      "networkId": "42161",
      "operationKind": "transfer",
      "feeAssetId": "0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9",
      "feeAssetSymbol": "USDT",
      "feeAssetDecimals": 6,
      "totalAmountRaw": "250000",
      "feeUsdMicros": "249993",
      "operationCount": 12
    }
  ]
}

Output — every status this endpoint answers with

StatusWhen
200Earnings groups.
400Invalid request body or query parameters
401Missing or invalid credentials
Open in Swagger