
💰 PHP API för att få aktuellt bitcoinpris 2026: från ett enkelt skript till en produktionslösning
Webbplatsen accepterar kryptovaluta, och växelkursen svänger med några procent inom en halvtimme. Kunden vill se det aktuella Bitcoinpriset i fiatvaluta direkt i gränssnittet, inte en skärmdump från en börs, utan en levande siffra från API:et.
Att manuellt övervaka kursen via en CoinMarketCap-flik tar tid och ger fördröjd data. Samtidigt är färdiga kryptoplugins ofta uppblåsta: annonser, onödiga anrop, låsta till en enda källa.
Här nedan finns två sätt att hämta det aktuella Bitcoinpriset via PHP: från ett enkelt skript på 10 rader till en produktionsredo lösning med cachning och källval. Inga betalplaner, inget SDK på 40 megabyte.
💡 Snabb översikt:
- Välja en API-källa: Bitpay (gratis, ingen nyckel krävs) eller CoinGecko (mer data, också gratis)
- Skriva ett PHP-skript med file_get_contents eller cURL, båda tillvägagångssätten förklaras
- Lägga till felhantering och filcachning i 5 minuter för att undvika att anropa API:et vid varje sidladdning
Vad är ett API för kryptopriser och varför behöver en PHP-utvecklare det
API:er för kryptobörser och aggregatorer returnerar den aktuella kursen över HTTP: du gör en GET-förfrågan och får JSON med ett "BTC/USD"-par och en siffra. Ingen WebSocket eller prenumeration behövs: ett vanligt PHP-skript på billigt webbhotell hanterar det utan problem.
Typiska scenarier där detta är användbart:
- Betalningsgateway. Visa användaren: "Belopp att betala: 0.00031 BTC," med kursen hämtad från ett API istället för påhittad.
- Dashboard. En adminpanel för en webbutik med ett block för "Kryptovalutakurser".
- Portföljtracker. Du äger 5 mynt, och ett skript uppdaterar deras totala värde en gång i minuten.
För den här artikeln valdes två källor med fri åtkomst och utan registrering: Bitpay och CoinGecko. Båda fungerar över HTTPS, returnerar JSON och kräver ingen API-nyckel på grundnivån.

