Developer-Guide · Bitfinex v2 REST API

Die Bitfinex API, erklärt für Kreditgeber

Die API-Dokumentation von Bitfinex umfasst Hunderte Endpoints; ein Lending-Bot braucht etwa ein Dutzend. Genau die behandelt dieser Guide: einen API-Key ohne Withdraw-Rechte anlegen, Funding-Raten und Bücher über die öffentliche API lesen, Funding-Angebote über die authentifizierte API platzieren und stornieren — plus die Rate-Limits und Daten-Eigenheiten, auf die Sie in der Praxis stoßen. Mit lauffähigen Python-Beispielen.

Endpoint-Pfade und Verhalten verifiziert gegen die offizielle Bitfinex v2 API, wie sie Stratum in Produktion einsetzt, August 2026. Maßgebliche Referenz bleiben die offiziellen Bitfinex-Docs.

Öffentliche Endpoints testen

Live-Explorer für die Bitfinex Funding API

Endpoint und Währung wählen und eine echte Anfrage ohne Authentifizierung ausführen. Der Stratum-Endpoint normalisiert FRR, Durchschnitte, verfügbares Funding und feste Book-Level.

https://app.stratum.money/api/v1/public/funding-rates.json
Antwortvorschau
{
  "generatedAt": "2026-08-23T06:48:15.408007891Z",
  "updatedAt": "2026-08-23T06:05:00Z",
  "source": "Bitfinex Public REST API",
  "currency": {
    "code": "USD",
    "bitfinexSymbol": "fUSD",
    "current": {
      "timestamp": "2026-08-23T06:05:00Z",
      "dailyRatePercent": "0.031025",
      "annualizedAprPercent": "11.324125",
      "averagePeriodDays": "91.470000",
      "fundingAmount": "5991052941.288744",
      "fundingAmountUsed": "5935309488.394312",
      "fundingAvailable": "55743452.894432",
      "fundingBelowThreshold": "763483370.5925878"
    },
    "averages": {
      "hours24": {
        "dailyRatePercent": "0.031200",
        "annualizedAprPercent": "11.388073",
        "observations": 25
      },
      "days7": {
        "dailyRatePercent": "0.031710",
        "annualizedAprPercent": "11.574020",
        "observations": 169
      },
      "days30": {
        "dailyRatePercent": "0.033403",
        "annualizedAprPercent": "12.192212",
        "observations": 721
      }
    },
    "market": {
      "bestFixedBid": {
        "dailyRatePercent": "0.027397",
        "annualizedAprPercent": "10.000000",
        "periodDays": 120,
        "amount": "11593282.43646913"
      },
      "bestFixedAsk": {
        "dailyRatePercent": "0.014188",
        "annualizedAprPercent": "5.178600",
        "periodDays": 2,
        "amount": "264.93559176"
      },
      "fixedBids": [
        {
          "dailyRatePercent": "0.027397",
          "annualizedAprPercent": "10.000000",
          "periodDays": 120,
          "amount": "11593282.43646913"
        },
        {
          "dailyRatePercent": "0.018011",
          "annualizedAprPercent": "6.574000",
          "periodDays": 120,
          "amount": "133240.73391109"
        },
        {
          "dailyRatePercent": "0.017770",
          "annualizedAprPercent": "6.486100",
          "periodDays": 120,
          "amount": "23123.30278361"
        },
        {
          "dailyRatePercent": "0.017400",
          "annualizedAprPercent": "6.351000",
          "periodDays": 120,
          "amount": "12350.0"
        },
        {
          "dailyRatePercent": "0.017130",
          "annualizedAprPercent": "6.252500",
          "periodDays": 120,
          "amount": "14000.0"
        },
        {
          "dailyRatePercent": "0.017125",
          "annualizedAprPercent": "6.250600",
          "periodDays": 117,
          "amount": "560000.0"
        },
        {
          "dailyRatePercent": "0.017120",
          "annualizedAprPercent": "6.248800",
          "periodDays": 120,
          "amount": "20000.0"
        },
        {
          "dailyRatePercent": "0.017111",
          "annualizedAprPercent": "6.245500",
          "periodDays": 120,
          "amount": "2000000.0"
        },
        {
          "dailyRatePercent": "0.016125",
          "annualizedAprPercent": "5.885600",
          "periodDays": 117,
          "amount": "560000.0"
        },
        {
          "dailyRatePercent": "0.016000",
          "annualizedAprPercent": "5.840000",
          "periodDays": 120,
          "amount": "10009162.66122322"
        },
        {
          "dailyRatePercent": "0.016000",
          "annualizedAprPercent": "5.840000",
          "periodDays": 14,
          "amount": "9306.90081316"
        },
        {
          "dailyRatePercent": "0.015111",
          "annualizedAprPercent": "5.515500",
          "periodDays": 117,
          "amount": "560000.0"
        }
      ],
      "fixedAsks": [
        {
          "dailyRatePercent": "0.014188",
          "annualizedAprPercent": "5.178600",
          "periodDays": 2,
          "amount": "264.93559176"
        },
        {
          "dailyRatePercent": "0.014190",
          "annualizedAprPercent": "5.179300",
          "periodDays": 2,
          "amount": "250.0"
        },
        {
          "dailyRatePercent": "0.014192",
          "annualizedAprPercent": "5.180100",
          "periodDays": 2,
          "amount": "200.0"
        },
        {
          "dailyRatePercent": "0.014978",
          "annualizedAprPercent": "5.467000",
          "periodDays": 2,
          "amount": "3837.92472142"
        },
        {
          "dailyRatePercent": "0.014982",
          "annualizedAprPercent": "5.468400",
          "periodDays": 2,
          "amount": "323.64921816"
        },
        {
          "dailyRatePercent": "0.014988",
          "annualizedAprPercent": "5.470600",
          "periodDays": 2,
          "amount": "605.58777224"
        },
        {
          "dailyRatePercent": "0.014998",
          "annualizedAprPercent": "5.474300",
          "periodDays": 2,
          "amount": "2079.77565528"
        },
        {
          "dailyRatePercent": "0.014999",
          "annualizedAprPercent": "5.474600",
          "periodDays": 2,
          "amount": "1968.80422628"
        },
        {
          "dailyRatePercent": "0.015047",
          "annualizedAprPercent": "5.492200",
          "periodDays": 2,
          "amount": "484.95397132"
        },
        {
          "dailyRatePercent": "0.015196",
          "annualizedAprPercent": "5.546500",
          "periodDays": 2,
          "amount": "150.0"
        },
        {
          "dailyRatePercent": "0.015418",
          "annualizedAprPercent": "5.627600",
          "periodDays": 2,
          "amount": "200.0"
        },
        {
          "dailyRatePercent": "0.015607",
          "annualizedAprPercent": "5.696500",
          "periodDays": 2,
          "amount": "1150.0"
        }
      ],
      "fixedBidDepth": "37154170.83381627",
      "fixedAskDepth": "536825.22487061",
      "frrBidDepth": "0",
      "frrOfferDepth": "0",
      "sampledLevels": 356
    },
    "historyPreview": [
      {
        "timestamp": "2026-08-23T06:05:00Z",
        "dailyRatePercent": "0.031025",
        "annualizedAprPercent": "11.324125",
        "averagePeriodDays": "91.470000",
        "fundingAmount": "5991052941.288744",
        "fundingAmountUsed": "5935309488.394312",
        "fundingAvailable": "55743452.894432",
        "fundingBelowThreshold": "763483370.5925878"
      },
      {
        "timestamp": "2026-08-23T05:05:00Z",
        "dailyRatePercent": "0.031025",
        "annualizedAprPercent": "11.324125",
        "averagePeriodDays": "92.570000",
        "fundingAmount": "5989152818.724412",
        "fundingAmountUsed": "5934084828.197341",
        "fundingAvailable": "55067990.527071",
        "fundingBelowThreshold": "769699003.4136398"
      },
      {
        "timestamp": "2026-08-23T04:05:00Z",
        "dailyRatePercent": "0.031025",
        "annualizedAprPercent": "11.324125",
        "averagePeriodDays": "92.030000",
        "fundingAmount": "5988567317.18653",
        "fundingAmountUsed": "5933880711.029357",
        "fundingAvailable": "54686606.157173",
        "fundingBelowThreshold": "769905136.1789076"
      }
    ]
  }
}

