Synupv1
Créer une clé
v1Ressources/Données

Données

La bibliothèque d'assets unifiée derrière l'onglet Données : le catalogue paginé multi-sources (téléversements, images générées, médias synchronisés, photos importées de GBP, contenus soumis par les utilisateurs), les dossiers et le vocabulaire d'étiquettes d'assets. Distinct des étiquettes de regroupement d'établissements de locations/tags.

Renvoie toutes les étiquettes de médias définies dans votre agence.

Lister les étiquettes de médias

get/api/v1/tags
media:read
Réponse
dataobjectfacultatif
tagsarray of objectfacultatif
Les étiquettes de médias de l'agence.
idstringfacultatif
namestringfacultatif
Erreurs
401Clé API manquante, invalide, expirée ou révoquée.
403La clé n'a pas la permission requise, ou n'est pas autorisée pour ce client/établissement.
429Trop de requêtes. Réessayez après le nombre de secondes indiqué dans l'en-tête Retry-After.
get/api/v1/tags
Votre clé API
{
  "data": {
    "tags": [
      {
        "id": "tag_1",
        "name": "VIP"
      },
      {
        "id": "tag_2",
        "name": "Seasonal"
      }
    ]
  }
}
v1Ressources/Données/postCréer une étiquette de média

Crée une nouvelle étiquette de média avec le nom indiqué.

Créer une étiquette de média

post/api/v1/tags
media:write
Corps de la requête
namestringobligatoire
Le nom de l'étiquette.
Réponse
dataobjectfacultatif
idstringfacultatif
Identifiant unique de l'étiquette nouvellement créée.
namestringfacultatif
Le nom de l'étiquette.
Erreurs
400Il manque un paramètre requis à la requête, ou elle est invalide.
401Clé API manquante, invalide, expirée ou révoquée.
403La clé n'a pas la permission requise, ou n'est pas autorisée pour ce client/établissement.
429Trop de requêtes. Réessayez après le nombre de secondes indiqué dans l'en-tête Retry-After.
post/api/v1/tags
Votre clé API
Corps de la requête*
{
  "data": {
    "id": "tag_1",
    "name": "VIP"
  }
}
v1Ressources/Données/patchRenommer une étiquette d'asset

Renomme une étiquette. Si une autre étiquette porte déjà le nom cible, les deux sont fusionnées : tout asset étiqueté avec l'une ou l'autre se retrouve étiqueté avec le nom survivant.

Renommer une étiquette d'asset

patch/api/v1/tags/{id}
media:write
Paramètres de requête
idstringobligatoire
L'étiquette à renommer.
Corps de la requête
namestringobligatoire
Le nouveau nom de l'étiquette. Obligatoire.
Réponse
dataobjectfacultatif
idstringfacultatif
Identifiant unique de l'étiquette nouvellement créée.
namestringfacultatif
Le nom de l'étiquette.
countnumberfacultatif
Le nombre d'assets portant désormais cette étiquette.
Erreurs
400Il manque un paramètre requis à la requête, ou elle est invalide.
401Clé API manquante, invalide, expirée ou révoquée.
403La clé n'a pas la permission requise, ou n'est pas autorisée pour ce client/établissement.
404La ressource est introuvable, ou n'appartient pas à votre agence.
429Trop de requêtes. Réessayez après le nombre de secondes indiqué dans l'en-tête Retry-After.
patch/api/v1/tags/{id}
Votre clé API
id *
Corps de la requête*
{
  "data": {
    "id": "tag_1",
    "name": "VIP Clients",
    "count": 12
  }
}
v1Ressources/Données/deleteSupprimer une étiquette de média

Supprime une étiquette de média. Cela ne supprime pas les fichiers auxquels elle était associée. assetsUntagged dans la réponse indique combien de fichiers ont perdu l'étiquette.

Supprimer une étiquette de média

