MENU navbar-image

Introduction

This documentation aims to provide all the information you need to work with our API.

<aside>As you scroll, you'll see code examples for working with the API in different programming languages in the dark area to the right (or as part of the content on mobile).
You can switch the language used with the tabs at the top right (or from the nav menu at the top left on mobile).</aside>

Authenticating requests

To authenticate requests, include an Authorization header with the value "Bearer Bearer {YOUR_SANCTUM_TOKEN}".

All authenticated endpoints are marked with a requires authentication badge in the documentation below.

Utilisez le token obtenu via POST /api/v1/auth/login et envoyez-le dans l'en-tête Authorization: Bearer {token}.

Authentification

Connexion administrateur

Retourne un token Sanctum pour les comptes administrateurs.

Example request:
curl --request POST \
    "http://localhost/api/v1/auth/login" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"email\": \"admin@jss-gn.com\",
    \"password\": \"password\"
}"
const url = new URL(
    "http://localhost/api/v1/auth/login"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "email": "admin@jss-gn.com",
    "password": "password"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):


{
    "token": "1|xxxxxxxxxxxxxxxx",
    "user": {
        "id": 1,
        "name": "Admin",
        "email": "admin@jss-gn.com",
        "is_admin": true
    }
}
 

Request   

POST api/v1/auth/login

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

email   string     

Adresse email de l'utilisateur. Example: admin@jss-gn.com

password   string     

Mot de passe du compte. Example: password

Profil connecté

requires authentication

Retourne les informations de l'utilisateur connecté.

Example request:
curl --request GET \
    --get "http://localhost/api/v1/auth/me" \
    --header "Authorization: Bearer Bearer {YOUR_SANCTUM_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost/api/v1/auth/me"
);

const headers = {
    "Authorization": "Bearer Bearer {YOUR_SANCTUM_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (500):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Server Error"
}
 

Request   

GET api/v1/auth/me

Headers

Authorization        

Example: Bearer Bearer {YOUR_SANCTUM_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

Déconnexion

requires authentication

Invalide le token Sanctum actuellement utilisé.

Example request:
curl --request POST \
    "http://localhost/api/v1/auth/logout" \
    --header "Authorization: Bearer Bearer {YOUR_SANCTUM_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost/api/v1/auth/logout"
);

const headers = {
    "Authorization": "Bearer Bearer {YOUR_SANCTUM_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Example response (500):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Server Error"
}
 

Request   

POST api/v1/auth/logout

Headers

Authorization        

Example: Bearer Bearer {YOUR_SANCTUM_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

Clubs

Créer un club

requires authentication

Example request:
curl --request POST \
    "http://localhost/api/v1/clubs" \
    --header "Authorization: Bearer Bearer {YOUR_SANCTUM_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"slug\": \"hafia-fc\",
    \"name\": \"Hafia FC\",
    \"acronym\": \"qxbajwbpilpmufinl\",
    \"founded_at\": \"2026-06-04T17:22:32\",
    \"city\": \"lwloauydlsmsjuryvojcy\",
    \"description\": \"Dolores dolorum amet iste laborum eius est dolor.\",
    \"logo\": \"http:\\/\\/reynolds.com\\/\",
    \"hero\": \"http:\\/\\/schmeler.com\\/a-quo-sed-fugit-facilis-perferendis-dolores-molestias\",
    \"primary_color\": \"iihfqcoynlazghdtq\",
    \"secondary_color\": \"tqxbajwbpilpmufin\",
    \"social\": {
        \"facebook\": \"https:\\/\\/www.kemmer.net\\/similique-accusantium-et-a-qui-ducimus\",
        \"youtube\": \"http:\\/\\/koelpin.info\\/omnis-cum-molestiae-vel-natus-ex\",
        \"instagram\": \"http:\\/\\/www.white.com\\/\"
    }
}"
const url = new URL(
    "http://localhost/api/v1/clubs"
);

const headers = {
    "Authorization": "Bearer Bearer {YOUR_SANCTUM_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "slug": "hafia-fc",
    "name": "Hafia FC",
    "acronym": "qxbajwbpilpmufinl",
    "founded_at": "2026-06-04T17:22:32",
    "city": "lwloauydlsmsjuryvojcy",
    "description": "Dolores dolorum amet iste laborum eius est dolor.",
    "logo": "http:\/\/reynolds.com\/",
    "hero": "http:\/\/schmeler.com\/a-quo-sed-fugit-facilis-perferendis-dolores-molestias",
    "primary_color": "iihfqcoynlazghdtq",
    "secondary_color": "tqxbajwbpilpmufin",
    "social": {
        "facebook": "https:\/\/www.kemmer.net\/similique-accusantium-et-a-qui-ducimus",
        "youtube": "http:\/\/koelpin.info\/omnis-cum-molestiae-vel-natus-ex",
        "instagram": "http:\/\/www.white.com\/"
    }
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (500):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Server Error"
}
 

Request   

POST api/v1/clubs

Headers

Authorization        

