Newsletter
Contributeur·rice ? pour accéder à plus d'outils

Référence API

v1

L’API du Studio Aroma Phyto permet d’accéder aux données de façon automatisée. Tous les points d’accès utilisent l’URL de base https://aroma-phyto-studio.com/api/v1.

Authentification

Tous les points d'accès sauf /resolve nécessitent une clé API. Transmettez-la dans l'en-tête API-Key à chaque requête.

Générez et gérez vos clés sur Clés API.

En-tete Valeur
API-Key aps_{role}_...

Les clés API utilisent le format : aps_{rôle}_ suivi de 56 caractères hexadécimaux. Le préfixe indique le niveau d'accès : dbm (gestionnaire de base de données) ou view (lecteur).

Si votre clé a été désactivée ou révoquée par un administrateur, ou si votre compte a été suspendu, l'API renvoie 403 avec un champ code lisible par machine (key_disabled, key_revoked ou account_suspended) au lieu de 401.

Exemple de requête
curl -H "API-Key: aps_view_a1b2c3..." \
  https://aroma-phyto-studio.com/api/v1/species
Erreur : clé manquante ou invalide (401)
{
  "error": "Unauthorized",
  "message": "Invalid or missing API key"
}
Erreur : clé désactivée (403)
{
  "error": "Forbidden",
  "message": "API key is disabled",
  "code": "key_disabled"
}
Erreur : clé révoquée (403)
{
  "error": "Forbidden",
  "message": "API key has been revoked",
  "code": "key_revoked"
}
Erreur : compte suspendu (403)
{
  "error": "Forbidden",
  "message": "Account is suspended",
  "code": "account_suspended"
}

Limites de débit

Toutes les requêtes authentifiées sont limitées à 60 requêtes par minute par clé API. Le statut de la limite est renvoyé dans les en-têtes de réponse.

En-tete Description
X-RateLimit-Limit Requêtes maximum par minute.
X-RateLimit-Remaining Requêtes restantes dans la fenêtre en cours.
X-RateLimit-Reset Horodatage Unix de la réinitialisation de la fenêtre.
Retry-After Secondes à attendre (présent uniquement en cas de dépassement).
Limite de débit dépassée (429)
{
  "error": "Rate limit exceeded. Maximum 60 requests per minute. Try again in 43 seconds."
}

Erreurs

L'API utilise les codes d'état HTTP standard. Les erreurs retournent un objet JSON avec un champ error.

Statut Signification
200 OK
201 Créée
400 Requête invalide — entrée incorrecte ou champs manquants.
401 Non autorisé — clé API manquante ou invalide.
403 Interdit — permissions insuffisantes, clé API désactivée/révoquée ou compte suspendu.
404 Non trouvé.
405 Méthode non autorisée.
409 Conflit — ressource en double.
422 Entité non traitable — erreur sémantique.
429 Trop de requêtes — limite de débit dépassée.
500 Erreur interne du serveur.
Format de réponse d'erreur
{
  "error": "Species not found",
  "status": 404
}
Interdit — permissions insuffisantes (403)
{
  "error": "Forbidden: You do not have permission to access this resource",
  "status": 403
}
Clé désactivée (403)
{
  "error": "Forbidden",
  "message": "API key is disabled",
  "code": "key_disabled"
}
Compte suspendu (403)
{
  "error": "Forbidden",
  "message": "Account is suspended",
  "code": "account_suspended"
}

Résolution

Résoudre n'importe quel APS-ID vers ses données d'entité, son URL canonique et ses URL localisées. C'est le seul point d'accès public — aucune clé API requise.

GET /resolve/{aps_id} #

Résoudre un APS-ID

Résoudre n'importe quel APS-ID (espèce, extrait, molécule...) vers les données complètes, le résumé des métadonnées, et les URLs canonique et localisées.

Accès : Public — aucune clé API requise

Paramètres

Nom Type Dans Description
aps_id obligatoire string path Identifiant APS. Format : APS-{LETTRE}{6 chiffres}{chiffre de contrôle}. Exemple : APS-M0000785
locale string query Locale pour l'URL canonique. Supportées : en_US, fr_FR, nl_BE.
Défaut : en_US

Réponses