Steg 1: hämta kursen via Bitpay API
Bitpay är en betalningsprocessor för Bitcoin. Den har en publik endpoint /api/rates som returnerar BTC-kurser för 150+ fiatvalutor i en enda JSON-array. Ingen token, inga begränsningar för antal anrop vid grundläggande användning.
Enkel metod: file_get_contents
Den kortaste fungerande koden. Lägg till den i en fil som heter bitcoin-rates.php i din webbplatsrot och öppna den i en webbläsare:
1 <?php 2 $url = "https://bitpay.com/api/rates"; 3 $json = json_decode(file_get_contents($url), true); 4 5 foreach ($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 begär hela kursarrayen, loopar igenom den och matar endast ut USD och EUR. file_get_contents() med en HTTPS-URL fungerar om direktivet allow_url_fopen = On är aktiverat i php.ini; hos de flesta webbhotell är det aktivt som standard.
Mer tillförlitlig metod: cURL
file_get_contents sätter inga timeout-värden och misslyckas tyst vid nätverksfel. För en riktig webbplats är cURL det bättre valet:
1 <?php 2 $ch = curl_init(); 3 curl_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); 11 curl_close($ch); 12 13 if ($httpCode !== 200 || !$response) { 14 echo 'API temporarily unavailable.'; 15 exit; 16 } 17 18 $data = json_decode($response, true); 19 20 foreach ($data as $item) { 21 if ($item['code'] === 'USD') { 22 echo '1 BTC = $' . number_format($item['rate'], 2) . "\n"; 23 } 24 }
En timeout på 10 sekunder, HTTP-statuskods-kontroll och number_format för läsbar utdata. I praktiken räcker ett skript som detta för att bädda in kursen i en sidfot eller sidopanel.
Steg 2: alternativ källa, CoinGecko API
Bitpay tillhandahåller endast kurser för BTC och BCH. Om du också behöver Ethereum, Solana eller någon annan tillgång från topp 500, anslut till CoinGecko API. Gratisnivån tillåter 10-30 anrop per minut utan nyckel.
Enkel förfrågan för Bitcoin- och Ethereumpriser
Endpointen /api/v3/simple/price accepterar en kommaseparerad lista med mynt och valutor via parametern 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(); 7 curl_setopt_array($ch, [ 8 CURLOPT_URL => $url, 9 CURLOPT_RETURNTRANSFER => true, 10 CURLOPT_TIMEOUT => 10, 11 ]); 12 $response = curl_exec($ch); 13 curl_close($ch); 14 15 $prices = json_decode($response, true); 16 17 echo 'BTC: $' . $prices['bitcoin']['usd'] . ' / €' . $prices['bitcoin']['eur'] . "\n"; 18 echo 'ETH: $' . $prices['ethereum']['usd'] . ' / ₽' . $prices['ethereum']['rub'] . "\n";
Svaret är kompakt och innehåller endast de mynt och valutor du efterfrågade. Ingen loop genom 150 poster.
Vad CoinGecko mer kan göra
- Historisk data:
/api/v3/coins/bitcoin/history?date=01-01-2026, kursen ett specifikt datum. - Marknadsdata:
/api/v3/coins/bitcoin, börsvärde, volym, 24-timmars förändring, cirkulerande utbud. - Trendande mynt:
/api/v3/search/trending, toppsökningar under det senaste dygnet.
För en enkel "BTC/USD"-kurs räcker det första exemplet. Om du bygger en dashboard, anslut till den utökade endpointen.
Steg 3: cachning och skydd mot API-fel
Att anropa ett externt API vid varje sidladdning är dålig praxis. Nätverket kan hacka, CoinGeckos server kan ligga nere en minut, och besökaren ser ett fel istället för kursen.
En robust lösning är filcachning. Skriptet sparar API-svaret i en lokal JSON-fil och uppdaterar den en gång var 5:e minut. Alla mellanliggande anrop läser från cachen, omedelbart och utan externa anrop.
1 <?php 2 $cacheFile = __DIR__ . '/btc-cache.json'; 3 $cacheTime = 300; // 5 minutes 4 5 // If cache is fresh — read it 6 if (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(); 15 curl_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); 22 curl_close($ch); 23 24 if ($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 37 file_put_contents($cacheFile, $response); 38 $data = json_decode($response, true); 39 echo '1 BTC = $' . number_format($data['bitcoin']['usd'], 2); 40 echo ' (fresh data)';
Observera att skriptet kontrollerar cachen först och endast anropar API:et när det behövs. Om API:et inte svarar, serveras den senast sparade kursen med en etikett om "föråldrad cache". Besökaren ser en siffra, inte en tom sida med ett fel.
Innan du driftsätter på en produktionssajt, se till att PHP har skrivrättigheter till skriptets katalog. Gör också en fullständig säkerhetskopia, eftersom skriptet skriver en fil till disken.
Videon ovan ger en visuell genomgång av CoinGecko API med exempel på förfrågningar och svar i realtid. Den passar om du arbetar med ett krypto-API för första gången och vill se hela cykeln: från GET-förfrågan till JSON-tolkning.
⁉️🤔 Vanliga frågor
Vilket API ska jag välja, Bitpay eller CoinGecko?
Om du bara behöver Bitcoin till dollar-kursen, välj Bitpay. Det är enklare, returnerar ett svar som en enda array utan parametrar och har inga begränsningar. Om du planerar att arbeta med ett dussin mynt eller visa diagram, välj CoinGecko: mer data, flexibla endpoints och en gratisnivå som täcker behoven för ett litet projekt.
Kräver Bitpay API en API-nyckel?
Den publika endpointen
/api/rateskräver ingen nyckel. Det är en öppen endpoint som används av plånböcker och börser för att visa kurser. Kommersiella Bitpay-endpoints (skapa fakturor, ta emot betalningar) kräver en token, men de behövs inte för att bara hämta kurser.
Varför inte CoinMarketCap API?
CoinMarketCaps gratisnivå kräver registrering och en nyckel. Gränsen är 10 000 anrop per månad, vilket räcker för ett litet projekt. Men för ett "börja från noll utan registrering"-upplägg är Bitpay och CoinGecko smidigare: kopiera URL:en, klistra in den i din kod, och det fungerar.
Vad händer om mitt webbhotell blockerar file_get_contents för externa URL:er?
Byt till cURL, som finns tillgängligt på praktiskt taget alla webbhotell. Om cURL också är inaktiverat (sällsynt 2026), fråga ditt webbhotell om att aktivera
curl.soi PHP-tilläggen. Ett alternativ är att användawp_remote_get()inuti WordPress; den funktionen fungerar genom core HTTP API och väljer automatiskt en tillgänglig transport.
Hur ofta uppdateras kurserna i API:et?
Bitpay uppdaterar kursen vid varje anrop; siffrorna speglar den aktuella marknadsspreaden. CoinGecko uppdaterar data en gång var 30-60 sekund för simple price-endpointen. För visning på en webbplats är en uppdateringsfrekvens på "en gång var 5:e minut" mer än tillräckligt; kryptomarknaden är volatil, men inte så mycket att svängningar från sekund till sekund spelar roll för ett informationsblock.
Vilket API ska du välja för din uppgift
Bitpay och CoinGecko adresserar olika behov utan att direkt konkurrera:
- Om du bygger ett betalningsformulär med "BTC → USD"-konvertering, använd Bitpay: en enda URL-rad, minimal kod, alltid färska kurser.
- Om du bygger en dashboard med diagram och en portfölj med 10 mynt, använd CoinGecko: batch-prisförfrågningar, historisk data, börsvärde och volym i ett enda anrop.
- Om du behöver snabbast möjliga start utan externa beroenden, använd Bitpay utan cURL via
file_get_contents: 10 rader kod och kursen finns på din sida.
Börja enkelt: kopiera det första exemplet från den här artikeln, ersätt valutan med din egen och öppna det i en webbläsare. Om det fungerar, slå in det i cachning med mallen från steg 3 och driftsätt på din produktionssajt. Låt oss veta i kommentarerna vilket API du slutligen valde.