Example: Bearer Bearer {YOUR_SANCTUM_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

slug   string     

Slug unique du club. Example: hafia-fc

name   string     

Nom du club. Example: Hafia FC

acronym   string  optional    

Must not be greater than 20 characters. Example: qxbajwbpilpmufinl

founded_at   string  optional    

Must be a valid date. Example: 2026-06-04T17:22:32

city   string  optional    

Must not be greater than 255 characters. Example: lwloauydlsmsjuryvojcy

description   string  optional    

Example: Dolores dolorum amet iste laborum eius est dolor.

logo   string  optional    

Must be a valid URL. Example: http://reynolds.com/

hero   string  optional    

Must be a valid URL. Example: http://schmeler.com/a-quo-sed-fugit-facilis-perferendis-dolores-molestias

primary_color   string  optional    

Must not be greater than 20 characters. Example: iihfqcoynlazghdtq

secondary_color   string  optional    

Must not be greater than 20 characters. Example: tqxbajwbpilpmufin

social   object  optional    
facebook   string  optional    

Must be a valid URL. Example: https://www.kemmer.net/similique-accusantium-et-a-qui-ducimus

youtube   string  optional    

Must be a valid URL. Example: http://koelpin.info/omnis-cum-molestiae-vel-natus-ex

instagram   string  optional    

Must be a valid URL. Example: http://www.white.com/

Mettre à jour un club

requires authentication

Example request:
curl --request PUT \
    "http://localhost/api/v1/clubs/consequatur" \
    --header "Authorization: Bearer Bearer {YOUR_SANCTUM_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"slug\": \"hafia-fc\",
    \"name\": \"Hafia FC\",
    \"acronym\": \"qxbajwbpilpmufinl\",
    \"founded_at\": \"2026-06-04T17:22:36\",
    \"city\": \"lwloauydlsmsjuryvojcy\",
    \"description\": \"Dolores dolorum amet iste laborum eius est dolor.\",
    \"logo\": \"http:\\/\\/reynolds.com\\/\",
    \"hero\": \"http:\\/\\/schmeler.com\\/a-quo-sed-fugit-facilis-perferendis-dolores-molestias\",
    \"primary_color\": \"iihfqcoynlazghdtq\",
    \"secondary_color\": \"tqxbajwbpilpmufin\",
    \"social\": {
        \"facebook\": \"https:\\/\\/www.kemmer.net\\/similique-accusantium-et-a-qui-ducimus\",
        \"youtube\": \"http:\\/\\/koelpin.info\\/omnis-cum-molestiae-vel-natus-ex\",
        \"instagram\": \"http:\\/\\/www.white.com\\/\"
    }
}"
const url = new URL(
    "http://localhost/api/v1/clubs/consequatur"
);

const headers = {
    "Authorization": "Bearer Bearer {YOUR_SANCTUM_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "slug": "hafia-fc",
    "name": "Hafia FC",
    "acronym": "qxbajwbpilpmufinl",
    "founded_at": "2026-06-04T17:22:36",
    "city": "lwloauydlsmsjuryvojcy",
    "description": "Dolores dolorum amet iste laborum eius est dolor.",
    "logo": "http:\/\/reynolds.com\/",
    "hero": "http:\/\/schmeler.com\/a-quo-sed-fugit-facilis-perferendis-dolores-molestias",
    "primary_color": "iihfqcoynlazghdtq",
    "secondary_color": "tqxbajwbpilpmufin",
    "social": {
        "facebook": "https:\/\/www.kemmer.net\/similique-accusantium-et-a-qui-ducimus",
        "youtube": "http:\/\/koelpin.info\/omnis-cum-molestiae-vel-natus-ex",
        "instagram": "http:\/\/www.white.com\/"
    }
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (500):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Server Error"
}
 

Request   

PUT api/v1/clubs/{slug}

PATCH api/v1/clubs/{slug}

Headers

Authorization        

Example: Bearer Bearer {YOUR_SANCTUM_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

slug   string     

The slug of the club. Example: consequatur

club   string     

ID ou slug du club (binding Laravel). Example: hafia-fc

Body Parameters

slug   string  optional    

Slug unique du club. Example: hafia-fc

name   string  optional    

Nom du club. Example: Hafia FC

acronym   string  optional    

Must not be greater than 20 characters. Example: qxbajwbpilpmufinl

founded_at   string  optional    

Must be a valid date. Example: 2026-06-04T17:22:36

city   string  optional    

Must not be greater than 255 characters. Example: lwloauydlsmsjuryvojcy

description   string  optional    

Example: Dolores dolorum amet iste laborum eius est dolor.

logo   string  optional    

Must be a valid URL. Example: http://reynolds.com/

hero   string  optional    

Must be a valid URL. Example: http://schmeler.com/a-quo-sed-fugit-facilis-perferendis-dolores-molestias

primary_color   string  optional    

Must not be greater than 20 characters. Example: iihfqcoynlazghdtq

secondary_color   string  optional    

Must not be greater than 20 characters. Example: tqxbajwbpilpmufin

social   object  optional    
facebook   string  optional    

Must be a valid URL. Example: https://www.kemmer.net/similique-accusantium-et-a-qui-ducimus

youtube   string  optional    

Must be a valid URL. Example: http://koelpin.info/omnis-cum-molestiae-vel-natus-ex

instagram   string  optional    

Must be a valid URL. Example: http://www.white.com/

Supprimer un club

requires authentication

Example request:
curl --request DELETE \
    "http://localhost/api/v1/clubs/consequatur" \
    --header "Authorization: Bearer Bearer {YOUR_SANCTUM_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost/api/v1/clubs/consequatur"
);

const headers = {
    "Authorization": "Bearer Bearer {YOUR_SANCTUM_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Example response (500):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Server Error"
}
 

Request   

DELETE api/v1/clubs/{slug}

Headers

Authorization        

Example: Bearer Bearer {YOUR_SANCTUM_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

slug   string     

The slug of the club. Example: consequatur

club   string     

ID ou slug du club (binding Laravel). Example: hafia-fc

Liste des clubs

Retourne la liste paginée des clubs.

Example request:
curl --request GET \
    --get "http://localhost/api/v1/clubs?per_page=15&include=teams%2Cmedia" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost/api/v1/clubs"
);

