Pentru dezvoltatori · Date de piață

Crypto Bubbles API: de unde curg datele cu adevărat și cum îți construiești propriul board

Răspunsul scurt la cea mai frecventă întrebare: aplicația oficială nu promovează un API public. Răspunsul lung e mai interesant — pentru că întregul lanț de date pe care se sprijină aplicațiile cu bule este accesibil public și poți construi din el propriul tablou într-o singură seară. Îți arătăm cum: de la alegerea sursei, prin REST versus WebSocket, până la codul care desenează bulele.

Schema fluxului de date: exchange-uri de criptomonede, agregatoare, API și interfața cu bule

Onest din prima clipă

Crypto Bubbles are un API public?

Să începem cu motivul pentru care ajung aici majoritatea oamenilor. Site-ul oficial cryptobubbles.net nu promovează un API public, documentat, pentru dezvoltatori. Nu există acolo un portal de dezvoltatori, un tarif per cerere sau o documentație de endpoint-uri. Crypto Bubbles e un produs de consum — o vizualizare pentru peste o mie de monede, reîmprospătată automat, disponibilă în browser și în aplicații mobile (așa îl prezintă propriul site) — nu un depozit angro de date.

O scriem răspicat, pentru că pe internet circulă destule ghiduri care sugerează contrariul sau — mai rău — se dau drept „API-ul oficial Crypto Bubbles” cu chei de vânzare. Tratează asemenea oferte ca pe fișierele APK false de pe forumuri: cineva încearcă să-ți vândă ceva ce producătorul nu oferă. Regula din ghidul nostru de descărcare a aplicației e valabilă și aici — sursa adevărului despre produsul oficial este exclusiv cryptobubbles.net.

Și acum vestea bună: ca să-ți construiești propriul tablou cu bule, nu ai nevoie deloc de API-ul unei aplicații anume. Bulele sunt doar un mod de a desena date pe care piața le publică oricum. Ai nevoie de patru cifre per monedă și de patruzeci de linii de cod. Restul acestei pagini e dedicat exact acestui lucru.

Cum obțin datele aplicațiile cu bule: un lanț în trei verigi

Orice vizualizare a pieței — de la bule la heatmap-urile despre care scriem în ghidul despre harta pieței — stă pe același lanț de aprovizionare:

  • Veriga 1: exchange-urile. Sursa primară a oricărui preț e registrul de ordine al unui exchange anume. Aici se încheie tranzacțiile, iar prețul „bitcoinului” e în realitate zeci de prețuri de pe zeci de piețe, care diferă cu fracțiuni de procent.
  • Veriga 2: agregatoarele. Serviciile de date adună cotațiile din sute de exchange-uri, le mediază (de obicei ponderat cu volumul), adaugă oferta în circulație și expun metrici gata calculate: capitalizarea, clasamentul, variațiile procentuale în intervale de timp standard.
  • Veriga 3: aplicațiile. Vizualizările precum tabloul cu bule descarcă de la agregatoare JSON normalizat și transformă cifrele în geometrie și culoare. Toată „magia” se întâmplă în browserul utilizatorului.

Această împărțire are o consecință practică pentru proiectul tău: te poți conecta la oricare verigă. Agregatorul îți dă comoditate — un singur endpoint, mii de monede, capitalizări gata calculate. Exchange-ul îți dă prospețime — date direct din registru, fără intermediar și fără întârzierile medierii, dar numai pentru perechile listate pe acea piață. Proiectele mature combină adesea ambele surse: agregatorul pentru clasament și capitalizare, exchange-ul pentru prețuri în timp real.

Arhitectură

REST sau WebSocket: două moduri de a bea de la același robinet

Orice API de piață serios servește datele în două feluri, iar alegerea dintre ele e prima decizie de arhitectură a proiectului tău.

