Midgard Public API (2.4.1)

Download OpenAPI specification:Download

The Midgard Public API queries THORChain and any chains linked via the Bifröst and prepares information about the network to be readily available for public users. The API parses transaction event data from THORChain and stores them in a time-series database to make time-dependent queries easy. Midgard does not hold critical information. To interact with BEPSwap and Asgardex, users should query THORChain directly.

Specification

Documentation

Swagger/OpenAPI 3.0 specification generated documents.

Responses

Swagger File

Returns human and machine readable swagger/openapi specification

Responses

Health Info

Returns an object containing the health response of the API

Responses

Response samples

Content type
application/json
{
  • "database": true,
  • "scannerHeight": "string",
  • "inSync": true
}

Pools List

Returns an array containing details for a set of pools

query Parameters
status
string
Enum: "available" "staged" "suspended"

Filter for only pools with this status

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Details of a Pool

Returns details of the pool: depths, price, 24h volume, APY.

path Parameters
asset
required
string
Example: BNB.TOMOB-1E1

pool name

Responses

Response samples

Content type
application/json
{
  • "asset": "string",
  • "volume24h": "string",
  • "assetDepth": "string",
  • "runeDepth": "string",
  • "assetPrice": "string",
  • "assetPriceUSD": "string",
  • "poolAPY": "string",
  • "status": "string",
  • "liquidityUnits": "string",
  • "synthUnits": "string",
  • "synthSupply": "string",
  • "units": "string"
}

Pool Statistics

Statistics about the pool. The description of the fields have pointers about the corresponding v2/history location. Visit the history endpoint for drilldowns.

path Parameters
asset
required
string
Example: BNB.TOMOB-1E1

pool name

query Parameters
period
string
Enum: "1h" "24h" "7d" "30d" "90d" "365d" "all"
Example: period=24h

Restricts aggregation type fields to the last period only. Default is 30d.

Responses

Response samples

Content type
application/json
{
  • "asset": "string",
  • "status": "string",
  • "assetPrice": "string",
  • "assetPriceUSD": "string",
  • "assetDepth": "string",
  • "runeDepth": "string",
  • "synthUnits": "string",
  • "synthSupply": "string",
  • "liquidityUnits": "string",
  • "units": "string",
  • "toAssetVolume": "string",
  • "toRuneVolume": "string",
  • "swapVolume": "string",
  • "toAssetCount": "string",
  • "toRuneCount": "string",
  • "swapCount": "string",
  • "uniqueSwapperCount": "string",
  • "toAssetAverageSlip": "string",
  • "toRuneAverageSlip": "string",
  • "averageSlip": "string",
  • "toAssetFees": "string",
  • "toRuneFees": "string",
  • "totalFees": "string",
  • "poolAPY": "string",
  • "addAssetLiquidityVolume": "string",
  • "addRuneLiquidityVolume": "string",
  • "addLiquidityVolume": "string",
  • "addLiquidityCount": "string",
  • "withdrawAssetVolume": "string",
  • "withdrawRuneVolume": "string",
  • "impermanentLossProtectionPaid": "string",
  • "withdrawVolume": "string",
  • "withdrawCount": "string",
  • "uniqueMemberCount": "string"
}

Depth and Price History

Returns the asset and rune depths and price. The values report the state at the end of each interval.

History endpoint has two modes:

  • With Interval parameter it returns a series of time buckets. From and To dates will be rounded to the Interval boundaries.
  • Without Interval parameter a single From..To search is performed with exact timestamps.
  • Interval: possible values: 5min, hour, day, week, month, quarter, year.
  • count: [1..400]. Defines number of intervals. Don't provide if Interval is missing.
  • from/to: optional int, unix second.

Possible usages with interval.

  • last 10 days: ?interval=day&count=10
  • last 10 days before to: ?interval=day&count=10&to=1608825600
  • next 10 days after from: ?interval=day&count=10&from=1606780800
  • Days between from and to. From defaults to start of chain, to defaults to now. Only the first 400 intervals are returned: interval=day&from=1606780800&to=1608825600

Pagination is possible with from&count and then using the returned meta.endTime as the From parameter of the next query.

