Kontiki Capital Public API
Open, read-only JSON access to South Pacific Stock Exchange market data — share prices, company fundamentals, price history, the order book, the KSPX Index and dividends — plus Kontiki Capital insights and Fiji news headlines. No API key, no sign-up.
https://kontiki.com.fj/api/v1None — just send a GET requestJSON · CORS enabled for any originhttps://kontiki.com.fj/api/v1/openapi.jsonQuick start
Get today's share price for Kontiki Finance (KFL) in any language:
curl "https://kontiki.com.fj/api/v1/quotes/KFL"const res = await fetch("https://kontiki.com.fj/api/v1/quotes/KFL");
const { data } = await res.json();
console.log(`${data.ticker}: FJ$${data.price} (${data.changePct}%)`);import requests
data = requests.get("https://kontiki.com.fj/api/v1/quotes/KFL", timeout=10).json()["data"]
print(f"{data['ticker']}: FJ${data['price']} ({data['changePct']}%)")Using an AI agent or bot? Give it the OpenAPI spec at https://kontiki.com.fj/api/v1/openapi.json or the index at https://kontiki.com.fj/api/v1, which list every endpoint with a ready-to-run example.
Responses & errors
Every successful response wraps its payload in data, with context (generation time, source, record count, disclaimer) in meta. Errors use a standard HTTP status and a stable machine-readable code. Prices are in Fiji dollars (FJD); dates are Fiji-local YYYY-MM-DD; timestamps are ISO 8601.
{
"data": { … },
"meta": {
"apiVersion": "v1",
"generatedAt": "2026-09-30T00:00:00.000Z",
"source": "South Pacific Stock Exchange",
"disclaimer": "…"
}
}{
"error": {
"status": 404,
"code": "unknown_ticker",
"message": "\"XYZ\" is not an SPX-listed company."
}
}| Status | Code | Meaning |
|---|---|---|
| 200 | — | Success. |
| 400 | invalid_date · invalid_category · invalid_topic | A query parameter is malformed. |
| 404 | unknown_ticker · not_found | The ticker or insight does not exist. |
| 429 | rate_limited | Too many requests — slow down and retry after a minute. |
| 503 | unavailable | A data source is temporarily unreachable — retry shortly. |
Rate limits & caching
- 60 requests per minute per IP, per endpoint. Exceeding it returns HTTP 429.
- Responses are cached at the edge; each endpoint lists how fresh its data is. Live share prices update about once a minute during the SPX sessions (10:30–11:30 and 14:30–15:30 Fiji time, weekdays).
- Need higher limits, bulk history or a commercial licence? Contact the team.
- Data is for informational purposes only and is not investment advice. Sourced from the South Pacific Stock Exchange (SPX) and Kontiki Capital.
Market data
/api/v1/quotesShare prices for all SPX companies
Latest price for every company listed on the South Pacific Stock Exchange. If a stock has traded today (Fiji time), `price` is today's last traded price, `tradedToday` is true, and `volume`, `high` and `low` describe today's trading. Otherwise `price` is the last close, `volume` is 0 and `high`/`low` are null. `change` and `changePct` are measured against `previousClose`. Pass `ticker` to filter to one or more companies.
| Parameter | In | Type | Description |
|---|---|---|---|
| ticker | query | string | Optional comma-separated tickers to filter by. |
{
"data": [
{
"ticker": "KFL",
"company": "Kontiki Finance Ltd",
"sector": "Financial Services",
"price": 1.25,
"previousClose": 1.23,
"change": 0.02,
"changePct": 1.63,
"volume": 4200,
"high": 1.25,
"low": 1.23,
"tradedToday": true,
"currency": "FJD",
"asAt": "2026-09-30",
"url": "https://kontiki.com.fj/markets/kfl"
}
],
"meta": {
"apiVersion": "v1",
"generatedAt": "2026-09-30T00:00:00.000Z"
}
}/api/v1/quotes/{ticker}One company: price, fundamentals & recent trades
Everything about a single listed company: the latest quote, fundamentals (EPS, P/E, dividend yield, market cap, share of total SPX market cap) and its ten most recent trades.
| Parameter | In | Type | Description |
|---|---|---|---|
| ticker* | path | string | SPX ticker symbol, case-insensitive (e.g. KFL, FTV, ATH). List them with /api/v1/companies. |
{
"data": {
"ticker": "KFL",
"company": "Kontiki Finance Ltd",
"sector": "Financial Services",
"price": 1.25,
"previousClose": 1.23,
"change": 0.02,
"changePct": 1.63,
"volume": 4200,
"high": 1.25,
"low": 1.23,
"tradedToday": true,
"currency": "FJD",
"asAt": "2026-09-30",
"url": "https://kontiki.com.fj/markets/kfl",
"fundamentals": {
"asAt": "2026-09-29",
"epsCents": 9.8,
"peRatio": 12.76,
"dividendYieldPct": 4.8,
"marketCapFjd": 38500000,
"pctOfMarketCap": 0.9
},
"recentTrades": [
{
"date": "2026-09-29",
"price": 1.23,
"quantity": 1500,
"change": 0.01,
"direction": "up"
}
]
},
"meta": {
"apiVersion": "v1",
"generatedAt": "2026-09-30T00:00:00.000Z"
}
}/api/v1/companiesEvery listed company with fundamentals
The full SPX board — ticker, name, sector, latest price and fundamentals — sorted by market capitalisation, largest first. Use it to discover valid tickers.
No parameters.
{
"data": [
{
"ticker": "KFL",
"company": "Kontiki Finance Ltd",
"sector": "Financial Services",
"price": 1.25,
"previousClose": 1.23,
"change": 0.02,
"changePct": 1.63,
"volume": 4200,
"high": 1.25,
"low": 1.23,
"tradedToday": true,
"currency": "FJD",
"asAt": "2026-09-30",
"url": "https://kontiki.com.fj/markets/kfl",
"fundamentals": {
"asAt": "2026-09-29",
"epsCents": 9.8,
"peRatio": 12.76,
"dividendYieldPct": 4.8,
"marketCapFjd": 38500000,
"pctOfMarketCap": 0.9
}
}
],
"meta": {
"apiVersion": "v1",
"generatedAt": "2026-09-30T00:00:00.000Z"
}
}/api/v1/history/{ticker}Daily price history for a company
Daily closing prices (with open/high/low/volume where held) for one company, oldest first. Bound the range with `from` and `to`.
| Parameter | In | Type | Description |
|---|---|---|---|
| ticker* | path | string | SPX ticker symbol, case-insensitive (e.g. KFL, FTV, ATH). List them with /api/v1/companies. |
| from | query | string | Start date, inclusive (YYYY-MM-DD). |
| to | query | string | End date, inclusive (YYYY-MM-DD). |
curl "https://kontiki.com.fj/api/v1/history/KFL?from=2026-09-01"Cached for ≈10 minutes.
{
"data": {
"ticker": "KFL",
"currency": "FJD",
"series": [
{
"date": "2026-09-01",
"close": 1.2,
"open": 1.2,
"high": 1.21,
"low": 1.2,
"volume": 800
}
]
},
"meta": {
"apiVersion": "v1",
"generatedAt": "2026-09-30T00:00:00.000Z"
}
}/api/v1/market/statusIs the market open?
Whether the SPX is open, pre-market or closed right now — aware of weekends and Fiji public holidays — plus the current session and when the next one opens. The SPX trades 10:30–11:30 and 14:30–15:30 Fiji time (UTC+12) on weekdays.
No parameters.
{
"data": {
"status": "open",
"timezone": "Pacific/Fiji",
"fijiDate": "2026-09-30",
"fijiTime": "10:45",
"isTradingDay": true,
"holiday": null,
"currentSession": {
"session": "Morning",
"date": "2026-09-30",
"opensAt": "2026-09-30T10:30:00+12:00",
"closesAt": "2026-09-30T11:30:00+12:00"
},
"nextSession": {
"session": "Afternoon",
"date": "2026-09-30",
"opensAt": "2026-09-30T14:30:00+12:00",
"closesAt": "2026-09-30T15:30:00+12:00"
},
"sessions": [
{
"name": "Morning",
"open": "10:30",
"close": "11:30"
},
{
"name": "Afternoon",
"open": "14:30",
"close": "15:30"
}
]
},
"meta": {
"apiVersion": "v1",
"generatedAt": "2026-09-30T00:00:00.000Z"
}
}/api/v1/market/todayToday's trading summary
The latest trading session: stocks traded, total volume and turnover (FJD), advancers/decliners/unchanged, the biggest movers, the most active stocks and the morning/afternoon session split. On a weekend or holiday it reports the most recent session, with `isToday: false`.
No parameters.
{
"data": {
"date": "2026-09-30",
"isToday": true,
"updatedAt": "2026-09-30T03:45:12.000Z",
"sessions": {
"morning": {
"trades": 6,
"volume": 12500,
"turnover": 31250.5
},
"afternoon": {
"trades": 0,
"volume": 0,
"turnover": 0
}
},
"stocksTraded": 5,
"totalVolume": 12500,
"totalTurnover": 31250.5,
"advancers": 2,
"decliners": 1,
"unchanged": 2,
"ksbParticipation": 3,
"movers": [
{
"stock_code": "FTV",
"price": 0.5,
"change_value": 0.02,
"change_direction": "up"
}
],
"mostActive": [
{
"stock_code": "KFL",
"quantity": 4200,
"price": 1.25
}
]
},
"meta": {
"apiVersion": "v1",
"generatedAt": "2026-09-30T00:00:00.000Z"
}
}/api/v1/market/ordersOrder book (unexecuted orders)
Resting buy and sell orders on the SPX per company, with best bid/offer, depth levels and spread. Live during trading; outside trading hours the final book from the last session is returned with `stale: true` and `capturedAt`.
| Parameter | In | Type | Description |
|---|---|---|---|
| ticker | query | string | Optional comma-separated tickers to filter by. |
curl "https://kontiki.com.fj/api/v1/market/orders?ticker=KFL"Cached for ≈1 minute.
{
"data": {
"stale": false,
"capturedAt": null,
"marketStatus": "open",
"updatedAt": "2026-09-30T22:50:00.000Z",
"orders": [
{
"code": "KFL",
"company": "Kontiki Finance Ltd",
"sector": "Financial Services",
"buy": {
"bestPrice": 1.23,
"totalQuantity": 5000,
"totalOrders": 2,
"levels": [
{
"price": 1.23,
"quantity": 5000,
"orders": 2
}
]
},
"sell": {
"bestPrice": 1.27,
"totalQuantity": 2000,
"totalOrders": 1,
"levels": [
{
"price": 1.27,
"quantity": 2000,
"orders": 1
}
]
},
"spread": 0.04
}
]
},
"meta": {
"apiVersion": "v1",
"generatedAt": "2026-09-30T00:00:00.000Z"
}
}Index & dividends
/api/v1/index/kspxKSPX Index level & history
The Kontiki South Pacific Stock Exchange Index (rebased to 100 on 4 January 2000): the latest value with daily, weekly and year-to-date change, the all-time high and low, and the daily series — downsampled to at most `points` values.
| Parameter | In | Type | Description |
|---|---|---|---|
| from | query | string | Start date for the series (YYYY-MM-DD). Default: full history. |
| points | query | integer | Maximum number of series points (a hard cap), 10–10000. Default 500. |
curl "https://kontiki.com.fj/api/v1/index/kspx?from=2026-01-01&points=100"Cached for ≈10 minutes.
{
"data": {
"name": "KSPX Index",
"base": {
"value": 100,
"date": "2000-01-04"
},
"latest": {
"date": "2026-09-29",
"value": 412.37,
"dailyChangePct": 0.12,
"weeklyChangePct": 0.4,
"ytdChangePct": 6.1
},
"high": {
"date": "2026-09-29",
"value": 412.37
},
"low": {
"date": "2000-06-12",
"value": 91.3
},
"series": [
{
"date": "2026-01-02",
"value": 388.6
}
]
},
"meta": {
"apiVersion": "v1",
"generatedAt": "2026-09-30T00:00:00.000Z"
}
}/api/v1/dividendsDividend yields & upcoming payments
The dividend-yield leaderboard for every SPX stock (highest first, with P/E, EPS and market cap) and the calendar of declared dividends and interest payments whose ex-date or payment date is still to come.
No parameters.
{
"data": {
"yields": [
{
"ticker": "KFL",
"company": "Kontiki Finance Ltd",
"dividendYieldPct": 4.8,
"peRatio": 12.76,
"epsCents": 9.8,
"marketCapFjd": 38500000,
"asAt": "2026-09-29"
}
],
"upcoming": [
{
"ticker": "FTV",
"company": "Fiji Television Ltd",
"type": "dividend",
"amount": 0.05,
"interimOrFinal": "final",
"exBenefitDate": "2026-10-12",
"paymentDate": "2026-10-30"
}
]
},
"meta": {
"apiVersion": "v1",
"generatedAt": "2026-09-30T00:00:00.000Z"
}
}Insights & news
/api/v1/insightsKontiki Capital insights
Published research, market updates, commentary, reports and announcements from Kontiki Capital, newest first. Returns summaries — fetch an article by `slug` for its full body.
| Parameter | In | Type | Description |
|---|---|---|---|
| limit | query | integer | How many to return, 1–50. Default 20. |
| category | query | string | Optional category filter. bulletin | report | market-update | announcement | research | regulatory | fund-update | commentary |
{
"data": [
{
"slug": "spx-weekly-wrap",
"title": "SPX weekly wrap",
"summary": "Turnover rose on the back of block trades in banking stocks…",
"category": "market-update",
"author": "Kontiki Capital",
"tags": [
"SPX",
"weekly"
],
"coverImageUrl": null,
"documentUrl": null,
"publishedAt": "2026-09-26T05:00:00.000Z",
"updatedAt": "2026-09-26T05:00:00.000Z",
"url": "https://kontiki.com.fj/insights/spx-weekly-wrap"
}
],
"meta": {
"apiVersion": "v1",
"generatedAt": "2026-09-30T00:00:00.000Z"
}
}/api/v1/insights/{slug}One insight, full text
A single published insight including its full body as Markdown (`bodyMarkdown`).
| Parameter | In | Type | Description |
|---|---|---|---|
| slug* | path | string | The insight's slug, from /api/v1/insights. |
curl "https://kontiki.com.fj/api/v1/insights/spx-weekly-wrap"Cached for ≈1 minute.
{
"data": {
"slug": "spx-weekly-wrap",
"title": "SPX weekly wrap",
"bodyMarkdown": "## Highlights\n\nTurnover rose…",
"…": "same fields as the list"
},
"meta": {
"apiVersion": "v1",
"generatedAt": "2026-09-30T00:00:00.000Z"
}
}/api/v1/newsFiji news headlines
The News page feed: the latest headlines from Fiji newsrooms (FBC News, Fiji Government, Fiji Sun, The Fiji Times, fijivillage), newest first. Headline, link and timestamp only — every link goes to the publisher. `topic=warwick` returns coverage of the Warwick Hotel Group SPX listing.
| Parameter | In | Type | Description |
|---|---|---|---|
| topic | query | string | `all` (default) or `warwick`. all | warwick |
| limit | query | integer | How many headlines, 1–40. Default 12. |
{
"data": [
{
"source": "FBC News",
"title": "Headline text",
"url": "https://www.fbcnews.com.fj/news/…",
"publishedAt": "2026-09-30T02:10:00.000Z",
"dateOnly": false
}
],
"meta": {
"apiVersion": "v1",
"generatedAt": "2026-09-30T00:00:00.000Z"
}
}Meta
/api/v1/openapi.jsonOpenAPI 3.1 specification
The machine-readable specification of this API. Point an AI agent, Postman, or an OpenAPI code generator at it to get every endpoint and parameter.
No parameters.
{
"openapi": "3.1.0",
"info": {
"title": "Kontiki Capital Public API",
"version": "1.0.0"
},
"…": "…"
}