Pricefeed API Documentation

Cross-venue price intelligence for tokenized equities on a 15-minute feed. Base URL: https://api-data.altstreet.investments. Free endpoints need no key. Methodology behind every number: how marks are computed.

Authentication

Paid tiers authenticate with the API key from your welcome email, as a Bearer token or X-Api-Key header. Keys are shown once and stored hashed — if you lose yours, reply to the welcome email and we revoke and reissue.

export PRICEFEED_KEY="pk_…"     # from your welcome email
curl -H "Authorization: Bearer $PRICEFEED_KEY" https://api-data.altstreet.investments/v1/usage

Rate limits per hour: free (per IP) is modest; Pro 1,000; API 10,000; Team 50,000. Every response carries x-ratelimit-remaining. 429s include an upgradeUrl. Plans and pricing: /data/pricing.

Endpoints

GET /v1/indexfree

Latest published mark for every covered symbol.

Request

curl https://api-data.altstreet.investments/v1/index

Response shape

{
  "tokens": [
    {
      "symbol": "NVDA",
      "markUsd": 196.79,
      "premium": 0.0041,
      "date": "2026-07-31",
      "flags": []
    },
    { "symbol": "SPACEX", "markUsd": 159.81, "date": "2026-07-31" }
  ]
}
  • markUsd is null for symbols whose fixing window hasn't produced a publishable mark — absence is the signal, never a fabricated value.
  • premium is vs the configured underlying feed; OPENAI omits it because no public consensus underlying exists. SPCX premium remains absent until a supported public feed is configured.
  • Also available as a static JSON feed at /feeds/index.json (5-minute CDN cache).
GET /v1/healthfree

Feed liveness: newest sample timestamp and coverage.

Request

curl https://api-data.altstreet.investments/v1/health

Response shape

{
  "ok": true,
  "now": 1785555600,
  "symbolsTracked": 12,
  "symbolsWithMarks": 10,
  "lastSampleTs": 1785555000,
  "polling": true
}
  • polling is false when more than two 15-minute cycles have passed without a new sample.
GET /v1/marks/:symbol?days=Nfree

Daily mark history for one symbol. Free tier is clamped to 30 days; Pro and above get the full series.

Request

curl https://api-data.altstreet.investments/v1/marks/NVDA?days=365 -H "Authorization: Bearer $PRICEFEED_KEY"

Response shape

{
  "symbol": "NVDA",
  "marks": [
    {
      "date": "2026-07-31",
      "markUsd": 196.79,
      "premium": 0.0041,
      "method": "median_twap",
      "samplesUsed": 7,
      "samplesExcluded": 1,
      "exclusionFlags": ["LOW_LIQUIDITY"],
      "markFlags": []
    }
  ],
  "clamped": false
}
  • Without a key (or on free keys) days is clamped to 30 and the response carries clamped: true plus an upgradeUrl.
  • venue=<venue> returns one venue's own series (for example venue=rhchain_univ4 or venue=solana_xstocks); venue=all returns every venue's series in one list, each mark carrying its venue. Without venue, the symbol's primary venue. An unknown venue answers 404 with the venues available.
  • samplesExcluded and exclusionFlags show what the liquidity gates removed — the trust model is visible per mark.
GET /v1/intraday/:symbolpro

7 days of 15-minute TWAP samples across every venue of the symbol (each sample carries its venue), including executable depth quotes at $1k / $10k / $50k.

Request

curl https://api-data.altstreet.investments/v1/intraday/COIN -H "Authorization: Bearer $PRICEFEED_KEY"

Response shape

{
  "symbol": "COIN",
  "samples": [
    {
      "venue": "rhchain_v4",
      "ts": 1785554100,
      "twapUsd": 341.20,
      "spotUsd": 341.55,
      "twapMethod": "onchain_oracle",
      "underlyingUsd": 339.90,
      "flags": [],
      "depth": [
        { "sizeUsd": 10000, "side": "buy", "effectiveUsd": 342.10, "impact": 0.0026, "method": "quoter_exact" }
      ]
    }
  ]
}
  • depth entries are absent for sizes the pool cannot absorb — absence is the depth signal.
  • method distinguishes exact swap simulation (quoter_exact, Uniswap v3/v4) from constant-liquidity estimates (liquidity_estimate, Orca Whirlpools).
GET /v1/spreadspro

The screener: live cross-venue spread matrix for every symbol, including the executable layer net of impact, pool fees, and gas.

Request

curl https://api-data.altstreet.investments/v1/spreads -H "Authorization: Bearer $PRICEFEED_KEY"

Response shape

{
  "asOf": 1785555600,
  "spreads": [
    {
      "symbol": "COIN",
      "venues": [ { "venue": "rhchain_v4", "twapUsd": 341.20 }, { "venue": "solana_xstocks", "twapUsd": 333.05 } ],
      "maxPair": { "venueA": "rhchain_v4", "venueB": "solana_xstocks", "spread": 0.0244 },
      "executable": [
        { "sizeUsd": 10000, "buyVenue": "solana_xstocks", "sellVenue": "rhchain_v4", "netSpread": 0.0186, "method": "quoter_exact" }
      ],
      "excluded": [ { "venue": "base_backed", "reason": "stale >30min" } ]
    }
  ]
}
  • Stale (>30 min) or flagged venues never enter a spread — they appear under excluded with the reason.
  • Executable numbers are net of price impact, pool fees, and gas — BEFORE venue access, bridging, and hedging costs. The scope is stated, always.
