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èsObtenir l'accès
- Postulez sur la page partenaires, en indiquant ce que vous construisez et les scopes dont vous avez besoin.
- Un administrateur V-ENT examine la demande et approuve les scopes accordés. Il peut en accorder moins que demandé.
- 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 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.
| Quoi | Chemin |
|---|---|
| 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/ |
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é
identityidentity:emailidentity: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=S2562. Échangez le code, depuis votre serveur
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 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.