N'importe quel modèle sait générer du SAS. Sans moyen de l'exécuter, personne ne sait si le code fonctionne. La Run API ouverte de Jenner donne à l'agent l'autre moitié de la boucle : exécuter le programme, lire les vraies sorties et les vraies erreurs, le corriger, l'exécuter à nouveau — sans licence SAS ni installation locale.
L'accès anonyme fonctionne sans aucune clé API.
Un assistant qui écrit du SAS et s'arrête là vous livre quelque chose qui a l'air correct. La macro se résout-elle ? Le merge récupère-t-il les variables attendues ? PROC MEANS renvoie-t-il 19 lignes ou 0 ? Rien de tout cela n'est vérifiable tant que le programme n'a pas été exécuté.
Historiquement, l'exécuter supposait une licence SAS et une installation — précisément ce dont un agent ne dispose pas. La Run API lève cette contrainte : un seul appel HTTP exécute le code et renvoie des résultats structurés que le modèle peut réellement analyser.
Générer, vérifier, exécuter, itérer — le tout lisible par une machine.
Le modèle écrit du SAS — une étape DATA, une PROC, une macro. Rien de particulier à prévoir : Jenner accepte la syntaxe SAS standard, donc le code qu'un assistant sait déjà écrire est celui qui s'exécute.
Envoyez le script en POST sur /v1/validate pour une passe d'analyse seule. Les diagnostics reviennent sans rien exécuter : un agent peut donc repérer une erreur de syntaxe avant d'y consacrer une exécution.
Envoyez en POST sur /v1/run le script et vos éventuelles entrées CSV ou Parquet. Jenner l'exécute dans un conteneur isolé et renvoie la sortie listing, le log NOTE/WARNING/ERROR, un code de sortie, ainsi que chaque jeu de données et chaque fichier produit par le programme.
Le log et les diagnostics sont un retour structuré, pas une capture d'écran. L'agent lit l'erreur réelle, corrige la ligne concernée et relance — la boucle se referme sans intervention humaine.
De vraies requêtes sur l'API publique. Sans clé, sans configuration.
curl -X POST https://api.jenneranalytics.com/v1/quick \
--data-binary @analysis.sas The MEANS Procedure
Variable N Mean Std Dev
-----------------------------------------------
bmi 19 17.8420103 1.4625169
-----------------------------------------------Il manque un point-virgule dans cet extrait. Un appel en analyse seule nomme le problème, l'agent le corrige et poursuit.
data demo;
set sashelp.class /* <- missing semicolon */
bmi = weight / (height**2) * 703;
run;{
"valid": false,
"diagnostics": [
{ "severity": "error",
"message": "Unexpected token: Eq, expected Semi" }
]
}Une exécution complète renvoie le listing, le log, un code de sortie et chaque jeu de données produit par le programme — avec le nombre de lignes, pour que l'agent puisse vérifier qu'il a bien obtenu des données au lieu de le supposer.
{
"run_id": "r_c8679761197f4f9d8a3bc021...",
"status": "ok",
"exit_code": 0,
"output": "...formatted listing tables...",
"log": "NOTE: PROC MEANS statement used.",
"datasets": [ { "name": "demo", "row_count": 19 } ],
"files": [],
"diagnostics": [],
"duration_ms": 412,
"jenner_version": "..."
}URL de base https://api.jenneranalytics.com/v1
| Point de terminaison | Utilité |
|---|---|
POST/v1/run | Exécute un script avec des données d'entrée facultatives. Renvoie la sortie, le log, le code de sortie, les jeux de données, les fichiers et les diagnostics au format JSON. |
POST/v1/run/stream | Identique à /v1/run, diffusé en Server-Sent Events pour que le log arrive pendant l'exécution du programme. |
POST/v1/quick | La simplicité en une ligne. Vous envoyez le script brut, vous récupérez le listing en texte simple — le moyen le plus rapide de répondre à « est-ce que ce SAS fonctionne ? » |
POST/v1/validate | Contrôle de syntaxe par analyse seule. Renvoie des diagnostics sans exécution. Les macros ne sont pas développées : traitez les échecs liés aux macros comme indicatifs. |
GET/v1/run/{run_id} | Récupère une exécution terminée, ses fichiers, ou l'aperçu ou le téléchargement d'un jeu de données. Les résultats sont conservés une heure et nécessitent le jeton d'accès de l'exécution. |
Commencez sans clé. Ajoutez-en une quand vous aurez besoin de marge.
| Palier | Authentification | Limite de débit | Délai d'expiration |
|---|---|---|---|
| Anonyme | Aucune clé requise | 1 000 req/h par IP | 30 secondes |
| Free | Inscription par e-mail | 1 500 req/h | 60 secondes |
| Pro | Clé API | 10 000 req/h | 5 minutes |
| Enterprise | Clé API | Sur mesure | Sur mesure |
Le même moteur d'exécution les alimente tous : le code qu'un agent a validé via l'API se comporte de la même façon lorsqu'une personne l'ouvre.
Aucune clé pour commencer. Aucune licence SAS, jamais.