REST funcționează ca întrebare și răspuns: trimiți o cerere HTTP, primești JSON, gata conversația. Avantaje: simplitate, depanare ușoară (răspunsul îl vezi în browser), caching pe gratis. Dezavantaje: fiecare actualizare e o cerere nouă, iar limitele de cereri (rate limits) din planurile gratuite sunt uneori strâmte — tipic de la câteva la câteva zeci de cereri pe minut. Pentru un tablou cu bule reîmprospătat la 30–60 de secunde, e mai mult decât suficient; apropo, și aplicația oficială Crypto Bubbles își reîmprospătează datele la câteva zeci de secunde, după cum arată site-ul ei.

WebSocket e o linie deschisă: stabilești o singură conexiune, iar serverul îți împinge singur fiecare schimbare — un nou tick de preț, o nouă tranzacție, o actualizare a registrului. Avantaje: latențe de ordinul milisecundelor în loc de secunde și nicio risipă de limite pe întrebarea „s-a schimbat ceva?”. Dezavantaje: trebuie să gestionezi întreruperile de conexiune, reabonarea, punerea în coadă a mesajelor — codul devine mai serios. WebSocket e indispensabil în tradingul algoritmic și la tickerele live; pentru vizualizarea „stării pieței” e uneori un tun tras într-o vrabie.

Regulă practică: începe cu REST. Treci pe WebSocket abia când poți spune concret ce ți-ar strica o întârziere de 30 de secunde. Dacă nu poți — nu strică nimic.

Patru câmpuri din care se desenează bulele

Să dezasamblăm tabloul în date. Ca să desenezi o vedere cu bule rezonabilă, pentru fiecare monedă ai nevoie de exact patru câmpuri:

  • Simbolul (BTC, ETH…) — eticheta bulei.
  • Capitalizarea de piață — controlează mărimea. Ea, nu prețul unitar, redă scara proiectului; de ce e o diferență fundamentală, explicăm în textul despre calculatorul CoinCompare.
  • Variația procentuală în intervalul ales (oră, zi, săptămână…) — controlează culoarea și saturația ei.
  • Volumul pe 24h — nu desenează nimic direct, dar permite filtrarea monedelor „moarte”, al căror preț se mișcă din trei tranzacții pe zi.

Tot ce e peste acest set — clasamentul, oferta, ATH, linkurile — sunt adaosuri pentru fișa monedei, nu pentru tabloul propriu-zis. Observă că vorbim de câteva sute de bytes per monedă: o mie de monede înseamnă un singur răspuns JSON de mărimea unei fotografii mici. De aceea tablourile cu bule merg fluid chiar și pe telefoane slabe.

Atelier

Mini-tutorial: propriul tablou cu bule într-o singură seară

Mai jos, un schelet în JavaScript — pseudocod simplificat intenționat, de completat cu adresa API-ului ales. Logica are trei etape: descarcă tickerele, transformă capitalizarea în rază și variația procentuală în culoare, desenează.

// 1. Descarcă datele (REST, reîmprospătare la 60 s)
async function fetchCoins() {
  const res = await fetch(API_URL + '/tickers?limit=100'); // cheia API în header, niciodată în cod
  const coins = await res.json();
  return coins.filter(c => c.volume24h > 1_000_000); // taie monedele moarte
}

// 2. Scalare: raza ~ rădăcina pătrată a capitalizării
//    (ochiul compară SUPRAFEȚELE cercurilor, nu razele!)
function radius(cap, maxCap) {
  const R_MAX = 90, R_MIN = 6;
  return Math.max(R_MIN, R_MAX * Math.sqrt(cap / maxCap));
}

// 3. Culoare: verde pentru creștere, roșu pentru scădere,
//    saturația crește cu valoarea absolută a variației
function color(changePct) {
  const sat = Math.min(Math.abs(changePct) / 15, 1); // saturație maximă de la ±15%
  return changePct >= 0
    ? `rgba(34, 197, 94, ${0.35 + 0.65 * sat})`
    : `rgba(239, 68, 68, ${0.35 + 0.65 * sat})`;
}