200 APS-ID résolu avec succès.
Champ Type Description
status string "success"
aps_id string L'APS-ID résolu.
entity_type string Type d'entité : species, molecule, extract, genus, blend, publication, brand, product, isomer.
canonical_url string URL canonique de l'entité.
localized_urls object URLs indexées par locale (en_US, fr_FR, nl_BE).
metadata object Métadonnées de base de l'entité (varie selon le type).
schema_org string URL du fragment Schema.org.
400 Format APS-ID invalide.
404 APS-ID non trouve.
422 La validation du chiffre de contrôle a échoué.
cURL
curl https://aroma-phyto-studio.com/api/v1/resolve/APS-S0000123
Réponse
{
  "status": "success",
  "aps_id": "APS-S0000123",
  "entity_type": "species",
  "canonical_url": "https://aroma-phyto-studio.com/studio/species/lavandula-angustifolia/",
  "localized_urls": {
    "en_US": "https://aroma-phyto-studio.com/studio/species/lavandula-angustifolia/",
    "fr_FR": "https://aroma-phyto-studio.com/studio/fr/species/lavandula-angustifolia/",
    "nl_BE": "https://aroma-phyto-studio.com/studio/nl/species/lavandula-angustifolia/"
  },
  "metadata": {
    "name": "Lavandula angustifolia",
    "common_name": "Common Lavender",
    "genus": "Lavandula",
    "family": "Lamiaceae"
  },
  "schema_org": "https://aroma-phyto-studio.com/studio/species/lavandula-angustifolia/#species"
}
POST /resolve #

Résolution groupée d'APS-ID

Résoudre plusieurs APS-ID en une seule requête. Maximum 50 identifiants par requête. Public — aucune clé API requise.

Accès : Public — aucune clé API requise

Paramètres

Nom Type Dans Description
aps_ids obligatoire array body Tableau de chaînes APS-ID à résoudre.
locale string query Locale for canonical URLs. Supported: en_US, fr_FR, nl_BE.
Défaut : en_US

Réponses

200 Résolution groupée terminée.
Champ Type Description
results object Objet indexé par APS-ID des entités résolues.
resolved integer Nombre d'identifiants résolus avec succès.
not_found array APS-ID non trouvés.
invalid array APS-ID au format invalide ou dont le chiffre de contrôle est incorrect.
400 Requête invalide (aps_ids manquant, tableau vide ou dépassement de la limite).
cURL
curl -X POST https://aroma-phyto-studio.com/api/v1/resolve \
  -H "Content-Type: application/json" \
  -d '{"aps_ids": ["APS-S0000123", "APS-E0000594"]}'
Réponse
{
  "results": {
    "APS-S0000123": {
      "status": "success",
      "aps_id": "APS-S0000123",
      "entity_type": "species",
      "canonical_url": "https://aroma-phyto-studio.com/studio/species/lavandula-angustifolia/",
      "metadata": { "name": "Lavandula angustifolia" }
    },
    "APS-E0000594": {
      "status": "success",
      "aps_id": "APS-E0000594",
      "entity_type": "extract",
      "canonical_url": "https://aroma-phyto-studio.com/studio/extract/he-lavandula-angustifolia/",
      "metadata": { "name": "Lavandula angustifolia essential oil" }
    }
  },
  "resolved": 2,
  "not_found": [],
  "invalid": []
}

Familles

Familles botaniques (ex. Lamiaceae, Apiaceae). Lecture seule.

GET /families #

Lister toutes les familles

Récupérer une liste paginée de familles botaniques avec le nombre de genres et une recherche textuelle optionnelle.

Accès : Authentifié — tous les rôles

Paramètres

Nom Type Dans Description
lang string query Code de langue pour les traductions (ex. en_US, fr_FR).
q string query Recherche textuelle (min 2 car.). Recherche dans le nom de famille. La recherche de « alpha » trouve aussi « α » et inversement.
page integer query Numéro de page (base 1).
Défaut : 1
per_page integer query Éléments par page (max 100).
Défaut : 25

Réponses

