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.
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{
"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.
| INDEX | tBTCUSD | fUSD |
|---|---|---|
| 0 | BID | FRR |
| 1 | BID_SIZE | BID |
| 2 | ASK | BID_PERIOD |
| 3 | ASK_SIZE | BID_SIZE |
| 4 | CHANGE | ASK |
| 5 | CHANGE_RELATIVE | ASK_PERIOD |
| 6 | LAST_PRICE | ASK_SIZE |
| 7 | VOLUME | DAILY_CHANGE |
| 8 | HIGH | DAILY_CHANGE_PERC |
| 9 | LOW | LAST_PRICE |
| 10 | FIRST_TRADE | VOLUME |
| 11 | — | HIGH |
| 12 | — | LOW |
| 15 | — | FRR_AMOUNT_AVAILABLE |
| 16 | — | FIRST_TRADE |
REST: 90 req/min ·docs.bitfinex.com/reference/rest-public-ticker
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.
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 × 100curl 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.
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.
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.