Checking your account...
Sign in to get your key
API access is included with FXNewsBias Pro and works throughout the free trial. Sign in and your key panel appears right here.
Start the trial, get your key on this page
Seven days free. The key appears here the moment you subscribe, and keeps working for as long as you stay.
$30/month after the trial. Cancel any time and the key simply stops.
// what you get back { "schema": "fxnb.sentiment.v1", "generated_at": "2026-08-21T09:00:12Z", "data": [ { "currency": "USD", "score": 72, "bias": "Bullish" }, { "currency": "EUR", "score": 42, "bias": "Bearish" }, ... 6 more ] }
Create your API key
One key per account, created instantly. You will see it once, right here, the moment it is created. We only ever store a fingerprint of it, so it cannot be shown again afterwards.
This is the only time the key is shown. We store a fingerprint, not the key itself, so we genuinely cannot show it to you again. Lost it? Regenerate below, which replaces it and kills the old one.
Endpoints
Two GET endpoints, both authenticated with the same key. Base URL https://fxnewsbias.com.
The API serves forward data: the current read and everything published from now on. Historical series are not available through the API. If you need history for research, talk to us about a data licence.
Quickstart
Bearer header only. Keys are never accepted in the URL or query string.
curl -H "Authorization: Bearer $FXNB_KEY" \
https://fxnewsbias.com/api/v1/sentiment
Response shape
{
"schema": "fxnb.sentiment.v1",
"generated_at": "2026-08-21T09:00:12Z",
"next_update_expected": "2026-08-21T12:00:00Z",
"attribution": {
"required": true,
"text": "Data by FXNewsBias",
"url": "https://fxnewsbias.com"
},
"data": [
{ "currency": "USD", "score": 72, "bias": "Bullish",
"updated_at": "2026-08-21T09:00:00Z" },
... 7 more
]
}
| Field | Contract, frozen. v1 never changes shape |
|---|---|
data | Always exactly 8 rows, ordered USD, EUR, GBP, JPY, AUD, CAD, CHF, NZD |
score | Integer 0 to 100. 50 is the neutral midpoint, higher is bullish news tone, lower is bearish |
bias | Exactly one of Bullish, Bearish, Neutral |
updated_at | ISO-8601 UTC. When the score was computed |
next_update_expected | When the next refresh lands. Sleep until this, then poll once |
Staying current without wasting quota
Scores publish on a fixed 3-hour cycle. Rather than polling blindly, read next_update_expected and come back then. You get the new data within seconds of publication and spend about 8 requests a day.
import requests, time
from datetime import datetime, timezone
H = {"Authorization": "Bearer " + FXNB_KEY}
while True:
r = requests.get("https://fxnewsbias.com/api/v1/sentiment", headers=H).json()
handle(r["data"])
nxt = datetime.fromisoformat(r["next_update_expected"].replace("Z", "+00:00"))
time.sleep(max(30, (nxt - datetime.now(timezone.utc)).total_seconds() + 20))
Rate limits
- 200 requests per UTC calendar day per account, resetting at 00:00 UTC
- Every response carries
X-RateLimit-Limit,X-RateLimit-RemainingandX-RateLimit-Reset - One over the limit returns
429with aRetry-Afterheader - The allowance follows the account, not the key, so regenerating a key does not reset it
Errors
| Status | Body | When |
|---|---|---|
401 | {"error":"unauthorized"} | Missing or malformed header, unknown key, revoked key |
405 | {"error":"method-not-allowed"} | Anything but GET |
429 | {"error":"rate-limited","retry_after_seconds":n} | Past your daily limit |
Attribution and terms
- Wherever the data is displayed or republished, keep the attribution "Data by FXNewsBias" linking to
https://fxnewsbias.com. It ships in every response - Your Pro subscription covers commercial use inside your own product
- No redistribution, resale, or using the data to build a competing sentiment service
- One key per account. Sharing a key across separate users or products is not permitted and is detectable
- Your key works while your subscription is active, including the free trial, and stops when it ends
- Questions, higher volume, or a data licence: contact@fxnewsbias.com
Frequently asked questions
What is a forex sentiment API?
A forex sentiment API returns a machine readable measure of how positive or negative published news is for each currency. The FXNewsBias API returns a 0 to 100 score for the 8 major currencies as JSON. Above 50 leans bullish, below 50 leans bearish, and 50 is neutral.
How often is the forex sentiment data updated?
Scores are recomputed every 3 hours on a fixed cycle, eight times a day from 00:00 UTC, seven days a week. Every response carries a next_update_expected timestamp so you can sleep until the next publication instead of polling blindly. See how the scoring works.
Which currencies does the API cover?
USD, EUR, GBP, JPY, AUD, CAD, CHF and NZD. The sentiment endpoint always returns exactly 8 rows in that order, so the shape never changes between calls. Browse the live currency scores.
How much does the forex sentiment API cost?
API access is included with FXNewsBias Pro at $30 per month, which starts with a 7 day free trial. There is no separate API fee. The key works throughout the trial and stops when the subscription ends. See what else Pro includes.
What is the rate limit?
200 requests per UTC calendar day per account, resetting at 00:00 UTC. Every response carries X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset headers, and going over returns HTTP 429 with a Retry-After header.
Does the API provide historical sentiment data?
No. The API serves forward data, meaning the current read and everything published from the moment you subscribe. Historical series for backtesting are available under a separate data licence, so get in touch if that is what you need.
How do I get an API key?
Sign in to your FXNewsBias account and the key panel at the top of this page creates one instantly. There is no application form, no waiting list, and no email delivery. The key is shown once at creation because only a fingerprint of it is stored.