// 4. Desenare: canvas + o simulare simplă de respingere
setInterval(async () => {
  const coins = await fetchCoins();
  const maxCap = Math.max(...coins.map(c => c.marketCap));
  draw(coins.map(c => ({
    label: c.symbol,
    r: radius(c.marketCap, maxCap),
    fill: color(c.change24h)
  })));
}, 60_000);

Două indicații dincolo de schelet. Prima, fizica așezării: ca bulele să nu se suprapună, folosește o simulare de forțe gata făcută — în biblioteca d3 e modulul d3-force cu coliziuni (forceCollide), pe canvas pur ajunge o buclă care respinge cercurile care se intersectează. A doua, rădăcina pătrată din funcția razei nu e un moft: suprafața cercului crește cu pătratul razei, deci scalarea liniară a razei ar face ca o monedă de 100 de ori mai mare să ocupe de 10 000 de ori mai mult ecran. Jumătate dintre tablourile „de amatori” de pe internet fac exact această greșeală și mint vizual despre proporțiile pieței — iar proporțiile sunt tot miezul acestei vizualizări, despre care scriem pe larg în ghidul despre ce este Crypto Bubbles.

Cum alegi un API de date: șase criterii

CriteriuCe să întrebiLa ce să fii atent
Acoperirea piețeiCâte monede și exchange-uri cuprinde? Calculează capitalizări?„10 000 de monede” include uneori tokeni morți, fără volum
WebSocketExistă flux live și la ce se referă (tick-uri, tranzacții, registru)?Unele planuri oferă WS doar de la pragul plătit în sus
Limite de cereriCâte cereri pe minut/lună în planul tău?Limitele calculate per endpoint pot surprinde la mijlocul lunii
PrețCostul planului la traficul tău real, nu la cel de aziSalturile de preț între praguri sunt uneori de câteva ori
Date istoriceCât de departe în urmă merg lumânările și cu ce rezoluție?Planurile gratuite dau adesea doar zile, nu ani
Stabilitate și SLAPagină de status, istoricul avariilor, garanții de disponibilitateLipsa unei pagini publice de status e un răspuns în sine

O observație separată despre API-urile de exchange ca sursă de sine stătătoare: dacă proiectul tău ține de trading — backtesting, bot, monitorizarea propriilor ordine — API-ul exchange-ului nu e atât o alternativă, cât o necesitate, pentru că doar el îți dă registrul de ordine, istoricul tranzacțiilor și posibilitatea de a plasa ordine. Documentațiile exchange-urilor mature oferă REST și WebSocket, sandbox-uri de testare și biblioteci client în limbajele populare. E și cea mai scurtă cale de a confrunta teoria de pe această pagină cu un flux de date adevărat.

Informațiile despre funcțiile aplicației oficiale Crypto Bubbles (gama de monede, platformele, frecvența reîmprospătării) sunt preluate de pe cryptobubbles.net (situația: iulie 2026).

Securitate

Cheile API: curs scurt despre cum să nu-ți dai foc la cont

Secțiune scrisă din poziția auditorului care a văzut prea multe repository-uri cu chei în istoricul commit-urilor. O cheie API pentru date publice e un fleac — cel mult îți mănâncă cineva limita de cereri. O cheie API pentru contul de exchange e cu totul altă categorie: pe mâini rele poate goli contul. Regulile:

  • Nu comite niciodată cheile. Ține-le în variabile de mediu sau într-un manager de secrete; fișierul .env intră din prima zi în .gitignore. O cheie care a ajuns o dată în istoricul repository-ului consider-o arsă și generează una nouă — ștergerea fișierului n-o șterge din istoric.
  • Permisiuni minime. Pentru citirea datelor ajunge o cheie read-only. Dreptul de tranzacționare activează-l doar pentru boții care chiar tranzacționează, iar dreptul de retragere — cel mai bine niciodată. Niciun bot analitic nu are nevoie de posibilitatea de a retrage fonduri.
  • Lista de IP-uri permise. API-urile mature permit limitarea cheii la adrese concrete. Scurgerea unei chei legate de IP-ul serverului tău e inutilă pentru hoț.
  • Rotație și igienă. O cheie separată pentru fiecare proiect, revizuirea și ștergerea celor nefolosite o dată pe trimestru, rotație imediată după orice suspiciune de scurgere. Sună birocratic, ia zece minute, salvează conturi.