200 Liste des familles récupérée.
Champ Type Description
families array Tableau d'objets famille.
language string Code de langue actif.
count integer Nombre d'éléments dans cette page.
pagination object Métadonnées de pagination (page, per_page, total, total_pages).
401 Clé API manquante ou invalide.
cURL
curl -H "API-Key: YOUR_API_KEY" \
  https://aroma-phyto-studio.com/api/v1/families?lang=en_US
Réponse
{
  "families": [
    {
      "family_id": 3,
      "family_name": "Lamiaceae",
      "display_order": 0,
      "data_source": "POWO",
      "created_at": "2025-01-10T08:15:00Z",
      "updated_at": "2025-02-18T11:30:00Z",
      "notes": null,
      "genus_count": 12
    }
  ],
  "language": "en_US",
  "count": 1,
  "pagination": {
    "page": 1,
    "per_page": 25,
    "total": 48,
    "total_pages": 2
  }
}
GET /families/{id} #

Obtenir une famille

Récupérer une famille par son identifiant numérique, y compris le nombre de genres.

Accès : Authentifié — tous les rôles

Paramètres

Nom Type Dans Description
id obligatoire integer path Identifiant de la famille.
lang string query Code de langue pour les traductions.

Réponses

200 Famille récupérée.
Champ Type Description
family object Objet famille.
language string Code de langue actif.
404 Famille non trouvée.
cURL
curl -H "API-Key: YOUR_API_KEY" \
  https://aroma-phyto-studio.com/api/v1/families/3
Réponse
{
  "family": {
    "family_id": 3,
    "family_name": "Lamiaceae",
    "display_order": 0,
    "data_source": "POWO",
    "created_at": "2025-01-10T08:15:00Z",
    "updated_at": "2025-02-18T11:30:00Z",
    "notes": null,
    "genus_count": 12
  },
  "language": "en_US"
}

Genres

Genres botaniques avec relation à la famille et nombre d'espèces. Lecture seule.

GET /genera #

Lister tous les genres

Récupérer une liste paginée de genres avec filtrage optionnel par famille et recherche textuelle.

Accès : Authenticated ��� all roles

Paramètres

Nom Type Dans Description
lang string query Code de langue pour les traductions (ex. en_US, fr_FR).
family_id integer query Filtrer par identifiant de famille.
q string query Recherche textuelle (min 2 car.). Recherche dans le nom de genre et l'APS-ID. La recherche de « alpha » trouve aussi « α » et inversement.
page integer query Numéro de page (base 1).
Défaut : 1
per_page integer query Éléments par page (max 100).
Défaut : 25

Réponses

200 Liste des genres récupérée.
Champ Type Description
genera array Tableau d'objets genre.
language string Code de langue actif.
count integer Nombre d'éléments dans cette page.
pagination object Métadonnées de pagination (page, per_page, total, total_pages).
401 Clé API manquante ou invalide.
cURL
curl -H "API-Key: YOUR_API_KEY" \
  https://aroma-phyto-studio.com/api/v1/genera?family_id=3&lang=en_US
Réponse
{
  "genera": [
    {
      "genus_id": 5,
      "aps_id": "APS-G0000054",
      "family_id": 3,
      "genus_name": "Lavandula",
      "display_order": 0,
      "data_source": "POWO",
      "created_at": "2025-01-10T08:15:00Z",
      "updated_at": "2025-02-18T11:30:00Z",
      "notes": null,
      "family_name": "Lamiaceae",
      "species_count": 8
    }
  ],
  "language": "en_US",
  "count": 1,
  "pagination": {
    "page": 1,
    "per_page": 25,
    "total": 120,
    "total_pages": 5
  }
}
GET /genera/{id} #

Obtenir un genre

Récupérer un genre par son identifiant numérique, y compris le nom de famille et le nombre d'espèces.

Accès : Authentifié — tous les rôles

Paramètres

Nom Type Dans Description
id obligatoire integer path Identifiant du genre.
lang string query Code de langue pour les traductions.

Réponses

200 Genre récupéré.
Champ Type Description
genus object Objet genre.
language string Code de langue actif.
404 Genre non trouvé.
cURL
curl -H "API-Key: YOUR_API_KEY" \
  https://aroma-phyto-studio.com/api/v1/genera/5
