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.