Référence des commandes de l'Adapty Developer CLI
Cet article liste les commandes Adapty CLI qui configurent votre compte — applications, niveaux d’accès, produits, paywalls, flows, placements et segments — ainsi que les commandes permettant de migrer un projet RevenueCat et d’installer les skills Adapty, avec leurs arguments, indicateurs et valeurs acceptées. Pour les campagnes Apple Ads, consultez Commandes Ads Manager.
Pour la configuration de l’authentification et la gestion des tokens, consultez Authentification.
Indicateurs globaux
Ces indicateurs sont disponibles sur toutes les commandes.
| Indicateur | Description |
|---|---|
--json | Afficher en JSON plutôt qu’en texte formaté |
--help | Afficher l’aide de la commande |
Toutes les commandes list acceptent également des indicateurs de pagination :
| Indicateur | Défaut | Description |
|---|---|---|
--page | 1 | Numéro de page |
--page-size | 20 | Éléments par page (max : 100) |
Applications
Gérez les applications de votre compte Adapty. Pour la configuration via le tableau de bord, consultez Paramètres de l’application.
adapty apps list
Listez toutes les applications de votre compte Adapty.
adapty apps list
Accepte les options de pagination.
adapty apps get
Obtenez les détails d’une application spécifique.
adapty apps get <app-id>
| Argument | Description |
|---|---|
app-id | ID de l’application (UUID) |
adapty apps create
Créer une nouvelle application.
adapty apps create --title "My App" --platform ios --apple-bundle-id com.example.app
| Flag | Required | Description |
|---|---|---|
--title | Yes | Titre de l’application |
--platform | Yes | Plateforme : ios ou android. Répéter pour les deux : --platform ios --platform android |
--apple-bundle-id | Required with --platform ios | Bundle ID Apple |
--google-bundle-id | Required with --platform android | Bundle ID Google |
adapty apps update
Mettre à jour une application existante.
adapty apps update <app-id> --title "New Name"
| Argument | Description |
|---|---|
app-id | ID de l’application (UUID) |
| Flag | Description |
|---|---|
--title | Nouveau titre de l’application |
--apple-bundle-id | Nouvel Apple bundle ID |
--google-bundle-id | Nouvel Google bundle ID |
Au moins un flag est requis. --platform ne peut pas être modifié après la création.
Niveaux d’accès
adapty access-levels list
Liste tous les niveaux d’accès d’une application.
adapty access-levels list --app <app-id>
| Flag | Required | Description |
|---|---|---|
--app | Yes | App ID (UUID) |
Accepte les options de pagination.
adapty access-levels get
Obtenez les détails d’un niveau d’accès spécifique.
adapty access-levels get --app <app-id> <access-level-id>
| Argument | Description |
|---|---|
access-level-id | ID du niveau d’accès (UUID) |
| Flag | Requis | Description |
|---|---|---|
--app | Oui | ID de l’application (UUID) |
adapty access-levels create
Créer un nouveau niveau d’accès.
adapty access-levels create --app <app-id> --sdk-id "pro" --title "Pro"
| Flag | Requis | Description |
|---|---|---|
--app | Oui | ID de l’app (UUID) |
--sdk-id | Oui | Identifiant utilisé dans le code de l’app pour vérifier l’accès (par exemple, "pro" ou "premium") |
--title | Oui | Libellé d’affichage dans l’Adapty Dashboard |
adapty access-levels update
Mettez à jour un niveau d’accès existant.
adapty access-levels update --app <app-id> <access-level-id> --title "Pro Access"
| Argument | Description |
|---|---|
access-level-id | ID du niveau d’accès (UUID) |
| Flag | Requis | Description |
|---|---|---|
--app | Oui | ID de l’app (UUID) |
--title | Oui | Nouveau libellé d’affichage |
--sdk-id ne peut pas être modifié après la création.
Produits
Liste des produits Adapty
Listez tous les produits d’une application.
adapty products list --app <app-id>
| Flag | Requis | Description |
|---|---|---|
--app | Oui | ID de l’application (UUID) |
Accepte les flags de pagination.
adapty products get
Obtenez les détails d’un produit spécifique.
adapty products get --app <app-id> <product-id>
| Argument | Description |
|---|---|
product-id | ID du produit (UUID) |
| Indicateur | Requis | Description |
|---|---|---|
--app | Oui | ID de l’application (UUID) |
adapty products create
Créez un nouveau produit.
Les identifiants de produit et de prix du store ne peuvent pas être modifiés après la création. Pour utiliser d’autres identifiants de store, créez un nouveau produit.
adapty products create --app <app-id> --title "Monthly" --access-level-id <access-level-id> --period monthly --ios-product-id com.example.monthly
| Paramètre | Obligatoire | Description |
|---|---|---|
--app | Oui | ID de l’app (UUID) |
--title | Oui | Titre du produit |
--access-level-id | Oui | ID (UUID) du niveau d’accès que ce produit débloque |
--period | Oui | Période d’abonnement : weekly, monthly, two_months, trimonthly, semiannual, annual, lifetime |
--ios-product-id | Au moins un store requis | ID du produit dans App Store Connect |
--android-product-id | Au moins un store requis | ID du produit dans Google Play Console |
--android-base-plan-id | Obligatoire avec --android-product-id sauf si --period lifetime | ID du plan de base dans Google Play Console |
--stripe-product-id | Au moins un store requis | ID du produit dans Stripe |
--stripe-price-id | Obligatoire avec --stripe-product-id | ID du prix dans Stripe |
--paddle-product-id | Au moins un store requis | ID du produit dans Paddle |
--paddle-price-id | Obligatoire avec --paddle-product-id | ID du prix dans Paddle |
Chaque produit nécessite au moins un store : --ios-product-id, --android-product-id, --stripe-product-id ou --paddle-product-id. Un même produit peut avoir des identifiants pour plusieurs stores à la fois.
Pour vendre un produit sur le web via Stripe ou Paddle, connectez d’abord le fournisseur de paiement à Adapty : voir Stripe et Paddle. Pour chacun de ces stores, passez l’identifiant du produit et l’identifiant du prix ensemble. La commande échoue si vous ne passez qu’un seul des deux.
adapty products create --app <app-id> --title "Monthly" --access-level-id <access-level-id> --period monthly --stripe-product-id prod_xxx --stripe-price-id price_xxx
Un produit web uniquement est valide : vous pouvez créer un produit avec des identifiants Stripe ou Paddle sans identifiants App Store ou Google Play.
adapty products update
Mettez à jour un produit existant.
Les identifiants de produit et de prix du store ne peuvent pas être modifiés après la création et ne sont pas disponibles dans cette commande. Pour utiliser des identifiants de store différents, créez un nouveau produit.
adapty products update --app <app-id> <product-id> --title "Monthly" --access-level-id <access-level-id>
| Argument | Description |
|---|---|
product-id | ID du produit (UUID) |
| Indicateur | Requis | Description |
|---|---|---|
--app | Oui | ID de l’application (UUID) |
--title | Non | Titre du produit |
--access-level-id | Non | ID (UUID) du niveau d’accès que ce produit déverrouille |
Paywalls
Liste des paywalls Adapty
Listez tous les paywalls d’une application.
adapty paywalls list --app <app-id>
| Indicateur | Requis | Description |
|---|---|---|
--app | Oui | ID de l’application (UUID) |
Accepte les indicateurs de pagination.
adapty paywalls get
Obtenir les détails d’un paywall spécifique.
adapty paywalls get --app <app-id> <paywall-id>
| Argument | Description |
|---|---|
paywall-id | ID du paywall (UUID) |
| Flag | Requis | Description |
|---|---|---|
--app | Oui | ID de l’app (UUID) |
adapty paywalls create
Crée un nouveau paywall.
adapty paywalls create --app <app-id> --title "Default Paywall" --product-id <product-id>
| Flag | Requis | Description |
|---|---|---|
--app | Oui | ID de l’application (UUID) |
--title | Oui | Titre du paywall |
--product-id | Oui | ID du produit (UUID). Répétez pour plusieurs produits : --product-id <id1> --product-id <id2> |
adapty paywalls update
Remplacez tous les champs d’un paywall existant.
Une fois qu’un paywall est lié à un placement, ses produits ne peuvent plus être modifiés. Pour utiliser des produits différents dans un paywall actif, créez un nouveau paywall et mettez à jour le placement pour qu’il pointe vers celui-ci.
adapty paywalls update --app <app-id> <paywall-id> --title "Default Paywall" --product-id <product-id>
Cette commande remplace tous les champs du paywall, y compris la liste complète des produits.
| Argument | Description |
|---|---|
paywall-id | ID du paywall (UUID) |
| Indicateur | Obligatoire | Description |
|---|---|---|
--app | Oui | ID d’application (UUID) |
--title | Oui | Titre du paywall |
--product-id | Oui | ID de produit (UUID). Répéter pour plusieurs produits : --product-id <id1> --product-id <id2> |
adapty paywalls placements
Liste tous les placements qui utilisent actuellement un paywall donné.
adapty paywalls placements --app <app-id> <paywall-id>
| Argument | Description |
|---|---|
paywall-id | ID du paywall (UUID) |
| Flag | Requis | Description |
|---|---|---|
--app | Oui | ID de l’app (UUID) |
Utilisez cette commande avant de remplacer un paywall pour voir quels placements seraient affectés.
Les éléments de cette liste ne contiennent pas de champ is_active. Pour lire l’état d’activation d’un placement, utilisez placements list ou placements get.
Flows
Les flows sont les paywalls et onboardings que vous créez dans le Flow & Paywall Builder. La CLI gère l’enregistrement du flow, sa configuration de builder et sa publication. Une configuration de builder est un document JSON volumineux que le Flow & Paywall Builder produit normalement — la CLI n’en génère pas. Pour créer ou modifier une configuration depuis le terminal, utilisez le skill flow-generator, qui pilote ces commandes à votre place. Avant la publication, le skill flow-audit vérifie si le flow est prêt pour la production. Les commandes sont listées ici à titre de référence.
Liste des flows
Liste tous les flows d’une application.
adapty flows list --app <app-id>
| Flag | Requis | Description |
|---|---|---|
--app | Oui | ID de l’application (UUID) |
Accepte les flags de pagination.
adapty flows get
Obtenez les détails d’un flow spécifique.
adapty flows get --app <app-id> <flow-id>
| Argument | Description |
|---|---|
flow-id | ID du flow (UUID) |
| Flag | Requis | Description |
|---|---|---|
--app | Oui | ID de l’app (UUID) |
La réponse contient id, name, status, et updated_at. Le statut est l’un des suivants :
| Statut | Signification |
|---|---|
draft | Le flow n’a jamais été publié |
published | La version actuelle est en ligne |
dirty | Le flow a déjà été publié, et la version actuelle contient des modifications non publiées. Les utilisateurs continuent de voir la dernière version publiée |
publishing | La publication est en cours |
publication_failed | La dernière publication a échoué. Corrigez la configuration et publiez à nouveau |
archived | Le flow est archivé |
adapty flows create
Crée un flow. Le nouveau flow a un nom et aucune configuration. Pour ajouter une configuration, utilisez flows config update.
adapty flows create --app <app-id> --name "Onboarding"
| Flag | Requis | Description |
|---|---|---|
--app | Oui | ID de l’application (UUID) |
--name | Oui | Nom du flow |
adapty flows update
Renommer un flow.
adapty flows update --app <app-id> <flow-id> --name "Onboarding v2"
| Argument | Description |
|---|---|
flow-id | ID du flow (UUID) |
| Flag | Requis | Description |
|---|---|---|
--app | Oui | ID de l’app (UUID) |
--name | Oui | Nouveau nom du flow |
adapty flows publish
Publiez la version actuelle d’un flow à vos utilisateurs.
adapty flows publish --app <app-id> <flow-id>
| Argument | Description |
|---|---|
flow-id | ID du flow (UUID) |
| Flag | Requis | Description |
|---|---|---|
--app | Oui | ID de l’app (UUID) |
--yes, -y | Non | Publie sans demander de confirmation. Requis lorsque la sortie est redirigée ou que --json est utilisé |
Parce que la publication modifie ce que voient vos utilisateurs, la commande affiche le nom du flow et demande une confirmation. Toute réponse autre que y annule la commande avec le code de sortie 1. Avec --json ou dans un pipe, la commande refuse avec le code de sortie 2 au lieu d’attendre une réponse — passez donc --yes dans les scripts et les sessions agent.
La publication est asynchrone : la réponse indique status: publishing, et le flow n’est pas encore en ligne. Interrogez flows get jusqu’à ce que le statut devienne published ou publication_failed. En cas de publication_failed, flows config get indique la raison de l’échec.
La publication échoue avec une erreur HTTP 400 si le flow n’a pas de config, si la config n’est pas publiable, ou si la version actuelle est déjà en ligne. Pour vérifier une config avant de la publier, utilisez flows config validate.
adapty flows config get
Lit la configuration du builder d’un flow.
adapty flows config get --app <app-id> <flow-id>
| Argument | Description |
|---|---|
flow-id | ID du flow (UUID) |
| Flag | Requis | Description |
|---|---|---|
--app | Oui | ID de l’application (UUID) |
La réponse contient config, remote_configs, status et updated_at. updated_at est un horodatage en millisecondes de la dernière modification de la config. Passez-le à flows config update via --expected-updated-at pour éviter d’écraser une modification concurrente. Un flow dont la config n’a jamais été enregistrée renvoie 404.
Après une tentative de publication, la réponse contient également trois champs décrivant son déroulement. Lisez-les lorsque flows get signale publication_failed :
| Champ | Description |
|---|---|
publication_status | Avancement de la publication de cette version de flow : transforming, transformed, uploading, uploaded, published, ou failed |
transform_error | L’erreur de transformation brute — soit un payload JSON listant les problèmes, soit une chaîne récapitulative |
publication_error | Un message lisible pour une publication échouée |
adapty flows config update
Écrit la configuration du builder d’un flow.
adapty flows config update --app <app-id> <flow-id> --config-file config.json
| Argument | Description |
|---|---|
flow-id | ID du flow (UUID) |
| Indicateur | Requis | Description |
|---|---|---|
--app | Oui | ID d’application (UUID) |
--config | L’un des deux | Configuration du builder sous forme de chaîne JSON |
--config-file | L’un des deux | Chemin vers un fichier JSON contenant la configuration du builder, ou - pour lire depuis stdin |
--remote-configs | Non | Tableau JSON d’entrées {locale, data}, où data est le Remote Config sous forme de chaîne |
--expected-updated-at | Non | La valeur updated_at issue d’un précédent flows config get. Si la configuration a été modifiée après cette lecture, la commande échoue plutôt que d’écraser la modification. Omettez ce paramètre pour écraser sans condition |
La sauvegarde de la configuration crée un brouillon sans le publier. Sur un flow publié, l’écriture crée une nouvelle version : le statut du flow devient dirty, et les utilisateurs continuent de voir la version publiée jusqu’à ce que vous exécutiez flows publish.
adapty flows config validate
Vérifiez si une configuration du builder est publiable, sans la sauvegarder.
adapty flows config validate --app <app-id> <flow-id> --config-file config.json
| Argument | Description |
|---|---|
flow-id | ID du flow (UUID) |
| Flag | Requis | Description |
|---|---|---|
--app | Oui | ID de l’app (UUID) |
--config | L’un des deux | Configuration du builder en chaîne JSON |
--config-file | L’un des deux | Chemin vers un fichier JSON contenant la configuration du builder, ou - pour lire depuis stdin |
La réponse contient valid et une liste d’issues. Lorsque la configuration n’est pas publiable, la commande se termine avec le code 1, ce qui permet aux scripts de s’y bloquer.
adapty flows config preview
Affiche un fichier de configuration local dans le navigateur. Cette commande n’effectue aucun appel API et n’accepte pas le flag --app.
adapty flows config preview ./config.json --screen <screen-id> --device iphone-14 --orientation portrait
| Argument | Description |
|---|---|
config-file | Chemin vers un fichier JSON de configuration du builder local |
| Flag | Défaut | Description |
|---|---|---|
--screen | Premier écran du flow | ID de l’écran à afficher |
--device | iphone-14 | Cadre d’appareil dans lequel afficher |
--orientation | portrait | portrait ou landscape |
Dans un terminal, la commande ouvre l’aperçu dans votre navigateur. Avec --json ou dans un pipe, elle affiche l’URL à la place. L’URL contient toute la configuration et peut être longue : redirigez-la vers un outil de capture d’écran plutôt que de l’afficher. Les configurations dépassant environ 32 Ko s’affichent lentement.
adapty flows media upload
Téléversez une image à utiliser dans une configuration de flow.
adapty flows media upload --app <app-id> ./hero.png
| Argument | Description |
|---|---|
file | Chemin vers le fichier image |
| Flag | Requis | Description |
|---|---|---|
--app | Oui | ID de l’app (UUID) |
Formats acceptés : GIF, HEIC, JPEG, PNG, SVG et WebP. La réponse contient l’id, le name et l’url CDN de l’image, à référencer depuis la config.
Placements
Les placements sont les endroits où vos flows, paywalls et onboardings atteignent les utilisateurs. Le type de contenu d’un placement est fixé à sa création, donc faire passer une application de paywalls à des flows implique de créer de nouveaux placements plutôt que de mettre à jour les existants — la skill migrate-placements pilote ces commandes pour le faire en masse.
adapty placements list
Listez tous les placements d’une application.
adapty placements list --app <app-id>
| Flag | Required | Description |
|---|---|---|
--app | Yes | App ID (UUID) |
Accepte les options de pagination.
Chaque élément contient id, developer_id, title et is_active. is_active vaut true pour un placement actif et false pour un placement inactif.
adapty placements get
Récupère les détails d’un placement spécifique.
adapty placements get --app <app-id> <placement-id>
| Argument | Description |
|---|---|
placement-id | ID du placement (UUID) |
| Flag | Requis | Description |
|---|---|---|
--app | Oui | ID de l’application (UUID) |
La réponse contient id, developer_id, title, is_active, et un tableau audiences. is_active est true pour un placement actif et false pour un placement inactif. Chaque entrée d’audience comporte content_type (paywall ou flow), segment_ids, priority, ainsi que paywall_id ou flow_id. L’audience par défaut a segment_ids: [] et la valeur de priorité la plus élevée (évaluée en dernier). Voir Forme des audiences.
adapty placements create
Créez un nouveau placement.
adapty placements create --app <app-id> --title "Main" --developer-id "main" --audiences '[{"content_type":"paywall","segment_ids":[],"paywall_id":"<paywall-id>","priority":0}]'
| Indicateur | Requis | Description |
|---|---|---|
--app | Oui | ID de l’app (UUID) |
--title | Oui | Titre du placement |
--developer-id | Oui | Identifiant string utilisé dans le code de l’app pour demander ce placement |
--audiences | L’un des deux | Tableau JSON d’entrées d’audience, chacune avec un content_type explicite. Voir Format des audiences |
--paywall-id | L’un des deux | Déprécié. ID de paywall (UUID). Encapsulé côté client dans une audience par défaut unique |
Passez exactement l’un de --audiences ou --paywall-id. Passer les deux ou aucun génère une erreur.
--paywall-id est obsolète et sera supprimé. Lorsqu’il est passé, le CLI affiche un avertissement sur stderr et convertit la valeur en audience par défaut. Utilisez --audiences pour les nouvelles automatisations.
adapty placements update
Remplace tous les champs d’un placement existant.
adapty placements update --app <app-id> <placement-id> --title "Main" --developer-id "main" --audiences '[{"content_type":"paywall","segment_ids":[],"paywall_id":"<paywall-id>","priority":0}]'
Cette commande remplace tous les champs du placement, y compris la liste complète des audiences.
| Argument | Description |
|---|---|
placement-id | ID du placement (UUID) |
| Flag | Requis | Description |
|---|---|---|
--app | Oui | ID de l’app (UUID) |
--title | Oui | Titre du placement |
--developer-id | Oui | Identifiant utilisé dans le code de l’app pour appeler ce placement |
--audiences | L’un des deux | Tableau JSON d’entrées d’audience, chacune avec un content_type explicite. Voir Format des audiences |
--paywall-id | L’un des deux | Déprécié. ID du paywall (UUID). Remplace toutes les audiences par une audience par défaut unique |
Passer --paywall-id réécrit toutes les audiences du placement. Les audiences spécifiques à un segment sont supprimées. Pour les conserver, utilisez --audiences et incluez toutes les entrées que vous souhaitez garder.
Structure des audiences
Le paramètre --audiences prend un tableau JSON. Chaque entrée contient :
| Champ | Type | Description |
|---|---|---|
content_type | string | "paywall" ou "flow". Obligatoire pour chaque entrée. Toutes les entrées d’un même placement doivent avoir la même valeur |
segment_ids | string[] | IDs de segment ciblés par cette audience. Longueur 0 ou 1. Un tableau vide désigne l’audience par défaut — le repli pour les utilisateurs qui ne correspondent à aucun autre segment |
paywall_id | string | ID (UUID) du paywall affiché aux utilisateurs de cette audience. Obligatoire lorsque content_type vaut "paywall" |
flow_id | string | ID (UUID) du flow affiché aux utilisateurs de cette audience. Obligatoire lorsque content_type vaut "flow" |
priority | number | Basé sur 0, unique au sein du placement. Les audiences sont évaluées de la valeur la plus basse à la plus haute ; l’audience par défaut doit avoir la valeur la plus élevée |
Un placement doit avoir exactement une audience par défaut.
Le type de contenu d’un placement est fixé à sa création, donc placements update ne peut pas convertir un placement paywall en flow ni l’inverse. Servez le flow depuis un placement dédié — voir Créer un nouveau placement pour votre flow.
La CLI vérifie chaque entrée avant d’envoyer la requête. Une entrée avec un content_type manquant ou inconnu, ou sans l’ID requis par son content_type, provoque une sortie avec le code 2 et rien n’est envoyé.
Un flow ne peut être associé qu’après avoir été publié. Un flow à l’état draft, ou dont la première publication est encore en cours, est rejeté par le serveur ; le CLI reconnaît ce rejet et se termine avec le code 2, en affichant la commande flows publish correspondant à ce flow. Pour publier un flow, utilisez flows publish ou le Flow & Paywall Builder, puis attendez que son statut passe à published.
Exemple avec une audience ciblée et une audience par défaut :
adapty placements update <placement-id> --app <app-id> --title "Main" --developer-id "main" \
--audiences '[{"content_type":"paywall","segment_ids":["<vip-segment-id>"],"paywall_id":"<vip-paywall-id>","priority":0},{"content_type":"paywall","segment_ids":[],"paywall_id":"<default-paywall-id>","priority":1}]'
Exemple d’un placement qui affiche un flow publié à tous les utilisateurs :
adapty placements create --app <app-id> --title "Onboarding" --developer-id "onboarding" \
--audiences '[{"content_type":"flow","segment_ids":[],"flow_id":"<flow-id>","priority":0}]'
Pour remplacer un paywall dans plusieurs placements sans perdre le routage par segment :
-
Trouvez les placements concernés :
adapty paywalls placements --app <app-id> <old-paywall-id> -
Pour chacun, lisez le tableau
audiencescomplet :adapty placements get --app <app-id> <placement-id> --json -
Remplacez les valeurs
paywall_idcorrespondantes côté client. -
Renvoyez le payload modifié :
adapty placements update --app <app-id> <placement-id> --title "<title>" --developer-id "<developer-id>" --audiences '<modified-payload>'
Segments
Les segments regroupent les utilisateurs selon leurs attributs de profil. Utilisez ces commandes pour créer des segments et rechercher des identifiants de segment lors de la composition des audiences de placement. Pour créer un segment à partir de campagnes Apple Ads, de groupes d’annonces ou de mots-clés, utilisez plutôt adapty asa segments create : cette commande recherche les identifiants Apple à votre place et nomme le segment de la même façon qu’Ads Manager.
adapty segments list
Liste tous les segments d’une application.
adapty segments list --app <app-id>
| Flag | Required | Description |
|---|---|---|
--app | Yes | App ID (UUID) |
Accepte les drapeaux de pagination.
adapty segments get
Obtenez les détails d’un segment spécifique.
adapty segments get --app <app-id> <segment-id>
| Argument | Description |
|---|---|
segment-id | ID du segment (UUID) |
| Flag | Requis | Description |
|---|---|---|
--app | Oui | ID de l’application (UUID) |
La réponse contient id, title, description, filters, profile_count, refresh_in_progress, created_at et updated_at. list retourne uniquement id, title et description.
adapty segments create
Créez un segment à partir d’un ou plusieurs filtres.
adapty segments create --app <app-id> --title "US installs" --filter ip_country:IN:US --filter install_date:>=:2026-01-01
| Flag | Requis | Description |
|---|---|---|
--app | Oui | ID de l’application (UUID) |
--title | Oui | Titre du segment |
--filter | Oui | Règle de filtre. Répétable. Voir Syntaxe des filtres |
--description | Non | Description du segment |
Un utilisateur correspond au segment uniquement s’il correspond à chaque filtre. La réponse contient les mêmes champs que segments get. profile_count commence à 0, et Adapty le recalcule après la création du segment.
adapty segments update
Remplace le titre, la description et les filtres d’un segment existant.
adapty segments update --app <app-id> <segment-id> --title "US installs" --filter ip_country:IN:US,CA
| Argument | Description |
|---|---|
segment-id | ID du segment (UUID) |
| Flag | Requis | Description |
|---|---|---|
--app | Oui | ID de l’app (UUID) |
--title | Oui | Titre du segment |
--filter | Oui | Règle de filtre. Répétable. Voir Syntaxe des filtres |
--description | Non | Description du segment |
segments update remplace l’intégralité du segment. Passez tous les filtres que vous souhaitez conserver, pas seulement celui que vous modifiez. Pour lire les filtres actuels, exécutez adapty segments get --app <app-id> <segment-id> --json.
Syntaxe des filtres
Écrivez chaque --filter sous la forme field:OPERATOR:value. Pour correspondre à plusieurs valeurs, séparez-les par des virgules : ip_country:IN:US,CA.
| Opérateur | Valeurs | Exemple |
|---|---|---|
IN, NOT IN | Une ou plusieurs | ip_country:NOT IN:US,CA |
>, >=, <, <= | Une | age:>:18 |
BETWEEN | Deux | total_revenue_usd:BETWEEN:10,100 |
IS NULL, IS NOT NULL | Aucune | age:IS NULL |
Passez les nombres sous forme de valeurs simples, par exemple age:>:18. Adapty les convertit pour les champs numériques tels que age, total_revenue_usd et les attributs personnalisés de type float.
Pour une valeur que cette forme abrégée ne peut pas exprimer, passez le filtre sous forme d’objet JSON :
adapty segments create --app <app-id> --title "Adults" --filter '{"field_name":"age","operator":">","value_list":[18]}'
Adapty valide les noms de champs, les opérateurs et les types de valeurs, et signale une erreur pour chaque filtre invalide. Pour voir les noms de champs et les formats de valeurs des filtres existants, exécutez adapty segments get --app <app-id> <segment-id> --json sur un segment créé dans le tableau de bord.
Migrations
Déplacez un projet RevenueCat vers Adapty : son catalogue, puis éventuellement ses événements store et son historique de transactions. Adapty exécute chaque migration sous forme d’une séquence d’étapes et vous indique les actions disponibles à chaque fois — lisez toujours status avant chaque action. Pour la procédure complète, consultez Migration depuis RevenueCat.
Toutes les commandes sauf list, create, use, current et unuse acceptent le flag de migration :
| Flag | Requis | Description |
|---|---|---|
-m, --migration | Non | ID de migration. Sans cette option, le CLI utilise la variable d’environnement ADAPTY_MIGRATION, puis la migration enregistrée par create ou use. |
adapty migrations list
Listez vos migrations et les flows de migration que vous pouvez démarrer, groupés par application.
adapty migrations list
adapty migrations create
Démarrez une migration et enregistrez-la comme migration courante.
adapty migrations create --name <app-name>
adapty migrations create --flow <flow> --app <app-id>
| Indicateur | Requis | Description |
|---|---|---|
--name | L’un de --name ou --flow | Nom de la nouvelle application Adapty. Lance la migration du catalogue. Incompatible avec --flow ou --app. |
--flow | L’un de --name ou --flow | Flow à démarrer dans une application existante, tel qu’affiché par adapty migrations list. Requiert --app. |
--app | Avec --flow | ID de l’application (UUID) |
--no-select | Non | Crée la migration sans l’enregistrer comme migration courante |
Les flows disponibles pour une application existante après sa migration de catalogue :
| Flow | Description |
|---|---|
transactions | Importer l’historique des transactions depuis un export cloud RevenueCat quotidien |
transactions_support | Importer l’historique des transactions via le support RevenueCat et le support Adapty, pour les plans RevenueCat sans export cloud |
apple_events | Transférer les notifications App Store à Adapty pendant que RevenueCat continue de les recevoir |
google_events | Abonner Adapty au sujet Pub/Sub utilisé par RevenueCat pour les notifications Google Play |
code | Demander à votre agent de code de remplacer le SDK RevenueCat dans une base de code de l’application |
integrations | Demander à votre agent de code d’identifier les outils d’analytics, d’attribution et de messagerie dans le code de l’application pour les configurer dans Adapty |
paywall_design | Demander à votre agent de code de reconstruire les designs de paywall RevenueCat dans les flows créés par la migration du catalogue |
adapty migrations use
Enregistre une migration comme migration courante, afin que les autres commandes n’aient pas besoin de -m.
adapty migrations use <migration-id>
| Argument | Description |
|---|---|
migration-id | ID de migration issu de adapty migrations list |
La CLI vérifie que vous avez accès à la migration avant d’enregistrer l’ID. La migration enregistrée est associée au token courant et s’applique dans tous les terminaux.
adapty migrations current
Affiche la migration en cours et son origine : la variable d’environnement ADAPTY_MIGRATION ou la sélection sauvegardée.
adapty migrations current
adapty migrations unuse
Supprimez la migration sauvegardée. Une valeur ADAPTY_MIGRATION définie dans votre shell reste active jusqu’à ce que vous la désactiviez.
adapty migrations unuse
adapty migrations status
Affiche l’état d’une migration, ses problèmes et les actions que vous pouvez exécuter ensuite.
adapty migrations status
| Flag | Required | Description |
|---|---|---|
--wait | No | Interroge jusqu’à ce que la migration change, puis renvoie le dernier état |
--timeout | No | Durée d’interrogation pour --wait : 1–600 secondes, 120 par défaut. Accepte 300, 300s ou 5m. Nécessite --wait. |
Avec --json, next_actions et available_actions listent l’identifiant de chaque action, les ressources qu’elle lit, son input_schema et son texte confirm.
Le code de sortie 0 signifie que la requête a réussi, pas la migration. Vérifiez migration.state dans la réponse.
adapty migrations steps
Affiche la liste de contrôle de migration et le statut de chaque étape.
adapty migrations steps
adapty migrations show
Listez les ressources disponibles à l’étape actuelle, ou lisez-en une.
adapty migrations show [resource]
| Argument | Description |
|---|---|
resource | Nom de la ressource, par exemple apps, mapping, report ou export-config. Omettez-le pour lister les ressources disponibles à l’étape actuelle. |
adapty migrations run
Exécute une action depuis adapty migrations status.
adapty migrations run <action-id>
| Argument | Description |
|---|---|
action-id | ID d’action provenant de next_actions ou available_actions dans adapty migrations status |
| Option | Obligatoire | Description |
|---|---|---|
--input | Non | Entrée de l’action sous forme d’objet JSON correspondant au input_schema de l’action. Sans entrée, le CLI envoie {}. |
--input-file | Non | Chemin vers un fichier contenant l’entrée de l’action, ou - pour la lire depuis stdin. Incompatible avec --input. |
-y, --yes | Pour les actions avec un texte confirm | Confirme l’action après avoir lu son texte confirm. Aucune invite interactive. |
--open | Non | Ouvre le lien de l’action même avec un pipe ou --json |
--no-browser | Non | Affiche le lien de l’action sans ouvrir de navigateur |
Les actions se déclinent en trois types :
- Les actions d’entrée envoient vos données à Adapty, par exemple les applications RevenueCat à migrer ou vos décisions de mapping.
- Les actions externes ouvrent une page dans l’Adapty Dashboard, par exemple pour coller la clé API secrète RevenueCat. Remplissez la page, puis vérifiez
status. - Les actions agent, par exemple
migrate_code, sont des tâches pour votre agent de codage. Exécutez-les depuis le dépôt git de l’application : le CLI enregistre les données de la migration dans.git/adapty/<migration-id>/et affiche les instructions pour l’agent. L’agent rapporte le résultat en relançant l’action avec--input.
adapty migrations close
Terminer ou annuler une migration. Vous ne pouvez pas la rouvrir ensuite.
adapty migrations close --outcome finish --yes
| Flag | Required | Description |
|---|---|---|
--outcome | Yes | finish marque la migration comme terminée ; cancel l’abandonne |
-y, --yes | Yes | Confirmer la fermeture |
Skills
adapty skills install
Installe les skills Adapty dans les agents de code sur cette machine.
adapty skills install
| Flag | Required | Description |
|---|---|---|
--agent | No | Agent to install into: claude-code, codex, or gemini-cli. Repeat the flag for several agents. |
-y, --yes | No | Install into every agent found without asking. Required when the CLI finds several agents and can’t ask, for example with --json. |
The CLI looks for Claude Code, Codex, and Gemini CLI on PATH. If it finds none, it asks whether to run npx skills@1.7.0 add adaptyteam/adapty-skills --all --global, which covers other agents. Restart the agent to load the skills.
Auth
| Commande | Description |
|---|---|
adapty auth login | S’authentifier via le navigateur en utilisant le flux d’appareils |
adapty auth logout | Effacer les identifiants stockés et la migration sauvegardée localement |
adapty auth whoami | Vérifier le token auprès du serveur et afficher les informations utilisateur |
adapty auth status | Afficher l’état d’authentification local sans appel serveur |
adapty auth revoke | Révoquer le token côté serveur, puis l’effacer avec sa migration sauvegardée localement |
Consultez Authentification pour tous les détails sur chaque commande.