GET /v2/ticker/{symbol} · tBTCUSD / fUSD

Funding-Ticker — die FRR (Index 0, ein Tageszins), bestes Bid/Ask samt Laufzeiten, Tagesvolumen. Der mit Abstand nützlichste Lending-Endpoint.

INDEXtBTCUSDfUSD
0BIDFRR
1BID_SIZEBID
2ASKBID_PERIOD
3ASK_SIZEBID_SIZE
4CHANGEASK
5CHANGE_RELATIVEASK_PERIOD
6LAST_PRICEASK_SIZE
7VOLUMEDAILY_CHANGE
8HIGHDAILY_CHANGE_PERC
9LOWLAST_PRICE
10FIRST_TRADEVOLUME
11HIGH
12LOW
15FRR_AMOUNT_AVAILABLE
16FIRST_TRADE

REST: 90 req/min ·docs.bitfinex.com/reference/rest-public-ticker

Schritt null

Einen eingeschränkten API-Key anlegen (Withdrawals aus)

Alles Folgende braucht einen API-Key nur für die authentifizierten Endpoints — Raten, Candles und Bücher sind öffentlich. Wenn Sie einen Key anlegen (Bitfinex → API Keys → Create New Key), beschränken Sie ihn auf das, was ein Kreditgeber tatsächlich braucht: Margin Funding read + write (Angebote sehen und platzieren), Wallets read (Salden sehen) und Account History read (fürs Ledger). Withdrawals, Trading und Transfers bleiben deaktiviert.

