API Terms of Service
Last updated 18 October 2026. These terms govern the MetalCharts developer API and are in addition to our general Terms of Service. Where the two conflict, these terms govern your use of the API.
1. Programmatic access is what you are buying
Our general terms prohibit automated access to the website. An active API subscription is the exception: a valid key issued to your account is authorisation to access the endpoints your plan includes, by software, on the terms below.
Keys identify you. Keep them secret, do not embed them in client-side code or public repositories, and rotate them in the API console if one is exposed. Usage under your key is your responsibility, including usage by anyone you share it with.
2. What you may do with the data
Commercial use is permitted on every plan, the free tier included. You may build and sell a product that uses this data, and serve it to your own paying customers, with one key.
On the free plan the licence comes with one condition, a credit link. Wherever you show free-plan data to the public, on a website, in an app or in a post, put a visible link to metalcharts.org next to or under it, such as “Metal prices by MetalCharts”. Internal tools that only your own team sees don't need one, and paid plans don't need one at all. Free-plan responses carry an X-Attribution header as a reminder. This snippet does the job:
<a href="https://metalcharts.org" target="_blank" rel="noopener">Metal prices by MetalCharts</a>We grant you a non-exclusive, non-transferable, revocable licence to retrieve data through the API and use it inside your own product, research or internal systems for as long as your key is active.
You may display data to your own users, derive calculations and charts from it, and cache responses for as long as is reasonable to operate your product. There is no separate commercial licence to buy and no cap on how many end users your product may have. Apart from the free plan's credit link, your plan limits are the rate limits, nothing more.
The line we draw is between building on the data and reselling access to it. A dashboard, a trading tool, an app, a research report or an internal risk system are all fine. Putting our endpoints behind your own and charging for that is not, because that is selling our product rather than yours.
3. What you may not do
- ✕Resell access to the API itself, proxy our endpoints as your own, or offer a competing data feed built from ours
- ✕Present the data as your own source, or show free-plan data publicly without the credit link
- ✕Share, sell or transfer your API key, or let another business use your subscription
- ✕Attempt to bypass rate limits, tier restrictions or authentication, including by using multiple accounts to exceed a plan
- ✕Systematically download the data set in bulk to recreate or redistribute it elsewhere, as opposed to caching what your product needs
- ✕Use the API in a way that breaks the law, or that an upstream exchange or data provider prohibits
An Enterprise agreement can grant the right to redistribute named datasets, for example to supply them to other businesses. That right exists only where a written Enterprise agreement grants it, and only for the datasets and uses it names.
Some data reaches us from exchanges and third-party providers under their own terms. Those terms flow through to you, and we may have to withdraw or change a data set if a provider requires it.
4. Rate limits and fair use
Requests cost weight. Most endpoints cost 1, historical data costs 2, and expensive operations such as news search cost 3. Your plan determines how much weight you may spend.
| Plan | Rate limit | Monthly cap | Keys | History |
|---|---|---|---|---|
| Free | 10 weight / minute | 200 weight / month | 1 | 30 days, daily |
| Starter | 20 weight / minute | 10,000 weight / month | 2 | 1 year |
| Basic | 30 weight / minute | 250,000 weight / month | 3 | 1 year |
| Pro | 200 weight / minute | 1,000,000 weight / month | 10 | 5 years |
| Ultimate | 1,000 weight / minute | No monthly cap | 25 | Unlimited |
| Enterprise | 3,000 weight / minute | No monthly cap | 50 | Unlimited |
Every response carries X-RateLimit-* headers so you can meter yourself rather than discovering a limit by being refused. Exceeding a limit returns HTTP 429 and is not an error on our side. On plans with a monthly allowance, requests continue to 10% past it before they are refused, we email the account at 80% and 100% of it, and requests refused with a 429 do not count against the month.
We may apply additional protection against traffic that threatens service for other customers, even where it is inside your plan's stated limits.
5. Billing, renewal and cancellation
Paid plans bill in advance, monthly or annually, and renew automatically until cancelled. Prices are in US dollars and exclude any taxes you may owe.
You can cancel at any time from the API console. Cancellation takes effect at the end of the period you have already paid for, so your access and keys continue until then. We do not refund the unused part of a period.
You can change plans at any time from the pricing page or the API console, and the change takes effect at once. Moving to a higher plan, or from monthly to annual billing, charges the prorated difference straight away. Moving to a lower plan credits the unused part of the old plan to your account; the credit comes off your next invoices and is not paid out.
If a payment fails we may suspend API access until it succeeds. We may change prices with at least 30 days' notice, effective from your next renewal.
6. Accuracy and no warranty
The API is provided as is. Market data is gathered from exchanges, providers and public sources, and may be delayed, incomplete, corrected after publication, or wrong. We make no warranty as to accuracy, completeness or fitness for any purpose.
Nothing delivered through the API is financial advice. Do not rely on it as the sole basis for a trading, investment or hedging decision.
Where a data set has stopped updating, endpoints that can detect it say so in the response. Check those fields rather than assuming a series is current.
7. Availability and support
We aim for continuous availability. Except on the Enterprise plan, we do not offer a service level agreement, an uptime guarantee or a support response time. Maintenance, upstream provider failures and incidents will cause interruptions.
Build for failure: handle non-200 responses, retry with backoff, and do not assume a response will arrive.
Enterprise plan service level
- Uptime. The API at api.metalcharts.org will be available at least 99.9% of each calendar month, as measured by our monitoring and published on our status page.
- Downtime is a minute in which our monitoring finds the API returning server errors (HTTP 5xx) or not answering authenticated requests.
- Not downtime: maintenance announced at least 48 hours ahead, up to four hours a month; errors caused by your requests or by exceeding your plan's limits; a data source that updates late while the API keeps answering (each dataset reports its own freshness); and events outside our reasonable control.
- Service credits. For each full 0.1% below 99.9% in a month, you may claim a credit of 10% of that month's Enterprise fee, up to 50%. Claim by email to [email protected] within 30 days of the month's end. Credits apply to future invoices and are the sole remedy for missing this level.
- Support. Email to [email protected] gets a first response within one business day (Monday to Friday, excluding US federal holidays).
8. Changes to the API
We add endpoints and fields regularly, and treat additions as non-breaking. Your client should ignore fields it does not recognise.
Where we need to remove or change an endpoint in a way that breaks existing callers, we will give at least 30 days' notice by email to the address on your account, except where a legal obligation or an upstream provider requires a faster change.
9. Suspension and termination
We may suspend or terminate API access for breach of these terms, non-payment, or use that threatens the service or our providers. Where circumstances allow we will contact you first.
On termination your licence ends. Stop making requests, and delete any stored raw data that you hold only by virtue of this licence. You may keep derived work that does not reconstitute the data set.
10. Contact
Questions about these terms, or about a licence beyond what they allow, including redistribution: [email protected].