const params = {
    "per_page": "15",
    "include": "teams,media",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (500):

Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 59
access-control-allow-origin: *
 

{
    "message": "Server Error"
}
 

Request   

GET api/v1/clubs

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Query Parameters

per_page   integer  optional    

Nombre d'éléments par page. Example: 15

include   string  optional    

Relations à inclure (teams, teams.players, media). Example: teams,media

Détail d'un club

Example request:
curl --request GET \
    --get "http://localhost/api/v1/clubs/consequatur?include=teams.players" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost/api/v1/clubs/consequatur"
);

const params = {
    "include": "teams.players",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (500):

Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 58
access-control-allow-origin: *
 

{
    "message": "Server Error"
}
 

Request   

GET api/v1/clubs/{slug}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

slug   string     

The slug of the club. Example: consequatur

club   string     

ID ou slug du club (binding Laravel). Example: hafia-fc

Query Parameters

include   string  optional    

Relations à inclure (teams, teams.players, media). Example: teams.players

Joueurs par categorie

Example request:
curl --request GET \
    --get "http://localhost/api/v1/clubs/consequatur/players/midfielder" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost/api/v1/clubs/consequatur/players/midfielder"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (500):

Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 57
access-control-allow-origin: *
 

{
    "message": "Server Error"
}
 

Request   

GET api/v1/clubs/{club_slug}/players/{category}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

club_slug   string     

The slug of the club. Example: consequatur

category   string     

Catégorie de joueurs (goalkeeper, defender, midfielder, forward). Example: midfielder

club   string     

ID ou slug du club (binding Laravel). Example: hafia-fc

Endpoints

POST api/v1/news

Example request:
curl --request POST \
    "http://localhost/api/v1/news" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"club_id\": 17,
    \"slug\": \"mqeopfuudtdsufvyvddqa\",
    \"title\": \"mniihfqcoynlazghdtqtq\",
    \"excerpt\": \"consequatur\",
    \"content\": \"consequatur\",
    \"image\": \"mqeopfuudtdsufvyvddqa\",
    \"category\": \"mniihfqcoynlazghdtqtq\",
    \"published_at\": \"2026-06-04T17:22:53\",
    \"is_published\": false
}"
const url = new URL(
    "http://localhost/api/v1/news"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "club_id": 17,
    "slug": "mqeopfuudtdsufvyvddqa",
    "title": "mniihfqcoynlazghdtqtq",
    "excerpt": "consequatur",
    "content": "consequatur",
    "image": "mqeopfuudtdsufvyvddqa",
    "category": "mniihfqcoynlazghdtqtq",
    "published_at": "2026-06-04T17:22:53",
    "is_published": false
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request   

POST api/v1/news

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

club_id   integer     

The id of an existing record in the clubs table. Example: 17

slug   string     

Must not be greater than 255 characters. Example: mqeopfuudtdsufvyvddqa

title   string     

Must not be greater than 255 characters. Example: mniihfqcoynlazghdtqtq

excerpt   string  optional    

Example: consequatur

content   string     

Example: consequatur

image   string  optional    

Must not be greater than 255 characters. Example: mqeopfuudtdsufvyvddqa

category   string     

Must not be greater than 100 characters. Example: mniihfqcoynlazghdtqtq

published_at   string  optional    

Must be a valid date. Example: 2026-06-04T17:22:53

is_published   boolean  optional    

Example: false

PUT api/v1/news/{id}

Example request:
curl --request PUT \
    "http://localhost/api/v1/news/17" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"club_id\": 17,
    \"slug\": \"mqeopfuudtdsufvyvddqa\",
    \"title\": \"mniihfqcoynlazghdtqtq\",
    \"excerpt\": \"consequatur\",
    \"content\": \"consequatur\",
    \"image\": \"mqeopfuudtdsufvyvddqa\",
    \"category\": \"mniihfqcoynlazghdtqtq\",
    \"published_at\": \"2026-06-04T17:22:55\",
    \"is_published\": false
}"
const url = new URL(
    "http://localhost/api/v1/news/17"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "club_id": 17,
    "slug": "mqeopfuudtdsufvyvddqa",
    "title": "mniihfqcoynlazghdtqtq",
    "excerpt": "consequatur",
    "content": "consequatur",
    "image": "mqeopfuudtdsufvyvddqa",
    "category": "mniihfqcoynlazghdtqtq",
    "published_at": "2026-06-04T17:22:55",
    "is_published": false
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request   

PUT api/v1/news/{id}

PATCH api/v1/news/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   integer     

The ID of the news. Example: 17

Body Parameters

club_id   integer  optional    

The id of an existing record in the clubs table. Example: 17

slug   string  optional    

Must not be greater than 255 characters. Example: mqeopfuudtdsufvyvddqa

title   string  optional    

Must not be greater than 255 characters. Example: mniihfqcoynlazghdtqtq

excerpt   string  optional    

Example: consequatur

content   string  optional    

Example: consequatur

image   string  optional    

Must not be greater than 255 characters. Example: mqeopfuudtdsufvyvddqa

category   string  optional    

Must not be greater than 100 characters. Example: mniihfqcoynlazghdtqtq

published_at   string  optional    

Must be a valid date. Example: 2026-06-04T17:22:55

is_published   boolean  optional    

Example: false

DELETE api/v1/news/{id}

Example request:
curl --request DELETE \
    "http://localhost/api/v1/news/17" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost/api/v1/news/17"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request   

DELETE api/v1/news/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   integer     

The ID of the news. Example: 17

POST api/v1/matches

Example request:
curl --request POST \
    "http://localhost/api/v1/matches" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"club_id\": 17,
    \"category\": \"mqeopfuudtdsufvyvddqa\",
    \"opponent\": \"mniihfqcoynlazghdtqtq\",
    \"competition\": \"xbajwbpilpmufinllwloa\",
    \"match_date\": \"2026-06-04T17:22:58\",
    \"match_time\": \"uydlsmsjuryvojcyb\",
    \"day_label\": \"zvrbyickznkygloig\",
    \"venue\": \"mkwxphlvazjrcnfbaqywu\",
    \"stadium\": \"xhgjjmzuxjubqouzswiwx\",
    \"is_home\": true,
    \"status\": \"completed\",
    \"club_score\": 11,
    \"opponent_score\": 9
}"
const url = new URL(
    "http://localhost/api/v1/matches"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "club_id": 17,
    "category": "mqeopfuudtdsufvyvddqa",
    "opponent": "mniihfqcoynlazghdtqtq",
    "competition": "xbajwbpilpmufinllwloa",
    "match_date": "2026-06-04T17:22:58",
    "match_time": "uydlsmsjuryvojcyb",
    "day_label": "zvrbyickznkygloig",
    "venue": "mkwxphlvazjrcnfbaqywu",
    "stadium": "xhgjjmzuxjubqouzswiwx",
    "is_home": true,
    "status": "completed",
    "club_score": 11,
    "opponent_score": 9
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request   

POST api/v1/matches

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

club_id   integer     

The id of an existing record in the clubs table. Example: 17

category   string     

Must not be greater than 100 characters. Example: mqeopfuudtdsufvyvddqa

opponent   string     

Must not be greater than 255 characters. Example: mniihfqcoynlazghdtqtq

competition   string     

Must not be greater than 255 characters. Example: xbajwbpilpmufinllwloa

match_date   string     

Must be a valid date. Example: 2026-06-04T17:22:58

match_time   string  optional    

Must not be greater than 20 characters. Example: uydlsmsjuryvojcyb

day_label   string  optional    

Must not be greater than 20 characters. Example: zvrbyickznkygloig

venue   string     

Must not be greater than 50 characters. Example: mkwxphlvazjrcnfbaqywu

stadium   string  optional    

Must not be greater than 255 characters. Example: xhgjjmzuxjubqouzswiwx

is_home   boolean  optional    

Example: true

status   string     

Example: completed

Must be one of:
  • scheduled
  • completed
club_score   integer  optional    

Must be at least 0. Must not be greater than 99. Example: 11

opponent_score   integer  optional    

Must be at least 0. Must not be greater than 99. Example: 9

PUT api/v1/matches/{id}

Example request:
curl --request PUT \
    "http://localhost/api/v1/matches/17" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"club_id\": 17,
    \"category\": \"mqeopfuudtdsufvyvddqa\",
    \"opponent\": \"mniihfqcoynlazghdtqtq\",
    \"competition\": \"xbajwbpilpmufinllwloa\",
    \"match_date\": \"2026-06-04T17:23:00\",
    \"match_time\": \"uydlsmsjuryvojcyb\",
    \"day_label\": \"zvrbyickznkygloig\",
    \"venue\": \"mkwxphlvazjrcnfbaqywu\",
    \"stadium\": \"xhgjjmzuxjubqouzswiwx\",
    \"is_home\": true,
    \"status\": \"completed\",
    \"club_score\": 11,
    \"opponent_score\": 9
}"
const url = new URL(
    "http://localhost/api/v1/matches/17"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "club_id": 17,
    "category": "mqeopfuudtdsufvyvddqa",
    "opponent": "mniihfqcoynlazghdtqtq",
    "competition": "xbajwbpilpmufinllwloa",
    "match_date": "2026-06-04T17:23:00",
    "match_time": "uydlsmsjuryvojcyb",
    "day_label": "zvrbyickznkygloig",
    "venue": "mkwxphlvazjrcnfbaqywu",
    "stadium": "xhgjjmzuxjubqouzswiwx",
    "is_home": true,
    "status": "completed",
    "club_score": 11,
    "opponent_score": 9
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request   

PUT api/v1/matches/{id}

PATCH api/v1/matches/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   integer     

The ID of the match. Example: 17

Body Parameters

club_id   integer  optional    

The id of an existing record in the clubs table. Example: 17

category   string  optional    

Must not be greater than 100 characters. Example: mqeopfuudtdsufvyvddqa

opponent   string  optional    

Must not be greater than 255 characters. Example: mniihfqcoynlazghdtqtq

competition   string  optional    

Must not be greater than 255 characters. Example: xbajwbpilpmufinllwloa

match_date   string  optional    

Must be a valid date. Example: 2026-06-04T17:23:00

match_time   string  optional    

Must not be greater than 20 characters. Example: uydlsmsjuryvojcyb

day_label   string  optional    

Must not be greater than 20 characters. Example: zvrbyickznkygloig

venue   string  optional    

Must not be greater than 50 characters. Example: mkwxphlvazjrcnfbaqywu

stadium   string  optional    

Must not be greater than 255 characters. Example: xhgjjmzuxjubqouzswiwx

is_home   boolean  optional    

Example: true

status   string  optional    

Example: completed

Must be one of:
  • scheduled
  • completed
club_score   integer  optional    

Must be at least 0. Must not be greater than 99. Example: 11

opponent_score   integer  optional    

Must be at least 0. Must not be greater than 99. Example: 9

DELETE api/v1/matches/{id}

Example request:
curl --request DELETE \
    "http://localhost/api/v1/matches/17" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost/api/v1/matches/17"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request   

DELETE api/v1/matches/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   integer     

The ID of the match. Example: 17

POST api/v1/standings

Example request:
curl --request POST \
    "http://localhost/api/v1/standings" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"club_id\": 17,
    \"competition\": \"mqeopfuudtdsufvyvddqa\",
    \"category\": \"mniihfqcoynlazghdtqtq\",
    \"season\": \"xbajwbpilpmufinll\",
    \"position\": 79,
    \"team_name\": \"loauydlsmsjuryvojcybz\",
    \"played\": 17,
    \"wins\": 17,
    \"draws\": 17,
    \"losses\": 17,
    \"goals_for\": 17,
    \"goals_against\": 17,
    \"points\": 17,
    \"is_club\": false
}"
const url = new URL(
    "http://localhost/api/v1/standings"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "club_id": 17,
    "competition": "mqeopfuudtdsufvyvddqa",
    "category": "mniihfqcoynlazghdtqtq",
    "season": "xbajwbpilpmufinll",
    "position": 79,
    "team_name": "loauydlsmsjuryvojcybz",
    "played": 17,
    "wins": 17,
    "draws": 17,
    "losses": 17,
    "goals_for": 17,
    "goals_against": 17,
    "points": 17,
    "is_club": false
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request   

POST api/v1/standings

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

club_id   integer     

The id of an existing record in the clubs table. Example: 17

competition   string     

Must not be greater than 255 characters. Example: mqeopfuudtdsufvyvddqa

category   string     

Must not be greater than 100 characters. Example: mniihfqcoynlazghdtqtq

season   string     

Must not be greater than 20 characters. Example: xbajwbpilpmufinll

position   integer     

Must be at least 1. Example: 79

team_name   string     

Must not be greater than 255 characters. Example: loauydlsmsjuryvojcybz

played   integer  optional    

Example: 17

wins   integer  optional    

Example: 17

draws   integer  optional    

Example: 17

losses   integer  optional    

Example: 17

goals_for   integer  optional    

Example: 17

goals_against   integer  optional    

Example: 17

points   integer     

Example: 17

is_club   boolean  optional    

Example: false

PUT api/v1/standings/{id}

Example request:
curl --request PUT \
    "http://localhost/api/v1/standings/17" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"club_id\": 17,
    \"competition\": \"mqeopfuudtdsufvyvddqa\",
    \"category\": \"mniihfqcoynlazghdtqtq\",
    \"season\": \"xbajwbpilpmufinll\",
    \"position\": 79,
    \"team_name\": \"loauydlsmsjuryvojcybz\",
    \"played\": 17,
    \"wins\": 17,
    \"draws\": 17,
    \"losses\": 17,
    \"goals_for\": 17,
    \"goals_against\": 17,
    \"points\": 17,
    \"is_club\": false
}"
const url = new URL(
    "http://localhost/api/v1/standings/17"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "club_id": 17,
    "competition": "mqeopfuudtdsufvyvddqa",
    "category": "mniihfqcoynlazghdtqtq",
    "season": "xbajwbpilpmufinll",
    "position": 79,
    "team_name": "loauydlsmsjuryvojcybz",
    "played": 17,
    "wins": 17,
    "draws": 17,
    "losses": 17,
    "goals_for": 17,
    "goals_against": 17,
    "points": 17,
    "is_club": false
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request   

PUT api/v1/standings/{id}

PATCH api/v1/standings/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   integer     

The ID of the standing. Example: 17

Body Parameters

club_id   integer  optional    

The id of an existing record in the clubs table. Example: 17

competition   string  optional    

Must not be greater than 255 characters. Example: mqeopfuudtdsufvyvddqa

category   string  optional    

Must not be greater than 100 characters. Example: mniihfqcoynlazghdtqtq

season   string  optional    

Must not be greater than 20 characters. Example: xbajwbpilpmufinll

position   integer  optional    

Must be at least 1. Example: 79

team_name   string  optional    

Must not be greater than 255 characters. Example: loauydlsmsjuryvojcybz

played   integer  optional    

Example: 17

wins   integer  optional    

Example: 17

draws   integer  optional    

Example: 17

losses   integer  optional    

Example: 17

goals_for   integer  optional    

Example: 17

goals_against   integer  optional    

Example: 17

points   integer  optional    

Example: 17

is_club   boolean  optional    

Example: false

DELETE api/v1/standings/{id}

Example request:
curl --request DELETE \
    "http://localhost/api/v1/standings/17" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost/api/v1/standings/17"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request   

DELETE api/v1/standings/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   integer     

The ID of the standing. Example: 17

POST api/v1/products

Example request:
curl --request POST \
    "http://localhost/api/v1/products" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"club_id\": 17,
    \"slug\": \"mqeopfuudtdsufvyvddqa\",
    \"name_fr\": \"mniihfqcoynlazghdtqtq\",
    \"name_en\": \"xbajwbpilpmufinllwloa\",
    \"category\": \"uydlsmsjuryvojcybzvrb\",
    \"price\": \"yickznkygloigmkwxphlv\",
    \"image\": \"azjrcnfbaqywuxhgjjmzu\",
    \"is_new\": true,
    \"is_sale\": false,
    \"old_price\": \"ubqouzswiwxtrkimfcatb\",
    \"rating\": 5,
    \"reviews\": 66,
    \"is_active\": false
}"
const url = new URL(
    "http://localhost/api/v1/products"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "club_id": 17,
    "slug": "mqeopfuudtdsufvyvddqa",
    "name_fr": "mniihfqcoynlazghdtqtq",
    "name_en": "xbajwbpilpmufinllwloa",
    "category": "uydlsmsjuryvojcybzvrb",
    "price": "yickznkygloigmkwxphlv",
    "image": "azjrcnfbaqywuxhgjjmzu",
    "is_new": true,
    "is_sale": false,
    "old_price": "ubqouzswiwxtrkimfcatb",
    "rating": 5,
    "reviews": 66,
    "is_active": false
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request   

POST api/v1/products

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

club_id   integer     

The id of an existing record in the clubs table. Example: 17

slug   string     

Must not be greater than 255 characters. Example: mqeopfuudtdsufvyvddqa

name_fr   string     

Must not be greater than 255 characters. Example: mniihfqcoynlazghdtqtq

name_en   string     

Must not be greater than 255 characters. Example: xbajwbpilpmufinllwloa

category   string     

Must not be greater than 100 characters. Example: uydlsmsjuryvojcybzvrb

price   string     

Must not be greater than 50 characters. Example: yickznkygloigmkwxphlv

image   string     

Must not be greater than 255 characters. Example: azjrcnfbaqywuxhgjjmzu

is_new   boolean  optional    

Example: true

is_sale   boolean  optional    

Example: false

old_price   string  optional    

Must not be greater than 50 characters. Example: ubqouzswiwxtrkimfcatb

rating   integer  optional    

Must be at least 0. Must not be greater than 5. Example: 5

reviews   integer  optional    

Must be at least 0. Example: 66

is_active   boolean  optional    

Example: false

PUT api/v1/products/{id}

Example request:
curl --request PUT \
    "http://localhost/api/v1/products/17" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"club_id\": 17,
    \"slug\": \"mqeopfuudtdsufvyvddqa\",
    \"name_fr\": \"mniihfqcoynlazghdtqtq\",
    \"name_en\": \"xbajwbpilpmufinllwloa\",
    \"category\": \"uydlsmsjuryvojcybzvrb\",
    \"price\": \"yickznkygloigmkwxphlv\",
    \"image\": \"azjrcnfbaqywuxhgjjmzu\",
    \"is_new\": true,
    \"is_sale\": false,
    \"old_price\": \"ubqouzswiwxtrkimfcatb\",
    \"rating\": 5,
    \"reviews\": 66,
    \"is_active\": false
}"
const url = new URL(
    "http://localhost/api/v1/products/17"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "club_id": 17,
    "slug": "mqeopfuudtdsufvyvddqa",
    "name_fr": "mniihfqcoynlazghdtqtq",
    "name_en": "xbajwbpilpmufinllwloa",
    "category": "uydlsmsjuryvojcybzvrb",
    "price": "yickznkygloigmkwxphlv",
    "image": "azjrcnfbaqywuxhgjjmzu",
    "is_new": true,
    "is_sale": false,
    "old_price": "ubqouzswiwxtrkimfcatb",
    "rating": 5,
    "reviews": 66,
    "is_active": false
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request   

PUT api/v1/products/{id}

PATCH api/v1/products/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   integer     

The ID of the product. Example: 17

Body Parameters

club_id   integer  optional    

The id of an existing record in the clubs table. Example: 17

slug   string  optional    

Must not be greater than 255 characters. Example: mqeopfuudtdsufvyvddqa

name_fr   string  optional    

Must not be greater than 255 characters. Example: mniihfqcoynlazghdtqtq

name_en   string  optional    

Must not be greater than 255 characters. Example: xbajwbpilpmufinllwloa

category   string  optional    

Must not be greater than 100 characters. Example: uydlsmsjuryvojcybzvrb

price   string  optional    

Must not be greater than 50 characters. Example: yickznkygloigmkwxphlv

image   string  optional    

Must not be greater than 255 characters. Example: azjrcnfbaqywuxhgjjmzu

is_new   boolean  optional    

Example: true

is_sale   boolean  optional    

Example: false

old_price   string  optional    

Must not be greater than 50 characters. Example: ubqouzswiwxtrkimfcatb

rating   integer  optional    

Must be at least 0. Must not be greater than 5. Example: 5

reviews   integer  optional    

Must be at least 0. Example: 66

is_active   boolean  optional    

Example: false

DELETE api/v1/products/{id}

Example request:
curl --request DELETE \
    "http://localhost/api/v1/products/17" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost/api/v1/products/17"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request   

DELETE api/v1/products/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   integer     

The ID of the product. Example: 17

POST api/v1/media

Example request:
curl --request POST \
    "http://localhost/api/v1/media" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"mediable_type\": \"player\",
    \"mediable_id\": 45,
    \"type\": \"qeopfuudtdsufvyvddqam\",
    \"title\": \"niihfqcoynlazghdtqtqx\",
    \"url\": \"http:\\/\\/www.adams.com\\/\"
}"
const url = new URL(
    "http://localhost/api/v1/media"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "mediable_type": "player",
    "mediable_id": 45,
    "type": "qeopfuudtdsufvyvddqam",
    "title": "niihfqcoynlazghdtqtqx",
    "url": "http:\/\/www.adams.com\/"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request   

POST api/v1/media

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

mediable_type   string     

Example: player

Must be one of:
  • club
  • player
mediable_id   integer     

Must be at least 1. Example: 45

type   string  optional    

Must not be greater than 30 characters. Example: qeopfuudtdsufvyvddqam

title   string  optional    

Must not be greater than 255 characters. Example: niihfqcoynlazghdtqtqx

url   string     

Must be a valid URL. Example: http://www.adams.com/

meta   object  optional    

DELETE api/v1/media/{media_id}

Example request:
curl --request DELETE \
    "http://localhost/api/v1/media/17" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost/api/v1/media/17"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request   

DELETE api/v1/media/{media_id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

media_id   integer     

The ID of the media. Example: 17

GET api/v1/clubs/{club_slug}/actualites

Example request:
curl --request GET \
    --get "http://localhost/api/v1/clubs/consequatur/actualites" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost/api/v1/clubs/consequatur/actualites"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (500):

Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 56
access-control-allow-origin: *
 

{
    "message": "Server Error"
}
 

Request   

GET api/v1/clubs/{club_slug}/actualites

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

club_slug   string     

The slug of the club. Example: consequatur

GET api/v1/clubs/{club_slug}/calendrier

Example request:
curl --request GET \
    --get "http://localhost/api/v1/clubs/consequatur/calendrier" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost/api/v1/clubs/consequatur/calendrier"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (500):

Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 55
access-control-allow-origin: *
 

{
    "message": "Server Error"
}
 

Request   

GET api/v1/clubs/{club_slug}/calendrier

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

club_slug   string     

The slug of the club. Example: consequatur

GET api/v1/clubs/{club_slug}/resultats

Example request:
curl --request GET \
    --get "http://localhost/api/v1/clubs/consequatur/resultats" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost/api/v1/clubs/consequatur/resultats"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (500):

Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 54
access-control-allow-origin: *
 

{
    "message": "Server Error"
}
 

Request   

GET api/v1/clubs/{club_slug}/resultats

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

club_slug   string     

The slug of the club. Example: consequatur

GET api/v1/clubs/{club_slug}/classement

Example request:
curl --request GET \
    --get "http://localhost/api/v1/clubs/consequatur/classement" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost/api/v1/clubs/consequatur/classement"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (500):

Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 53
access-control-allow-origin: *
 

{
    "message": "Server Error"
}
 

Request   

GET api/v1/clubs/{club_slug}/classement

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

club_slug   string     

The slug of the club. Example: consequatur

GET api/v1/clubs/{club_slug}/boutique

Example request:
curl --request GET \
    --get "http://localhost/api/v1/clubs/consequatur/boutique" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost/api/v1/clubs/consequatur/boutique"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (500):

Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 52
access-control-allow-origin: *
 

{
    "message": "Server Error"
}
 

Request   

GET api/v1/clubs/{club_slug}/boutique

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

club_slug   string     

The slug of the club. Example: consequatur

GET api/v1/news

Example request:
curl --request GET \
    --get "http://localhost/api/v1/news" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost/api/v1/news"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (500):

Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 49
access-control-allow-origin: *
 

{
    "message": "Server Error"
}
 

Request   

GET api/v1/news

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

GET api/v1/news/{id}

Example request:
curl --request GET \
    --get "http://localhost/api/v1/news/17" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost/api/v1/news/17"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (500):

Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 48
access-control-allow-origin: *
 

{
    "message": "Server Error"
}
 

Request   

GET api/v1/news/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   integer     

The ID of the news. Example: 17

GET api/v1/matches

Example request:
curl --request GET \
    --get "http://localhost/api/v1/matches" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost/api/v1/matches"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (500):

Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 47
access-control-allow-origin: *
 

{
    "message": "Server Error"
}
 

Request   

GET api/v1/matches

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

GET api/v1/matches/{id}

Example request:
curl --request GET \
    --get "http://localhost/api/v1/matches/17" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost/api/v1/matches/17"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (500):

Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 46
access-control-allow-origin: *
 

{
    "message": "Server Error"
}
 

Request   

GET api/v1/matches/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   integer     

The ID of the match. Example: 17

GET api/v1/standings

Example request:
curl --request GET \
    --get "http://localhost/api/v1/standings" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost/api/v1/standings"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (500):

Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 45
access-control-allow-origin: *
 

{
    "message": "Server Error"
}
 

Request   

GET api/v1/standings

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

GET api/v1/standings/{id}

Example request:
curl --request GET \
    --get "http://localhost/api/v1/standings/17" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost/api/v1/standings/17"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (500):

Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 59
access-control-allow-origin: *
 

{
    "message": "Server Error"
}
 

Request   

GET api/v1/standings/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   integer     

The ID of the standing. Example: 17

GET api/v1/products

Example request:
curl --request GET \
    --get "http://localhost/api/v1/products" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost/api/v1/products"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (500):

Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 58
access-control-allow-origin: *
 

{
    "message": "Server Error"
}
 

Request   

GET api/v1/products

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

GET api/v1/products/{id}

Example request:
curl --request GET \
    --get "http://localhost/api/v1/products/17" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost/api/v1/products/17"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (500):

Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 57
access-control-allow-origin: *
 

{
    "message": "Server Error"
}
 

Request   

GET api/v1/products/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   integer     

The ID of the product. Example: 17

GET api/v1/media

Example request:
curl --request GET \
    --get "http://localhost/api/v1/media" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost/api/v1/media"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (422):

Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 56
access-control-allow-origin: *
 

{
    "message": "Les paramètres mediable_type et mediable_id sont requis."
}
 

Request   

GET api/v1/media

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Joueurs

Créer un joueur

requires authentication

Example request:
curl --request POST \
    "http://localhost/api/v1/players" \
    --header "Authorization: Bearer Bearer {YOUR_SANCTUM_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"team_id\": 3,
    \"number\": 13,
    \"first_name\": \"qeopfuudtdsufvyvddqam\",
    \"last_name\": \"niihfqcoynlazghdtqtqx\",
    \"date_of_birth\": \"2026-06-04T17:22:43\",
    \"position\": \"midfielder\",
    \"height\": \"ydlsmsjuryvojcybz\",
    \"photo\": \"http:\\/\\/pollich.com\\/quia-dicta-in-aut-provident-qui-a-voluptatem-dignissimos.html\",
    \"name\": \"Naby Keita\"
}"
const url = new URL(
    "http://localhost/api/v1/players"
);

const headers = {
    "Authorization": "Bearer Bearer {YOUR_SANCTUM_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "team_id": 3,
    "number": 13,
    "first_name": "qeopfuudtdsufvyvddqam",
    "last_name": "niihfqcoynlazghdtqtqx",
    "date_of_birth": "2026-06-04T17:22:43",
    "position": "midfielder",
    "height": "ydlsmsjuryvojcybz",
    "photo": "http:\/\/pollich.com\/quia-dicta-in-aut-provident-qui-a-voluptatem-dignissimos.html",
    "name": "Naby Keita"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (500):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Server Error"
}
 

Request   

POST api/v1/players

Headers

Authorization        

Example: Bearer Bearer {YOUR_SANCTUM_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

team_id   integer     

ID de l'équipe du joueur. Example: 3

number   integer  optional    

Must be at least 1. Must not be greater than 99. Example: 13

first_name   string     

Must not be greater than 255 characters. Example: qeopfuudtdsufvyvddqam

last_name   string     

Must not be greater than 255 characters. Example: niihfqcoynlazghdtqtqx

date_of_birth   string  optional    

Must be a valid date. Example: 2026-06-04T17:22:43

position   string     

Poste du joueur. Example: midfielder

height   string  optional    

Must not be greater than 20 characters. Example: ydlsmsjuryvojcybz

photo   string  optional    

Must be a valid URL. Example: http://pollich.com/quia-dicta-in-aut-provident-qui-a-voluptatem-dignissimos.html

name   string     

Nom complet du joueur. Example: Naby Keita

Mettre à jour un joueur

requires authentication

Example request:
curl --request PUT \
    "http://localhost/api/v1/players/17" \
    --header "Authorization: Bearer Bearer {YOUR_SANCTUM_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"team_id\": 3,
    \"number\": 13,
    \"first_name\": \"qeopfuudtdsufvyvddqam\",
    \"last_name\": \"niihfqcoynlazghdtqtqx\",
    \"date_of_birth\": \"2026-06-04T17:22:47\",
    \"position\": \"midfielder\",
    \"height\": \"ydlsmsjuryvojcybz\",
    \"photo\": \"http:\\/\\/pollich.com\\/quia-dicta-in-aut-provident-qui-a-voluptatem-dignissimos.html\",
    \"name\": \"Naby Keita\"
}"
const url = new URL(
    "http://localhost/api/v1/players/17"
);

const headers = {
    "Authorization": "Bearer Bearer {YOUR_SANCTUM_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "team_id": 3,
    "number": 13,
    "first_name": "qeopfuudtdsufvyvddqam",
    "last_name": "niihfqcoynlazghdtqtqx",
    "date_of_birth": "2026-06-04T17:22:47",
    "position": "midfielder",
    "height": "ydlsmsjuryvojcybz",
    "photo": "http:\/\/pollich.com\/quia-dicta-in-aut-provident-qui-a-voluptatem-dignissimos.html",
    "name": "Naby Keita"
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (500):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Server Error"
}
 

Request   

PUT api/v1/players/{id}

PATCH api/v1/players/{id}

Headers

Authorization        

Example: Bearer Bearer {YOUR_SANCTUM_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   integer     

The ID of the player. Example: 17

player   integer     

ID du joueur. Example: 10

Body Parameters

team_id   integer  optional    

ID de l'équipe du joueur. Example: 3

number   integer  optional    

Must be at least 1. Must not be greater than 99. Example: 13

first_name   string  optional    

Must not be greater than 255 characters. Example: qeopfuudtdsufvyvddqam

last_name   string  optional    

Must not be greater than 255 characters. Example: niihfqcoynlazghdtqtqx

date_of_birth   string  optional    

Must be a valid date. Example: 2026-06-04T17:22:47

position   string  optional    

Poste du joueur. Example: midfielder

height   string  optional    

Must not be greater than 20 characters. Example: ydlsmsjuryvojcybz

photo   string  optional    

Must be a valid URL. Example: http://pollich.com/quia-dicta-in-aut-provident-qui-a-voluptatem-dignissimos.html

name   string  optional    

Nom complet du joueur. Example: Naby Keita

Supprimer un joueur

requires authentication

Example request:
curl --request DELETE \
    "http://localhost/api/v1/players/17" \
    --header "Authorization: Bearer Bearer {YOUR_SANCTUM_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost/api/v1/players/17"
);

const headers = {
    "Authorization": "Bearer Bearer {YOUR_SANCTUM_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Example response (500):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Server Error"
}
 

Request   

DELETE api/v1/players/{id}

Headers

Authorization        

Example: Bearer Bearer {YOUR_SANCTUM_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   integer     

The ID of the player. Example: 17

player   integer     

ID du joueur. Example: 10

Liste des joueurs

Retourne la liste paginée des joueurs avec filtres optionnels.

Example request:
curl --request GET \
    --get "http://localhost/api/v1/players?per_page=15&team_id=2&club_slug=hafia-fc" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost/api/v1/players"
);

const params = {
    "per_page": "15",
    "team_id": "2",
    "club_slug": "hafia-fc",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (500):

Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 51
access-control-allow-origin: *
 

{
    "message": "Server Error"
}
 

Request   

GET api/v1/players

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Query Parameters

per_page   integer  optional    

Nombre d'éléments par page. Example: 15

team_id   integer  optional    

Filtrer par équipe. Example: 2

club_slug   string  optional    

Filtrer par club (slug). Example: hafia-fc

Détail d'un joueur

Example request:
curl --request GET \
    --get "http://localhost/api/v1/players/17" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost/api/v1/players/17"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (500):

Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 50
access-control-allow-origin: *
 

{
    "message": "Server Error"
}
 

Request   

GET api/v1/players/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   integer     

The ID of the player. Example: 17

player   integer     

ID du joueur. Example: 10