Les données des perpétuels de 19 exchanges, en requête ou en outil d'assistant
Le funding maintenant et pour chaque règlement conservé, les spreads entre plateformes calculés sur la vraie profondeur du carnet, et le calendrier des listings. Une clé pour les programmes, une connexion pour Claude, ChatGPT et Cursor. Chaque réponse nomme la page d'où viennent les chiffres.
- Exchanges
- 19
- Coins avec une page funding
- 987
- Délai des données sur les plans payants
- 0 s
curl https://arbitron.app/api/v1/funding/BTC \ -H "Authorization: Bearer $ARBITRON_KEY"
{
"data": {
"coin": "BTC",
"venue_count": 18,
"spread_pct": 0.016532,
"best_short_exchange": "Blofin",
"best_long_exchange": "GateIo",
"rates": [
{ "exchange": "Blofin", "symbol": "BTC-USDT", "rate_pct": 0.016532,
"interval_hours": 8, "next_funding_at": "2026-09-21T00:00:00Z" },
{ "exchange": "Htx", "symbol": "BTC-USDT", "rate_pct": 0.01,
"interval_hours": 8, "next_funding_at": "2026-09-21T00:00:00Z" },
{ "exchange": "Poloniex", "symbol": "BTC-USDT", "rate_pct": 0.01,
"interval_hours": 8, "next_funding_at": "2026-09-21T00:00:00Z" },
... 15 lignes de plus
]
},
"meta": {
"as_of": "2026-09-20T17:41:31Z",
"delayed_seconds": 0,
"source": "arbitron.app",
"url": "https://arbitron.app/funding-rates/coin/btc?utm_source=api"
}
}
Deux minutes de la clé à la première réponse
- Créez une clé. Dans Paramètres, section Clés API. Elle s'affiche une seule fois et commence par
arb_live_. - Appelez un endpoint. Envoyez la clé en bearer token. La réponse en haut de cette page est ce qui revient.
- Lisez l'en-tête RateLimit. Chaque réponse indique ce qui reste de la minute et du mois, de sorte qu'un client peut régler son rythme et ne jamais voir de 429.
- Connectez un assistant. L'onglet MCP contient le bloc de configuration pour Claude Desktop, Cursor et ChatGPT.
curl "https://arbitron.app/api/v1/spreads?size_usd=100&limit=3" \ -H "Authorization: Bearer $ARBITRON_KEY"
import os, requests
r = requests.get(
"https://arbitron.app/api/v1/spreads",
params={"size_usd": 100, "limit": 3},
headers={"Authorization": f"Bearer {os.environ['ARBITRON_KEY']}"},
timeout=10,
)
r.raise_for_status()
body = r.json()
print(body["meta"]["as_of"])
for row in body["data"]["spreads"]:
print(row["coin"], row["exchange_a"], row["exchange_b"], row["est_profit_pct"])
const res = await fetch(
"https://arbitron.app/api/v1/spreads?size_usd=100&limit=3",
{ headers: { Authorization: `Bearer ${process.env.ARBITRON_KEY}` } },
);
if (!res.ok) throw new Error(`${res.status} ${await res.text()}`);
const { data, meta } = await res.json();
console.log(meta.as_of, data.spreads.map((r) => r.coin));
{
"mcpServers": {
"arbitron": {
"url": "https://arbitron.app/mcp",
"headers": { "Authorization": "Bearer arb_live_..." }
}
}
}
Huit endpoints, une seule enveloppe
JSON en lecture seule sur HTTPS à https://arbitron.app/api/v1. Les pourcentages se terminent par _pct et sont des valeurs en pour cent, les horodatages sont en UTC ISO 8601, les listes se paginent par curseur. La référence complète des paramètres et des schémas est générée depuis le document OpenAPI.
| Méthode | Chemin | Scope | Renvoie |
|---|---|---|---|
| GET | /api/v1/funding | funding:read | Le funding rate actuel sur chaque exchange et chaque symbole, trié par taux absolu. Filtre par coin ou par exchange. |
| GET | /api/v1/funding/{coin} | funding:read | Un coin sur toutes les plateformes : chaque taux, le spread entre le plus haut et le plus bas, et où un short ou un long est le mieux payé en ce moment. |
| GET | /api/v1/funding/history | history:read | L'historique du funding, un point annualisé par jour pour chaque exchange ou chaque règlement pour un seul exchange. La profondeur dépend du plan. |
| GET | /api/v1/spreads | spreads:read | Les spreads exécutables entre plateformes du scanner public, calculés sur la vraie profondeur du carnet pour un ordre de size_usd. |
| GET | /api/v1/listings | listings:read | Les listings et delistings annoncés : ce que chaque exchange a annoncé, quand cela prend effet et où se trouve l'annonce. |
| GET | /api/v1/exchanges | — | Les exchanges, avec le nombre d'instruments suivis, le levier maximal, les frais taker et les liens vers leurs pages de specs et de funding. |
| GET | /api/v1/coins | — | Recherche de ticker : q correspond au début d'un ticker. Chaque coin porte son nombre d'exchanges et son volume 24 h. |
| GET | /api/v1/usage | usage:read | Le plan de cette clé, les fenêtres du mois et de la minute, et ce que le plan inclut. |
Chaque réponse est une enveloppe : data, puis meta avec meta.as_of, meta.delayed_seconds, meta.url, meta.next_cursor.
Le document de découverte, anonyme, liste tout cela en JSON : GET /api/v1 · /api/v1/openapi.json
Les mêmes données, en outils pour un assistant
Huit outils en lecture seule sur les quatre jeux de données, pour Claude, ChatGPT, Cursor et tout autre client MCP. Un assistant qui a la connexion s'en sert quand une question porte sur le funding, les spreads ou les listings, et chaque résultat se termine par la page à citer.
| Outil | Répond à |
|---|---|
| arbitron_get_funding_rates | Le funding actuel sur chaque exchange et symbole, filtré par coin ou exchange. |
| arbitron_get_coin_funding | Un coin sur toutes les plateformes, avec la meilleure pour un short et la meilleure pour un long. |
| arbitron_get_funding_history | L'historique du funding par jour ou par règlement, jusqu'à la profondeur du plan. |
| arbitron_get_spreads | Les spreads exécutables pour une taille d'ordre, les meilleurs d'abord. |
| arbitron_get_listings | Ce qui est listé ou retiré dans une fenêtre, par exchange. |
| arbitron_get_exchanges | La liste des exchanges avec les specs des contrats et les liens. |
| arbitron_get_usage | Le quota restant de cette connexion, pour que l'assistant puisse expliquer une limite. |
- Endpoint
- https://arbitron.app/mcp
- Transport
- Streamable HTTP, sans état : aucune session à garder, chaque appel se suffit. Un appel d'outil compte comme une requête, dans les mêmes quotas que l'API REST.
- Authentification
- Une clé API en en-tête bearer pour les clients qui prennent un en-tête statique, ou OAuth 2.1 avec PKCE : l'assistant se connecte avec votre compte Arbitron et vous approuvez les scopes sur un écran de consentement.
- Citation
- Chaque résultat porte meta.url, la page humaine des mêmes chiffres. C'est cette page que l'assistant cite, et ce sont les mêmes données.
Une démo gratuite, puis trois tailles du même produit
Mensuel, payé comme tout plan Arbitron. Les quotas sont des plafonds fermes : quand une fenêtre est épuisée vous recevez un 429, jamais une facture. Chaque niveau inclut le serveur MCP.
Démo
Sur chaque compte. La forme des données, en différé.
- Requêtes par mois
- 3,000
- Par minute
- 20
- Clés API
- 1
- Profondeur d'historique
- 7 jours
- Délai des données
- 15 min
- Usage commercial
- Non
- Serveur MCP
- Oui
Developer
Le plus populaireFunding, spreads et listings en direct pour vos propres scripts et dashboards.
- Requêtes par mois
- 100,000
- Par minute
- 120
- Clés API
- 3
- Profondeur d'historique
- 90 jours
- Délai des données
- En direct
- Usage commercial
- Non
- Serveur MCP
- Oui
Pro
Un historique plus profond et une licence commerciale pour les produits que vous livrez.
- Requêtes par mois
- 500,000
- Par minute
- 300
- Clés API
- 10
- Profondeur d'historique
- 730 jours
- Délai des données
- En direct
- Usage commercial
- Oui
- Serveur MCP
- Oui
Business
L'archive complète, les limites les plus hautes et des clés pour toute l'équipe.
- Requêtes par mois
- 2,000,000
- Par minute
- 600
- Clés API
- 25
- Profondeur d'historique
- Tout ce que nous conservons
- Délai des données
- En direct
- Usage commercial
- Oui
- Serveur MCP
- Oui
Prime inclut Developer sans supplément, de sorte que le plan de trading le plus élevé ouvre aussi l'API. Tarifs
Les données de la démo doivent être attribuées à Arbitron avec un lien vers la page d'où elles viennent.
Deux fenêtres, toutes deux sur chaque réponse
Chaque clé a une fenêtre d'une minute et une fenêtre d'un mois. Les deux sont annoncées sur chaque réponse dans les champs standard RateLimit-Policy et RateLimit, de sorte qu'un client peut régler son rythme sans jamais toucher une limite.
- Quand une fenêtre est épuisée vous recevez un 429 avec Retry-After en secondes et un corps d'erreur qui nomme la fenêtre.
- Chaque réponse de données porte un ETag. Renvoyez-le en If-None-Match et un corps inchangé répond 304, remboursé sur les deux fenêtres.
- Cache-Control vaut private, max-age=15 sur les données live et max-age=300 sur les données différées, au rythme du snapshot derrière elles.
- Le mois se remet à zéro le 1er à 00:00 UTC. Rien n'est facturé en dépassement.
- Une requête est une requête : historique, spreads et funding coûtent pareil, et un appel d'outil MCP compte comme un appel REST.
RateLimit-Policy: "minute";q=120;w=60, "month";q=100000;w=2592000 RateLimit: "minute";r=118;t=41, "month";r=99871;t=1209600
Retry-After: 19 RateLimit: "minute";r=0;t=19, "month";r=99870;t=1209581 { "type": "https://arbitron.app/developers/errors#rate-limited", "title": "Too many requests this minute", "status": 429, "detail": "The api-developer plan allows 120 requests per minute; the window resets in 19 s. Cache responses (they carry ETag) or upgrade." }
Des problem details sur lesquels brancher
Les erreurs suivent la RFC 9457 : un type stable qui pointe sur une ligne de ce tableau, un title, le statut HTTP, un detail qui dit quoi changer, l'id de requête en instance, et suggestions quand un rapprochement existe.
HTTP/1.1 404 Not Found
Content-Type: application/problem+json
{
"type": "https://arbitron.app/developers/errors#unknown-coin",
"title": "Unknown coin",
"status": 404,
"detail": "No venue quotes a perpetual on 'ETHEREUM'. GET /api/v1/coins?q=ETHEREUM lists close matches.",
"instance": "0HN7Q2K3J9R4P:00000001",
"code": "unknown-coin",
"docs": "https://arbitron.app/developers",
"suggestions": ["ETH", "ETC", "ETHFI"]
}| Statut | Code | Quoi changer |
|---|---|---|
| 400 | invalid-parameter | Une valeur de requête est hors plage ou de mauvaise forme. detail nomme le paramètre et les valeurs acceptées. |
| 401 | unauthenticated | Pas de clé, ou une clé mal saisie, révoquée, expirée ou sortie par rotation. Envoyez l'en-tête Authorization en Bearer avec une clé issue de Paramètres, Clés API. |
| 403 | scope-missing | La clé a été créée sans le scope que cet endpoint exige ; detail liste ceux qu'elle a. Créez une clé avec ce scope. |
| 403 | plan-limit | La requête dépasse le plan : une fenêtre d'historique plus profonde que ce qu'il inclut, ou une page plus grande que ce que la démo renvoie. Réduisez la requête ou passez au plan supérieur. |
| 404 | unknown-coin | Aucun exchange ne cote de perpétuel sur ce ticker. suggestions porte les rapprochements, et GET /api/v1/coins avec le paramètre q cherche. |
| 404 | unknown-exchange | Cet exchange n'est pas servi par l'API. suggestions liste les exchanges, comme GET /api/v1/exchanges. |
| 404 | not-found | Aucun endpoint à ce chemin sous /api/v1. GET /api/v1 liste ceux qui existent. |
| 429 | rate-limited | La fenêtre de la minute est épuisée, ou trop de clés refusées viennent d'une même adresse. Attendez Retry-After secondes, ou réglez le rythme du client sur l'en-tête RateLimit. |
| 429 | quota-exhausted | Les requêtes du mois sont consommées. Le quota se remet à zéro le 1er à 00:00 UTC ; un plan supérieur en a davantage. |
| 503 | snapshot-unavailable | Le snapshot derrière l'endpoint se recharge encore après un redémarrage. Réessayez dans une minute. |
| 503 | api-disabled | L'API n'est pas activée sur cet hôte. Rien à changer de votre côté, c'est une faute de configuration du nôtre. |
v1 est le contrat
/api/v1 est le contrat. Les champs, endpoints, valeurs d'énumération et paramètres optionnels s'ajoutent sans changement de version. Retirer ou renommer quoi que ce soit, changer un type ou une valeur par défaut, c'est v2, et v1 continue de fonctionner douze mois après la sortie de v2.
Un endpoint ou un champ déprécié l'annonce dans la réponse par les en-têtes Deprecation et Sunset et un Link vers l'entrée du changelog qui nomme le remplaçant. La version du serveur MCP suit le même numéro, et les noms d'outils ne changent jamais dans une version majeure.
Le document OpenAPI est versionné avec l'API ; son diff fait partie de chaque note de version. /api/v1/openapi.json
Deprecation: @1789500000 Sunset: Mon, 20 Sep 2027 00:00:00 GMT Link: <https://arbitron.app/developers#versioning>; rel="deprecation"
Changelog
- 2026-09-20
- v1 publiée : funding, historique du funding, spreads, listings, exchanges, coins et usage. Serveur MCP avec sept outils, par clé ou OAuth.
Questions fréquentes
Y a-t-il un niveau gratuit ?
Pourquoi les données de la démo sont-elles différées ?
Puis-je utiliser les données commercialement ?
Comment les clés sont-elles stockées ?
Comment faire tourner une clé ?
Les assistants ont-ils besoin d'une clé ?
Les réponses 304 comptent-elles dans mon quota ?
Que se passe-t-il quand j'atteins une limite ?
Commencez avec la clé gratuite
La première requête prend deux minutes. La référence a un panneau d'essai qui utilise votre clé.