API Docs

Harcourt Valuations · API Reference

NAV Query API

Returns modelled net asset value (NAV) per share for covered mining companies at caller-specified commodity prices and discount rates. Free direct access or $1/call via Qatom MCP for production agent workflows.

Overview

The Harcourt NAV Query API gives AI agents and developers programmatic access to institutional-grade mining valuations without re-running full DCF models. Each covered company has a precomputed sensitivity matrix — a grid of NAV per share values across combinations of commodity price and discount rate — stored in Cloudflare R2. When you call the API, the Worker reads the nearest grid points and performs bilinear interpolation to return the value at your exact inputs.

No live model execution. Responses are served from precomputed matrices. Typical response time is under 50ms. The model date and version are included in every response.

Two access modes:

Quick Start

1. Get Ivanhoe Mines NAV at copper $6.50/lb, 8% discount rate

curlcurl "https://reports.harcourtvaluations.ai/nav-query/ivn?cu=6.5&rate=0.08"
response{
  "ticker":        "IVN",
  "model_date":    "2026-06-29",
  "model_version": "v7",
  "inputs": {
    "cu":             6.5,
    "discount_rate": 0.08
  },
  "nav_per_share": 12.05,
  "currency":      "CAD",
  "disclaimer":    "For informational purposes only. Not investment advice."
}

2. Get Aris Mining NAV at gold $4,100/oz

curlcurl "https://reports.harcourtvaluations.ai/nav-query/aris?gold=4100&rate=0.08"
response{
  "ticker":        "ARIS",
  "nav_per_share": 59.65,
  "currency":      "USD",
  "model_date":    "2026-06-29"
}

Base URL

https://reports.harcourtvaluations.ai

All endpoints are served from this Cloudflare Worker. No versioning prefix is used; breaking changes will be announced at harcourtvaluations.ai.

GET https://reports.harcourtvaluations.ai/nav-query/{ticker}

Returns modelled NAV per share for the specified company at your inputs. No payment required for direct HTTP access.

Parameters

Path parameter

ParameterTypeDescription
ticker required string Lowercase ticker: ivn, aris, itr, vgc, dyl

Query parameters

ParameterTypeUnitApplies To
cu * number USD / lb ivn only
gold * number USD / troy oz aris, itr, vgc
u3o8 * number USD / lb U3O8 dyl only
rate required number decimal (0.08 = 8%) All tickers

* Provide the commodity parameter that matches the ticker (see Covered Tickers below).

Currency is per company, not per commodity. ARIS is a gold miner but its sensitivity grid is denominated in USD. IVN is a copper miner but its grid is denominated in CAD. Always read the currency field in the response — never infer it from the commodity type.

Response Format

JSON{
  "ticker":        "IVN",         // Uppercase ticker symbol
  "model_date":    "2026-06-29",  // Date model was published
  "model_version": "v7",          // Internal model version
  "inputs": {
    "cu":             6.5,          // Your commodity input, echoed back
    "discount_rate": 0.08          // Your discount rate, echoed back
  },
  "nav_per_share": 12.05,         // NAV per diluted share
  "currency":      "CAD",         // Denomination of nav_per_share
  "disclaimer":    "..."          // Standard disclaimer string
}

Response fields

ticker Uppercase ticker symbol as stored in the model
model_date ISO 8601 date the model was last published. Data reflects filings and prices current at this date.
model_version Internal version string (e.g. v7). Increments when the model is materially updated.
inputs Object echoing your commodity and rate inputs, keyed by the model's internal parameter name.
nav_per_share Modelled NAV per diluted share at the specified inputs. Number, 2 decimal places.
currency Currency of nav_per_share. Always explicit. Values: "CAD", "USD", "AUD".
disclaimer Standard disclaimer. Must be preserved and surfaced to end users who receive this data.

Interpolation

Each company's JSON file in R2 contains a precomputed sensitivity_matrix — a grid of NAV per share values computed at discrete commodity prices and discount rates by running the full DCF model at each grid point. When you call the API, the Worker:

  1. Loads {ticker}.json from R2 (cached)
  2. Finds the four nearest grid points surrounding your inputs
  3. Performs bilinear interpolation to compute NAV at your exact (commodity, rate) pair
  4. Returns the result with the currency field from the matrix

