Cas d'usage · 29.09.2026

Droguerie et pharmacie : relier ses articles aux données suisses par Pharmacode

Votre liste grossiste contient des Pharmacodes ? Retrouvez pour chaque article le code-barres, la description, les substances, la catégorie de remise et des images, médicaments et parapharmacie compris.

Les listes des grossistes (Galexis, Voigt, Amedis…) identifient les articles par leur Pharmacode. Les sites e-commerce et les caisses, eux, travaillent souvent avec le code-barres (GTIN). Entre les deux, il manque une table de correspondance fiable et à jour. C'est ce que fournit notre API pharmacie.

Le cas d'usage

Une droguerie romande vend en ligne quelques milliers d'articles. Sa liste grossiste compte 6 390 lignes avec Pharmacode. En passant cette liste dans l'API, 94 % des articles sont retrouvés, et près de 90 % ont au moins une image.

Retrouver un article par Pharmacode

curl -H "Authorization: Token VOTRE_CLE" \
  "https://opendata.altius-group.ch/health/swissmedic/api/pharmacy/products/?pharmacode=131736"

Les zéros de tête sont acceptés : 0131736 et 131736 donnent le même résultat. La réponse contient le GTIN, la description en allemand et en français, les images et, pour un médicament, les données Swissmedic : substances, code ATC, catégorie de remise, présence sur la liste des spécialités.

Par code-barres ou par nom

# Code-barres exact
curl -H "Authorization: Token VOTRE_CLE" \
  "https://opendata.altius-group.ch/health/swissmedic/api/pharmacy/products/gtin/7680526560283/"

# Recherche libre (nom, GTIN, Pharmacode, code ATC) pour une autocomplétion
curl -H "Authorization: Token VOTRE_CLE" \
  "https://opendata.altius-group.ch/health/swissmedic/api/pharmacy/products/?search=dafalgan"

Traiter toute une liste

Un script lit votre fichier (CSV ou Excel exporté en CSV), interroge l'API par Pharmacode et écrit un fichier enrichi :

import csv, requests

API = "https://opendata.altius-group.ch/health/swissmedic/api/pharmacy/products/"
HEADERS = {"Authorization": "Token VOTRE_CLE"}

with open("liste.csv") as src, open("liste_enrichie.csv", "w", newline="") as dst:
    writer = csv.writer(dst)
    for row in csv.DictReader(src):
        r = requests.get(API, headers=HEADERS, params={"pharmacode": row["PHC"]}).json()
        hit = r["results"][0] if r["results"] else None
        writer.writerow([row["PHC"], row["Article"], hit["gtin"] if hit else ""])

Pour des milliers d'articles, un plan payant évite d'atteindre le quota journalier du plan gratuit (100 requêtes).

D'où viennent les données

Médicaments : Swissmedic et Refdata, mis à jour chaque semaine. Parapharmacie, cosmétique et matériel : liste des articles actifs du marché suisse. Images : fiches produits des pharmacies suisses, retrouvées par Pharmacode.

Rechercher un médicament · Plans et tarifs

À lire aussi

Buy us a coffee Explore the data