V-ENT pour les développeurs

Développez sur V-ENT

Deux choses ici. Une API de lecture sur les tournois, les événements, les équipes, les joueurs et les classements, authentifiée par une clé. Et la connexion V-ENT, pour que les gens utilisent leur compte V-ENT sur votre site.

Demander l'accès

Obtenir l'accès

  1. Postulez sur la page partenaires, en indiquant ce que vous construisez et les scopes dont vous avez besoin.
  2. Un administrateur V-ENT examine la demande et approuve les scopes accordés. Il peut en accorder moins que demandé.
  3. Générez une clé depuis votre page partenaire. Le secret n'est affiché qu'une fois, alors conservez-le avant de fermer l'onglet.

Une clé ne peut jamais porter un scope non accordé à votre organisation, quelle que soit la demande. Suspendre un partenaire arrête immédiatement toutes ses clés, sans attendre leur expiration.

Authentification

Envoyez la clé comme bearer token à chaque requête.

curl
curl https://api.v-ent.co/api/v1/whoami/ \
  -H "Authorization: Bearer vent_pk_<key id>.<secret>"

whoami est le premier endpoint à appeler : il renvoie le partenaire auquel la clé appartient et les scopes exacts qu'elle porte, le moyen le plus rapide de distinguer une clé mal configurée d'une permission manquante.

Scopes

Chaque endpoint exige un scope. Ne demandez que ce que vous utilisez : une demande portant sur tout met plus de temps à être approuvée.

events:read
Read events, their schedule and their venues
events:tickets:read
Read ticket types and remaining capacity for events
tournaments:read
Read tournaments, formats, prize pools and schedules
tournaments:participants:read
Read who is registered for a tournament
tournaments:brackets:read
Read brackets, matches and results
teams:read
Read team profiles and rosters
players:read
Read public player profiles
players:stats:read
Read player win and loss records
rankings:read
Read platform rankings

Endpoints

Tous en lecture seule, tous sous /api/v1/. Les listes sont paginées et renvoient results, count et la page demandée.

QuoiChemin
events/api/v1/events/
event/api/v1/events/<id>/
tournaments/api/v1/tournaments/
tournament/api/v1/tournaments/<id>/
participants/api/v1/tournaments/<id>/participants/
bracket/api/v1/tournaments/<id>/bracket/
teams/api/v1/teams/
team/api/v1/teams/<id>/
player/api/v1/players/<username>/
rankings/api/v1/rankings/
whoami/api/v1/whoami/
Exemple
curl "https://api.v-ent.co/api/v1/tournaments/?page=1" \
  -H "Authorization: Bearer vent_pk_<key id>.<secret>"

Connexion avec V-ENT

Flux authorization-code standard avec PKCE. Si vous avez déjà intégré « Connexion avec Google », vous connaissez la forme. Demandez à un administrateur V-ENT d'approuver le SSO pour votre compte partenaire et vous recevrez un client id et un secret, affiché une seule fois.

Scopes d'identité

  • identity
  • identity:email
  • identity:teams

1. Redirigez-les vers V-ENT

https://v-ent.co/partners/authorize
  ?client_id=vent_sso_<yours>
  &redirect_uri=https://your-site.example/callback
  &scope=identity identity:email
  &state=<random, checked when they come back>
  &code_challenge=<base64url(sha256(verifier))>
  &code_challenge_method=S256

2. Échangez le code, depuis votre serveur

curl
curl -X POST https://api.v-ent.co/partners/sso/token/ \
  -H "Content-Type: application/json" \
  -d '{
    "grant_type": "authorization_code",
    "code": "<the code on your callback>",
    "client_id": "vent_sso_<yours>",
    "client_secret": "<yours>",
    "redirect_uri": "https://your-site.example/callback",
    "code_verifier": "<the verifier you hashed>"
  }'

3. Lisez qui c'est

curl
curl https://api.v-ent.co/partners/sso/userinfo/ \
  -H "Authorization: Bearer <access_token>"

Le code est à usage unique et de courte durée, et un mauvais verifier PKCE est refusé. Échangez-le depuis votre serveur, jamais depuis le navigateur : le client secret ne doit pas atteindre une page lisible par tous.

Something Untranslated HereQuand quelque chose ne va pas

Chaque échec renvoie un code lisible par machine en plus d'une phrase. Testez le code : la phrase peut être reformulée.

{ "status": "error", "code": "INVALID_KEY", "message": "That key is not valid.", "data": null }
MISSING_KEY
En-tête Authorization absent, ou ce n'est pas un bearer token.
INVALID_KEY
Key id inconnu, secret incorrect, ou clé révoquée.
MISSING_SCOPE
La clé est valide mais n'a pas été approuvée pour cet endpoint.
RATE_LIMITED
Trop de requêtes cette minute. Patientez et réessayez.

Une erreur ou un manque ici ? Signalez-le sur votre page partenaire et ce sera corrigé.

Demander l'accès