Appearance
Crypto Sources
The Sources endpoint returns the publishers that have actively posted articles in the last 24 hours. The list is dynamic — it reflects only sources with recent content, not a fixed registry. Use the identifiers returned here as the source parameter in Crypto Articles to filter results to a single publisher.
Weekend variation
Crypto news publishing slows down on weekends. Expect a smaller number of sources on Saturdays and Sundays compared to weekdays. Always fetch this list at query time (or cache it for a short window) rather than hardcoding source names, so your app stays accurate when the active set changes.
Base URL
https://crypto-news51.p.rapidapi.comGet sources
GET/api/v1/crypto/sources
Returns a flat JSON array of source identifier strings for publishers that have posted at least one article in the last 24 hours. No query parameters are accepted.
Authentication
| Header | Value |
|---|---|
X-RapidAPI-Key | Your RapidAPI secret key |
X-RapidAPI-Host | crypto-news51.p.rapidapi.com |
Example request
bash
curl "https://crypto-news51.p.rapidapi.com/api/v1/crypto/sources" \
-H "X-RapidAPI-Key: YOUR_RAPIDAPI_KEY" \
-H "X-RapidAPI-Host: crypto-news51.p.rapidapi.com"javascript
const response = await fetch(
'https://crypto-news51.p.rapidapi.com/api/v1/crypto/sources',
{
headers: {
'X-RapidAPI-Key': process.env.RAPIDAPI_KEY,
'X-RapidAPI-Host': 'crypto-news51.p.rapidapi.com',
},
}
)
const sources = await response.json()
console.log(`${sources.length} sources available`)
console.log(sources)
// ['99bitcoins', 'ambcrypto', 'bitcoin', ...]python
import os
import requests
response = requests.get(
"https://crypto-news51.p.rapidapi.com/api/v1/crypto/sources",
headers={
"X-RapidAPI-Key": os.environ["RAPIDAPI_KEY"],
"X-RapidAPI-Host": "crypto-news51.p.rapidapi.com",
},
)
response.raise_for_status()
sources = response.json()
print(f"{len(sources)} sources available:")
for source in sorted(sources):
print(f" {source}")Response
A flat JSON array of source identifier strings for publishers active in the last 24 hours, in no guaranteed order. The number of entries will be lower on weekends.
json
[
"99bitcoins",
"ambcrypto",
"bitcoin",
"bitcoinethereumnews",
"bitcoinist",
"bitcoinmagazine",
"bitdegree",
"bitfinex",
"bitpinas",
"bitrss",
"blockchain",
"blockmanity",
"blockonomi",
"blocktelegraph",
"bravenewcoin",
"coincentral",
"coinchapter",
"coincheckup",
"coincu",
"coindesk",
"coindoo",
"coinfunda",
"coingape",
"coingeek",
"coinidol",
"coinjournal",
"coinpedia",
"coinspeaker",
"cointelegraph",
"crypto",
"crypto-economy",
"crypto-news",
"crypto-news-flash",
"cryptoadventure",
"cryptobreaking",
"cryptobriefing",
"cryptodaily",
"cryptoexchange4u",
"cryptonews",
"cryptoslate",
"cryptoticker",
"currencycrypt",
"dailycoin",
"dailyhodl",
"decrypt",
"financemagnates",
"forklog",
"fxopen",
"icoinmarket",
"livebitcoinnews",
"medium",
"newsbtc",
...
]Available sources
These are all 64 publishers currently indexed by the platform:
| Source identifier | Publisher |
|---|---|
99bitcoins | 99Bitcoins |
ambcrypto | AMBCrypto |
bitcoin | Bitcoin.com |
bitcoinethereumnews | BitcoinEthereumNews |
bitcoinist | Bitcoinist |
bitcoinmagazine | Bitcoin Magazine |
bitdegree | BitDegree |
bitfinex | Bitfinex Blog |
bitpinas | BitPinas |
bitrss | BitRSS |
blockchain | Blockchain.com Blog |
blockmanity | Blockmanity |
blockonomi | Blockonomi |
blocktelegraph | Block Telegraph |
bravenewcoin | Brave New Coin |
coincentral | CoinCentral |
coinchapter | CoinChapter |
coincheckup | CoinCheckup |
coincu | CoinCu |
coindesk | CoinDesk |
coindoo | CoinDoo |
coinfunda | CoinFunda |
coingape | CoinGape |
coingeek | CoinGeek |
coinidol | CoinIdol |
coinjournal | CoinJournal |
coinpedia | CoinPedia |
coinspeaker | CoinSpeaker |
cointelegraph | CoinTelegraph |
crypto | Crypto.com Blog |
crypto-economy | Crypto Economy |
crypto-news | Crypto News |
crypto-news-flash | Crypto News Flash |
cryptoadventure | CryptoAdventure |
cryptobreaking | CryptoBreaking |
cryptobriefing | Crypto Briefing |
cryptodaily | CryptoDaily |
cryptoexchange4u | CryptoExchange4U |
cryptonews | CryptoNews |
cryptoslate | CryptoSlate |
cryptoticker | CryptoTicker |
currencycrypt | CurrencyCrypt |
dailycoin | DailyCoin |
dailyhodl | The Daily Hodl |
decrypt | Decrypt |
financemagnates | Finance Magnates |
forklog | ForkLog |
fxopen | FXOpen Blog |
icoinmarket | iCoinMarket |
livebitcoinnews | Live Bitcoin News |
medium | Medium |
newsbtc | NewsBTC |
nulltx | NullTX |
stealthex | StealthEX Blog |
thebitcoinnews | The Bitcoin News |
thecryptobasic | The Crypto Basic |
themerkle | The Merkle |
thenewscrypto | The News Crypto |
tronweekly | TRON Weekly |
u | U.Today |
usethebitcoin | UseTheBitcoin |
visionary-finance | Visionary Finance |
zebpay | ZebPay Blog |
zycrypto | ZyCrypto |
and more | ... |
Using a source to filter articles
Pass any identifier from this list as the source parameter in the Articles endpoint:
bash
# Fetch only CoinDesk articles from the last 24h
curl "https://crypto-news51.p.rapidapi.com/api/v1/crypto/articles?source=coindesk&time_frame=24h&limit=20" \
-H "X-RapidAPI-Key: YOUR_RAPIDAPI_KEY" \
-H "X-RapidAPI-Host: crypto-news51.p.rapidapi.com"javascript
// 1. Fetch and cache the source list once
const sources = await fetch(
'https://crypto-news51.p.rapidapi.com/api/v1/crypto/sources',
{ headers }
).then((r) => r.json())
// 2. Validate before using as a filter
const chosen = 'coindesk'
if (!sources.includes(chosen)) {
throw new Error(`Unknown source: "${chosen}"`)
}
// 3. Fetch articles filtered by source
const articles = await fetch(
`https://crypto-news51.p.rapidapi.com/api/v1/crypto/articles?source=${chosen}&time_frame=24h`,
{ headers }
).then((r) => r.json())
console.log(`${articles.length} articles from ${chosen}`)python
import os, requests
headers = {
"X-RapidAPI-Key": os.environ["RAPIDAPI_KEY"],
"X-RapidAPI-Host": "crypto-news51.p.rapidapi.com",
}
# 1. Fetch the source list once and cache it
sources = requests.get(
"https://crypto-news51.p.rapidapi.com/api/v1/crypto/sources",
headers=headers,
).json()
# 2. Validate user input
chosen = "coindesk"
if chosen not in sources:
raise ValueError(f'Unknown source: "{chosen}"')
# 3. Fetch filtered articles
articles = requests.get(
"https://crypto-news51.p.rapidapi.com/api/v1/crypto/articles",
params={"source": chosen, "time_frame": "24h", "limit": 50},
headers=headers,
).json()
print(f"{len(articles)} articles from {chosen}")Error responses
| Status | Code | Description |
|---|---|---|
| 401 | unauthorized | X-RapidAPI-Key is missing or invalid |
| 403 | forbidden | Your RapidAPI plan does not include access to this endpoint |
| 429 | too_many_requests | RapidAPI rate limit exceeded |
| 500 | internal_error | Server error — safe to retry after a short delay |
Related endpoints
| Endpoint | Description |
|---|---|
| Crypto Articles | Fetch articles, optionally filtered by source |
| Articles Search | Search articles by title keyword |
| Crypto Sentiment | Aggregated sentiment for a time interval |