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, day change, volume and range for every company listed on the South Pacific Stock Exchange. Prices are live during trading sessions and otherwise the last close. 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,
"change": 0.02,
"changePct": 1.63,
"volume": 4200,
"high": 1.25,
"low": 1.23,
"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,
"change": 0.02,
"changePct": 1.63,
"volume": 4200,
"high": 1.25,
"low": 1.23,
"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,
"change": 0.02,
"changePct": 1.63,
"volume": 4200,
"high": 1.25,
"low": 1.23,
"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 series points, 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"
},
"…": "…"
}