Réponse
{
  "genus": {
    "genus_id": 5,
    "aps_id": "APS-G0000054",
    "family_id": 3,
    "genus_name": "Lavandula",
    "display_order": 0,
    "data_source": "POWO",
    "created_at": "2025-01-10T08:15:00Z",
    "updated_at": "2025-02-18T11:30:00Z",
    "notes": null,
    "family_name": "Lamiaceae",
    "species_count": 8
  },
  "language": "en_US"
}

Espèces

Espèces botaniques avec les relations de genre et de famille. Lecture seule.

GET /species #

Lister toutes les espèces

Récupérer une liste paginée d'espèces avec filtrage optionnel par genre et famille.

Accès : Authentifié — tous les rôles

Paramètres

Nom Type Dans Description
lang string query Code de langue pour les traductions (ex. en_US, fr_FR).
genus_id integer query Filtrer par identifiant de genre.
family_id integer query Filtrer par identifiant de famille.
aps_id string query Filtrer par APS-ID exact (ex. APS-S0000123).
q string query Recherche textuelle (min 2 car.). Recherche dans le nom d'espèce, le genre, le nom commun et l'APS-ID. La recherche de « alpha » trouve aussi « α » et inversement.
page integer query Numéro de page (base 1).
Défaut : 1
per_page integer query Éléments par page (max 100).
Défaut : 25

Réponses

200 Liste des espèces récupérée.
Champ Type Description
species array Tableau d'objets espèce.
language string Code de langue actif.
count integer Nombre d'éléments dans cette page.
pagination object Métadonnées de pagination (page, per_page, total, total_pages).
401 Clé API manquante ou invalide.
cURL
curl -H "API-Key: YOUR_API_KEY" \
  https://aroma-phyto-studio.com/api/v1/species?lang=en_US&per_page=10
Réponse
{
  "species": [
    {
      "species_id": 42,
      "genus_id": 5,
      "species_name": "Lavandula angustifolia",
      "aps_id": "APS-S0000123",
      "display_order": 0,
      "created_at": "2025-01-10T08:15:00Z",
      "updated_at": "2025-02-18T11:30:00Z",
      "genus_name": "Lavandula",
      "family_id": 3,
      "family_name": "Lamiaceae"
    }
  ],
  "language": "en_US",
  "count": 1,
  "pagination": {
    "page": 1,
    "per_page": 10,
    "total": 342,
    "total_pages": 35
  }
}
GET /species/{id} #

Obtenir une espèce

Récupérer une espèce par son identifiant numérique.

Accès : Authentifié — tous les rôles

Paramètres

Nom Type Dans Description
id obligatoire integer path Identifiant de l'espèce.
lang string query Code de langue pour les traductions.

Réponses

200 Espèce récupérée.
Champ Type Description
species object Objet espèce.
language string Code de langue actif.
404 Espèce non trouvée.
cURL
curl -H "API-Key: YOUR_API_KEY" \
  https://aroma-phyto-studio.com/api/v1/species/42
Réponse
{
  "species": {
    "species_id": 42,
    "genus_id": 5,
    "species_name": "Lavandula angustifolia",
    "aps_id": "APS-S0000123",
    "display_order": 0,
    "created_at": "2025-01-10T08:15:00Z",
    "updated_at": "2025-02-18T11:30:00Z",
    "genus_name": "Lavandula",
    "family_id": 3,
    "family_name": "Lamiaceae"
  },
  "language": "en_US"
}

Extraits

Extraits de plantes (huiles essentielles, hydrolats, etc.) avec les relations espèce, partie de plante et chémotype. Lecture seule.

GET /extracts #

Lister tous les extraits

Récupérer une liste paginée d'extraits avec filtrage optionnel par espèce, genre, partie de plante, chémotype, type d'extrait ou famille olfactive.

Accès : Authentifié — tous les rôles

Paramètres

