The #1 Software Provider in Precious Metals Market
Check out our tutorials, technical guides, and API documentation.

Financial institutions, dealers, and wholesalers alike benefit from our powerful visualizations for both real-time and historical data.
Our dedicated support team is here to assist you with any questions or challenges you may face. Whether you need technical guidance or help navigating our services, we’re just a click away to provide the solutions you need.
At nFusion Solutions, our spot prices are sourced from a curated network of trusted global providers, including leading global exchanges and financial institutions like SIX-Group (Swiss Stock Exchange), Morningstar, UBS, Saxo Bank, Morgan Stanley, AFX, and BNP Paribas. We continuously monitor these real-time feeds using a proprietary confidence-scoring system to ensure the most accurate, timely, and reliable data.
Our system calculates a best bid and offer (BBO) by selecting the most trustworthy quotes and filtering out anomalies. From there, we derive a clean midpoint and construct balanced bid/ask prices tailored to current market conditions.
Want a deeper look at how it all works? Read our full guide on precious metals spot prices ›
If spot prices do not appear to be updating, it may be because the market is closed. Market hours for precious metals correspond to CME Globex hours for metals futures
To configure custom spot pricing for metals:
For each metal, you can:
For example:
To set a fixed Ask price for Gold at $1,215.75, click the pencil icon for Gold, enter1215.75in the Fixed Ask field, and save.
To adjust the price dynamically instead, enter0.5in Ask Adjustment and-0.5in Bid Adjustment to increase your Ask by 50¢ and decrease your Bid by 50¢ relative to the live spot price.
There are a number of factors that affect how spot prices are calculated and how they are displayed.
To access spot price data in either XML or JSON format, first log in to your nFusion Dashboard. From the dashboard:
Go to the Connections page and scroll down to the API Keys section.
Click the “View” button in the “Documentation” column for the corresponding Market Data API key to access detailed usage instructions, including supported formats and endpoints.
By default, API responses are returned in JSON. If you prefer XML, you can set the appropriate Accept header in your request (application/xml) or use the format query parameter (e.g., ?format=xml). We recommend using JSON (application/json) for most use cases due to its widespread compatibility and performance.
An HTTP 403 (Forbidden) response with substatus 502 typically means your API requests have exceeded the rate limit. This happens when you make too many calls in a short period of time.
To resolve this, reduce the number of API requests you’re making per second. Implementing caching on your server or delaying certain requests can help stay within the allowed limits.
For high-frequency use cases, consider batching or aggregating your requests where possible to optimize efficiency and stay within allowed limits.
To access the nFusion Solutions APIs, you’ll need one or more API tokens, depending on your use case. To find your API tokens:
Your API tokens are sensitive credentials and should be kept secret. Never expose them in client-side code (e.g., JavaScript running in the browser), as this can allow others to view and misuse your token. Instead, route requests through your own server using a secure proxy, such as:
https://yoursite.com/proxy/metals/spot
This server-side proxy can safely call nFusion APIs using your token while keeping it hidden from the public.
To improve performance and reduce redundant API calls, we strongly recommend implementing caching on your proxy server. This ensures that multiple client-side requests don’t result in a 1:1 call ratio to nFusion APIs.
When making API requests, use the following HTTP headers as appropriate:
For further guidance, refer to the API documentation linked from your Dashboard.
Sign in to the Alerts Services portal using your admin email address. Once you have logged in as the admin to the admin URL, you’ll see the following options:
Choose on the second option, send a promotional message now to all users. This option allows the admin to push a message at any time to all users who have opted in to receive news and promotional messages. After choosing the second option, you will be directed to a new page containing a text entry box where you may add your desired message.
Once you have finished creating your message, simply click the Send button. Subsequently, a page will display the results of your message. These results contain information regarding the message. For example, you will be shown how many notifications were sent out with further detail pertaining to whether or not they were push or SMS notifications. This allows you to understand how many people your message is reaching and how it is reaching them, therefore allowing you to enhance your marketing strategies.
We have tested and confirmed compatibility with the three most popular multi-currency plugins in the WordPress plugin store. These plugins will work out of the box with our plugin as of version 2.9.9. If you are not using at least version 2.9.9 of our plugin, currency switching plugins may not be compatible. Please note the version with which they have been tested.
If you are not using one of the plugins that we have confirmed to be compatible in the list mentioned here, there are a couple of things to look for. Our plugin depends on the get woocommerce_currency() function which returns the current WooCommerce currency code. If your currency switcher plugin is not updating the WooCommerce currency then our plugin will not update the product prices with the new currency.
The other thing that may be causing your plugin to not work properly is the priority at which the woocommerce_product_get_price filter is set. As of version 2.9.9, our Product Catalog plugin is setting the priority of the aforementioned filter to 10000 in an attempt for our hook to be run last. If the priority of said filter in the currency plugin is higher than 10000, it may be overriding the price that is being returned from your nFusion Bullion Pricing Engine.
To do this, you must be using one of our supported currency switcher plugins. If you are using a supported currency switcher, you have two options:
You can personalize the styling of your widgets through the nFusion Dashboard app. To get started, follow these steps:
Access the Widgets Page: Log in to your nFusion dashboard and navigate to the widgets page.
Edit a Widget: In the widgets page, locate the widget you want to customize, and click the ‘edit’ pencil icon in the actions column. This action will take you to the widget’s editor screen.
Customization Sections: On the widget’s editor screen, you’ll find two main sections:
Before You Begin:
Before uploading your custom CSS, we highly recommend reviewing our CSS best practices documentation to ensure that your styling is applied without any conflicts.
Uploading Custom CSS:
To upload your custom CSS file, follow these steps:
Preview Your Changes:
To see your customizations in action, return to the widgets page and click the ‘preview’ button for the widget you’ve just edited. This will open a widget preview page where you can view your new CSS styling.
Troubleshooting CSS Application:
If you find that your custom CSS is not being applied, consider the following solutions:
If none of the above solutions work, please contact our support team at support@nfusionsolutions.com. When reporting your issue, be sure to include all the steps you’ve taken to resolve the problem before reaching out. This will help us provide the quickest possible solution to your customization needs.
To do this, each widget must have a unique ID so that when they are loaded into the page, there are no JavaScript errors or conflicts. Therefore, when you are adding multiple instances of the same widget to a single page, you need to change the ID of the DIV element so that it is unique within that page; then, modify the src attribute within the script by adding “/your-id” to the end of the root domain.
By changing the ID and modifying the src, you are telling the script which DIV element to load the chart into. For example, here is a default chart widget script that has been copied from the preview page:
<div id='c528ee05-722d-4762-a635-213197f7b8b4' style='width:100%;height:100%;'></div>
<script>
(function () {
var t = document.getElementsByTagName('script')[0];
var s = document.createElement('script');
s.async = true;
s.src =
'https://widget.nfusionsolutions.com/widget /script/chart/1/32796899-2cc3-4454-ac51-2c95c78799af/c528ee05-722d-4762-a635-213197f7b8b4';
t.parentNode.insertBefore(s, t);
})();
</script>
Now say you wanted to add another chart on the same page (maybe to change the selected symbol for example). Here is what it would look like to add a second instance of the same widget to a single page:
<div id='my-custom-id' style='width:100%;height:100%;'></div>
<script>
(function(){
var t = document.getElementsByTagName('script')[0];
var s = document.createElement('script'); s.async = true;
s.src = 'https://widget.nfusionsolutions.com/widget/script/chart/1/32796899-2cc3-4454-ac51-2c95c78799af/c528ee05-722d-4762-a635-213197f7b8b4/my-custom-id';
t.parentNode.insertBefore(s, t);
})();
</script>
Notice how everything is the same except for the DIV element ID and the end of the src attribute.
let button = $('.sample-button'),
widget = $('#188e705d-23afa-45dd-fce21-09c8298af4f2');
button.click(changeSymbol());
function changeSymbol() {
widget.children("iframe").attr("src", "https://widget.nfusionsolutions.com/widget/script/chart/1/6e98ae99-d878-43a2-81f0-a2528bd3d47e/5444e580-e249-426f-b07f-d23c19049c08" + "?selected= silver");
}To implement your widgets using our currency helper there are two simple steps.
1. Ensure that the helper script is available before attempting to use it, you must add the following script within your header:
<script src="https://widgetcdn.nfusionsolutions.com/asset/static/1/common/1/js/currency-interop.min.js"></script>
2. Once the script is available to use, you can add a widget to the page by using code similar to the following:
<div id='YOUR-WIDGET-ID' style='width:100%;height:100%;'></div>
<script>
(function(){
nFSCurrencyHelper.init('YOUR-WIDGET-SCRIPT-SRC-URL');
})();
</script>
Simply replace “YOUR-WIDGET-ID” in the above script with the ID that is in your widgets preview page script. Then similarily, replace the “YOUR-WIDGET-SCRIPT-SRC-URL” with the url being assigned to the s.src variable that is in your widgets preview page script.
This script is very similar to our default widget scripts, with the exception that you need to use the “nFSCurrencyHelper.init” function and pass the function the widget’s src.
Open your web browser and go to the nFusion Dashboard at https://dashboard.nfusionsolutions.com/. If you are not already signed in, you will be directed to the login page.
You can sign in using an existing Google, Microsoft, Apple, or Facebook account, as long as that account uses the same email address associated with your nFusion Dashboard invitation.
For example, if your Dashboard invitation was sent to a Gmail/Google Workspace address, select Google on the login page to authenticate with your Google account. This allows you to securely access your nFusion Dashboard without creating a separate password.
If your email address is not connected to one of the available social login providers, select Sign up now at the top of the login page. From there, you can create an account using your email address and a password of your choice.
Once your account is created or authenticated, you can log in and begin accessing your nFusion Dashboard.
To use the nFusion Shopify app, you must have an active subscription to the nFusion Product Pricing Engine service. If you do not currently have a subscription, please contact our sales team for assistance.
From the Shopify App Store, install the nFusion Shopify App.
During installation, Shopify will ask you to approve the required app permissions. Review and accept the permissions to complete the installation.
Once the app is installed, open the nFusion app from your Shopify admin.
You will need to configure the following settings:
Your API Key and available Sales Channels can be found in your nFusion Dashboard.
In the nFusion Dashboard, choose the sales channel you want to use for Shopify. You can use an existing sales channel or create a new one, such as Website.
The selected sales channel determines which products are synced to your Shopify store.
To learn how to assign products to a sales channel, please refer to the Sales Channel Assignment Setup Guide.
Before completing the integration, confirm that each product SKU in the nFusion Dashboard exactly matches the corresponding product SKU in Shopify.
SKU matching is required for price updates to work correctly. If a SKU does not match, nFusion will not be able to update pricing for that product in Shopify.
After the app is installed and all settings are configured, email support@nfusionsolutions.com to finalize the integration.
Our support team will complete the remaining setup steps and confirm when the integration is ready to use.
The Precious Metals Product Prices for WooCommerce can automatically re-index products when the Action Scheduler plugin is installed and active on your WordPress website.
Action Scheduler allows WordPress to process tasks in the background, which helps the nFusion plugin update and re-index WooCommerce products more efficiently.
Action Scheduler is a scalable background processing tool for WordPress. It is commonly used by WordPress and WooCommerce plugins to manage larger queues of scheduled tasks without requiring server-level access.
Action Scheduler is developed and maintained by Automattic, the company behind WordPress.com and WooCommerce, with significant early development completed by Flightless.
To install Action Scheduler on your WordPress website:
.zip archive of the latest stable release..zip file you downloaded.You can also install Action Scheduler by cloning the Git repository into your site’s wp-content/plugins folder.
Once Action Scheduler is installed and active, the Product Catalog Plugin will automatically use it to re-index your WooCommerce products in the background.
This allows product re-indexing to run asynchronously, helping WooCommerce continue operating normally while the plugin processes product updates.
To use the nFusion plugin with WordPress and WooCommerce, you must have an active subscription to the nFusion Product Pricing Engine. If you do not currently have a subscription, please contact our sales team for assistance.
In your WordPress admin dashboard, go to Plugins → Add New.
Search for and install the Precious Metals Product Prices for WooCommerce plugin. Once the plugin has been installed, select Activate.
After activation, go to Settings → nFusion Settings from the WordPress toolbar.
Enter the required configuration details:
You can find your API Key and available Sales Channels in the nFusion Dashboard.
In the nFusion Dashboard, choose the sales channel you want to use for this integration. You can use an existing sales channel or create a new one, such as Website.
The selected sales channel determines which products are eligible for automatic price updates in WooCommerce.
To learn how to assign products to a sales channel, please refer to the Sales Channel Assignment Setup Guide.
In your WordPress admin dashboard, go to Products.
For each product you want to sync, open the Edit Product screen and locate the WooCommerce product SKU field.
Enter the exact SKU as it appears in your nFusion Product Catalog.
SKU matching is required for price updates to work correctly. If a SKU in WooCommerce does not exactly match the corresponding SKU in the nFusion Catalog, nFusion will not be able to update pricing for that product.
Once these steps are complete, your WordPress plugin will be connected to the nFusion Product Pricing Catalog.
Your eligible WooCommerce products will then be ready to receive automatic price updates based on the products assigned to the selected sales channel.
To change your company name in nFusion, please email support@nfusionsolutions.com with the following information:
Once your request is received, our support team will review the information and update your company record.
To assign products to a sales channel, sign in to your nFusion Dashboard and go to the Products page.
There are two ways to assign products to a sales channel: you can add products individually, or you can add and remove products in bulk.
Use this option when you only need to assign one or a few products to a sales channel.
Use this option when you want to add or remove all products from a specific sales channel at once.
Once your changes are saved, the selected products will be associated with that sales channel. Sales channels can then be used to control which products are included in connected integrations, such as Shopify, WooCommerce, or eBay.
Following these best practices will help you get reliable, secure, and efficient performance when working with nFusion APIs.
All API requests must be made over HTTPS using TLS 1.2 or higher.
Unsecured HTTP requests are not supported.
To access nFusion APIs, you will be issued one or more API tokens based on your use case. API tokens are sensitive credentials and should be handled like passwords.
Do not expose your API token in client-side code, such as JavaScript that runs in a browser. Client-side code can be viewed publicly, which could allow your token to be copied and misused.
Instead, make requests to nFusion APIs from your server-side code. A common approach is to use a secure proxy on your own website or application.
For example:
https://yoursite.com/proxy/metals/spot
Your server can securely call the nFusion API using your API token, while keeping the token hidden from public access.
If you are using a proxy, we recommend implementing caching so your application does not send a new request to nFusion for every client request.
Caching can improve performance, reduce unnecessary API traffic, and help prevent your application from reaching rate limits.
To help avoid throttling, keep API requests under 1 call per second per service.
If rate limits are exceeded, you may receive a 403 Forbidden response with substatus 502.
When supported, use query parameters to consolidate requests instead of making multiple separate API calls. This helps reduce API traffic and improves overall efficiency.
Instead of making separate requests like this:
Currencies/summary?pairs=CAD/USD
Currencies/summary?pairs=USD/CADUse one combined request:
Currencies/summary?pairs=CAD/USD,USD/CADInstead of making separate requests for each currency and metal:
Metals/spot/summary?currency=USD&metals=gold
Metals/spot/summary?currency=USD&metals=silver
Metals/spot/summary?currency=USD&metals=platinum
Metals/spot/summary?currency=USD&metals=palladium
Metals/spot/summary?currency=CAD&metals=gold
Metals/spot/summary?currency=CAD&metals=silver
Metals/spot/summary?currency=CAD&metals=platinum
Metals/spot/summary?currency=CAD&metals=palladiumUse one efficient request:
Metals/spot/summary?currency=USD,CAD&metals=gold,silver,platinum,palladiumDepending on your use case, the following HTTP headers may be included with your API requests.
We recommend using:
Accept: application/jsonXML responses are also supported by using:
Accept: application/xmlFor most use cases, JSON is recommended.
We recommend using:
Accept-Encoding: deflate,gzipThis allows responses to be compressed, which can improve performance.
For POST and PUT requests that include a message body, use:
Content-Type: application/jsonWe recommend setting the User-Agent header to a unique value, such as your tenant ID, tenant alias, or catalog subdomain.
This can make it easier to locate your API traffic in logs if support assistance is needed.
For more information, please refer to the API documentation below:
https://api.nfusionsolutions.biz/api-docs/index.htmlhttps://nfusioncatalog.com/api-docs/index.htmlWhen customizing nFusion widgets, use CSS selectors that are as specific as possible. This helps ensure your custom styles override the default widget styles consistently.
nFusion widgets include CSS selectors that can be used to customize their appearance.
To find the best selector to use, open your browser’s developer tools and inspect the widget element you want to style. This allows you to see the CSS rules currently being applied and identify the correct selector for your custom styles.
For example, the chart widget may apply a default font family using the following selector:
.nfusionsolutions-com-chart {
font-family: 'Lora', serif;
}To override the default font family, use the same selector and set your preferred font family:
.nfusionsolutions-com-chart {
font-family: 'Your Custom Font', serif;
}Using the widget’s existing selector helps your custom CSS target the correct element without affecting unrelated parts of your website.
Organized CSS is easier to maintain, troubleshoot, and update over time.
We recommend grouping related styles together and using comments where helpful, especially if you are customizing multiple widgets or maintaining styles across several pages.
You may also want to follow a CSS structure such as BEM or SMACSS to keep your styles consistent and scalable.
CSS tools and linters can help identify errors before they affect your website.
Tools such as Stylelint or CSSLint can help detect syntax issues, formatting problems, and common CSS mistakes. This is especially useful when maintaining custom styles across a larger website or ecommerce store.
After adding or updating custom CSS, test the affected widgets on your website to confirm the styles are being applied correctly.
Be sure to review the widget in different browsers and screen sizes when possible, especially if the changes affect layout, spacing, fonts, or responsive behavior.
If you are newer to CSS, there are many helpful resources available online. Sites such as MDN Web Docs, CSS-Tricks, and Stack Overflow can be useful starting points for learning CSS fundamentals and troubleshooting common styling issues.
nFusion widgets can be customized using both configuration settings and query string parameters.
Configuration settings define the default behavior for a widget. Once updated, those settings become the default for that widget.
Query string parameters override the default configuration for a specific widget instance. This allows you to use the same widget multiple times on a website while displaying different data or layouts for each instance.
For example, if the default widget currency is set to USD, you can add a query string parameter to a specific chart URL to display that chart in a different currency without changing the default configuration for other widgets.
The following configuration options are commonly available across nFusion widgets:
The following query string parameters can be used to override widget defaults for a specific widget instance:
Symbols: ?symbols=
Changes the symbols displayed in the widget. This can also be used to control the order in which symbols appear.
Currency: ?currency=
Changes the currency used to display prices.
Unit of measure: ?unitofmeasure=
Changes the unit of measure used to display prices.
Width: ?width=
Changes the width of the widget iframe.
Height: ?height=
Changes the height of the widget iframe.
nFusion chart widgets are available in two versions: V1 and V2.
The difference between V1 and V2 is the layout of the chart elements. Both versions support the same functionality.
Selected symbol: ?selected=
Sets the symbol that appears when the chart first loads.
Selected timeframe: ?timeframeindex=
Sets the timeframe that appears when the chart first loads.
Chart type: ?charttype=
Sets the line style displayed in the chart area.
nFusion table widgets are available in six versions:
V1 and V2 tables provide the same core functionality. The main difference is the styling and positioning of table elements.
Available fields include:
V1 and V2 tables support the standard query string parameters.
The V3 table displays historical performance data for a single selected symbol.
The table includes historical data for the following timeframes:
Available fields include:
The V3 historical performance table supports the standard query string parameters.
The V4 table displays historical ask and change percent data points for multiple currencies at one-year intervals, up to 40 years.
The V4 table supports the standard configuration options.
Years: ?years=
Sets the number of years of historical data displayed.
Currency: ?currency=
A comma-separated list of currencies can be used to display data in multiple currencies.
The V5 table displays live spot prices for a single metal in multiple units of measure.
Available fields include:
Unit of measure: ?unitofmeasure=
A comma-separated list of units of measure can be used to display data in multiple units.
The V6 table displays live spot prices for multiple metals across multiple currencies and units of measure.
The V6 table supports the standard configuration options.
Unit of measure: ?unitofmeasure=
A comma-separated list of units of measure can be used to display data in multiple units.
Currency: ?currency=
A comma-separated list of currencies can be used to display data in multiple currencies.
The nFusion spot price ticker displays real-time data in a responsive banner-style layout.
The ticker supports two display modes:
The ticker also supports configurable fields.
Available fields include:
The ticker supports the standard query string parameters.
The RMD, or required minimum distribution, calculator allows users to estimate their required minimum distribution using a user-friendly chart display.
The calculation is based on user-entered information, including:
The product page widget uses the nFusion Product Catalog to create a full-page product display with live bid and ask prices.
This widget can use catalog features such as sales channels and product families to control which products are displayed.
The widget page allows you to display multiple nFusion chart, table, and ticker widgets together in a single page layout.
From the widget page, users can change the symbol, currency, and unit of measure across every widget instance on the page at the same time.
To see supported:
Currencies: Visit our API documentation under Currencies and view the endpoints where the path ends in “supported”
Metals: Visit our API documentation under Metals and view the endpoints where the path ends in “supported”
Indices: Visit our API documentation under Currencies and view the endpoints where the path ends in “supported”
Benchmarks: Visit our API documentation under Metals and view the endpoints where the path contains “benchmark”

If you need technical support or have a question, fill out the form below or click on the button to call. Our support hours are Monday through Friday 8 a.m.–5 p.m. CST.
When it comes to quality, functionality, customization, and service, our bullion software solutions are unmatched. Let us help you grow your business.