Skip to content

Alt om WordPress, webutvikling — og mer til

💰 PHP API for å hente gjeldende Bitcoin-pris i 2026: fra et enkelt skript til en produksjonsløsning

💰 PHP API for å hente gjeldende Bitcoin-pris i 2026: fra et enkelt skript til en produksjonsløsning

Nettstedet aksepterer kryptovaluta, og kursen svinger med noen prosent i løpet av en halvtime. Kunden ønsker å se gjeldende Bitcoin-pris i fiat-valuta direkte i grensesnittet, ikke et skjermbilde fra en børs, men et levende tall fra API-et.

Å overvåke kursen manuelt via en CoinMarketCap-fane tar tid og gir forsinkede data. Ferdige krypto-plugins er ofte oppblåste: reklame, unødvendige forespørsler, låst til én enkelt kilde.

Nedenfor finner du to måter å hente gjeldende Bitcoin-pris via PHP: fra et enkelt skript på 10 linjer til en produksjonsklar løsning med mellomlagring og kildevalg. Ingen betalte abonnementer, ingen SDK på 40 megabyte.

💡 Rask oversikt:

  • Velge en API-kilde: Bitpay (gratis, ingen nøkkel påkrevd) eller CoinGecko (mer data, også gratis)
  • Skrive et PHP-skript med file_get_contents eller cURL, begge tilnærmingene er forklart
  • Legge til feilhåndtering og filbasert mellomlagring i 5 minutter for å unngå å treffe API-et ved hver sidevisning

Hva er et API for kryptokurser og hvorfor trenger en PHP-utvikler det

API-er fra kryptobørser og aggregatorer returnerer gjeldende kurs over HTTP: du gjør et GET-kall og mottar JSON med et "BTC/USD"-par og et tall. Ingen WebSocket eller abonnement er nødvendig: et vanlig PHP-skript på et billig webhotell håndterer det helt fint.

Typiske scenarioer der dette er nyttig:

  • Betalingsgateway. Vis brukeren: "Beløp å betale: 0,00031 BTC," med kursen hentet fra et API i stedet for å være oppdiktet.
  • Dashbord. Et adminpanel for en nettbutikk med en blokk for "Kryptovalutakurser".
  • Porteføljeoversikt. Du holder 5 mynter, og et skript oppdaterer totalverdien deres én gang i minuttet.

For denne artikkelen ble to kilder med gratis tilgang og uten registrering valgt: Bitpay og CoinGecko. Begge fungerer over HTTPS, returnerer JSON og krever ingen API-nøkkel på basisnivå.

Graf som viser antall Bitcoin-transaksjoner over en måned

Trinn 1: hente kursen via Bitpay API

Bitpay er en betalingsformidler for Bitcoin. De har et offentlig endepunkt /api/rates som returnerer BTC-kurser for over 150 fiat-valutaer i ett enkelt JSON-array. Ingen token, ingen forespørselsgrenser for grunnleggende bruk.

Enkel tilnærming: file_get_contents

Den korteste fungerende koden. Legg den til i en bitcoin-rates.php-fil i nettstedets rotmappe og åpne den i en nettleser:

1<?php
2$url = "https://bitpay.com/api/rates";
3$json = json_decode(file_get_contents($url), true);
4
5foreach ($json as $item) {
6 if ($item['code'] === 'USD') {
7 echo '1 BTC = $' . $item['rate'] . "\n";
8 }
9 if ($item['code'] === 'EUR') {
10 echo '1 BTC = €' . $item['rate'] . "\n";
11 }
12}

Skriptet ber om hele kursarrayet, går gjennom det i en løkke og skriver kun ut USD og EUR. file_get_contents() med en HTTPS-URL fungerer hvis direktivet allow_url_fopen = On er aktivert i php.ini; hos de fleste webhoteller er dette aktivt som standard.

Mer pålitelig tilnærming: cURL

file_get_contents setter ingen tidsavbrudd og feiler lydløst ved nettverksfeil. For et ekte nettsted er cURL det bedre valget:

1<?php
2$ch = curl_init();
3curl_setopt_array($ch, [
4 CURLOPT_URL => 'https://bitpay.com/api/rates',
5 CURLOPT_RETURNTRANSFER => true,
6 CURLOPT_TIMEOUT => 10,
7 CURLOPT_SSL_VERIFYPEER => true,
8]);
9$response = curl_exec($ch);
10$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
11curl_close($ch);
12
13if ($httpCode !== 200 || !$response) {
14 echo 'API temporarily unavailable.';
15 exit;
16}
17
18$data = json_decode($response, true);
19
20foreach ($data as $item) {
21 if ($item['code'] === 'USD') {
22 echo '1 BTC = $' . number_format($item['rate'], 2) . "\n";
23 }
24}