delete/api/v1/tags/{id}
media:write
Paramètres de requête
idstringobligatoire
ID de l'étiquette de média à supprimer.
Réponse
dataobjectfacultatif
assetsUntaggednumberfacultatif
Nombre de fichiers ayant cette étiquette — tous ont perdu l'association lors de la suppression de l'étiquette.
Erreurs
401Clé API manquante, invalide, expirée ou révoquée.
403La clé n'a pas la permission requise, ou n'est pas autorisée pour ce client/établissement.
404La ressource est introuvable, ou n'appartient pas à votre agence.
429Trop de requêtes. Réessayez après le nombre de secondes indiqué dans l'en-tête Retry-After.
delete/api/v1/tags/{id}
Votre clé API
id *
{
  "data": {
    "assetsUntagged": 5
  }
}
v1Ressources/Données/postAjouter des fichiers à une étiquette

Associe un ou plusieurs fichiers, par leur clé, à une étiquette de média existante.

Ajouter des fichiers à une étiquette

post/api/v1/tags/{id}/assets
media:write
Paramètres de requête
idstringobligatoire
ID de l'étiquette de média.
Corps de la requête
assetKeysarray of stringobligatoire
Clés des fichiers à associer à cette étiquette.
Réponse
dataobjectfacultatif
addedarray of stringfacultatif
Clés des fichiers réellement associés — un fichier portant déjà cette étiquette n'est pas dupliqué.
Erreurs
400Il manque un paramètre requis à la requête, ou elle est invalide.
401Clé API manquante, invalide, expirée ou révoquée.
403La clé n'a pas la permission requise, ou n'est pas autorisée pour ce client/établissement.
404La ressource est introuvable, ou n'appartient pas à votre agence.
429Trop de requêtes. Réessayez après le nombre de secondes indiqué dans l'en-tête Retry-After.
post/api/v1/tags/{id}/assets
Votre clé API
id *
Corps de la requête*
{
  "data": {
    "added": [
      "upload:abc123",
      "gmb:xyz789"
    ]
  }
}
v1Ressources/Données/deleteRetirer un fichier d'une étiquette

Dissocie un seul fichier, par sa clé, d'une étiquette de média.

Retirer un fichier d'une étiquette

delete/api/v1/tags/{id}/assets
media:write
Paramètres de requête
idstringobligatoire
ID de l'étiquette de média.
assetKeystringobligatoire
Clé du fichier à retirer de cette étiquette.
Erreurs
400Il manque un paramètre requis à la requête, ou elle est invalide.
401Clé API manquante, invalide, expirée ou révoquée.
403La clé n'a pas la permission requise, ou n'est pas autorisée pour ce client/établissement.
404La ressource est introuvable, ou n'appartient pas à votre agence.
429Trop de requêtes. Réessayez après le nombre de secondes indiqué dans l'en-tête Retry-After.
delete/api/v1/tags/{id}/assets
Votre clé API
id *
assetKey *
{}
v1Ressources/Données/getLister les assets

Renvoie un extrait paginé du catalogue d'assets unifié, du plus récent au plus ancien — téléversements, images générées par IA, assets de la bibliothèque de médias synchronisée, photos importées de GBP et médias soumis par les utilisateurs (UGC), fusionnés en un seul flux.

Lister les assets

