Lis et écris les données de tes ligues depuis ton propre logiciel. L’API couvre les ligues, les saisons, les catégories, les classements, les rencontres, les effectifs et les événements.

Pas de bac à sable

Une clé rk_live_ agit sur les données réelles de ton organisation. Commence par une clé read, qui ne peut rien modifier.

Serveur à serveur seulement

L’API ne répond pas aux navigateurs : elle n’autorise aucune origine CORS. Ne mets jamais ta clé dans du code côté navigateur.

Forfait Ligues requis

Émettre une clé demande le forfait Ligues de ton organisation. Tu crées ensuite ta clé dans l’écran Intégrations.Voir le forfait Ligues

L’essentiel

Adresse
Toutes les opérations partent de https://gorally.games/v1.
Clé
Envoie-la dans l’en-tête Authorization: Bearer rk_live_…, jamais dans l’adresse.
Format
Requêtes et réponses en JSON. Une erreur rend error, code et request_id.
Suivi
Chaque réponse porte X-Request-Id. Recopie-le quand tu nous écris.

Guides

Pour brancher ton logiciel pas à pas, de la première clé aux webhooks.

  • Démarrage rapide

    Crée une clé dans l’écran Intégrations, fais ton premier appel à l’API Rally Ligues, puis lis le classement d’une catégorie en curl, JavaScript ou Python.

  • Authentification et scopes

    Envoie ta clé rk_live_ dans l’en-tête Authorization, choisis les scopes read, write, members:read et members:write, puis fais tourner ou révoque ta clé.

  • Webhooks

    Reçois les événements des ligues par webhook : les 20 types, la signature Standard Webhooks à vérifier, les relances et le rattrapage par GET /v1/events.

  • Erreurs

    Le format des erreurs de l’API Rally Ligues, ses 16 codes stables avec leur cause et quoi faire, et les en-têtes X-Request-Id et Retry-After à lire.

  • Idempotence

    Envoie une Idempotency-Key sur chaque POST pour renvoyer une écriture sans doublon pendant 24 heures, et protège tes PATCH par la révision attendue.

  • Pagination

    Parcours les listes de l’API Rally Ligues avec le curseur after, limit de 25 à 100 et l’enveloppe list avec has_more, sans sauter ni doubler un élément.

  • Limites

    Le quota de 120 requêtes par minute et 3 000 par heure de ta clé, l’en-tête Retry-After à respecter, le délai de 10 secondes et le corps limité à 16 Kio.

Ce que fait l’API

Les opérations sont regroupées en quatre familles.

  • Compétition

    Ligues, saisons, catégories, classements.

  • Résultats

    Rencontres et saisie de résultat.

  • Effectifs

    Sous scopes members:* uniquement — la seule surface qui porte des noms de personnes.

  • Événements

    Le même flux que les webhooks, relisible et rejouable.

Référence complète

Chaque opération avec son scope, ses paramètres, ses schémas, ses exemples et ses codes d’erreur.

Le contrat OpenAPI

La référence est générée depuis ce contrat OpenAPI 3.1. Il se lit sans clé.

Générer un client

Pas de SDK officiel pour l’instant. Génère plutôt un client typé depuis le contrat.

TypeScript, avec openapi-typescript et openapi-fetch

npx openapi-typescript https://gorally.games/v1/openapi.json -o rally.d.ts
npm install openapi-fetch
import createClient from 'openapi-fetch';
import type { paths } from './rally';

const rally = createClient<paths>({
  baseUrl: 'https://gorally.games/v1',
  headers: { Authorization: `Bearer ${process.env.RALLY_API_KEY}` },
});

const { data, error } = await rally.GET('/leagues');

Python, avec openapi-python-client

pipx run openapi-python-client generate --url https://gorally.games/v1/openapi.json
import os
from rally_leagues_api_client import AuthenticatedClient
from rally_leagues_api_client.api.competition import lister_ligues

client = AuthenticatedClient(
    base_url="https://gorally.games/v1",
    token=os.environ["RALLY_API_KEY"],
)
ligues = lister_ligues.sync(client=client)