Et tidsavbrudd på 10 sekunder, HTTP-statuskodesjekk og number_format for lesbar utskrift. I praksis er et slikt skript nok til å bygge inn kursen i en bunntekst eller sidestolpe.

Trinn 2: alternativ kilde, CoinGecko API

Bitpay tilbyr kun kurser for BTC og BCH. Hvis du også trenger Ethereum, Solana eller en hvilken som helst annen ressurs fra topp 500, kan du koble deg til CoinGecko API. Gratisversjonen tillater 10-30 forespørsler per minutt uten nøkkel.

Enkel forespørsel for Bitcoin- og Ethereum-priser

Endepunktet /api/v3/simple/price aksepterer en kommadelt liste over mynter og valutaer via parameteren vs_currencies:

1<?php
2$url = 'https://api.coingecko.com/api/v3/simple/price'
3 . '?ids=bitcoin,ethereum'
4 . '&vs_currencies=usd,eur,rub';
5
6$ch = curl_init();
7curl_setopt_array($ch, [
8 CURLOPT_URL => $url,
9 CURLOPT_RETURNTRANSFER => true,
10 CURLOPT_TIMEOUT => 10,
11]);
12$response = curl_exec($ch);
13curl_close($ch);
14
15$prices = json_decode($response, true);
16
17echo 'BTC: $' . $prices['bitcoin']['usd'] . ' / €' . $prices['bitcoin']['eur'] . "\n";
18echo 'ETH: $' . $prices['ethereum']['usd'] . ' / ₽' . $prices['ethereum']['rub'] . "\n";

Responsen er kompakt og inneholder kun myntene og valutaene du ba om. Ingen løkke gjennom 150 oppføringer.

Hva annet CoinGecko kan gjøre

  • Historiske data: /api/v3/coins/bitcoin/history?date=01-01-2026, kursen på en bestemt dato.
  • Markedsdata: /api/v3/coins/bitcoin, markedsverdi, volum, 24-timers endring, sirkulerende beholdning.
  • Trendende mynter: /api/v3/search/trending, topp søk de siste 24 timene.

For en enkel "BTC/USD"-kurs er det første eksempelet tilstrekkelig. Hvis du bygger et dashbord, kan du koble deg til det utvidede endepunktet.

Trinn 3: mellomlagring og beskyttelse mot API-feil

Å treffe et eksternt API ved hver sidevisning er dårlig praksis. Nettverket kan hakke, CoinGecko-serveren kan være nede i et minutt, og den besøkende ser en feilmelding i stedet for kursen.

En robust løsning er filbasert mellomlagring. Skriptet lagrer API-responsen i en lokal JSON-fil og oppdaterer den én gang hvert 5. minutt. Alle mellomliggende forespørsler leses fra mellomlageret, umiddelbart og uten eksterne kall.

1<?php
2$cacheFile = __DIR__ . '/btc-cache.json';
3$cacheTime = 300; // 5 minutes
4
5// If cache is fresh — read it
6if (file_exists($cacheFile) && (time() - filemtime($cacheFile)) < $cacheTime) {
7 $data = json_decode(file_get_contents($cacheFile), true);
8 echo '1 BTC = $' . number_format($data['bitcoin']['usd'], 2);
9 echo ' (cached, updated ' . date('H:i:s', filemtime($cacheFile)) . ')';
10 exit;
11}
12
13// Cache is stale or missing — request API
14$ch = curl_init();
15curl_setopt_array($ch, [
16 CURLOPT_URL => 'https://api.coingecko.com/api/v3/simple/price?ids=bitcoin&vs_currencies=usd',
17 CURLOPT_RETURNTRANSFER => true,
18 CURLOPT_TIMEOUT => 10,
19]);
20$response = curl_exec($ch);
21$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
22curl_close($ch);
23
24if ($httpCode !== 200 || !$response) {
25 // API is down — serve stale cache if available
26 if (file_exists($cacheFile)) {
27 $data = json_decode(file_get_contents($cacheFile), true);
28 echo '1 BTC = $' . number_format($data['bitcoin']['usd'], 2);
29 echo ' (stale cache — API did not respond)';
30 exit;
31 }
32 echo 'No data available. Please try again later.';
33 exit;
34}
35
36// Save fresh response and output
37file_put_contents($cacheFile, $response);
38$data = json_decode($response, true);
39echo '1 BTC = $' . number_format($data['bitcoin']['usd'], 2);
40echo ' (fresh data)';