Ein Funding-Bot braucht niemals die Möglichkeit, Ihr Geld von der Börse zu bewegen. Ein Key ohne Withdraw- und Trade-Rechte kann im schlimmsten Fall Ihr Funding-Wallet zu einem schlechten Zinssatz verleihen — leerräumen kann er es nicht. Genau diese Beschränkung erzwingt Stratum: Keys mit Withdraw- oder Trade-Rechten werden schon beim Hinzufügen abgelehnt.

Umrechnung der Rate-Einheiten

Ticker, book und funding/stats verwenden nicht dieselbe FRR-Einheit

Ticker- und Book-Raten sind tägliche Bruchteile. Das FRR-Feld aus funding/stats ist 1/365 der angezeigten Tages-FRR. Vor Vergleichen die passende Formel anwenden.

ticker/book daily % = API rate × 100
ticker/book gross APR % = API rate × 365 × 100
funding/stats daily % = FRR field × 365 × 100
funding/stats gross APR % = FRR field × 365 × 365 × 100
curl https://app.stratum.money/api/v1/public/funding-rates.json
curl https://app.stratum.money/api/v1/public/funding-rates.csv
curl "https://api-pub.bitfinex.com/v2/ticker/fUSD"
curl "https://api-pub.bitfinex.com/v2/book/fUSD/P0?len=25"

Die Endpoints, die fürs Funding zählen

Öffentlich (ohne Key, api-pub.bitfinex.com)

GET /v2/ticker/fUSD

Funding-Ticker — die FRR (Index 0, ein Tageszins), bestes Bid/Ask samt Laufzeiten, Tagesvolumen. Der mit Abstand nützlichste Lending-Endpoint.

GET /v2/candles/{key}/hist

Historische Funding-Raten-Candles pro Laufzeit, z. B. Key trade:1h:fUSD:p2 für 2-Tage-USD-Funding. Das ist die Zeitreihe, gegen die Sie backtesten.

GET /v2/book/fUSD/P2 und /R0

Das Live-Funding-Buch — aggregierte Preisstufen (P0–P3) oder Roh-Orders (R0). Zins, Laufzeit und Größe jedes liegenden Gebots und Angebots.

GET /v2/funding/stats/fUSD/hist

Stündliche Funding-Statistiken: FRR, durchschnittliche Laufzeit, genutztes Funding gesamt. Falle: Die FRR-Spalte ist als FRR/365 gespeichert — mit 365 multiplizieren, damit sie zum Ticker passt.

Authentifiziert (api.bitfinex.com, HMAC-signiert)

POST /v2/auth/r/wallets

Wallet-Salden, inklusive des Funding-Wallets, aus dem ein Bot verleiht.

POST /v2/auth/r/funding/offers/fUSD

Ihre offenen Funding-Angebote; die /hist-Variante liefert ausgeführte und stornierte.

POST /v2/auth/r/funding/credits/fUSD

Aktuell verliehenes Funding (aktive Credits): Zins, Laufzeit, Eröffnungszeit. Die /hist-Variante ist Ihre Historie geschlossener Darlehen.

POST /v2/auth/w/funding/offer/submit