get/api/v1/assets
media:read
Paramètres de requête
sourcestring (all | upload | gmb | generated | discovered | ugc)facultatif
Limiter à un onglet source : all (par défaut), upload, gmb, generated, discovered ou ugc.
typestringfacultatif
Limiter à un type d'asset, p. ex. image ou video.
folderIdstringfacultatif
Limiter aux assets de ce dossier.
tagstringfacultatif
Limiter aux assets portant cette étiquette.
locationIdstringfacultatif
Limiter aux assets assignés à cet établissement. Retrouvez-le avec GET /api/v1/locations.
clientIdstringfacultatif
Le client auquel limiter les résultats. Obligatoire si cette clé est restreinte à des clients spécifiques et qu'aucun locationId n'est indiqué. Retrouvez-le avec GET /api/v1/clients.
qstringfacultatif
Rechercher par titre ou nom de fichier.
cursorstringfacultatif
Curseur de pagination provenant du nextCursor d'une réponse précédente.
limitnumberfacultatif
Nombre maximal d'éléments à renvoyer. 60 par défaut, 200 maximum.
statusstring (needs_review | spam | ok | skipped)facultatif
Filtre de statut de modération — s'applique uniquement quand source vaut ugc : needs_review, spam, ok ou skipped.
Réponse
dataobjectfacultatif
itemsarray of objectfacultatif
La page d'assets.
keystringfacultatif
Identifiant composite du fichier, au format « <source>:<id> ».
sourcestringfacultatif
Origine de ce fichier (par ex. un envoi OS par rapport à une source importée).
idstringfacultatif
L'id du fichier au sein de sa source.
titlestringfacultatif
Le titre du fichier.
filenamestringfacultatif
Le nom de fichier d'origine du fichier.
mimestringfacultatif
Le type MIME du fichier.
kindstringfacultatif
Le type du fichier (photo ou vidéo).
sizeBytesnumberfacultatif
Taille du fichier en octets, ou null si inconnue.
urlstringfacultatif
URL prête à l'emploi pour les octets du fichier.
thumbnailUrlstringfacultatif
URL d'un aperçu miniature, ou null.
tagsarray of stringfacultatif
Étiquettes associées au fichier.
folderIdsarray of stringfacultatif
Dossiers de fichiers auxquels ce fichier appartient.
locationIdsarray of stringfacultatif
Tous les établissements auxquels ce fichier est associé.
nextCursorstringfacultatif
À passer en tant que cursor lors du prochain appel pour récupérer la page suivante. Null s'il n'y en a pas d'autre.
countsobjectfacultatif
Totaux par onglet (all/upload/gmb/generated/discovered/ugc), indépendants des filtres actifs.
Erreurs
401Clé API manquante, invalide, expirée ou révoquée.
403La clé n'a pas la permission requise, ou n'est pas autorisée pour ce client/établissement.
429Trop de requêtes. Réessayez après le nombre de secondes indiqué dans l'en-tête Retry-After.
get/api/v1/assets
Votre clé API
source
type
folderId
tag
locationId
clientId
q
cursor
limit
status
{
  "data": {
    "items": [
      {
        "key": "upload:abc123",
        "source": "upload",
        "id": "abc123",
        "title": "Storefront photo",
        "filename": "storefront.jpg",
        "mime": "image/jpeg",
        "kind": "image",
        "sizeBytes": 482913,
        "url": "https://cdn.synup.com/media/abc123.jpg",
        "thumbnailUrl": "https://cdn.synup.com/media/abc123-thumb.jpg",
        "tags": [
          "VIP"
        ],
        "folderIds": [
          "folder_1"
        ],
        "locationIds": [
          "loc_456"
        ]
      }
    ],
    "nextCursor": null,
    "counts": {
      "all": 1,
      "upload": 1,
      "gmb": 0,
      "generated": 0,
      "discovered": 0,
      "ugc": 0
    }
  }
}
v1Ressources/Données/getLister les dossiers

Renvoie chaque dossier de cette agence, avec son nombre d'éléments et son mélange de sources.

Lister les dossiers

get/api/v1/folders
media:read
Paramètres de requête
scopeTypestring (account | client | location | brand)facultatif
Limiter aux dossiers ayant cette portée : account, client, location ou brand.
scopeIdstringfacultatif
Limiter aux dossiers ayant cet id de portée. Nécessite scopeType.
Réponse
dataobjectfacultatif
itemsarray of objectfacultatif
idstringfacultatif
Identifiant unique du dossier.
namestringfacultatif
Le nom du dossier.
descriptionstringfacultatif
La description du dossier, ou null.
itemCountnumberfacultatif
Nombre d'assets actuellement dans le dossier.
sourceMixarray of stringfacultatif
Les sources d'assets distinctes présentes dans le dossier.
scopeobjectfacultatif
La portée du dossier, ou null lorsqu'il vaut pour toute l'agence.
typestring (account | client | location | brand)facultatif
idstringfacultatif
sharingobjectfacultatif
L'état de partage public du dossier.
accessstring (restricted | link)facultatif
urlstringfacultatif
createdAtstringfacultatif
Date de création du dossier, au format ISO 8601.
Erreurs
401Clé API manquante, invalide, expirée ou révoquée.
403La clé n'a pas la permission requise, ou n'est pas autorisée pour ce client/établissement.
429Trop de requêtes. Réessayez après le nombre de secondes indiqué dans l'en-tête Retry-After.
get/api/v1/folders
Votre clé API
scopeType
scopeId
{
  "data": {
    "items": [
      {
        "id": "folder_1",
        "name": "Storefront Photos",
        "description": null,
        "itemCount": 12,
        "sourceMix": [
          "upload",
          "gmb"
        ],
        "scope": {
          "type": "client",
          "id": "cli_123"
        },
        "sharing": {
          "access": "restricted",
          "url": null
        },
        "createdAt": "2026-01-15T10:00:00.000Z"
      }
    ]
  }
}
v1Ressources/Données/postCréer un dossier