Grid boundaries

If your input is outside the grid range, the Worker clamps to the nearest edge value rather than extrapolating. For IVN, the copper price grid covers approximately $4–8/lb. Inputs significantly outside this range will return the edge grid value, not an extrapolation. Check the sensitivity table in the PDF report to see the exact grid extents for each company.

IVN example grid (copper × discount rate):
Copper: $4, $5, $6, $7, $8 per lb
Discount rate: 5%, 8%, 10%, 12%
Calling ?cu=6.5&rate=0.09 interpolates between the $6 and $7 rows and between the 8% and 10% columns.

Error Codes

HTTPError bodyMeaning & fix
404 {"error":"ticker_not_found"} Ticker not in catalog, or the JSON file has not yet been uploaded to R2 for this ticker. Check /catalog for available tickers.
404 {"error":"no_sensitivity_matrix"} The report exists but the NAV Query API has not yet been enabled for this ticker (sensitivity matrix not built). The PDF report may still be available.
400 {"error":"missing_commodity_param"} The required commodity price parameter was not provided. Supply ?cu=, ?gold=, or ?u3o8= depending on the ticker.
400 {"error":"missing_rate_param"} The rate discount rate parameter is missing. Supply &rate=0.08 (or your preferred rate as a decimal).
500 {"error":"json_parse_error"} Internal error parsing the model data. Retry once; if persistent, contact [email protected].

Covered Tickers

IVN
Ivanhoe Mines · TSX / OTCQX
Copper · Gold · PGM · Zinc
Assets: Kamoa-Kakula (DRC) · Platreef (SA) · Kipushi (DRC)
NAV currency: CAD
Commodity param: ?cu={USD_per_lb}
Typical range: $4–8/lb
Example: ?cu=6.5&rate=0.08
ARIS
Aris Mining · TSX / NYSE
Gold
Assets: Segovia · Marmato · Soto Norte (all Colombia)
NAV currency: USD
Commodity param: ?gold={USD_per_oz}
Typical range: $2,500–6,000/oz
Example: ?gold=4000&rate=0.08
ITR
Integra Resources · TSXV / NYSE Am.
Gold · Silver
Assets: Florida Mountain · DeLamar · Nevada North (USA)
NAV currency: USD
Commodity param: ?gold={USD_per_oz}
Example: ?gold=4000&rate=0.08
VGC
Valor Gold · TSX / OTCQB
Gold
Assets: Courageous Lake (NWT, Canada)
NAV currency: USD
Commodity param: ?gold={USD_per_oz}
Example: ?gold=4500&rate=0.08
DYL
Deep Yellow · ASX / OTCQB
Uranium (U3O8)
Assets: Tumas (Namibia) · Mulga Rock (Australia) · Alligator Rivers JV (Australia)
NAV currency: AUD
Commodity param: ?u3o8={USD_per_lb}
Example: ?u3o8=82&rate=0.08

Coverage expanding. 35 additional models planned for July 2026. Always fetch the live catalog to get the current ticker list and which ones have sensitivity matrices enabled.

Live Catalog

GET https://reports.harcourtvaluations.ai/catalog

Returns the full catalog of available reports as JSON. Includes all metadata needed to build a UI or drive agent decisions about which report to purchase.

response{
  "reports": [
    {
      "id":           "ivn-nav-2026",
      "name":         "Ivanhoe Mines NAV Report",
      "ticker":       "TSX: IVN · OTCQX: IVPAF",
      "commodity":    "Copper · Gold · PGM",
      "flag":         "🇨🇦",
      "nav":          "C$12.05 / share",
      "p_nav":        "0.87×",
      "qatom_hash":   "d15e9e6e-...",   // Qatom commodity hash for payment
      "assets":        "Kamoa-Kakula · Platreef · Kipushi",
      "free_teaser":  "Three world-class assets..."
    }
    // ... more reports
  ]
}

Qatom MCP — Agent Access

