Hvis du handler eller analyserer råvarer, var dit problem med nyheder aldrig udbuddet. Det er, at et generelt feed giver dig alt på én gang. Søg "olie", og du får en energipolitisk forklaring, gårsdagens pumpepriser og den ene Brent-historie, der rent faktisk betyder noget, alt sammen i samme svar og i ingen nyttig rækkefølge.
Hvad et skrivebord faktisk ønsker, er snævrere: råolie for sig selv, LNG for sig selv, potaske for sig selv. Det er et filtreringsproblem, og det er det, denne guide løser. APITube tagger hver artikel med et emne-ID, så i stedet for at gætte nøgleord beder du om en kategori. Råvarer ligger under to af dem, en industriside (minedrift, raffinering, fragt) og en markedsside (den handlede pris på råolie, metaller, gødning). Det meste af det følgende handler om at skelne mellem de to og forespørge dem; den fulde liste over ID'er er nederst til reference.
Det er skrevet til folk, der lever af at overvåge en eller to råvarer: trading desks, energi- og olie-gasanalytikere, indkøbsteams, der afdækker inputomkostninger, ESG-forskere, der følger overgangen. (Oplysning: eksemplerne bruger APITube, som også hoster denne blog. Tilgangen fungerer på samme måde med enhver nyheds-API, der klassificerer efter emne.)
Vigtigste pointer:
- Der er to råvaretaksonomier, ikke én:
industry.commodities.*for udbudssiden ogmarket_news.commodities.*for priser. At vide, hvilken du ønsker, klarer det meste af filtreringen for dig. - En forespørgsel er bare en
topic.idog et sprog. "Seneste råolie-markedsnyheder på engelsk" er én anmodning, uden søgeordslister at vedligeholde. - At tilføje
sentiment.overall.polarityer en billig måde at få udbudschok i top og lade rutinedækning falde til ro. - At overvåge flere råvarer på én gang er en ~30-linjers løkke over en liste af emne-ID'er plus et sæt til at fjerne dubletter.
- Taksonomien dækker omkring 50 emner inden for energi, metaller, kemikalier og gødning, alle angivet nederst.
Hvorfor et generelt nyhedsfeed ikke er nok
Kør en råvareovervågning fra et generelt endepunkt, og fejltilstanden er altid volumen. "Olie" trækker politikstykker, detailpriser på brændstof, den lejlighedsvise auktion af oliemalerier ind, og et sted derimellem ligger den futures-bevægelse, du havde brug for. Nøgleordsfiltre redder dig ikke: title=oil kan ikke skelne råolie fra fyringsolie, og den dropper stille enhver historie, der blev udgivet under et benchmarknavn, du ikke tænkte på at indtaste.
Der er et mere subtilt problem under det. En raffinaderibrand og den råolieprisstigning, den forårsager, er to forskellige historier for to forskellige læsere, én operationel og én om markedet. Et nøgleordsfeed leverer dem til dig i den samme flade liste. En emnetaksonomi gør ikke, fordi den allerede har sorteret dem.
Brancheemner vs markeds-emner
Råvarer lever under to præfikser i APITube, og opdelingen er værd at forstå, før du forespørger noget.
industry.commodities.* er forsyningssiden: produktion og transport af de fysiske ting. Minedrift, olieraffinering og distribution, petrokemiske anlæg, fragt. Nedlukninger og kapacitetsændringer dukker op her.
market_news.commodities.* er prissiden: selve det handlede marked. Råolie, basismetaller, LNG, gødning, kulstof. Benchmark-bevægelser og udbuds-/efterspørgselsbalancer lever her.
Tilbage til raffinaderiet. Brandet er industry.commodities.oil_refining_and_distribution. Råoliebevægelsen næste morgen er market_news.commodities.crude_oil. En trader bekymrer sig om den anden, en drifts- eller kreditanalytiker om den første, og alle, der ønsker årsag og virkning, abonnerer på begge.
| Du vil have… | Emnefamilie | Eksempel topic.id |
|---|---|---|
| Pris- og benchmarkbevægelser | market_news.commodities.* | market_news.commodities.crude_oil |
| Raffinaderi- og anlægsdrift | industry.commodities.* | industry.commodities.oil_refining_and_distribution |
| Forstyrrelser i mineforsyningen | industry.commodities.* | industry.commodities.mining |
| Gødningspriser | market_news.commodities.* | market_news.commodities.fertilizers |
Filtrering af råvarenyheder med API
Hver anmodning går til GET https://api.apitube.io/v1/news/everything med din nøgle i X-API-Key-headeren. Den eneste råvarespecifikke del er topic.id.
Seneste nyheder om råoliemarkedet
import requests
r = requests.get(
"https://api.apitube.io/v1/news/everything",
params={
"topic.id": "market_news.commodities.crude_oil",
"language.code": "en",
"sort.by": "published_at",
"sort.order": "desc",
"per_page": 20,
},
headers={"X-API-Key": APITUBE_KEY},
timeout=10,
)
r.raise_for_status()
for a in r.json().get("results", []):
print(a["published_at"], a["title"])
print(" source:", a["source"]["domain"], "→", a["href"])
Ét emne, ét sprog, nyeste først. Skift crude_oil til natural_gas, base_metals eller et hvilket som helst ID fra tabellen nederst, og feedet omdirigeres.
Filtrer efter sentiment for at fremhæve forstyrrelser
Nyheder om pludselige ændringer i udbuddet har ofte en negativ tone, mens den løbende dækning er neutral. Et filter for tekstens tone oven på emnefilteret hjælper dig derfor med at finde overskrifter, der kan påvirke prisen:
params = {
"topic.id": "market_news.commodities.natural_gas",
"language.code": "en",
"sentiment.overall.polarity": "negative",
"sort.by": "published_at",
"sort.order": "desc",
"per_page": 20,
}
Hver artikel bærer også sin sentiment.overall score i svaret, så hvis du foretrækker at beholde begge retninger, kan du trække det hele og anvende din egen afskæring i kode.
Overvåg flere råvarer på én gang
I praksis overvåger ingen en enkelt råvare. Sæt de emne-ID'er, du holder af, i en liste, bland branche og marked frit, loop over dem, og drop duplikerede URL'er, som du går:
import requests
WATCHLIST = [
"market_news.commodities.crude_oil",
"market_news.commodities.liquefied_natural_gas",
"market_news.commodities.base_metals",
"market_news.commodities.fertilizers",
"industry.commodities.upstream_oil_and_gas",
]
def fetch(topic_id):
r = requests.get(
"https://api.apitube.io/v1/news/everything",
params={"topic.id": topic_id, "language.code": "en",
"sort.by": "published_at", "sort.order": "desc", "per_page": 25},
headers={"X-API-Key": APITUBE_KEY}, timeout=10,
)
r.raise_for_status()
return r.json().get("results", [])
seen = set()
for topic in WATCHLIST:
label = topic.split(".")[-1]
for a in fetch(topic):
if a["href"] in seen:
continue
seen.add(a["href"])
s = a.get("sentiment", {}).get("overall", {})
print(f"[{label}] {a['published_at']} {a['title']}")
print(f" {s.get('polarity')} ({s.get('score')}) — {a['href']}")
Sæt det på en cron, send alt nyt til Slack eller et dashboard, og du har en råvare-nyhedstjeneste uden at betale for en terminal. seen-sættet tjener sit formål her: en enkelt wire-historie dukker op under et dusin syndikerede domæner, og uden deduplikering ville du advare om hver enkelt.
Arbejdede scenarier
Handelsbord
Et råolie- og produkter-desk trækker market_news.commodities.crude_oil, crude_oil_products, road_fuels og jet_fuel for prissiden, tilføjer derefter industry.commodities.oil_refining_and_distribution, så en raffinaderi-nedlukning dukker op, før den lander på skærmen som en prisændring. Polaritetsfilteret sorterer for dig: "OPEC+ holder kvoter" er rutine, "pipeline lukket efter eksplosion" er ikke.
Indkøb og forsyningskæderisiko
En producent, der er udsat for inputomkostninger, følger market_news.commodities.base_metals, steel og fertilizers på prissiden, plus industry.commodities.mining og freight på udbudssiden. De handler ikke på noget af det. De vil bare have et par dages varsel, før en prisændring dukker op på den næste indkøbsordre.
ESG og kulstof
Et bæredygtighedsteam sporer market_news.commodities.carbon_markets, hydrogen, battery_materials og sustainable_and_specialty_fertilizers for at følge energiomstillingen. Entitets- og kildebias-dataene, der er knyttet til hver artikel, hjælper dem med at vægte, hvem der siger hvad.
Reference: råvareemne-ID'er
Send en hvilken som helst af disse som topic.id-parameteren. Industrienemner dækker forsynings- og driftssiden; markedsnyhedsemner dækker pris- og markedssiden.
Branche nyhedsemner
| Emne-ID | Emne navn |
|---|---|
industry.commodities.biofuels_production | Nyheder om biobrændstofproduktion |
industry.commodities.freight | Fragtfartøjsindustri Nyheder |
industry.commodities.industrial_manufacturing | Industriel fremstillingsindustri Nyheder |
industry.commodities.metallurgy_news | Metallurgiindustriens nyheder |
industry.commodities.mining | Mineindustriens nyheder |
industry.commodities.natural_gas_and_power_distribution | Naturgas- og eldistributionsindustriens nyheder |
industry.commodities.oil_refining_and_distribution | Nyheder fra olie raffinering og distribution industrien |
industry.commodities.petrochemicals | Nyheder fra den petrokemiske industri |
industry.commodities.upstream_oil_and_gas | Upstream olie- og gasindustriens nyheder |
Nyhedsemner om råvaremarkedet
| Emne-ID | Emne navn |
|---|---|
market_news.commodities.ammonia | Ammoniak Marked Nyheder |
market_news.commodities.aromatics_market | Aromamarkedsnyheder |
market_news.commodities.base_metals | Basismetalmarkedsnyheder |
market_news.commodities.base_oils_and_waxes | Baseolier og voksmarkedsnyheder |
market_news.commodities.battery_materials | Batterimaterialemarkedsnyheder |
market_news.commodities.biofuels_and_feedstocks | Nyheder om markedet for biobrændstoffer og råvarer |
market_news.commodities.bitumen_and_asphalt | Nyheder om markedet for bitumen og asfalt |
market_news.commodities.carbon_markets | Nyheder om kulstofmarkeder |
market_news.commodities.chemicals | Nyheder om kemikalier |
market_news.commodities.chlor_alkali | Nyheder om kloralkalier |
market_news.commodities.coal | Nyheder om kulmarkeder |
market_news.commodities.crude_oil | Råolie-markedsnyheder |
market_news.commodities.crude_oil_products | Råolieprodukter markedsnyheder |
market_news.commodities.electric_power | Elmarked Nyheder |
market_news.commodities.fertilizers | Gødningsmarked Nyheder |
market_news.commodities.gas_and_power | Gas- og elmarked Nyheder |
market_news.commodities.heavy_olefins | Heavy Olefins Market News |
market_news.commodities.hydrogen | Brintmarked Nyheder |
market_news.commodities.jet_fuel | Jet Fuel Market News |
market_news.commodities.light_olefins | Light Olefins Market News |
market_news.commodities.liquefied_natural_gas | Liquefied Natural Gas Market News |
market_news.commodities.liquefied_petroleum_gas | Liquefied Petroleum Gas Market News |
market_news.commodities.marine_fuels | Marine Fuels Market News |
market_news.commodities.metals | Metaller markedsnyheder |
market_news.commodities.methanol | Methanol markedsnyheder |
market_news.commodities.natural_gas | Naturgas markedsnyheder |
market_news.commodities.nitrogen | Nitrogen Markedsnyheder |
market_news.commodities.npk_fertilizers | NPK gødningsmarkedsnyheder |
market_news.commodities.octane_blending | Octane Blending Markedsnyheder |
market_news.commodities.oleochemicals | Oleokemikalier Markedsnyheder |
market_news.commodities.phosphates | Nyheder fra fosfatmarkedet |
market_news.commodities.pipe_and_tube | Nyheder fra rør- og metalindustrien |
market_news.commodities.polymers | Nyheder fra polymerindustrien |
market_news.commodities.polyurethanes | Nyheder fra polyurethanindustrien |
market_news.commodities.potash | Nyheder fra potashmarkedet |
market_news.commodities.rare_earths | Nyheder om sjældne jordarter |
market_news.commodities.road_fuels | Nyheder om vejbrændstofmarkedet |
market_news.commodities.scrap | Scrap Marked Nyheder |
market_news.commodities.specialty_and_minor_metals | Nyheder om markedet for special- og mindre metaller |
market_news.commodities.steel | Nyheder om stålmarkedet |
market_news.commodities.steel_raw_materials | Nyheder om råmaterialer til stålmarkedet |
market_news.commodities.sulphur_and_sulphuric_acid | Svovl Og Svovlsyre Marked Nyheder |
market_news.commodities.sustainable_and_specialty_fertilizers | Bæredygtige Og Specialiserede Gødningsstoffer Marked Nyheder |
Ofte stillede spørgsmål
Hvad er en råvaremarkedsnyheds-API?
Et råvaremarkedsnyheds-API klassificerer hver artikel efter den råvare, den dækker, og lader dig anmode om den kategori direkte, så du kan bede om "råolie-nyheder" eller "gødningsnyheder" i stedet for at søge efter nøgleord i et generelt feed. I APITube er kategorierne emne-ID'er i to familier: industry.commodities.* for udbudssiden og market_news.commodities.* for priser. Du forespørger dem med GET /v1/news/everything?topic.id=....
Hvordan filtrerer jeg nyheder efter råvare?
Send en topic.id til everything-endepunktet, for eksempel topic.id=market_news.commodities.crude_oil for råoliepriser eller topic.id=industry.commodities.mining for mineoperationer. Tilføj language.code for at vælge et sprog og sort.by=published_at&sort.order=desc for nyeste først. For at følge flere råvarer, loop over en liste af emne-ID'er og dedupliker resultaterne efter artikel URL.
Hvad er forskellen mellem branche- og markedsnyheds-råvareemner?
industry.commodities.* dækker forsyningssiden: produktion og transport af en råvare (minedrift, raffinering, fragt, petrokemisk produktion). market_news.commodities.* dækker prissiden: det handlede marked for råolie, metaller, LNG, gødning osv. En raffinaderi-nedlukning er et industriemne; den råolieprisbevægelse, der følger, er et markedsnyhedsemne. Hvis du vil have både årsagen og effekten, abonner på begge.
Hvilke råvarer dækker API?
Energi (råolie og produkter, naturgas, LNG, LPG, kul, jet- og marinebrændstoffer, elektricitet), metaller (basismetaller, stål og stål-råmaterialer, sjældne jordarter, skrot, special- og mindre metaller), kemikalier (ammoniak, methanol, polymerer, klor-alkali, olefiner, aromater) og landbrug og gødning (kvælstof, fosfater, potaske, NPK og specialblandinger), plus kulstofmarkeder, brint og batterimaterialer. Den fulde liste over ID'er er i tabellen ovenfor.
Hvor friske er dataene?
APITube leverer nyheder i realtid over REST, så en poller med kort interval opfanger historier tæt på, hvornår kilderne udgiver dem. Gratis niveau tillader 100 anmodninger pr. dag, nok til en lille watchlist på et par minutters cron; betalte niveauer hæver grænsen for strammere polling eller længere lister.
Reference: APITube News API docs. Emne-ID'erne ovenfor sendes til topic.id parameteren af /v1/news/everything endpointet.