GET /v1/spreads/:symbolpro

Spread detail for one symbol: current matrix plus 7-day spread history.

Request

curl https://api-data.altstreet.investments/v1/spreads/COIN -H "Authorization: Bearer $PRICEFEED_KEY"

Response shape

{
  "current": { "symbol": "COIN", "maxPair": { "spread": 0.0244, "venueA": "rhchain_v4", "venueB": "solana_xstocks" } },
  "history": [ { "ts": 1785469200, "spread": 0.0198, "venueA": "rhchain_v4", "venueB": "solana_xstocks", "venueCount": 2 } ]
}
GET /v1/screenerpro

Symbols ranked by absolute premium vs underlying.

Request

curl https://api-data.altstreet.investments/v1/screener -H "Authorization: Bearer $PRICEFEED_KEY"

Response shape

{
  "rows": [
    { "symbol": "COIN", "markUsd": 341.20, "premium": -0.024, "date": "2026-07-31", "flags": [] },
    { "symbol": "NVDA", "markUsd": 196.79, "premium": 0.004, "date": "2026-07-31", "flags": [] }
  ]
}
GET /v1/structure/:symbolpro

Curated legal and structural registry: issuer, legal form, backing, holder rights, restrictions, redemption — sourced and review-dated.

Request

curl https://api-data.altstreet.investments/v1/structure/SPACEX -H "Authorization: Bearer $PRICEFEED_KEY"

Response shape

{
  "symbol": "SPACEX",
  "issuer": "…",
  "legalForm": "…",
  "backing": "…",
  "holderRights": ["…"],
  "redemption": "…",
  "sources": ["…"],
  "lastReviewed": "2026-07-01",
  "offchainIndications": [
    { "source": "forge", "kind": "indication_ask", "valueUsd": 165.0, "asOf": "2026-07-28" }
  ]
}
  • Private-reference tokens carry offchain indications (Forge/Hiive/EquityZen) with the kind labeled — comparisons publish as implied exposure premium/discount, never as "the price of OpenAI".
POST / GET / DELETE /v1/alertspro

Edge-triggered alert rules with cooldown, delivered by email or webhook: price levels, premium vs underlying, spot/TWAP divergence, flags, mid spread, and executable spread at a specific size.

Request

curl -X POST https://api-data.altstreet.investments/v1/alerts -H "Authorization: Bearer $PRICEFEED_KEY" \
  -H "content-type: application/json" \
  -d '{
    "symbol": "COIN",
    "condition": { "kind": "executable_spread_above", "threshold": 0.02, "sizeUsd": 10000 },
    "email": "[email protected]",
    "cooldown_seconds": 3600
  }'

Response shape

{ "id": "…", "symbol": "COIN", "condition": { "kind": "executable_spread_above", "threshold": 0.02, "sizeUsd": 10000 } }
  • Condition kinds: price_above, price_below, premium_above, premium_below, divergence_above, flag_raised (e.g. LOW_LIQUIDITY, QUOTE_DEPEG), spread_above, executable_spread_above.
  • A webhook or email delivery target is required. Alerts are edge-triggered with a cooldown — no repeat spam while a condition stays true.
  • No depth at the requested size = the rule stays idle. It never fires on a phantom number.
  • Rule limits: 25 (Pro), 250 (API), 1,000 (Team). GET /v1/alerts lists your rules; DELETE /v1/alerts/:id removes one.
GET /v1/export/:symbol.csvapi

Full mark history as CSV, with a venue column. venue=<venue> for one venue, venue=all for every venue in one file; without it, the primary venue.

Request

curl -o nvda-marks.csv "https://api-data.altstreet.investments/v1/export/NVDA.csv?venue=all" -H "Authorization: Bearer $PRICEFEED_KEY"

Response shape

date,venue,mark_usd,premium,underlying_usd,samples_used,samples_excluded,flags
2026-07-31,rhchain_univ4,196.79,0.0041,195.98,7,1,
2026-07-31,solana_xstocks,197.02,0.0053,195.98,6,0,
GET /v1/export/spreads-:symbol.csvapi

90 days of spread history as CSV.

Request

curl -o coin-spreads.csv https://api-data.altstreet.investments/v1/export/spreads-COIN.csv -H "Authorization: Bearer $PRICEFEED_KEY"

Response shape

ts,spread,venue_a,venue_b,venue_count
1785469200,0.0198,rhchain_v4,solana_xstocks,2
GET /v1/usageany key

Self-serve metering: your tier, today's request count, and your limits.

Request

curl https://api-data.altstreet.investments/v1/usage -H "Authorization: Bearer $PRICEFEED_KEY"

Response shape

{
  "tier": "pro",
  "today": { "date": "2026-07-31", "requests": 41 },
  "limits": { "requestsPerHour": 1000, "marksHistoryDays": null }
}

Scope, in plain terms

This is decision support on a 15-minute feed, not an execution edge, and it is sold as such. Executable numbers are net of price impact, pool fees, and gas — before venue-access, bridging, and hedging costs. Marks are withheld when data fails the liquidity gates: a missing number is the honest answer, not an outage. Commercial redistribution requires the API plan or above. Nothing here is investment advice.