DocumentationAPI RESTAPI Médias

API Médias

Importez des fichiers, classez-les en dossiers, voyez où une image est utilisée et définissez le point focal des vignettes.

2 min de lecture

Sur cette page

Vue d'ensemble

Les endpoints médias sont sous /api/v1/media et utilisent les permissions products:* (products:read pour lister, products:create pour importer, products:update pour modifier, products:delete pour supprimer). Le rattachement aux produits passe par les endpoints médias produit ; cette page couvre la médiathèque elle-même.

Endpoints

MéthodeCheminRôle
GET/mediaListe des fichiers. page, limit, filter[folderId] (un identifiant de dossier, ou none pour les fichiers non classés), filter[mimeType], search.
POST/media/uploadMultipart file (image ou PDF, 50 Mo max) + altText, folderId optionnels. Les images reçoivent des variantes vignette / medium / large en arrière-plan.
GET/media/{id}Un fichier avec url, thumbnailUrl, width, height, folderId, focalX, focalY.
PATCH/media/{id}{ folderId?, altTextI18n?, tags?, focalX?, focalY? }. folderId: null déclasse le fichier.
GET/media/{id}/usageDepuis v2.13. Produits utilisant le fichier : { data: [{ id, sku, nameI18n, status, isPrimary, channels: [{ id, name, platform }] }] }.
DELETE/media/{id}Supprime le fichier et ses variantes.
GET/media/foldersListe plate des dossiers avec parentId et mediaCount ; l'arborescence se construit côté client.
POST/media/folders{ name, parentId? }.
PATCH/media/folders/{id}Depuis v2.13. { name?, parentId? } — renommer ou déplacer. 400 si le déplacement crée un cycle.
DELETE/media/folders/{id}Depuis v2.13. Les fichiers qu'il contient deviennent non classés (jamais supprimés). 409 tant que le dossier a des sous-dossiers.

Point focal

Depuis v2.13. focalX / focalY sont des fractions de la largeur et de la hauteur (0–1, trois décimales). Envoyez les deux ou aucun ; null les efface. Une fois définis, la vignette est recadrée en carré autour de ce point ; les variantes medium et large ainsi que l'original ne sont jamais modifiés, donc url reste stable et les canaux continuent de pousser la même image.

PATCH /api/v1/media/8a2f…/
{ "focalX": 0.62, "focalY": 0.35 }

Les variantes sont régénérées de façon asynchrone — thumbnailUrl change en quelques secondes.