{"id":217485,"date":"2026-08-22T09:19:20","date_gmt":"2026-08-22T07:19:20","guid":{"rendered":"https:\/\/fivemx.com\/developers\/"},"modified":"2026-08-22T09:19:20","modified_gmt":"2026-08-22T07:19:20","slug":"developpeurs","status":"publish","type":"page","link":"https:\/\/fivemx.com\/fr\/developpeurs\/","title":{"rendered":"FiveMX Portail d\u00e9veloppeur"},"content":{"rendered":"<p class=\"has-large-font-size wp-block-paragraph\">FiveMX publie un HTTP API en lecture seule sur son catalogue de scripts FiveM, une description OpenAPI 3.1 de celui-ci, et un outil en ligne de commande qui interagit avec. Tout sur cette page est public, ne n\u00e9cessite aucune cl\u00e9 et peut \u00eatre utilis\u00e9 par une personne, un script ou un agent.<\/p><h2 class=\"wp-block-heading\">Le catalogue FiveMX API<\/h2><p class=\"wp-block-paragraph\">Un espace de noms, quatre points d'acc\u00e8s GET, JSON uniquement. Il expose les m\u00eames 1.675 produits publi\u00e9s que la boutique, avec les prix dans la devise de base du magasin, le stock, la cat\u00e9gorie et les tags du framework.<\/p><h3 class=\"wp-block-heading\">URL de base<\/h3><pre data-no-translation=\"\" class=\"wp-block-code\"><code data-no-translation=\"\">https:\/\/fivemx.com\/wp-json\/fivemx\/v1<\/code><\/pre><h3 class=\"wp-block-heading\">Points d'acc\u00e8s<\/h3><ul class=\"wp-block-list\"><li><code data-no-translation=\"\">GET \/catalog<\/code> \u2014 index avec les d\u00e9comptes, la devise et les liens vers tout le reste sur cette page<\/li><li><code data-no-translation=\"\">GET \/catalog\/categories<\/code> \u2014 toutes les 46 cat\u00e9gories avec le nombre de produits<\/li><li><code data-no-translation=\"\">GET \/catalog\/products<\/code> \u2014 une page de produits, filtrable par <code data-no-translation=\"\">category<\/code> et <code data-no-translation=\"\">framework<\/code>, jusqu'\u00e0 50 par page<\/li><li><code data-no-translation=\"\">GET \/catalog\/products\/{slug}<\/code> \u2014 un produit unique par son slug anglais<\/li><\/ul><h3 class=\"wp-block-heading\">Authentification et \u00e9critures<\/h3><p class=\"wp-block-paragraph\">Il n'y en a pas, et il n'y en a pas. Chaque point de terminaison est un GET anonyme. Rien ici ne cr\u00e9e une commande, ne modifie un prix ou ne touche un compte, il n'y a donc pas de cl\u00e9 \u00e0 divulguer et pas d'\u00e9tat \u00e0 endommager par une erreur.<\/p><h2 class=\"wp-block-heading\">Sp\u00e9cification OpenAPI<\/h2><p class=\"wp-block-paragraph\">La description compl\u00e8te lisible par machine, g\u00e9n\u00e9r\u00e9e \u00e0 partir du m\u00eame contrat que celui contre lequel le API est impl\u00e9ment\u00e9, de sorte que les deux ne peuvent pas d\u00e9river :<\/p><ul class=\"wp-block-list\"><li><code data-no-translation=\"\">https:\/\/fivemx.com\/openapi.json<\/code><\/li><li><code data-no-translation=\"\">https:\/\/fivemx.com\/.well-known\/openapi.json<\/code> \u2014 octet par octet identique, pour les clients qui regardent d'abord l\u00e0-bas<\/li><li><code data-no-translation=\"\">https:\/\/fivemx.com\/.well-known\/api-catalog<\/code> \u2014 un jeu de liens RFC 9727 pointant vers les deux<\/li><\/ul><p class=\"wp-block-paragraph\">La page d'accueil le mentionne \u00e9galement avec un <code data-no-translation=\"\">rel=\"service-desc\"<\/code> lien, et <code data-no-translation=\"\">https:\/\/fivemx.com\/llms.txt<\/code> d\u00e9crit le site pour les mod\u00e8les linguistiques.<\/p><h2 class=\"wp-block-heading\">Le FiveMX CLI<\/h2><p class=\"wp-block-paragraph\">Un outil en ligne de commande officiel encapsule le m\u00eame API. Node 18 ou plus r\u00e9cent, z\u00e9ro d\u00e9pendance d'ex\u00e9cution.<\/p><pre data-no-translation=\"\" class=\"wp-block-code\"><code data-no-translation=\"\">npm install -g @fivemx\/cli\nfivemx catalog\nfivemx products --framework qbcore --per-page 5\nfivemx product audio-speaker-script --json<\/code><\/pre><p class=\"wp-block-paragraph\">Les codes de sortie s\u00e9parent une erreur d'utilisation d'une panne sans analyser aucune sortie : <code data-no-translation=\"\">0<\/code> ok, <code data-no-translation=\"\">1<\/code> erreur d'utilisation sans requ\u00eate envoy\u00e9e, <code data-no-translation=\"\">2<\/code> la requ\u00eate a \u00e9chou\u00e9, <code data-no-translation=\"\">3<\/code> la ressource n'existe pas.<\/p><h2 class=\"wp-block-heading\">R\u00e9ponses d'erreur<\/h2><p class=\"wp-block-paragraph\">Les erreurs sont des JSON, jamais une page HTML, et chacune contient un code, un message et une indication sur la marche \u00e0 suivre.<\/p><pre data-no-translation=\"\" class=\"wp-block-code\"><code data-no-translation=\"\">{\n  \"code\": \"fivemx_product_not_found\",\n  \"message\": \"No published product has that slug.\",\n  \"data\": {\n    \"status\": 404,\n    \"hint\": \"Slugs come from \/wp-json\/fivemx\/v1\/catalog\/products.\"\n  }\n}<\/code><\/pre><p class=\"wp-block-paragraph\">Un client qui envoie <code data-no-translation=\"\">Accept: application\/json<\/code>, ou qui s'identifie comme un agent IA connu, re\u00e7oit cette forme pour tout chemin manquant sur le site, pas seulement \u00e0 l'int\u00e9rieur de l'espace de noms API. Un navigateur conserve la page d'erreur normale.<\/p><h2 class=\"wp-block-heading\">Limites de d\u00e9bit et mise en cache<\/h2><p class=\"wp-block-paragraph\">Il n'y a pas de quota publi\u00e9. Les r\u00e9ponses sont mises en cache pendant dix minutes \u00e0 l'origine, de sorte qu'un parcours de l'ensemble du catalogue est peu co\u00fbteux pour les deux parties. Veuillez envoyer un agent utilisateur qui vous identifie, et privil\u00e9giez un passage pagin\u00e9 plut\u00f4t que de nombreuses requ\u00eates de produits uniques.<\/p><h2 class=\"wp-block-heading\">Ce que ce API ne fait pas d\u00e9lib\u00e9r\u00e9ment<\/h2><ul class=\"wp-block-list\"><li>Il n'expose pas les paniers, la validation de commande, les commandes, les clients ou les t\u00e9l\u00e9chargements. Ces chemins sont ferm\u00e9s aux robots d'exploration <code data-no-translation=\"\">robots.txt<\/code> et ne sont pas d\u00e9crits par la sp\u00e9cification.<\/li><li>Il ne sert pas de slugs traduits. Les versions locales du site utilisent des URL traduites, et ce API n'accepte que le slug anglais.<\/li><li>Il ne convertit pas les prix. Les valeurs sont dans la devise de base rapport\u00e9e par <code data-no-translation=\"\">\/catalog<\/code>, pas dans la devise s\u00e9lectionn\u00e9e par un visiteur.<\/li><li>Il n'y a pas de serveur MCP, pas de carte d'agent et pas de flux webhook. Lorsqu'il en existe un, il sera list\u00e9 ici et dans le catalogue API plut\u00f4t que d'\u00eatre annonc\u00e9 par un fichier vide.<\/li><\/ul><p class=\"wp-block-paragraph\">Les questions concernant le API doivent \u00eatre pos\u00e9es sur le <a href=\"\/fr\/contact\/\">FiveMX page de contact<\/a>.<\/p>","protected":false},"excerpt":{"rendered":"<p>FiveMX publishes a read-only HTTP API over its FiveM script catalogue, an OpenAPI 3.1 description of it, and a command line tool that speaks to it. Everything on this page is public, needs no key and can be used by a person, a script or an agent. The FiveMX catalogue API One namespace, four GET [&hellip;]<\/p>\n","protected":false},"author":0,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-217485","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/fivemx.com\/fr\/wp-json\/wp\/v2\/pages\/217485","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fivemx.com\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/fivemx.com\/fr\/wp-json\/wp\/v2\/types\/page"}],"replies":[{"embeddable":true,"href":"https:\/\/fivemx.com\/fr\/wp-json\/wp\/v2\/comments?post=217485"}],"version-history":[{"count":0,"href":"https:\/\/fivemx.com\/fr\/wp-json\/wp\/v2\/pages\/217485\/revisions"}],"wp:attachment":[{"href":"https:\/\/fivemx.com\/fr\/wp-json\/wp\/v2\/media?parent=217485"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}