Merk at skriptet sjekker mellomlageret først og kun kaller API-et når det er nødvendig. Hvis API-et ikke svarer, serveres den sist lagrede kursen med en "utdatert mellomlager"-etikett. Den besøkende ser et tall, ikke en blank side med en feil.

Før du distribuerer til et produksjonsnettsted, sørg for at PHP har skrivetillatelser til skriptets mappe. Ta også en full sikkerhetskopi, siden skriptet skriver en fil til disk.

Videoen over gir en visuell gjennomgang av CoinGecko API med sanntidseksempler på forespørsel og respons. Den passer hvis du jobber med et krypto-API for første gang og ønsker å se hele syklusen: fra GET-forespørsel til JSON-tolking.

⁉️🤔 Ofte stilte spørsmål

Hvilket API bør jeg velge, Bitpay eller CoinGecko?

Hvis du bare trenger kursen for Bitcoin til dollar, velg Bitpay. Det er enklere, returnerer en respons som et enkelt array uten parametere og har ingen grenser. Hvis du planlegger å jobbe med et dusin mynter eller vise diagrammer, velg CoinGecko: mer data, fleksible endepunkter og en gratisløsning som dekker behovene til et lite prosjekt.

Krever Bitpay API en API-nøkkel?

Det offentlige endepunktet /api/rates krever ingen nøkkel. Det er et åpent endepunkt som brukes av lommebøker og børser for å vise kurser. Kommersielle Bitpay-endepunkter (opprette fakturaer, motta betalinger) krever en token, men de er ikke nødvendige for bare å hente kurser.

Hvorfor ikke CoinMarketCap API?

CoinMarketCaps gratisløsning krever registrering og en nøkkel. Grensen er 10 000 forespørsler per måned, noe som er nok for et lite prosjekt. For en "start fra bunnen av uten registrering"-tilnærming er Bitpay og CoinGecko imidlertid mer praktiske: kopier URL-en, lim den inn i koden din, så fungerer det.

Hva om mitt webhotell blokkerer file_get_contents for eksterne URL-er?

Bytt til cURL, som er tilgjengelig på praktisk talt alle webhoteller. Hvis cURL også er deaktivert (sjeldent i 2026), spør verten din om å aktivere curl.so i PHP-utvidelsene. Et alternativ er å bruke wp_remote_get() i WordPress; denne funksjonen fungerer gjennom kjernens HTTP API og velger automatisk en tilgjengelig transportmetode.

Hvor ofte oppdateres kursene i API-et?

Bitpay oppdaterer kursen ved hver forespørsel; tallene gjenspeiler gjeldende markedsspread. CoinGecko oppdaterer data én gang hvert 30. til 60. sekund for det enkle prisendepunktet. For visning på et nettsted er en oppdateringsfrekvens på "én gang hvert 5. minutt" mer enn tilstrekkelig; kryptomarkedet er volatilt, men ikke så mye at svingninger fra sekund til sekund betyr noe for en informasjonsblokk.

Hvilket API du bør velge for oppgaven din

Bitpay og CoinGecko dekker ulike behov uten å konkurrere direkte:

  • Hvis du bygger et betalingsskjema med "BTC → USD"-konvertering, bruk Bitpay: én enkelt URL-linje, minimalt med kode, alltid ferske kurser.
  • Hvis du bygger et dashbord med diagrammer og en portefølje på 10 mynter, bruk CoinGecko: batch-prisforespørsler, historiske data, markedsverdi og volum i ett enkelt kall.
  • Hvis du trenger raskest mulig start uten eksterne avhengigheter, bruk Bitpay uten cURL via file_get_contents: 10 linjer kode, så er kursen på siden din.

Start enkelt: kopier det første eksempelet fra denne artikkelen, bytt ut valutaen med din egen og åpne det i en nettleser. Hvis det fungerer, pakk det inn i mellomlagring ved hjelp av malen fra trinn 3 og distribuer til produksjonsnettstedet ditt. Fortell oss i kommentarfeltet hvilket API du endte opp med å velge.