Crée un nouveau dossier vide. Ajoutez-y des assets avec POST /api/v1/folders/{id}/items.

Créer un dossier

post/api/v1/folders
media:write
Corps de la requête
namestringobligatoire
Le nom du dossier. Obligatoire.
descriptionstringfacultatif
Une description facultative.
scopeTypestring (account | client | location | brand)facultatif
Portée facultative : account, client, location ou brand. Un dossier sans portée est valable pour toute l'agence.
scopeIdstringfacultatif
L'id pour scopeType, le cas échéant.
Réponse
dataobjectfacultatif
folderobjectfacultatif
idstringfacultatif
Identifiant unique du dossier.
namestringfacultatif
Le nom du dossier.
descriptionstringfacultatif
La description du dossier, ou null.
itemCountnumberfacultatif
Nombre d'assets actuellement dans le dossier.
sourceMixarray of stringfacultatif
Les sources d'assets distinctes présentes dans le dossier.
scopeobjectfacultatif
La portée du dossier, ou null lorsqu'il vaut pour toute l'agence.
typestring (account | client | location | brand)facultatif
idstringfacultatif
sharingobjectfacultatif
L'état de partage public du dossier.
accessstring (restricted | link)facultatif
urlstringfacultatif
createdAtstringfacultatif
Date de création du dossier, au format ISO 8601.
Erreurs
400Il manque un paramètre requis à la requête, ou elle est invalide.
401Clé API manquante, invalide, expirée ou révoquée.
403La clé n'a pas la permission requise, ou n'est pas autorisée pour ce client/établissement.
429Trop de requêtes. Réessayez après le nombre de secondes indiqué dans l'en-tête Retry-After.
post/api/v1/folders
Votre clé API
Corps de la requête*
{
  "data": {
    "folder": {
      "id": "folder_1",
      "name": "Storefront Photos",
      "description": null,
      "itemCount": 0,
      "sourceMix": [],
      "scope": null,
      "sharing": {
        "access": "restricted",
        "url": null
      },
      "createdAt": "2026-01-15T10:00:00.000Z"
    }
  }
}
v1Ressources/Données/getObtenir un dossier

Renvoie le détail d'un dossier. Son contenu : GET /api/v1/assets?folderId={id}.

Obtenir un dossier

get/api/v1/folders/{id}
media:read
Paramètres de requête
idstringobligatoire
Le dossier à consulter.
Réponse
dataobjectfacultatif
folderobjectfacultatif
idstringfacultatif
Identifiant unique du dossier.
namestringfacultatif
Le nom du dossier.
descriptionstringfacultatif
La description du dossier, ou null.
itemCountnumberfacultatif
Nombre d'assets actuellement dans le dossier.
sourceMixarray of stringfacultatif
Les sources d'assets distinctes présentes dans le dossier.
scopeobjectfacultatif
La portée du dossier, ou null lorsqu'il vaut pour toute l'agence.
typestring (account | client | location | brand)facultatif
idstringfacultatif
sharingobjectfacultatif
L'état de partage public du dossier.
accessstring (restricted | link)facultatif
urlstringfacultatif
createdAtstringfacultatif
Date de création du dossier, au format ISO 8601.
Erreurs
401Clé API manquante, invalide, expirée ou révoquée.
403La clé n'a pas la permission requise, ou n'est pas autorisée pour ce client/établissement.
404La ressource est introuvable, ou n'appartient pas à votre agence.
429Trop de requêtes. Réessayez après le nombre de secondes indiqué dans l'en-tête Retry-After.
get/api/v1/folders/{id}
Votre clé API
id *
{
  "data": {
    "folder": {
      "id": "folder_1",
      "name": "Storefront Photos",
      "description": null,
      "itemCount": 12,
      "sourceMix": [
        "upload",
        "gmb"
      ],
      "scope": {
        "type": "client",
        "id": "cli_123"
      },
      "sharing": {
        "access": "restricted",
        "url": null
      },
      "createdAt": "2026-01-15T10:00:00.000Z"
    }
  }
}
v1Ressources/Données/patchMettre à jour un dossier

