Comment pouvons-nous vous aider ?

Recherches fréquentes
ExportWorkflowCatalogue
AccueilTechnique

Le modèle de données (Productions, étapes, médias, Références), les statuts, et les conventions communes à tous les endpoints : pagination, filtres, erreurs, quotas.

Le modèle

Productions et étapes

Une Production est un lot de médias qui suit un workflow. Chaque étape du workflow est un bench ; les benches sont créés avec la Production, à partir de son template (/production/template).

Le champ benchsteptype indique le rôle de chaque étape :

benchsteptypeÉtape
10Live (prise de vue)
20Post-production, Phase 1
30Post-production, Phase 2
40Exports / Validation

Le Live et l'étape Exports / Validation existent toujours ; la Post-production est facultative (zéro, une ou deux phases). Chaque compte peut renommer ses étapes : fiez-vous à benchsteptype, pas au libellé.

Une Production est identifiée par bench_root_id, l'identifiant de sa première étape ; chaque étape a son propre bench_id. Les médias se chargent sur les étapes Live et Post-production. On ne charge jamais de fichier sur l'étape 40 : les médias y arrivent quand on déclenche les exports (POST /production/{bench_root_id}/export), puis y sont soumis à validation.

Le statut de la Production (benchstatus) :

benchstatusSignification
10Active
20En cours
30Terminée
35En cours d'archivage
40Archivée
50Purgée

Médias

Un média (picture) est le fichier travaillé : photo, vidéo, PDF ou 3D partagent le même objet. Il porte la Référence (ref), le Code de vue (view_type_code), l'étape où il se trouve (bench_id), ses tags (taginfo) et son statut picturestatus :

picturestatusSignificationÉtapes où il s'applique
1Ignoré
5À reshooterLive
10Non sélectionnéLive
30SélectionnéLive, Post-production
35Refusé par un retoucheurPost-production
31Refusé à la validationValidation
40Soumis à validationValidation
50ValidéValidation
51Prêt à diffuserValidation (Diffusion)
52Erreur de diffusionValidation (Diffusion)
55DiffuséValidation (Diffusion)
80ArchivéValidation

Pour récupérer le fichier : thumbnail donne une vignette, GET /picture/{id}/download le fichier original, et POST /picture/{id}/publicurl un lien temporaire utilisable sans jeton (une heure par défaut, sept jours au plus), pratique pour le transmettre à un système tiers.

Références et Cahier des charges

Une Référence (reference) est un produit du Catalogue, identifiée par son code ref. POST /reference la crée ou la met à jour ; POST /reference/bulk importe un lot. Le Cahier des charges décrit les médias attendus : /specification/category (Codes de vue attendus par catégorie de produits) et /specification/format (dimensions, résolution, profil ICC, poids, format de fichier).

Autres familles

EndpointContenu
/account/meUtilisateur, comptes accessibles, api_host de chaque compte
/shootingmethodMéthodes de shooting
/shotlistShotlists
/stock, /stock/batch, /stock/zoneLogistique : Articles, rayons, zones
/broadcastDiffusion des médias validés
/webhookAbonnements aux webhooks

La liste complète est sur api.grand-shooting.com.

Les conventions

Pagination

/picture et /reference renvoient 100 éléments par page. La page suivante se demande avec l'en-tête offset (0, 100, 200…) ; la réponse indique le total dans X-Total-Count, et la position dans X-Offset et X-Count.

curl -i -H "Authorization: Bearer $GS_TOKEN" -H "offset: 100" \
  "https://api.grand-shooting.com/v3/picture?bench_root_id=1234"

offset est limité à 10 000. Au-delà, paginez par curseur : triez sur l'identifiant et repartez du dernier reçu.

curl -H "Authorization: Bearer $GS_TOKEN" \
  "https://api.grand-shooting.com/v3/picture?sort_by=picture_id&picture_id=gt:987654"

Filtres et tri

Tout champ de l'objet peut servir de filtre en paramètre d'URL :

SyntaxeEffet
picturestatus=50Égalité
picturestatus=40&picturestatus=50Champ répété : OU
date_mod=gte:2026-10-01Opérateurs gt:, gte:, lt:, lte: (deux bornes sur le même champ se combinent en ET)
ref=null:trueValeur vide (null:false : valeur renseignée)
search=robeRecherche plein texte
sort_by=-date_modTri décroissant (+ ou rien : croissant)

Les dates sont au format ISO 8601 (2026-10-01T07:00:00.000Z).

Erreurs

L'API suit les codes HTTP standard. Les erreurs ont un corps JSON :

{
  "code": 404,
  "error": "Not Found",
  "message": "Resource was not found"
}

Les plus fréquentes : 400 (champ manquant ou invalide, le message dit lequel), 401 (jeton absent ou invalide, ou écriture avec un jeton en lecture seule), 403 (action non autorisée pour ce compte), 429 (quota dépassé). Certains endpoints de masse répondent 207 avec le résultat de chaque élément.

Quotas

Le quota est de 5 requêtes par seconde par compte, partagé par tous les jetons du compte. Au-delà, l'API répond 429. Les en-têtes X-RateLimit-UserLimit, X-RateLimit-UserRemaining et X-RateLimit-UserReset permettent de ralentir avant d'être bloqué. Préférez les endpoints de masse (/reference/bulk, /upload/url, POST /picture/picturestatus) aux boucles d'appels unitaires, et les webhooks à l'interrogation répétée.

Les endpoints n'ont pas de clé d'idempotence. POST /reference est un upsert sur ref : le rejouer ne crée pas de doublon. Pour les uploads, vérifiez la réponse de chaque fichier avant de relancer.