Nom Type Dans Description
lang string query Code de langue pour les traductions.
species_id integer query Filtrer par identifiant d'espèce.
genus_id integer query Filtrer par identifiant de genre.
family_id integer query Filtrer par identifiant de famille.
aps_id string query Filtrer par APS-ID exact (ex. APS-E0000594).
plant_part_id integer query Filtrer par identifiant de partie de plante.
chemotype_id integer query Filtrer par identifiant de chémotype.
extract_type_id integer query Filtrer par identifiant de type d'extrait.
olfactory_family_id integer query Filtrer par identifiant de famille olfactive.
q string query Recherche textuelle (min 2 car.). Recherche dans le nom d'extrait, l'espèce, le genre et l'APS-ID. La recherche de « alpha » trouve aussi « α » et inversement.
page integer query Numéro de page.
Défaut : 1
per_page integer query Éléments par page (max 100).
Défaut : 25

Réponses

200 Liste des extraits récupérée.
Champ Type Description
extracts array Tableau d'objets extrait.
language string Code de langue actif.
count integer Nombre d'éléments dans cette page.
pagination object Métadonnées de pagination.
401 Clé API manquante ou invalide.
cURL
curl -H "API-Key: YOUR_API_KEY" \
  https://aroma-phyto-studio.com/api/v1/extracts?plant_part_id=1&per_page=10
Réponse
{
  "extracts": [
    {
      "extract_id": 15,
      "aps_id": "APS-E0000047",
      "species_id": 42,
      "chemotype_id": 3,
      "plant_part_id": 1,
      "extract_type_id": 2,
      "olfactory_family_id": 4,
      "rating": 8.5,
      "display_order": 0,
      "created_at": "2025-01-05T09:20:00Z",
      "updated_at": "2025-02-16T13:45:00Z",
      "common_extract_name": "Lavender Essential Oil",
      "species_name": "Lavandula angustifolia",
      "genus_id": 5,
      "genus_name": "Lavandula",
      "family_id": 3,
      "family_name": "Lamiaceae",
      "chemotype_name": "Linalyl Acetate",
      "plant_part_name": "Flower",
      "extract_type_name": "Essential Oil",
      "extract_type_short_name": "EO",
      "olfactory_family_name": "Herbaceous"
    }
  ],
  "language": "en_US",
  "count": 1,
  "pagination": {
    "page": 1,
    "per_page": 10,
    "total": 287,
    "total_pages": 29
  }
}
GET /extracts/{id} #

Obtenir un extrait

Récupérer un extrait par son identifiant numérique.

Accès : Authentifié — tous les rôles

Paramètres

Nom Type Dans Description
id obligatoire integer path Identifiant de l'extrait.
lang string query Code de langue pour les traductions.

Réponses

200 Extrait récupéré.
Champ Type Description
extract object Objet extrait.
language string Code de langue actif.
404 Extrait non trouvé.
cURL
curl -H "API-Key: YOUR_API_KEY" \
  https://aroma-phyto-studio.com/api/v1/extracts/15
Réponse
{
  "extract": {
    "extract_id": 15,
    "aps_id": "APS-E0000047",
    "species_id": 42,
    "chemotype_id": 3,
    "plant_part_id": 1,
    "extract_type_id": 2,
    "olfactory_family_id": 4,
    "rating": 8.5,
    "common_extract_name": "Lavender Essential Oil",
    "species_name": "Lavandula angustifolia",
    "genus_name": "Lavandula",
    "family_name": "Lamiaceae",
    "chemotype_name": "Linalyl Acetate",
    "plant_part_name": "Flower",
    "extract_type_name": "Essential Oil",
    "extract_type_short_name": "EO",
    "olfactory_family_name": "Herbaceous"
  },
  "language": "en_US"
}

Langues

Langues disponibles pour les traductions i18n. Lecture seule.

GET /languages #

Lister toutes les langues

Récupérer toutes les langues. Filtrage optionnel par statut actif.

Accès : Authentifié — tous les rôles

Paramètres

Nom Type Dans Description
active boolean query Filtrer par statut actif (1 ou true pour les actives uniquement).

Réponses

200 Liste des langues récupérée.
Champ Type Description
languages array Tableau d'objets langue.
count integer Nombre de langues.
cURL
curl -H "API-Key: YOUR_API_KEY" \
  https://aroma-phyto-studio.com/api/v1/languages?active=1