Avertisment: boții și „instrumentele de semnale” care cer o cheie cu drept de retragere sunt un vector standard de furt. Un instrument analitic legitim nu are niciodată nevoie de asemenea permisiuni — cererea lor încheie discuția.

Rezumatul cel mai scurt al acestei pagini

  • Aplicația oficială Crypto Bubbles nu promovează un API public — ofertele de „chei oficiale” ocolește-le de departe.
  • Datele curg pe lanțul exchange-uri → agregatoare → aplicații; propriul proiect îl poți conecta la oricare verigă.
  • REST ajunge pentru un tablou reîmprospătat la un minut; WebSocket ia-l abia când latența chiar doare.
  • Ca să desenezi bulele îți ajung simbolul, capitalizarea, variația procentuală și volumul — plus raza scalată cu rădăcina pătrată.
  • Cheile API: în afara repository-ului, cu permisiuni minime, legate de IP, rotite.

FAQ

Cele mai frecvente întrebări despre Crypto Bubbles API și datele de piață

Crypto Bubbles pune la dispoziție un API public?

Site-ul oficial cryptobubbles.net nu promovează un API public, documentat, pentru dezvoltatori — aplicația este un produs de consum, nu un furnizor de date. Dacă vrei să-ți construiești propria vizualizare, apelează la API-urile agregatoarelor de date de piață sau direct la API-urile exchange-urilor.

REST sau WebSocket — ce folosești pentru datele de piață?

REST pentru datele pe care le reîmprospătezi la câteva zeci de secunde (capitalizări, clasamente, variații procentuale) — e mai simplu și mai ușor de depanat. WebSocket pentru fluxul de tranzacții și tick-uri de preț în timp real, când contează fiecare secundă. Un tablou cu bule funcționează liniștit pe REST.

Ce câmpuri de date îți trebuie ca să desenezi bulele?

Minimul e de patru câmpuri per monedă: simbolul, capitalizarea de piață, variația procentuală în intervalul de timp ales și volumul. Capitalizarea controlează raza bulei, variația procentuală culoarea, iar volumul e util pentru filtrarea monedelor moarte.

De ce raza bulei se scalează cu rădăcina pătrată a capitalizării?

Pentru că ochiul compară suprafețele cercurilor, nu razele. Suprafața crește cu pătratul razei, deci pentru ca o monedă de zece ori mai mare să ocupe de zece ori mai multă suprafață, raza trebuie să crească precum rădăcina pătrată a capitalizării. Scalarea liniară a razei ar umfla vizual monedele mari de sute de ori.

Un API de piață gratuit e suficient pentru propriul proiect?

Pentru învățare și un dashboard de hobby — de regulă da: planurile gratuite ale agregatoarelor oferă de la câteva la câteva zeci de cereri pe minut, iar un tablou reîmprospătat la 30–60 de secunde se încadrează în aceste limite. Pentru un produs comercial ai nevoie de un plan plătit, cu SLA, limite mai mari și date istorice.

Cum păstrezi cheile API în siguranță?

Niciodată în cod sau în repository — doar în variabile de mediu sau într-un manager de secrete. Dă cheilor permisiuni minime (doar citire, fără drept de retragere), activează lista de adrese IP permise și rotește-le după orice suspiciune de scurgere. O cheie cu drept de tranzacționare trateaz-o ca pe parola contului bancar.

De la citit documentația la prima cerere

API-urile de piață le înveți cel mai repede trimițând cereri adevărate. Documentația unui API de exchange, cu REST, WebSocket și chei cu permisiuni limitate, e un poligon de start bun.