Skip to main content

Data Partner Feed

Lium gives market-data partners a feed of completed rentals: one CSV row per rental, in the General Index trade-data format, plus a daily aggregate. A partner uses this to build GPU price indices. Renters and providers appear as salted hashes. No name, e-mail, user id, wallet key or IP address is in the files.

Access​

The feed is not self-serve. The Lium team marks a partner account as a data partner after a data-supply agreement. To ask for access, write to support@lium.io with the account e-mail. After that, the account's normal API key reads the feed. Any key made in the dashboard works; a key created with scopes needs read. Any other account gets 403.

Two ways to read the same data​

The rows are the same. Pick the delivery that fits your pipeline, or use both.

  • Live feed. trades.csv and daily-aggregate.csv answer from the rental table at the time of the call. Poll as often as you like with a moving from, and you get a rental within minutes of its end.
  • Daily dumps. Every day at 01:00 UTC Lium writes the previous UTC day's two files to object storage. dumps/YYYY-MM-DD.csv hands them back. The nightly job writes a day once and never rewrites it. If your poller was down for a week, the seven files are still there.

?day=YYYY-MM-DD on the live endpoints returns exactly the rows of that dump (one closed UTC day). Use it to check a dump, or to read a day before 01:00 UTC.

Endpoints​

ResourceURL
Trades, livehttps://lium.io/api/data-partners/trades.csv?from=YYYY-MM-DD&to=YYYY-MM-DD
Daily aggregate, livehttps://lium.io/api/data-partners/daily-aggregate.csv?from=YYYY-MM-DD&to=YYYY-MM-DD
Trades, one closed dayhttps://lium.io/api/data-partners/trades.csv?day=YYYY-MM-DD (also on daily-aggregate.csv)
Trades, nightly dumphttps://lium.io/api/data-partners/dumps/YYYY-MM-DD.csv
Daily aggregate, nightly dumphttps://lium.io/api/data-partners/dumps/YYYY-MM-DD.daily-aggregate.csv

from and to are calendar days in UTC, both inclusive. to defaults to today. A call covers at most 62 days. day is one complete UTC day, yesterday or earlier; it cannot be combined with from or to.

The end time is the only day axis. A rental belongs to the UTC day in which it ended, in the window, in day, in the dumps and in the day column of the aggregate. A rental that starts at 23:50 and ends at 00:10 the next day is in the next day's files only, and in no other. A rental that is still running is not in any file until it ends.

curl -sS -H "X-API-Key: $LIUM_API_KEY" \
"https://lium.io/api/data-partners/trades.csv?from=2026-09-01&to=2026-09-30" -o gx-trades-2026-09.csv

All endpoints answer text/csv with LF line ends and the header on the first line. Each client IP can make 60 calls per hour.

StatusMeaning
200The CSV. An empty window returns the header line only.
401No API key, or an unknown key.
403The account is not a data partner, or the key does not have the read scope.
404Dumps only: no file for that day yet. The day is not over, or the 01:00 UTC job has not run.
422Neither from nor day was sent, to is before from, the window is longer than 62 days, day is today or later, or day was sent together with from.
503The feed is switched off on this deployment. Live endpoints and dumps alike.

Quickstart for Compute Desk​

  1. Sign in to lium.io with the partner account and create an API key under Access, API Keys (see API Keys). Keep it in LIUM_API_KEY.

  2. Pull the month so far once:

    curl -sS -H "X-API-Key: $LIUM_API_KEY" \
    "https://lium.io/api/data-partners/trades.csv?from=2026-09-01" -o gx-trades-2026-09.csv
    curl -sS -H "X-API-Key: $LIUM_API_KEY" \
    "https://lium.io/api/data-partners/daily-aggregate.csv?from=2026-09-01" -o daily-aggregate-2026-09.csv
  3. Then, each morning after 01:00 UTC, fetch yesterday's dump:

    day=$(date -u -d yesterday +%F)   # macOS: date -u -v-1d +%F
    curl -sS -f -H "X-API-Key: $LIUM_API_KEY" \
    "https://lium.io/api/data-partners/dumps/$day.csv" -o "gx-trades-$day.csv"

    Or, if you prefer a live poll, call trades.csv?from=<last day you have> every hour and drop the rows you already hold by TransactionRef(S).

The files carry the same columns and filters as the August 2026 file Lium sent by e-mail. The renter and provider hashes join to that file once Lium has set the same salt; Lium confirms this with you before your first pull.

Trades file​

The header is:

Code,Reference,TransactionType,DateTime(UTC),TradingHubDetail(S),Price(DB),PricingCurrency(S),PricingType(S),PricingUnit(S),Quantity(DB),QuantityUnit(S),Buyer(S),Seller(S),DeliveryStart(D),DeliveryEnd(D),Grade(S),PricingDetails(S),TransactionRef(S),TransactionStatus(S),SourceDetails(S),ExtractTime(D),Commodity(MD-S),Source(MD-S),TimeZone(MD-S),Title(MD-S),TradingHub(MD-S),HolidayCalendar(MD-S),EarlyCloseCalendar(MD-S)
ColumnValue
CodeGT0000000 until General Index issues Lium a trade series code.
ReferenceSequence number among the rows that share the same DateTime(UTC), starting at 1.
TransactionType, TransactionStatus(S)Trade, Traded. Every row is a completed rental.
DateTime(UTC), DeliveryStart(D)Rental start, to the second, UTC.
DeliveryEnd(D)Rental end, to the second, UTC.
TradingHubDetail(S)Two-letter country code of the node. Empty when the node's location is unknown.
Price(DB), PricingCurrency(S), PricingUnit(S)USD per GPU-hour, four decimals. Lium has no bidding, so the posted price is the clearing price. PricingType(S) is Fixed.
Quantity(DB), QuantityUnit(S)Number of GPUs in the rental, unit GPU.
Buyer(S), Seller(S)LIUM-C- plus 16 hex characters for the renter, LIUM-P- plus 16 hex characters for the provider. The same renter or provider gets the same value in every file.
Grade(S)GPU model name as the driver reports it, for example NVIDIA H200.
PricingDetails(S)tier=<tier>; hours=<hours>, where the tier is secure, spot or force_spot and the hours carry four decimals.
TransactionRef(S)Lium's rental id. Stable, and unique per row.
SourceDetails(S), Source(MD-S), Title(MD-S)Lium, Lium, Lium GPU Rentals.
ExtractTime(D)When the file was produced, UTC.
Commodity(MD-S), TimeZone(MD-S), TradingHub(MD-S)GPU Compute, UTC, GLOBAL.
HolidayCalendar(MD-S), EarlyCloseCalendar(MD-S)Null.

Rentals that never reach a partner: rentals by Lium staff accounts, rentals a provider made on its own node, and rentals on the few accounts Lium has marked as test or wash trading.

Daily aggregate file​

One row per end day (the UTC day the rentals ended), GPU model and country:

day,gpu_type,country_code,deals,gpu_hours,vwap_usd_per_gpu_hour,min_usd_per_gpu_hour,max_usd_per_gpu_hour

day is the end day of the rentals in the row, so a row counts the same rentals as that day's trades file. gpu_hours is the sum of rental hours times GPU count, two decimals. vwap_usd_per_gpu_hour is the average price per GPU-hour weighted by GPU-hours, four decimals. min and max are the lowest and highest price per GPU-hour among the rentals that ended that day.