Possible configurations without interval:

  • exact search for one time frame: ?from=1606780899&to=1608825600
  • one time frame until now: ?from=1606780899
  • from chain start until now: no query parameters
path Parameters
pool
required
string

Return stats for this single pool.

query Parameters
interval
string
Enum: "5min" "hour" "day" "week" "month" "quarter" "year"
Example: interval=day

Interval of calculations

count
integer
Example: count=30

Number of intervals to return. Should be between [1..400].

to
integer <int64>
Example: to=1608825600

End time of the query as unix timestamp. If only count is given, defaults to now.

from
integer <int64>
Example: from=1606780800

Start time of the query as unix timestamp

Responses

Response samples

Content type
application/json
{
  • "meta": {
    },
  • "intervals": [
    ]
}

Earnings History

Returns earnings data for the specified interval.

History endpoint has two modes:

  • With Interval parameter it returns a series of time buckets. From and To dates will be rounded to the Interval boundaries.
  • Without Interval parameter a single From..To search is performed with exact timestamps.
  • Interval: possible values: 5min, hour, day, week, month, quarter, year.
  • count: [1..400]. Defines number of intervals. Don't provide if Interval is missing.
  • from/to: optional int, unix second.

Possible usages with interval.

  • last 10 days: ?interval=day&count=10
  • last 10 days before to: ?interval=day&count=10&to=1608825600
  • next 10 days after from: ?interval=day&count=10&from=1606780800
  • Days between from and to. From defaults to start of chain, to defaults to now. Only the first 400 intervals are returned: interval=day&from=1606780800&to=1608825600

Pagination is possible with from&count and then using the returned meta.endTime as the From parameter of the next query.

Possible configurations without interval:

  • exact search for one time frame: ?from=1606780899&to=1608825600
  • one time frame until now: ?from=1606780899
  • from chain start until now: no query parameters
query Parameters
interval
string
Enum: "5min" "hour" "day" "week" "month" "quarter" "year"
Example: interval=day

Interval of calculations

count
integer
Example: count=30

Number of intervals to return. Should be between [1..400].

to
integer <int64>
Example: to=1608825600

End time of the query as unix timestamp. If only count is given, defaults to now.

from
integer <int64>
Example: from=1606780800

Start time of the query as unix timestamp

Responses

Response samples

Content type
application/json
{
  • "meta": {
    },
  • "intervals": [
    ]
}

Swaps History

Returns swap count, volume, fees, slip in specified interval. If pool is not specified returns for all pools

History endpoint has two modes:

  • With Interval parameter it returns a series of time buckets. From and To dates will be rounded to the Interval boundaries.
  • Without Interval parameter a single From..To search is performed with exact timestamps.
  • Interval: possible values: 5min, hour, day, week, month, quarter, year.
  • count: [1..400]. Defines number of intervals. Don't provide if Interval is missing.
  • from/to: optional int, unix second.

Possible usages with interval.

  • last 10 days: ?interval=day&count=10
  • last 10 days before to: ?interval=day&count=10&to=1608825600
  • next 10 days after from: ?interval=day&count=10&from=1606780800
  • Days between from and to. From defaults to start of chain, to defaults to now. Only the first 400 intervals are returned: interval=day&from=1606780800&to=1608825600

Pagination is possible with from&count and then using the returned meta.endTime as the From parameter of the next query.

Possible configurations without interval:

  • exact search for one time frame: ?from=1606780899&to=1608825600
  • one time frame until now: ?from=1606780899
  • from chain start until now: no query parameters
query Parameters
pool
string

Return history given pool. Returns sum of all pools if missing.

interval
string
Enum: "5min" "hour" "day" "week" "month" "quarter" "year"
Example: interval=day

Interval of calculations

count
integer
Example: count=30

Number of intervals to return. Should be between [1..400].

to
integer <int64>
Example: to=1608825600

End time of the query as unix timestamp. If only count is given, defaults to now.

from
integer <int64>
Example: from=1606780800

Start time of the query as unix timestamp

Responses

Response samples

Content type
application/json
{
  • "meta": {