nFusion Solutions provides REST APIs that deliver enterprise-grade financial data.
Bring your own key. This API needs your own nFusion Solutions Market Data API key - get one from the provider, add it once below, and the proxy injects it on every call. Your OmniStream plan covers the unified SDK, key storage, and proxy - the provider's own rate limits still apply to your key.
This is a community listing. If you own this API, you can request ownership.
npm install omnistream-sdkimport { OmniClient } from "omnistream-sdk";
const omni = new OmniClient({ token: process.env.OMNI_KEY! });
// One key reaches every API on the marketplace.
const data = await omni.call("nfusionsolutions/Currencies_History_GET");One install, one key - the same client calls every API on the marketplace.
comma separated list of currency pairs. For example: USD/CAD,USD/EUR,USD/AUD
start date of time period. format is <i>yyyy-mm-dd</i>
end date of time period. format is <i>yyyy-mm-dd</i>. Default is current date.
aggregation interval. Composed of an optional integer value (which defaults to 1 when not specified), followed by a type string which must be one of the following values: y=year, m=month, w=week, d=day, h=hour, mi=minute For example, a yearly interval can be specified as "y" and 6 month interval as "6m". If not specified the interval parameter default is 1 Day.
to override content negotiation specify a value of json or xml
Get historical prices for requested currency pairs
Get list of currency pairs supported by the history endpoint
Get latest mid rate for requested currency pairs
Get list of currencies supported by the rate endpoint
Get latest Summary for requested currency pairs
/**
* nFusionSolutionsMarketDataAPI - generated by OmniStream from nFusion Solutions Market Data API's OpenAPI spec.
* One typed method per endpoint. A single Omni key reaches the API.
*/
const DEFAULT_BASE = "https://grid.skinvaults.online/v1/proxy/nfusionsolutions";
export class nFusionSolutionsMarketDataAPIError extends Error {
status: number;
code?: string;
constructor(status: number, code: string | undefined, message?: string) {
super(message || `nFusionSolutionsMarketDataAPI error ${status}`);
this.name = "nFusionSolutionsMarketDataAPIError";
this.status = status;
this.code = code;
}
}
export interface nFusionSolutionsMarketDataAPIOptions {
baseUrl?: string;
fetch?: typeof fetch;
timeoutMs?: number;
}
export class nFusionSolutionsMarketDataAPI {
/** @param token Your OmniStream key (one key for every API). */
constructor(private token: string, private opts: nFusionSolutionsMarketDataAPIOptions = {}) {
if (!token) throw new Error("nFusionSolutionsMarketDataAPI: token is required");
}
rateLimit: { remainingMinute?: number; remainingDay?: number } | null = null;
private async _request(method: string, path: string, { params, body }: { params?: Record<string, unknown>; body?: unknown } = {}): Promise<any> {
const f = this.opts.fetch ?? globalThis.fetch;
const url = new URL((this.opts.baseUrl ?? DEFAULT_BASE).replace(/\/+$/, "") + path);
if (params) for (const [k, v] of Object.entries(params)) if (v != null) url.searchParams.set(k, String(v));
const headers: Record<string, string> = { "x-omni-key": this.token };
if (body !== undefined) headers["content-type"] = "application/json";
const res = await f(url, { method, headers, body: body !== undefined ? JSON.stringify(body) : undefined });
this.rateLimit = {
remainingMinute: Number(res.headers.get("x-ratelimit-remaining-minute")) || undefined,
remainingDay: Number(res.headers.get("x-ratelimit-remaining-day")) || undefined,
};
const data = await res.json().catch(() => ({}));
if (!res.ok) throw new nFusionSolutionsMarketDataAPIError(res.status, data?.error?.code, data?.error?.message);
return data.data ?? data;
}
/** Get historical prices for requested currency pairs */
currenciesHistoryGET(params: { "pairs": string; "start": string; "end"?: string; "interval"?: string; "format"?: string }): Promise<any> {
return this._request("GET", "/api/v1/Currencies/history", { params });
}
/** Get list of currency pairs supported by the history endpoint */
currenciesSupportedCurrenciesHistoryGET(params: { "format"?: string }): Promise<any> {
return this._request("GET", "/api/v1/Currencies/history/supported", { params });
}
/** Get latest mid rate for requested currency pairs */
currenciesRateGET(params: { "pairs": string; "format"?: string }): Promise<any> {
return this._request("GET", "/api/v1/Currencies/rate", { params });
}
/** Get list of currencies supported by the rate endpoint */
currenciesSupportedCurrenciesRateGET(params: { "format"?: string }): Promise<any> {
return this._request("GET", "/api/v1/Currencies/rate/supported", { params });
}
/** Get latest Summary for requested currency pairs */
currenciesSummaryGET(params: { "pairs": string; "format"?: string }): Promise<any> {
return this._request("GET", "/api/v1/Currencies/summary", { params });
}
/** Get list of currency pairs supported by the Summary endpoint */
currenciesSupportedCurrenciesSummaryGET(params: { "format"?: string }): Promise<any> {
return this._request("GET", "/api/v1/Currencies/summary/supported", { params });
}
/** Get historical benchmark prices for requested metals */
metalsBenchmarkHistoryGET(params: { "metals": string; "start": string; "end"?: string; "interval"?: string; "historicalfx"?: boolean; "currency"?: string; "unitofmeasure"?: string; "format"?: string }): Promise<any> {
return this._request("GET", "/api/v1/Metals/benchmark/history", { params });
}
/** Get latest Benchmark prices for requested metals */
metalsBenchmarkSummaryGET(params: { "metals": string; "currency"?: string; "unitofmeasure"?: string; "format"?: string }): Promise<any> {
return this._request("GET", "/api/v1/Metals/benchmark/summary", { params });
}
/** Get list of symbols supported by the benchmark endpoints */
metalsBenchmarkSupportedMetalsGET(params: { "format"?: string }): Promise<any> {
return this._request("GET", "/api/v1/Metals/benchmark/supported", { params });
}
/** Get historical Spot prices for requested metals */
metalsSpotHistoryGET(params: { "metals": string; "start": string; "end"?: string; "interval"?: string; "historicalfx"?: boolean; "currency"?: string; "unitofmeasure"?: string; "format"?: string }): Promise<any> {
return this._request("GET", "/api/v1/Metals/spot/history", { params });
}
/** Get Historical Performance for requested metals */
metalsSpotHistoricalPerformanceGET(params: { "metals": string; "currency"?: string; "unitofmeasure"?: string; "format"?: string }): Promise<any> {
return this._request("GET", "/api/v1/Metals/spot/performance", { params });
}
/** Get Historical Annual Performance for requested metals */
metalsSpotAnnualHistoricalPerformanceGET(params: { "metals": string; "currency"?: string; "unitofmeasure"?: string; "format"?: string; "years"?: number }): Promise<any> {
return this._request("GET", "/api/v1/Metals/spot/performance/annual", { params });
}
/** Get historical Spot Ratio prices for requested metals */
metalsSpotRatioHistoryGET(params: { "pairs": string; "start": string; "end"?: string; "interval"?: string; "format"?: string }): Promise<any> {
return this._request("GET", "/api/v1/Metals/spot/ratio/history", { params });
}
/** Get latest Spot Summary for requested metal ratios */
metalsSpotRatioSummaryGET(params: { "pairs": string; "format"?: string }): Promise<any> {
return this._request("GET", "/api/v1/Metals/spot/ratio/summary", { params });
}
/** Get latest Spot Summary for requested metals */
metalsSpotSummaryGET(params: { "metals": string; "currency"?: string; "unitofmeasure"?: string; "format"?: string }): Promise<any> {
return this._request("GET", "/api/v1/Metals/spot/summary", { params });
}
/** Get list of symbols supported by the spot endpoints */
metalsSpotSupportedMetalsGET(params: { "format"?: string }): Promise<any> {
return this._request("GET", "/api/v1/Metals/spot/supported", { params });
}
/** Get list of currencies supported by metals endpoints for currency conversion */
metalsSupportedCurrenciesMetalsGET(params: { "format"?: string }): Promise<any> {
return this._request("GET", "/api/v1/Metals/supported/currency", { params });
}
}
export default nFusionSolutionsMarketDataAPI;
No reviews yet. Be the first to rate this API.
Yes. nFusion Solutions Market Data API uses apiKey authentication, so you bring your own key from the provider. You store it once on OmniStream and the proxy injects it into every call, so your code only ever sends your Omni key.
nFusion Solutions provides REST APIs that deliver enterprise-grade financial data. It exposes 17 endpoints over GET, including GET /api/v1/Currencies/history, GET /api/v1/Currencies/history/supported, GET /api/v1/Currencies/rate.
Install the OmniStream SDK for your language and call nFusion Solutions Market Data API through it. The client is generated from this API's OpenAPI spec, so parameters and responses are fully typed, and the same client also calls every other API in the marketplace.
You can start on the free plan. OmniStream charges for the unified SDK, key storage and proxy rather than for nFusion Solutions Market Data API itself, and nFusion Solutions Market Data API's own rate limits still apply to your provider key.
ExchangeRate-API: Fetch the latest currency exchange rates via API. ExchangeRate-API is free and unlimited.
Get list of currency pairs supported by the Summary endpoint
Get historical benchmark prices for requested metals
Get latest Benchmark prices for requested metals
Get list of symbols supported by the benchmark endpoints
Get historical Spot prices for requested metals
Get Historical Performance for requested metals
Get Historical Annual Performance for requested metals
Get historical Spot Ratio prices for requested metals
Get latest Spot Summary for requested metal ratios
Get latest Spot Summary for requested metals
Get list of symbols supported by the spot endpoints
Get list of currencies supported by metals endpoints for currency conversion