Renomme un dossier ou modifie sa description ou sa portée.

Mettre à jour un dossier

patch/api/v1/folders/{id}
media:write
Paramètres de requête
idstringobligatoire
Le dossier à mettre à jour.
Corps de la requête
namestringfacultatif
Nouveau nom.
descriptionstringfacultatif
Nouvelle description, ou null pour l'effacer.
scopeTypestring (account | client | location | brand)facultatif
Nouveau type de portée : account, client, location ou brand.
scopeIdstringfacultatif
L'id pour scopeType, le cas échéant.
Réponse
dataobjectfacultatif
folderobjectfacultatif
idstringfacultatif
Identifiant unique du dossier.
namestringfacultatif
Le nom du dossier.
descriptionstringfacultatif
La description du dossier, ou null.
itemCountnumberfacultatif
Nombre d'assets actuellement dans le dossier.
sourceMixarray of stringfacultatif
Les sources d'assets distinctes présentes dans le dossier.
scopeobjectfacultatif
La portée du dossier, ou null lorsqu'il vaut pour toute l'agence.
typestring (account | client | location | brand)facultatif
idstringfacultatif
sharingobjectfacultatif
L'état de partage public du dossier.
accessstring (restricted | link)facultatif
urlstringfacultatif
createdAtstringfacultatif
Date de création du dossier, au format ISO 8601.
Erreurs
400Il manque un paramètre requis à la requête, ou elle est invalide.
401Clé API manquante, invalide, expirée ou révoquée.
403La clé n'a pas la permission requise, ou n'est pas autorisée pour ce client/établissement.
404La ressource est introuvable, ou n'appartient pas à votre agence.
429Trop de requêtes. Réessayez après le nombre de secondes indiqué dans l'en-tête Retry-After.
patch/api/v1/folders/{id}
Votre clé API
id *
Corps de la requête
{
  "data": {
    "folder": {
      "id": "folder_1",
      "name": "Storefront Photos (2026)",
      "description": "Current-season storefront shots",
      "itemCount": 12,
      "sourceMix": [
        "upload",
        "gmb"
      ],
      "scope": {
        "type": "client",
        "id": "cli_123"
      },
      "sharing": {
        "access": "restricted",
        "url": null
      },
      "createdAt": "2026-01-15T10:00:00.000Z"
    }
  }
}
v1Ressources/Données/deleteSupprimer un dossier

Supprime le dossier. Ses assets ne sont pas affectés — ils perdent seulement leur appartenance au dossier. itemsRemoved et shareLinksRevoked dans la réponse indiquent combien d'éléments ont été supprimés silencieusement avec lui.

Supprimer un dossier

delete/api/v1/folders/{id}
media:write
Paramètres de requête
idstringobligatoire
Le dossier à supprimer.
Réponse
dataobjectfacultatif
itemsRemovednumberfacultatif
Nombre d'éléments (assets) retirés du dossier — autant d'affectations FolderItem ont été supprimées avec lui.
shareLinksRevokednumberfacultatif
Nombre de liens de partage actifs pour ce dossier qui ont été révoqués lors de sa suppression.
Erreurs
401Clé API manquante, invalide, expirée ou révoquée.
403La clé n'a pas la permission requise, ou n'est pas autorisée pour ce client/établissement.
404La ressource est introuvable, ou n'appartient pas à votre agence.
429Trop de requêtes. Réessayez après le nombre de secondes indiqué dans l'en-tête Retry-After.
delete/api/v1/folders/{id}
Votre clé API
id *
{
  "data": {
    "itemsRemoved": 12,
    "shareLinksRevoked": 1
  }
}
v1Ressources/Données/postPartager un dossier