Réponse
{
  "languages": [
    {
      "language_code": "en_US",
      "language_name": "English (United States)",
      "is_default": true,
      "active": true,
      "display_order": 0,
      "created_at": "2025-01-15T10:30:00Z",
      "updated_at": "2025-02-20T14:22:00Z"
    },
    {
      "language_code": "fr_FR",
      "language_name": "French (France)",
      "is_default": false,
      "active": true,
      "display_order": 1,
      "created_at": "2025-01-15T10:30:00Z",
      "updated_at": "2025-02-20T14:22:00Z"
    }
  ],
  "count": 2
}
GET /languages/{code} #

Obtenir une langue

Récupérer une langue par son code de langue.

Accès : Authentifié — tous les rôles

Paramètres

Nom Type Dans Description
code obligatoire string path Code de langue (ex. en_US, fr_FR).

Réponses

200 Langue récupérée.
Champ Type Description
language object Objet langue.
404 Langue non trouvée.
cURL
curl -H "API-Key: YOUR_API_KEY" \
  https://aroma-phyto-studio.com/api/v1/languages/en_US
Réponse
{
  "language": {
    "language_code": "en_US",
    "language_name": "English (United States)",
    "is_default": true,
    "active": true,
    "display_order": 0,
    "created_at": "2025-01-15T10:30:00Z",
    "updated_at": "2025-02-20T14:22:00Z"
  }
}

Parties de plante

Données de référence : parties de plante utilisées dans les extraits (ex. Fleur, Feuille, Racine). Lecture seule.

GET /plant-parts #

Lister toutes les parties de plante

Récupérer toutes les parties de plante avec traduction optionnelle.

Accès : Authentifié — tous les rôles

Paramètres

Nom Type Dans Description
lang string query Code de langue pour les traductions.

Réponses

200 Liste des parties de plante récupérée.
Champ Type Description
plant_parts array Tableau d'objets partie de plante.
language string Code de langue actif.
count integer Nombre d'éléments.
cURL
curl -H "API-Key: YOUR_API_KEY" \
  https://aroma-phyto-studio.com/api/v1/plant-parts
Réponse
{
  "plant_parts": [
    {
      "plant_part_id": 1,
      "display_order": 0,
      "created_at": "2025-01-01T00:00:00Z",
      "updated_at": "2025-01-01T00:00:00Z",
      "plant_part_name": "Flower"
    },
    {
      "plant_part_id": 2,
      "display_order": 1,
      "created_at": "2025-01-01T00:00:00Z",
      "updated_at": "2025-01-01T00:00:00Z",
      "plant_part_name": "Leaf"
    }
  ],
  "language": "en_US",
  "count": 2
}
GET /plant-parts/{id} #

Obtenir une partie de plante

Récupérer une partie de plante par son identifiant.

Accès : Authentifié — tous les rôles

Paramètres

Nom Type Dans Description
id obligatoire integer path Identifiant de la partie de plante.
lang string query Code de langue pour les traductions.

Réponses

200 Partie de plante récupérée.
Champ Type Description
plant_part object Objet partie de plante.
language string Code de langue actif.
404 Partie de plante non trouvée.
cURL
curl -H "API-Key: YOUR_API_KEY" \
  https://aroma-phyto-studio.com/api/v1/plant-parts/1
Réponse
{
  "plant_part": {
    "plant_part_id": 1,
    "display_order": 0,
    "created_at": "2025-01-01T00:00:00Z",
    "updated_at": "2025-01-01T00:00:00Z",
    "plant_part_name": "Flower"
  },
  "language": "en_US"
}

Chémotypes

Données de référence : classifications de chémotypes pour les extraits. Lecture seule.

GET /chemotypes #

Lister tous les chémotypes

Accès : Authentifié — tous les rôles

Paramètres

Nom Type Dans Description
lang string query Code de langue pour les traductions.

Réponses

200 Liste des chémotypes récupérée.
Champ Type Description
chemotypes array Tableau d'objets chémotype.
language string Code de langue actif.
count integer Nombre d'éléments.
cURL
curl -H "API-Key: YOUR_API_KEY" \
  https://aroma-phyto-studio.com/api/v1/chemotypes
Réponse
{
  "chemotypes": [
    {
      "chemotype_id": 1,
      "display_order": 0,
      "created_at": "2025-01-01T00:00:00Z",
      "updated_at": "2025-01-01T00:00:00Z",
      "chemotype_name": "Linalool"
    }
  ],
  "language": "en_US",
  "count": 1
}
GET /chemotypes/{id} #