Ein Funding-Angebot platzieren: Symbol, Betrag, Tageszins, Laufzeit (2–120 Tage). Stornieren per offer/cancel oder offer/cancel/all.

POST /v2/auth/r/ledgers/USD/hist

Das Ledger — jede Zinszahlung samt Abzug der 15%-Gebühr, pro Darlehen und Tag. Die einzig korrekte Grundlage für Ertrags- und Steuerzahlen.

POST /v2/auth/w/funding/keep

Auto-Renew pro Credit steuern — das API-Pendant zum Auto-Renew-Schalter in der UI.

Lauffähiger Code

Python-Beispiele

FRR und Funding-Buch lesen (kein Key nötig)

import requests

PUB = "https://api-pub.bitfinex.com"

# Funding-Ticker: Index 0 ist die FRR, notiert als TAGESZINS
ticker = requests.get(f"{PUB}/v2/ticker/fUSD", timeout=10).json()
frr_daily = ticker[0]
print(f"FRR: {frr_daily * 365 * 100:.2f}% APR")

# Spitze des Live-Funding-Buchs (aggregiert)
book = requests.get(f"{PUB}/v2/book/fUSD/P2", params={"len": 25}, timeout=10).json()
for rate, period, count, amount in book[:5]:
    side = "offer" if amount < 0 else "bid"
    print(f"{side}: {rate * 365 * 100:.2f}% APR for {period}d, size {abs(amount):,.0f}")

Ein Funding-Angebot platzieren (authentifiziert)

import hashlib, hmac, json, time, requests

KEY, SECRET = "your-key", "your-secret"
BASE = "https://api.bitfinex.com"

def auth_post(path: str, body: dict):
    nonce = str(int(time.time() * 1_000_000))  # muss pro Key strikt ansteigen
    raw = f"/api/{path}{nonce}{json.dumps(body)}"
    sig = hmac.new(SECRET.encode(), raw.encode(), hashlib.sha384).hexdigest()
    return requests.post(f"{BASE}/{path}", data=json.dumps(body), timeout=15, headers={
        "bfx-nonce": nonce, "bfx-apikey": KEY, "bfx-signature": sig,
        "content-type": "application/json",
    }).json()

# $150 (Bitfinex-Minimum) zu 0.03% pro Tag (~10.95% APR) für 2 Tage anbieten
result = auth_post("v2/auth/w/funding/offer/submit", {
    "type": "LIMIT", "symbol": "fUSD",
    "amount": "150", "rate": "0.0003", "period": 2,
})
print(result)

Zinsen in der API sind immer täglich — für den APR mit 365 multiplizieren — und immer brutto, vor Bitfinexs 15%-Gebühr auf verdiente Zinsen. Das Mindestangebot liegt bei $150 Gegenwert; Laufzeiten reichen von 2 bis 120 Tagen. Wer einen gepflegten Client statt handgeschriebenem Signing bevorzugt: Bitfinex veröffentlicht eine offizielle Python-Bibliothek (bfxapi).

Rate-Limits und die Fallen, die echte Stunden kosten

Nonces müssen strikt ansteigen

Jede signierte Anfrage braucht eine bfx-nonce, die größer ist als die letzte für diesen Key. Zwei Prozesse mit demselben Key kollidieren mit "nonce: small"-Fehlern — nutzen Sie einen Key pro Prozess.

Rate-Limits pro Endpoint

Öffentliche Endpoints erlauben je nach Route grob 10–90 Anfragen pro Minute; authentifizierte liegen ähnlich. Überschreitungen liefern HTTP 429 mit ERR_RATE_LIMIT im Body — exponentiell zurückweichen und Lesezugriffe cachen.

funding/stats speichert FRR/365

Die FRR-Spalte in /v2/funding/stats ist die tägliche FRR geteilt durch 365, während /v2/ticker den Tageszins direkt notiert. Vor dem Vergleich den Stats-Wert mit 365 multiplizieren — sonst verzerrt das Backtests unbemerkt.

Alles ist brutto vor Gebühren

Buchraten, Candles und die FRR sind sämtlich vor Gebühren. In Ihrem Wallet kommen 85% der verdienten Zinsen an (82% bei versteckten Angeboten). Gleichen Sie gegen das Ledger ab, nicht gegen den notierten Zins.

Darlehen enden vorzeitig

