ULTINEO REASONING

Catalogue

Le catalogue liste les applications que les projets ont publiées, les plus utilisées d'abord. Il ne se limite pas à votre propre projet : c'est la surface de découverte des applications que n'importe qui peut lancer. Publier une application dans le catalogue est un PATCH sur Applications ; le lire est cette ressource.

Les instructions n'y sont jamais exposées, car elles appartiennent au propriétaire de l'application. Les champs de saisie le sont, car ils constituent le schéma que l'appelant remplit pour lancer une exécution.

Les appels

MéthodeCheminDroit requis
GET/v1/catalog/listcatalog:read
GET/v1/catalog/detail/<app_id>catalog:read
GET/v1/catalog/publicaucun

<app_id> est un identifiant d'application, préfixé mapp_.

L'objet application de catalogue

ChampTypeDescription
idchaîneL'identifiant de l'application, préfixé mapp_.
objectchaîneToujours catalog_app.
namechaîneLe nom de l'application.
descriptionchaîneCe que fait l'application.
logochaîneL'identifiant du fichier logo de l'application, ou une chaîne vide.
backgroundchaîneLe fond décoratif avec lequel l'application est présentée.
modelchaîneLe modèle sur lequel l'application s'exécute.
projectchaîneLe projet qui a publié l'application.
datatableauLe schéma de saisie. Renvoyé par le seul appel de détail.
runsentierLe nombre de fois où l'application a été lancée depuis l'extérieur de son propre projet.
created_atentierDate de création, en secondes Unix. Appel de détail uniquement.

Lister le catalogue

GET /v1/catalog/list renvoie les applications publiées, triées selon leur fréquence de lancement, les plus utilisées d'abord. Il accepte limit et offset.

curl
curl "https://api.think.ultineo.com/v1/catalog/list?limit=1" \
  -H "Authorization: Bearer sk-project-YOUR_KEY"
json
{
  "code": 200,
  "title": "OK",
  "response": {
    "object": "list",
    "data": [
      {
        "id": "mapp_0ceacb46e5b3a99e91b6",
        "object": "catalog_app",
        "name": "Support triage",
        "description": "Sorts an inbound support message by urgency.",
        "logo": "file_d81e4afa6c8bf11fa881",
        "background": "bg-gradient-to-br from-indigo-500 to-sky-500",
        "model": "modi_7b1e4c2a9d05f3618ea4",
        "project": "proj_3f6c1d90ab77e2415c08",
        "runs": 148
      }
    ],
    "total": 1
  }
}

total compte toutes les applications publiées : vous pouvez donc parcourir tout le catalogue avec offset.

Consulter une application du catalogue

GET /v1/catalog/detail/<app_id> ajoute le schéma de saisie, c'est-à-dire ce dont vous avez besoin avant de lancer une exécution sur une application qui ne vous appartient pas.

curl
curl https://api.think.ultineo.com/v1/catalog/detail/mapp_0ceacb46e5b3a99e91b6 \
  -H "Authorization: Bearer sk-project-YOUR_KEY"
json
{
  "code": 200,
  "title": "OK",
  "response": {
    "id": "mapp_0ceacb46e5b3a99e91b6",
    "object": "catalog_app",
    "name": "Support triage",
    "description": "Sorts an inbound support message by urgency.",
    "logo": "file_d81e4afa6c8bf11fa881",
    "background": "bg-gradient-to-br from-indigo-500 to-sky-500",
    "model": "modi_7b1e4c2a9d05f3618ea4",
    "project": "proj_3f6c1d90ab77e2415c08",
    "data": [
      {
        "id": "madi_5d8b21c74e0af96b3d15",
        "name": "message",
        "type": "text",
        "placeholder": "Paste the message",
        "required": true
      }
    ],
    "runs": 148,
    "created_at": 1754205600
  }
}

L'application doit être à la fois publiée et activée. Une application qui n'est ni l'une ni l'autre, ou qui n'existe pas, donne 404 et Public app not found.

Astuce — Utilisez le name de chaque entrée de data comme clé lorsque vous lancez l'exécution, comme décrit dans Exécutions. Une exécution sur une application publiée qui ne vous appartient pas est autorisée et compte dans son total d'exécutions publiques.

L'appel sans clé

GET /v1/catalog/public sert les mêmes applications publiées sans aucune authentification, pour une page vitrine publique. Il n'accepte aucun paramètre, renvoie au plus 50 applications, et n'utilise pas l'enveloppe standard.

curl
curl https://api.think.ultineo.com/v1/catalog/public
json
{
  "ok": true,
  "data": [
    {
      "id": "mapp_0ceacb46e5b3a99e91b6",
      "name": "Support triage",
      "description": "Sorts an inbound support message by urgency.",
      "background": "bg-gradient-to-br from-indigo-500 to-sky-500",
      "logo": "file_d81e4afa6c8bf11fa881",
      "logo_url": "https://cdn.example.com/d/cdnu_6b2e91f47a05c3d8e142/file_d81e4afa6c8bf11fa881/",
      "category_id": "mott_4f8a26d1c709b53ea814",
      "category": "Text"
    }
  ]
}
ChampTypeDescription
okbooléentrue lorsque le catalogue a été servi, false lorsqu'il n'a pas pu l'être.
datatableauLes applications publiées. Vide lorsque ok vaut false.

Chaque entrée porte un logo_url directement utilisable plutôt que le seul identifiant de fichier, et nomme sa catégorie. Il n'y a ni total ni pagination : cet appel est un flux de vitrine figé, et non un moyen de parcourir le catalogue.

Une méthode autre que GET donne 405, et un service sous-jacent brièvement injoignable donne 503. Les deux répondent {"ok": false, "data": []}.

Note — logo_url vaut une chaîne vide lorsque l'application n'a pas de logo, ou lorsque l'hôte de diffusion ne peut pas être résolu. Vérifiez-le avant de l'utiliser.