Émet (ou renouvelle) un lien public pour le dossier. Le renouvellement révoque tout lien émis précédemment.

Partager un dossier

post/api/v1/folders/{id}/share
media:write
Paramètres de requête
idstringobligatoire
Le dossier à partager.
Réponse
dataobjectfacultatif
urlstringfacultatif
L'URL de partage public.
accessstring (link)facultatif
Toujours "link" en cas de succès.
Erreurs
401Clé API manquante, invalide, expirée ou révoquée.
403La clé n'a pas la permission requise, ou n'est pas autorisée pour ce client/établissement.
404La ressource est introuvable, ou n'appartient pas à votre agence.
429Trop de requêtes. Réessayez après le nombre de secondes indiqué dans l'en-tête Retry-After.
post/api/v1/folders/{id}/share
Votre clé API
id *
{
  "data": {
    "url": "https://synup.com/s/aB3dE9fGhJ",
    "access": "link"
  }
}
v1Ressources/Données/deleteNe plus partager un dossier

Révoque le lien public du dossier.

Ne plus partager un dossier

delete/api/v1/folders/{id}/share
media:write
Paramètres de requête
idstringobligatoire
Le dossier dont le partage est révoqué.
Réponse
dataobjectfacultatif
accessstring (restricted)facultatif
Toujours "restricted" en cas de succès.
Erreurs
401Clé API manquante, invalide, expirée ou révoquée.
403La clé n'a pas la permission requise, ou n'est pas autorisée pour ce client/établissement.
404La ressource est introuvable, ou n'appartient pas à votre agence.
429Trop de requêtes. Réessayez après le nombre de secondes indiqué dans l'en-tête Retry-After.
delete/api/v1/folders/{id}/share
Votre clé API
id *
{
  "data": {
    "access": "restricted"
  }
}
v1Ressources/Données/postAjouter des assets à un dossier

Ajoute chaque clé d'asset indiquée au dossier. Les clés déjà présentes sont ignorées.

Ajouter des assets à un dossier

post/api/v1/folders/{id}/items
media:write
Paramètres de requête
idstringobligatoire
Le dossier auquel ajouter des assets.
Corps de la requête
assetKeysarray of stringobligatoire
Clés d'asset opaques "<source>:<id>" à ajouter. Obligatoire, non vide.
Réponse
dataobjectfacultatif
idstringfacultatif
itemCountnumberfacultatif
Le nombre d'éléments du dossier après la modification.
Erreurs
400Il manque un paramètre requis à la requête, ou elle est invalide.
401Clé API manquante, invalide, expirée ou révoquée.
403La clé n'a pas la permission requise, ou n'est pas autorisée pour ce client/établissement.
404La ressource est introuvable, ou n'appartient pas à votre agence.
429Trop de requêtes. Réessayez après le nombre de secondes indiqué dans l'en-tête Retry-After.
post/api/v1/folders/{id}/items
Votre clé API
id *
Corps de la requête*
{
  "data": {
    "id": "folder_1",
    "itemCount": 13
  }
}
v1Ressources/Données/deleteRetirer un asset d'un dossier

Retire l'appartenance d'un asset au dossier. Succès sans effet s'il n'en était pas membre.

Retirer un asset d'un dossier

delete/api/v1/folders/{id}/items
media:write
Paramètres de requête
idstringobligatoire
Le dossier dont retirer l'asset.
assetKeystringobligatoire
La clé d'asset opaque "<source>:<id>" à retirer. Passée en paramètre de requête (encodez les deux-points), pas en segment de chemin.
Réponse
dataobjectfacultatif
idstringfacultatif
itemCountnumberfacultatif
Le nombre d'éléments du dossier après la modification.
Erreurs
401Clé API manquante, invalide, expirée ou révoquée.
403La clé n'a pas la permission requise, ou n'est pas autorisée pour ce client/établissement.
404La ressource est introuvable, ou n'appartient pas à votre agence.
429Trop de requêtes. Réessayez après le nombre de secondes indiqué dans l'en-tête Retry-After.
delete/api/v1/folders/{id}/items
Votre clé API
id *
assetKey *
{
  "data": {
    "id": "folder_1",
    "itemCount": 12
  }
}