Ein 120-Tage-Credit bedeutet nicht 120 Tage Zinsen — Kreditnehmer tilgen, wenn sie Positionen schließen, und Credits können nach Tagen zurückkommen. Modellieren Sie die erwartete Haltedauer, nicht die nominale Laufzeit.

Selbst bauen vs. laufen lassen

Wenn Sie das lieber nicht selbst betreiben wollen

Alles oben ist genau das, was Stratum in Produktion betreibt: dieselben Endpoints, dasselbe Signing, Backoff und Ledger-Abgleich, dazu 11 backgetestete Strategien auf drei Jahren Funding-Candles, Paper-Modus und Steuer-Exporte — hinter einem Key ohne Withdraw-Rechte, den Sie exakt wie in Schritt null beschrieben beschränken. Bauen Sie Ihren eigenen Bot, wenn Sie den Stack gern selbst besitzen (dieser Guide plus die Open-Source-Projekte sind ein echter Weg); nehmen Sie einen gehosteten, wenn Sie sich Nonce-Bugs und 429er um 3 Uhr nachts lieber sparen.

Bitfinex API FAQ

Welche API-Berechtigungen braucht ein Bitfinex-Lending-Bot?

Margin Funding read und write, Wallets read und Account History read. Withdrawals, Trading und Transfers sollten deaktiviert bleiben — ein Lending-Bot muss nie Gelder von der Börse bewegen, und ein eingeschränkter Key begrenzt den Schaden, falls er jemals leakt.

Ist die Bitfinex API kostenlos nutzbar?

Ja. Sowohl die öffentliche API (Raten, Candles, Bücher) als auch die authentifizierte API (Angebote, Wallets, Ledger) sind kostenlos; für den authentifizierten Teil brauchen Sie nur ein Konto und einen API-Key. Die öffentlichen Endpoints auf api-pub.bitfinex.com brauchen gar keinen Key.

Gibt es eine offizielle Bitfinex-Python-Bibliothek?

Ja — bfxapi, veröffentlicht von Bitfinex, deckt REST und WebSocket ab. Die Beispiele auf dieser Seite nutzen schlichtes requests plus handgeschriebenes HMAC-Signing, damit Sie genau sehen, was über die Leitung geht; für Produktionscode spart die offizielle Bibliothek Boilerplate.

Sind Bitfinex-API-Zinsen täglich oder jährlich?

Täglich. Ein Zins von 0.0003 bedeutet 0.03% pro Tag, einfach gerechnet grob 10.95% APR. Multiplizieren Sie mit 365 für den APR, und denken Sie daran, dass jeder notierte Zins brutto ist — Bitfinex behält 15% der verdienten Zinsen, also mit 0.85 multiplizieren für das, was Ihr Wallet erreicht.

Brauche ich die WebSocket-API für einen Lending-Bot?

Nicht zum Start. REST-Polling reicht für einen einfachen Bot. WebSocket (wss://api-pub.bitfinex.com/ws/2 öffentlich, wss://api.bitfinex.com/ws/2 authentifiziert) wird wichtig, wenn Sie Live-Buch-Updates oder sofortige Fill-Benachrichtigungen wollen, ohne Ihr REST-Rate-Limit zu verbrennen — genau so verfolgt Stratum Wallet-, Angebots- und Credit-Events in Echtzeit.

Wie hoch sind die Rate-Limits der Bitfinex API?

Sie variieren pro Endpoint, grob 10–90 Anfragen pro Minute auf öffentlichen Routen und vergleichbare Budgets auf authentifizierten. Eine Überschreitung liefert HTTP 429 (ERR_RATE_LIMIT); brave Clients cachen öffentliche Lesezugriffe und weichen bei 429ern exponentiell zurück. Die genauen Zahlen stehen pro Endpoint in den offiziellen Docs.

Die API ist der einfache Teil

Ein Angebot zu platzieren sind zwanzig Zeilen Python; zu wissen, welchen Zins und welche Laufzeit man anbietet, ist das eigentliche Problem. Stratum betreibt backgetestete Strategien auf genau der oben beschriebenen API — oder nehmen Sie den Code von dieser Seite und bauen Sie Ihren eigenen Bot.

API-Key zu Stratum hinzufügenLive-Funding-RatenLive Bitfinex Funding-Book lesenOpen-Source-Bot-VergleichBitfinex Funding-DatensätzeLive-Widget für Bitfinex Funding-Zinsen