# Blockchain Data API-Referenz

> Source: https://docs.blockvectra.com/de/api/data/

## Übersicht

Nutzen Sie diese Blockchain Data API-Referenz zum Erstellen von REST-Anfragen für indizierte Blöcke, Transaktionen, Adressen, Token, NFTs, DEX-Aktivitäten, tokenisierte Aktien und die Aktualität von Datensätzen. Um einen Datensatz auszuwählen und die Chain-Verfügbarkeit zu prüfen, beginnen Sie mit dem [Datensatzverzeichnis](https://docs.blockvectra.com/de/datasets/); für Wallet-Token-Guthaben und den Transferverlauf folgen Sie dem [Wallet-Assets-Leitfaden](https://docs.blockvectra.com/de/guides/wallet-assets/).

* **Basis-URL**: `https://api.blockvectra.com/v1/data` — jeder Pfad außer `/chains` ist mit einer Chain-Kennung vorangestellt (z. B. `https://api.blockvectra.com/v1/data/{chain}/…`)
* **Protokoll**: HTTP `GET` (plus `POST` für Batch-Token-Abfragen unter `/{chain}/tokens:batch`), JSON-Antworten
* **Authentifizierung**: API-Schlüssel erforderlich — übergeben Sie Ihren Schlüssel im Anfrage-Header `x-api-key`. Anfragen werden in Compute Units (CU) gemessen und abgerechnet; nur erfolgreiche 2xx-Antworten werden abgerechnet
* **Ethereum**: Die Datenabdeckung wird durch `coverage.from_block` in `GET /v1/data/chains` bestimmt und umfasst eine kleinere Auswahl an Datensätzen — siehe [Unterstützte Chains → Ethereum](https://docs.blockvectra.com/de/chains/#ethereum)

CU-Gewichte der Data API sind auf der Seite [Preise](https://blockvectra.com/de/pricing/) aufgeführt und werden von `GET /v1/plans` zurückgegeben. Siehe [Schnellstart → Die Data API aufrufen](https://docs.blockvectra.com/de/quickstart/#4-call-the-data-api) für Beispielanfragen und Antwortformate. Informationen zur Pfadversionierung, Abwärtskompatibilitätsregeln und SDK-Empfehlungen finden Sie unter [API-Versionierung und Kompatibilität](https://docs.blockvectra.com/de/api/versioning/).

## Chains

Die Data API stellt indizierte Daten bezogen auf die jeweilige Chain bereit: `https://api.blockvectra.com/v1/data/{chain}/…`.

Verfügbare Datensätze und Funktionen variieren je nach Chain; die vollständige Funktionsmatrix finden Sie unter [Unterstützte Chains](https://docs.blockvectra.com/de/chains/). `GET https://api.blockvectra.com/v1/data/chains` gibt für jede Chain `features`, `coverage`, `finality` und `limits` zurück. Anfragen außerhalb der Abdeckung eines Datensatzes geben HTTP `422 no_coverage` zurück (wird nicht abgerechnet); eine unbekannte oder nicht-öffentliche Chain gibt HTTP `404` mit `error.code` `not_found` zurück (wird nicht abgerechnet; Chain-Namen müssen exakte Kleinbuchstaben-Slugs sein).

## Fehler

Jede Fehlerantwort lautet `{"error":{"code","message"}}`; nur `409 not_indexed_yet` kann zusätzlich `indexed_through` enthalten (der höchste indizierte Block auf dieser Chain), und dieses Feld fehlt, wenn die Chain noch keine indizierten Daten aufweist. Fehlercodes, auf die Kunden am häufigsten stoßen:

| Status | `error.code`           | Bedeutung                                                                                                                                                                                                                                  | Maßnahme                                                                                                                                                                                                                          |
| ------ | ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `402`  | `insufficient_balance` | Bezahltes Guthaben oder kostenloses Kontingent aufgebraucht; wenn das Guthaben bekannt ist, enthält `error.data` die Felder `balance_units` und `balance_cu` (wird nicht abgerechnet)                                                      | Laden Sie On-Chain über die [Abrechnungsseite](https://console.blockvectra.com/billing/) der Konsole auf oder warten Sie, bis das kostenlose Kontingent wieder aufgefüllt wird                                                    |
| `404`  | `not_found`            | Unbekannte oder nicht-öffentliche `{chain}`, oder das Objekt existiert nicht                                                                                                                                                               | Korrigieren Sie die Anfrage                                                                                                                                                                                                       |
| `409`  | `not_indexed_yet`      | Anfrage reicht über `as_of_block` hinaus (neuester vollständig geschriebener Block; enthält `indexed_through`), Hash verweist auf einen Block über `as_of_block`, oder die Chain hat noch keine indizierten Daten (kein `indexed_through`) | Mit `indexed_through` abfragen, bis Ihr Block oder `to_block` kleiner oder gleich diesem ist; ohne dieses Feld warten, bis die Chain mit der Indizierung beginnt (`coverage.has_data` in `GET /v1/data/chains` zeigt den Zustand) |
| `422`  | `no_coverage`          | Dauerhafte Lücke: Der Chain fehlt diese Fähigkeit, oder der Block liegt vor der Index-/Trace-Abdeckung                                                                                                                                     | Ändern Sie die Anfrage; ein erneuter Versuch hilft nicht                                                                                                                                                                          |
| `429`  | `rate_limited`         | CU-Ratenlimit des API-Schlüssels (Antwort enthält `Retry-After`) oder Aufruf-Ratenlimit des Kontos (kein `Retry-After`); wird nicht abgerechnet                                                                                            | Nach `Retry-After` Sekunden erneut versuchen                                                                                                                                                                                      |
| `429`  | `cost_exceeds_burst`   | Eine einzelne Anfrage kostet mehr als die Burst-Kapazität des API-Schlüssels; kein `Retry-After` (wird nicht abgerechnet)                                                                                                                  | Teilen Sie die Anfrage auf; ein erneuter Versuch im aktuellen Zustand ist niemals erfolgreich                                                                                                                                     |
| `503`  | `unavailable`          | Vorübergehend nicht verfügbar; die Antwort enthält `Retry-After`. Wird auch für historische Anfragen auf einer Chain zurückgegeben, deren `coverage.from_block` derzeit `null` ist                                                         | Nach `Retry-After` Sekunden erneut versuchen                                                                                                                                                                                      |
| `503`  | `gateway_overloaded`   | Die kontoweite Nebenläufigkeitsbegrenzung über alle API-Schlüssel und Chains hinweg ist erreicht, oder der Dienst ist vorübergehend ausgelastet; `Retry-After: 1` (wird nicht abgerechnet)                                                 | Reduzieren Sie gleichzeitige Anfragen über das gesamte Konto und warten Sie vor dem erneuten Versuch `Retry-After` Sekunden                                                                                                       |

## Endpunkt-Index

Nachfolgend finden Sie die englische Originalspezifikation.

<div lang="en">

### Chain

- GET /chains — List supported chains
- GET /{chain}/blocks/{number} — Get a block by number
- GET /{chain}/blocks/hash/{hash} — Get a block by hash
- GET /{chain}/blocks/{number}/transactions — List a block's transactions
- GET /{chain}/transactions/{hash} — Get a transaction by hash

### Status

- GET /{chain}/status/freshness — Freshness and lag per dataset

### Addresses

- GET /{chain}/addresses/{address}/transactions — List an address's transactions
- GET /{chain}/addresses/{address}/transfers — List an address's token transfers
- GET /{chain}/addresses/{address}/balances — List an address's ERC-20 balances

### Tokens

- GET /{chain}/tokens/{token}/transfers — List a token contract's transfers
- GET /{chain}/tokens/{token}/holders — List a token's holders
- GET /{chain}/tokens/{token} — Get token metadata
- POST /{chain}/tokens:batch — Batch get token metadata

### NFTs

- GET /{chain}/nfts/{contract}/{token_id} — Get one NFT's owner/holders
- GET /{chain}/nfts — List NFTs owned by an address

### DEX

- GET /{chain}/dex/swaps — List DEX swaps by pool or token
- GET /{chain}/dex/prices — Daily DEX token prices

### Stocks

- GET /{chain}/stocks — Daily leaderboard of tokenized stocks
- GET /{chain}/stocks/{token} — Get one tokenized stock

### Traces

- GET /{chain}/blocks/{number}/traces — Historical callTracer trace tree for a whole block
- GET /{chain}/transactions/{hash}/trace — Historical callTracer trace tree for one transaction

</div>