Obtenir un chémotype

Accès : Authentifié — tous les rôles

Paramètres

Nom Type Dans Description
id obligatoire integer path Identifiant du chémotype.
lang string query Code de langue pour les traductions.

Réponses

200 Chémotype récupéré.
404 Chémotype non trouvé.
cURL
curl -H "API-Key: YOUR_API_KEY" \
  https://aroma-phyto-studio.com/api/v1/chemotypes/1
Réponse
{
  "chemotype": {
    "chemotype_id": 1,
    "display_order": 0,
    "created_at": "2025-01-01T00:00:00Z",
    "updated_at": "2025-01-01T00:00:00Z",
    "chemotype_name": "Linalool"
  },
  "language": "en_US"
}

Types d'extrait

Données de référence : types d'extraits de plantes (huile essentielle, hydrolat, etc.). Lecture seule.

GET /extract-types #

Lister tous les types d'extrait

Accès : Authentifié — tous les rôles

Paramètres

Nom Type Dans Description
lang string query Code de langue pour les traductions.

Réponses

200 Liste des types d'extrait récupérée.
Champ Type Description
extract_types array Tableau d'objets type d'extrait.
language string Code de langue actif.
count integer Nombre d'éléments.
cURL
curl -H "API-Key: YOUR_API_KEY" \
  https://aroma-phyto-studio.com/api/v1/extract-types
Réponse
{
  "extract_types": [
    {
      "extract_type_id": 1,
      "is_carrier_oil": false,
      "is_default": true,
      "iso_reference": null,
      "display_order": 0,
      "extract_type_name": "Essential Oil",
      "extract_type_short_name": "EO"
    }
  ],
  "language": "en_US",
  "count": 1
}
GET /extract-types/{id} #

Obtenir un type d'extrait

Accès : Authentifié — tous les rôles

Paramètres

Nom Type Dans Description
id obligatoire integer path Identifiant du type d'extrait.
lang string query Code de langue pour les traductions.

Réponses

200 Type d'extrait récupéré.
404 Type d'extrait non trouvé.
cURL
curl -H "API-Key: YOUR_API_KEY" \
  https://aroma-phyto-studio.com/api/v1/extract-types/1
Réponse
{
  "extract_type": {
    "extract_type_id": 1,
    "is_carrier_oil": false,
    "is_default": true,
    "iso_reference": null,
    "display_order": 0,
    "extract_type_name": "Essential Oil",
    "extract_type_short_name": "EO"
  },
  "language": "en_US"
}

Familles olfactives

Données de référence : classifications de familles olfactives pour les extraits. Lecture seule.

GET /olfactory-families #

Lister toutes les familles olfactives

Accès : Authentifié — tous les rôles

Paramètres

Nom Type Dans Description
lang string query Code de langue pour les traductions.

Réponses

200 Liste des familles olfactives récupérée.
Champ Type Description
olfactory_families array Tableau d'objets famille olfactive.
language string Code de langue actif.
count integer Nombre d'éléments.
cURL
curl -H "API-Key: YOUR_API_KEY" \
  https://aroma-phyto-studio.com/api/v1/olfactory-families
Réponse
{
  "olfactory_families": [
    {
      "olfactory_family_id": 1,
      "display_order": 0,
      "family_name": "Herbaceous"
    }
  ],
  "language": "en_US",
  "count": 1
}
GET /olfactory-families/{id} #

Obtenir une famille olfactive

Accès : Authentifié — tous les rôles

Paramètres

Nom Type Dans Description
id obligatoire integer path Identifiant de la famille olfactive.
lang string query Code de langue pour les traductions.

Réponses

200 Famille olfactive récupérée.
404 Famille olfactive non trouvée.
cURL
curl -H "API-Key: YOUR_API_KEY" \
  https://aroma-phyto-studio.com/api/v1/olfactory-families/1
Réponse
{
  "olfactory_family": {
    "olfactory_family_id": 1,
    "display_order": 0,
    "family_name": "Herbaceous"
  },
  "language": "en_US"
}