# Freeport public market-data API

Version: 1. Documentation reviewed: 2026-09-10.

This is a public, read-only API for Entropy's io:ANTH and io:OAI perpetuals on Hyperliquid. It requires no authentication and accepts no orders or wallet queries. Quotes describe the exchange contract as a whole, not Freeport-only activity. The contracts are cash-settled derivatives and confer no ownership in Anthropic or OpenAI.

## Endpoints

- GET https://www.freeportmarkets.com/api/pre-ipo-markets — both current quotes, JSON
- GET https://www.freeportmarkets.com/api/pre-ipo-markets?market=anthropic — io:ANTH
- GET https://www.freeportmarkets.com/api/pre-ipo-markets?market=openai — io:OAI
- Add &format=csv to a market-specific request to download the same quote as CSV
- GET https://www.freeportmarkets.com/api/pre-ipo-markets?format=csv — both quotes as CSV
- GET https://www.freeportmarkets.com/api/pre-ipo-markets?market=anthropic&history=1 — available completed daily trade candles during the last 30 days, JSON
- Add &format=csv to the history request for CSV. Substitute market=openai for OAI.
- https://www.freeportmarkets.com/data/pre-ipo-specs.json — reviewed contract specifications
- https://www.freeportmarkets.com/data/pre-ipo-specs.schema.json — JSON Schema for the specifications
- https://www.freeportmarkets.com/data/pre-ipo-quotes.schema.json — JSON Schema for current quote responses
- https://www.freeportmarkets.com/data/pre-ipo-snapshot.json — dated fallback observation, NOT a current quote

## Quote fields

| Field | Meaning / unit |
| --- | --- |
| schemaVersion | Payload contract version; currently 1 |
| source | Public Hyperliquid information endpoint |
| dex | io, the Entropy DEX namespace |
| retrievedAt | UTC ISO 8601 time when Freeport retrieved the exchange response; not an exchange event timestamp |
| expiresAt | retrievedAt plus 120 seconds; consumers should treat the observation as stale after this time |
| markets[].id | anthropic or openai |
| markets[].symbol | Exact exchange key: io:ANTH or io:OAI |
| markets[].status | listed or delisted, based on exchange metadata; listed does not establish user eligibility |
| markets[].markPrice | Exchange mark, USDC per contract unit |
| markets[].oraclePrice | Exchange oracle, USDC per contract unit |
| markets[].impliedValuationUsd | markPrice × 1,000,000,000; a market-implied USD valuation, not an issuer-approved valuation |
| markets[].change24hPercent | 100 × (markPrice / prevDayPx − 1); percentage points, null if previous price is missing or invalid |
| markets[].fundingHourlyDecimal | Exchange hourly funding as a decimal; multiply by 100 for percent. Not annualized. Positive: longs pay shorts. Negative: shorts pay longs. |
| markets[].volume24hUsd | Exchange dayNtlVlm; notional traded over the exchange's 24-hour window |
| markets[].openInterestUnits | Exchange open interest in contract units |
| markets[].openInterestNotionalUsd | openInterestUnits × markPrice; mark-based notional, not company valuation |
| markets[].maxLeverage | Current maximum exchange leverage; not a recommended leverage |
| markets[].marginMode | Raw exchange margin mode: e.g. strictIsolated or noCross |
| markets[].sizeDecimals | Decimal precision of contract quantity |
| markets[].growthMode | Current exchange growth-mode setting; not an all-in fee quote |

All missing optional numeric values are null, never invented zeros. Zero funding means zero funding, while null means unavailable. Prices are required: if either tracked market lacks a valid mark or oracle, the current-quote request returns an error instead of a partial or fabricated price.

## Freshness and errors

Responses may be cached for 60 seconds. Check retrievedAt and expiresAt on every observation. The API does not silently fall back to an old snapshot. A 503 response means the upstream exchange or required data was unavailable. A 400 means invalid parameters; 405 means an unsupported HTTP method. GET and HEAD are supported. Read-only requests may be made cross-origin.

Polling once per minute is sufficient. Back off after errors. The saved snapshot remains downloadable with its original retrieval time; it is never labeled as live. Contract review dates change only when the documentation is reviewed, not whenever a quote refreshes.

## Historical candles

History uses Hyperliquid candleSnapshot with interval=1d and the exact exchange symbol. Only completed candles within the requested rolling 30-day window are included. Available history may be shorter than 30 days. Missing days are not filled. Data are trade-price OHLC candles, NOT historical marks, oracles, funding, or company valuations.

Columns: openTimeUtc (UTC ISO 8601), symbol, open, high, low, close (USDC per contract unit), volume (contract units). CSV uses the equivalent open_time_utc and volume_contract_units headers. No extrapolation is applied to the current incomplete day.

## Sources and unresolved terms

- Hyperliquid info and candle API: https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint
- Asset contexts: https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint/perpetuals
- Entropy contract types and units: https://docs.entropy.io/market-types/pre-ipo-perpetuals
- Asset parameters: https://docs.entropy.io/asset-directory/pre-ipo-assets
- Funding methodology: https://docs.entropy.io/pre-ipo-perp-mechanics/funding-rate

The asset directory and funding mechanics page disagree on the funding multiplier (0.125 versus 0.0125). The specification JSON explicitly leaves it null. The API passes through the exchange's current funding rate; it does not reconstruct it from either disputed multiplier.

## Citation

Include the symbol, units, retrieval timestamp, and source URL. Keep derivative valuation signals distinct from equity ownership and company fundraising valuations. No endpoint, JSON-LD record, or llms file implies endorsement by Anthropic, OpenAI, or an AI assistant.