For production autonomous agent workflows, use the Qatom MCP marketplace. The agent discovers and calls the tool without hardcoding URLs, and payment is settled automatically from the agent's Qatom wallet at $1 USD TDN per call.

⬡ harcourt_nav_query_api

NAV Query API tool on the Qatom MCP marketplace. Charges $1 TDN per successful call.

FieldValue
Tool nameharcourt_nav_query_api
Tool ID77
Price$1 USD TDN per call
MCP server URLhttps://mcp.m.todaq.net/mcp
AuthQatom OIDC (session established by Qatom SDK)

Input schema (Qatom MCP)

JSON{
  "ticker":          "ivn",    // lowercase
  "commodity_param": "cu",    // "cu" | "gold" | "u3o8"
  "commodity_price": 6.5,    // numeric value in appropriate unit
  "discount_rate":   0.08   // decimal
}

The response shape is identical to the direct HTTP endpoint.

Claude / Claude.ai usage

If you are using Claude with the TODAQ MCP server connected, you can call the tool directly in a Claude session:

MCP tool call// In a Claude session with mcp.m.todaq.net connected:
test_tool({
  tool_id: 77,
  args: {
    ticker:          "aris",
    commodity_param: "gold",
    commodity_price: 4100,
    discount_rate:   0.08
  }
})

PDF Report Tools (Qatom MCP)

Each covered company has its own Qatom MCP tool for purchasing the full PDF report. These tools charge $15 TDN and return a download URL for the PDF.

Tool nameTickerPriceDelivers
get_ivanhoe_mines_navIVN$15 TDNFull IVN NAV PDF report
get_aris_mining_navARIS$15 TDNFull ARIS NAV PDF report
get_integra_resources_navITR$15 TDNFull ITR NAV PDF report
get_valor_gold_navVGC$15 TDNFull VGC NAV PDF report
harcourt_dyl_nav_reportDYL$15 TDNFull DYL NAV PDF report

Agent Wallet Setup

To call Qatom-gated tools autonomously (no human approval per transaction), an agent requires a funded Qatom sandbox wallet.

Setup steps

  1. Create a primary wallet at todaq.net. This is human-controlled and MFA-gated.
  2. Fund the primary wallet with USD TDN via the chargeup URL (load.m.todaq.net).
  3. Transfer to agent sandbox using the transfer_to_agent_wallet tool or the TODAQ Console. The sandbox wallet requires no MFA and is the one actually debited by tool calls.
  4. Confirm balance is sufficient. $1 per NAV query, $15 per PDF report. Set a minimum balance threshold appropriate for your workflow.

Two-wallet architecture. The primary wallet (MFA-gated) and the agent sandbox wallet are separate. Tool calls debit the sandbox. Revenue from Harcourt tool calls lands in Harcourt's provider Twin and sweeps daily. Distributions to contributors (analysts) are automatic — no invoicing required.

Chat API — Klondike Mike (Free)

Free conversational access to Harcourt's data. Powered by Claude Haiku. Returns plain-language NAV analysis, P/NAV commentary, and key catalysts. No authentication or payment required.

POST https://reports.harcourtvaluations.ai/chat
request{
  "messages": [
    { "role": "user", "content": "What's Ivanhoe's P/NAV at copper $7/lb?" }
  ]
}
// Content-Type: application/json
response{
  "content": [
    {
      "type": "text",
      "text": "At copper $7/lb and an 8% discount rate, IVN's modelled NAV is approximately C$14.44/share. With the stock trading around C$10.50, that's a P/NAV of roughly 0.73× — a meaningful discount to NAV. Kamoa-Kakula's smelter is now producing sulphuric acid credits (~$1M/day), which isn't fully reflected in the market yet, partner. Want the full model for $15?"
    }
  ]
}

The chat agent's system prompt is generated server-side from live {ticker}.json data in R2, so it always reflects the most recently published NAV. Include conversation history in the messages array for multi-turn sessions (max 10 turns retained server-side).

Free Sample Report

GET https://reports.harcourtvaluations.ai/sample

Returns a full institutional NAV report PDF as a file download. No payment or authentication required. Use this to inspect the exact format and contents of a Harcourt report before calling the paid PDF tools.