# Référence de la Data API blockchain

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

## Vue d'ensemble

Utilisez cette référence de la Data API blockchain pour construire des requêtes REST pour les blocs indexés, les transactions, les adresses, les tokens, les NFT, l'activité DEX, les actions tokenisées et la fraîcheur des jeux de données. Pour choisir un jeu de données et vérifier la disponibilité par chaîne, commencez par le [répertoire des jeux de données](https://docs.blockvectra.com/fr/datasets/) ; pour les soldes de tokens de portefeuille et l'historique des transferts, suivez le [guide des actifs de portefeuille](https://docs.blockvectra.com/en/guides/wallet-assets/).

* **URL de base** : `https://api.blockvectra.com/v1/data` — chaque route à l'exception de `/chains` est préfixée par un identifiant de chaîne (par ex. `https://api.blockvectra.com/v1/data/{chain}/…`)
* **Protocole** : HTTP `GET` (ainsi que `POST` pour les recherches de tokens par batch sur `/{chain}/tokens:batch`), réponses JSON
* **Authentification** : clé API requise — transmettez votre clé dans l'en-tête de requête `x-api-key`. Les requêtes sont mesurées et facturées en Compute Units (CU) ; seules les réponses 2xx réussies sont facturées
* **Ethereum** : la couverture des données est déterminée par `coverage.from_block` dans `GET /v1/data/chains`, et couvre un ensemble plus restreint de jeux de données — voir [Chaînes prises en charge → Ethereum](https://docs.blockvectra.com/fr/chains/#ethereum)

Les pondérations en CU de la Data API sont répertoriées sur la page [Tarifs](https://blockvectra.com/fr/pricing/) et renvoyées par `GET /v1/plans`. Consultez [Démarrage rapide → Appeler la Data API](https://docs.blockvectra.com/fr/quickstart/#4-call-the-data-api) pour obtenir des exemples de requêtes et la structure des réponses. Pour le versioning des chemins, les règles de rétrocompatibilité et les recommandations de SDK, consultez [Gestion des versions et compatibilité de l'API](https://docs.blockvectra.com/fr/api/versioning/).

## Chaînes

La Data API fournit des données indexées propres à chaque chaîne : `https://api.blockvectra.com/v1/data/{chain}/…`.

Les jeux de données et fonctionnalités disponibles varient selon la chaîne ; consultez [Chaînes prises en charge](https://docs.blockvectra.com/fr/chains/) pour la matrice complète des capacités. `GET https://api.blockvectra.com/v1/data/chains` indique pour chaque chaîne ses `features`, `coverage`, `finality` et `limits`. Les requêtes en dehors de la couverture d'un jeu de données renvoient HTTP `422 no_coverage` (non facturé) ; une chaîne inconnue ou non publique renvoie HTTP `404` avec `error.code` `not_found` (non facturé ; les noms de chaînes doivent être des slugs exacts en minuscules).

## Erreurs

Chaque réponse d'erreur est sous la forme `{"error":{"code","message"}}` ; seul `409 not_indexed_yet` peut ajouter `indexed_through` (le bloc indexé le plus élevé sur cette chaîne), et celui-ci est absent lorsque la chaîne ne comporte pas encore de données indexées. Codes les plus fréquemment rencontrés par les utilisateurs :

| Statut | `error.code`           | Signification                                                                                                                                                                                                                                    | Action                                                                                                                                                                                                                                      |
| ------ | ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `402`  | `insufficient_balance` | Solde payé ou crédit gratuit épuisé ; lorsque le solde est connu, `error.data` inclut `balance_units` et `balance_cu` (non facturé)                                                                                                              | Rechargez on-chain sur la [page Facturation](https://console.blockvectra.com/billing/) de la console, ou attendez le rechargement du quota gratuit                                                                                          |
| `404`  | `not_found`            | `{chain}` inconnue ou non publique, ou l'objet n'existe pas                                                                                                                                                                                      | Corrigez la requête                                                                                                                                                                                                                         |
| `409`  | `not_indexed_yet`      | La requête dépasse `as_of_block` (le bloc le plus récent entièrement écrit ; inclut `indexed_through`), le hash résout vers un bloc supérieur à `as_of_block`, ou la chaîne ne comporte pas encore de données indexées (aucun `indexed_through`) | Avec `indexed_through`, faites du polling jusqu'à ce que votre bloc ou `to_block` soit inférieur ou égal à celui-ci ; sans lui, attendez que la chaîne commence à s'indexer (`coverage.has_data` dans `GET /v1/data/chains` indique l'état) |
| `422`  | `no_coverage`          | Écart de couverture permanent : la chaîne ne dispose pas de cette fonctionnalité, ou le bloc est antérieur à la couverture d'indexation ou de trace                                                                                              | Modifiez la requête ; réessayer ne servira à rien                                                                                                                                                                                           |
| `429`  | `rate_limited`         | Limite de débit en CU par clé (la réponse inclut `Retry-After`) ou limite de débit d'appels du compte (sans `Retry-After`) ; non facturé                                                                                                         | Réessayez après `Retry-After` secondes                                                                                                                                                                                                      |
| `429`  | `cost_exceeds_burst`   | Une requête unique coûte davantage que la capacité de burst de la clé ; pas de `Retry-After` (non facturé)                                                                                                                                       | Découpez la requête ; réessayer à l'identique ne réussira jamais                                                                                                                                                                            |
| `503`  | `unavailable`          | Temporairement indisponible ; la réponse comporte `Retry-After`. Également renvoyé pour les requêtes historiques sur une chaîne dont `coverage.from_block` est actuellement `null`                                                               | Réessayez après `Retry-After` secondes                                                                                                                                                                                                      |
| `503`  | `gateway_overloaded`   | La limite de requêtes simultanées du compte sur l'ensemble de ses clés et chaînes est atteinte, ou le service est temporairement surchargé ; `Retry-After: 1` (non facturé)                                                                      | Réduisez les requêtes simultanées sur l'ensemble du compte et attendez `Retry-After` secondes avant de réessayer                                                                                                                            |

## Index des points de terminaison

Voici la spécification originale en anglais.

<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>
