tinyant

Connectez Tiny Ant à vos propres outils

API REST, serveur MCP et webhooks

Utilisez l'API REST pour manipuler vos opportunités, contacts, tâches, propositions et données de visiteurs du site. Le serveur MCP expose un ensemble de ces actions aux assistants compatibles. Une clé API pouvant lire et modifier les données de l'espace de travail, ne connectez que des outils de confiance.

Authentification

Chaque requête transmet une clé API de l'espace de travail dans l'en-tête Authorization :

Authorization: Bearer ta_live_...

Les administrateurs de l'espace de travail créent des clés depuis la page Paramètres de l'application (section API et MCP). Une clé n'est affichée qu'une seule fois à sa création et peut être révoquée à tout moment. Passer son créateur au rôle de membre révoque définitivement ses clés ; retirer le créateur invalide ses clés. Le promouvoir de nouveau ne restaure pas les anciennes clés. Les clés sont inutilisables tant que l'espace de travail est suspendu. Chaque clé agit au nom de l'administrateur qui l'a créée : les notes, tâches et événements lui sont attribués, et tout ce que la clé crée est visible dans tout l'espace de travail. L'API et le serveur MCP sont inclus dans Pro et Team. Créez et gérez vos clés dans Paramètres → API et MCP.

Les requêtes sans clé valide reçoivent un code 401. Un espace de travail avec l'offre Free reçoit un code 403.

URL de base

https://app.tinyant.io/api/v1

La plupart des corps de requête et des réponses utilisent le format JSON (UTF-8). L'import de propositions utilise des données de formulaire multipart, comme indiqué ci-dessous. Les identifiants se présentent sous la forme de_, co_, pe_, ta_ et no_ suivis de 12 caractères ; les identifiants de proposition comportent 12 caractères sans préfixe. Les horodatages sont exprimés en millisecondes Unix. Les points de terminaison ci-dessous décrivent l'interface d'intégration publiée. Utilisez les requêtes réseau de l'application comme exemples lorsqu'une charge utile complète n'est pas documentée ici.

Points de terminaison

MéthodeCheminRôle
GET POST PUT DELETE/automations, /automations/:idCRM Advanced : règles d'administrateur et 100 dernières exécutions accessibles. POST/PUT exige name, definition, confirmation issu de l'aperçu, revision (0 pour une création), mode off|simulate|live. Commencez par simulate ; le mode live exige une simulation réussie de la version inchangée. Les règles créées via l'API restent liées à leur administrateur et à leur clé d'origine. Les actions de changement de responsable sont réservées à l'application. DELETE archive la règle et annule les exécutions en attente.
POST/automations/previewValider {definition} : version:1 ; déclencheur deal_created|stage_changed|stalled|proposal_opened ; pipeline_id, stage_id, owner_id facultatifs ; stalled after_days 1..90. Une seule action : create_task {title,delay_days:0..90,assignee_id}, set_field {field:expected_close,value:YYYY-MM-DD}, ou notify {assignee_id}. Le destinataire est l'identifiant d'un membre actuel ou deal_owner. Renvoie confirmation et jusqu'à 20 exemples correspondants. Aucune modification n'est appliquée.
POST/automations/:id/simulate, /automations/:id/stop, /automations/:id/cancelMettre en file d'attente une simulation {deal_id}, arrêter une règle {} ou annuler une exécution en attente {run_id}. L'exécution en arrière-plan revérifie les droits actuels. Les modifications et les reçus sont validés ensemble ; les nouvelles tentatives ne répètent jamais une action déjà validée. Aucun e-mail sortant.
GET/automation-notificationsBoîte de réception interne de l'utilisateur actuel, filtrée selon ses droits d'accès actuels aux opportunités. Aucun e-mail ni notification push de navigateur.
GET PUT/dashboardTableau de bord personnel : GET renvoie le catalogue de cartes, la configuration enregistrée et les indicateurs en direct selon les droits d'accès ; PUT {revision,config} enregistre uniquement la disposition et les filtres de l'utilisateur actuel. Configuration version 1 : days 7/30/90, owner all/mine/unassigned, pipeline_id et currency acceptant null, et cartes uniques {id,size} du catalogue avec largeurs 4/6/8/12. Les prévisions et résultats exigent un accès administrateur Advanced ; Visitors nécessite une offre payante. Les données ne sont jamais enregistrées avec la disposition. Les clés API conservent leur périmètre d'accès aux fiches.
GET/bulkMembres actuels, paramètres d'activité et vos 20 lots groupés les plus récents. L'aperçu et la progression d'un lot groupé sont réservés à son créateur et à la même clé API.
POST/bulk/previewPrévisualiser de 1 à 100 entreprises, contacts ou opportunités explicites avec entity, ids et action: activity, ainsi que les champs d'activité utilisés pour la création de tâches. Renvoie les noms sélectionnés, la validation par fiche et confirmation. La création d'activités applique les droits de modification actuels et les mêmes contrôles de planification, de types Advanced et de capacité que les activités individuelles. Les changements de responsable sont réservés aux administrateurs dans l'application de l'espace de travail, conformément à la gestion des accès aux fiches.
GET POST/bulk/:idLire un aperçu ou ses résultats, ou envoyer par POST sa confirmation pour appliquer jusqu'à cinq lignes de façon atomique par appel. Répétez avec le même couple ID/hash jusqu'à achèvement ; les lignes déjà traitées ne sont jamais réexécutées. Les résultats sont applied, skipped, failed ou pending. Toute modification du CRM ou des droits d'accès invalide le travail en attente. Vérifiez les résultats et ne prévisualisez que les fiches restantes. Jusqu'à 100 lots conservés par espace de travail, accessibles pendant sept jours, puis supprimés par le nettoyage planifié ou le prochain aperçu groupé. La suppression du propriétaire ou de l'espace de travail supprime aussi les aperçus et les reçus. Aucun e-mail ni invitation n'est envoyé.
GET/imports/catalogCatalogue des champs et pipelines pour la correspondance d'import. Tous les membres du CRM peuvent prévisualiser et importer ; la configuration de champs personnalisés et de pipelines supplémentaires nécessite toujours CRM Advanced.
POST/imports/previewPrévisualiser de 1 à 100 lignes (jusqu'à 500 Ko) avec kind et duplicates: fill ou skip. Prend en charge custom_fields par identifiant stable, les identifiants ou noms non ambigus de pipeline/étape et les identifiants de fiches explicites. L'option fill ne remplit que les valeurs vides ; le montant, le statut et l'étape d'une opportunité existante restent inchangés. Les fiches répétées sont ignorées. Aucune fiche CRM n'est modifiée pendant l'aperçu. Renvoie les actions ou erreurs par ligne, l'identifiant du lot et le hash de confirmation. Les plans d'aperçu et les reçus de reprise expirent après sept jours et sont supprimés par le nettoyage planifié ou le prochain import dans cet espace de travail.
GET POST/imports/:idSeul le propriétaire du lot peut le lire ou le reprendre. L'envoi par POST de la confirmation issue de l'aperçu vérifié applique jusqu'à dix lignes, chacune de façon atomique avec ses contacts associés, champs, notes et historique. Répétez avec le même couple ID/hash jusqu'à achèvement ; les lignes terminées ne sont jamais réexécutées. Des modifications concurrentes dans le CRM rejettent les aperçus obsolètes : lisez next_row, puis prévisualisez uniquement les lignes restantes. Jusqu'à 100 lots conservés par espace de travail.
POST/importImport immédiat historique sans reprise sécurisée ; privilégiez /imports/preview. Importe jusqu'à 500 entreprises, contacts ou opportunités ; renvoie les nombres d'éléments créés, mis à jour, ignorés ou tronqués ainsi que les erreurs de ligne numérotées. Les contacts existants peuvent être complétés même lorsque la capacité maximale est atteinte.
PUT/deals/:idUtilisez before_id (une opportunité dans l'étape cible, ou null pour la placer en dernier), stage_id et revision pour réordonner. L'ordre des cartes ne modifie pas la durée passée dans l'étape.
POST/deals/movePrévisualiser ou appliquer jusqu'à 100 déplacements d'opportunités ouvertes : deal_ids, pipeline_id, stage_id, preview. Appliquez avec la valeur preview_hash renvoyée. Les aperçus obsolètes échouent ; les résultats sont détaillés par opportunité.
GET POST/views/:entityVues enregistrées pour les opportunités, contacts ou entreprises. GET renvoie les vues accessibles en lecture, le catalogue des champs/opérateurs et les valeurs par défaut. Les utilisateurs Advanced peuvent créer des vues privées ; les administrateurs peuvent créer des vues partagées avec l'espace de travail. POST name, sharing (private/workspace), revision:0, definition {version:1, columns, sort, filter}. Le partage avec l'espace de travail n'élargit jamais les droits d'accès aux données.
PUT/views/:entity/:idMettre à jour une vue avec sa valeur revision attendue. Le mode de partage (sharing) est immuable ; enregistrez une copie pour le modifier. Seul le propriétaire peut modifier une vue privée ; seuls les administrateurs modifient les vues partagées. archived:true masque une vue. Jusqu'à 100 vues actives par espace de travail.
POST/query/:entityRequête validée unique pour les listes et pages CSV. Envoyez definition ou view_id, offset (0..100000), limit (1..100) et format (json/csv). Définition : version:1, columns (1..20 identifiants), sort (jusqu'à 3 entrées {field,direction}), filter {op:and/or,rules:[groupes ou {field,op,value}]}. Jusqu'à 20 nœuds et une profondeur de 3. Les valeurs sont des paramètres liés, jamais du SQL. owner_id eq me est résolu pour l'utilisateur actuel ; value_cents est exprimé en centimes. has_task inclut les tâches ouvertes sans date, next_task correspond à la tâche ouverte datée la plus proche. La réponse inclut total, next_offset et rows ou un CSV protégé contre l'injection de formules. Dans le CSV, les libellés remplacent les identifiants de choix. Les comparaisons à vide utilisent empty/not_empty ; les autres comparaisons excluent les valeurs manquantes. Les vues et l'export restent accessibles en lecture après la fin de l'accès Advanced. La pagination est ordonnée avec départage par identifiant, mais ne constitue pas un instantané figé entre plusieurs requêtes.
GET PUT/layouts/:entityMise en page partagée des fiches pour les entreprises, contacts ou opportunités. GET renvoie la mise en page, les valeurs par défaut, revision, schema_revision et les champs. Les administrateurs Advanced peuvent envoyer par PUT layout {main, side, details}, les deux révisions et tous les champs sous forme d'objets ordonnés {id, group_name}, champs archivés compris. Chaque section et clé de détail doit apparaître exactement une fois ; aucun code HTML ni section masquée. Les membres et les espaces de travail sans Advanced conservent un accès en lecture.
GET POST/fields/:entityLister ou créer des champs personnalisés pour les entreprises, contacts ou opportunités. La création nécessite un administrateur Advanced. Types : text, long_text, number, date, boolean, select, multi_select. Paramètres group_name et position facultatifs.
PUT/fields/deals/:id/rulesAdministrateur Advanced : prévisualiser et remplacer les périmètres visible_in/required_in (pipeline_id, stage_id facultatif). Exige la valeur revision du champ, preview:true, puis preview:false avec la valeur preview_hash renvoyée. Un tableau visible_in vide signifie visible partout ; les champs obligatoires restent visibles. L'aperçu signale les opportunités ouvertes existantes présentant des valeurs manquantes.
PUT/fields/:entity/:idMettre à jour name, group_name, position, archived et options avec la valeur revision attendue. Le type d'un champ existant ne peut pas être modifié. La création d'opportunité accepte custom_fields indexé par identifiant de champ ; l'absence de valeurs obligatoires pour l'étape renvoie 422 lors de la création, d'un changement d'étape ou d'une réouverture, y compris via l'import et MCP. Les options conservent leur identifiant ; les anciens choix omis sont archivés.
GET PUT/:entity/:id/fieldsLire ou modifier partiellement des valeurs typées par identifiant de champ. PUT exige values, revision et schema_revision obtenus via GET ; null efface une valeur. Les champs à choix utilisent les identifiants d'option. Les champs archivés restent lisibles. Ces points de terminaison ne prennent pas encore en charge les champs obligatoires ou propres à une étape.
GET POST/pipelinesLister les pipelines (archivés compris) ou en créer un (name ; administrateur Advanced requis)
PUT/pipelines/:idMettre à jour name, position, make_default ou archived avec la valeur revision attendue. Déplacez ou clôturez les opportunités ouvertes avant d'archiver ; /deals/move fournit un aperçu et les résultats par opportunité.
GET/reportsTypes de rapports, notes de calcul, filtres et rapports personnels enregistrés (administrateur Advanced)
POST/reports/runExécuter definition ou view_id selon les droits d'accès actuels aux fiches. Paramètres facultatifs : group issu de la réponse, offset, limit jusqu'à 100. Les montants en centimes restent séparés par devise.
POST PUT/reports/views, /reports/views/:idEnregistrer un rapport personnel : name, definition, revision (0 pour une création) ; archived:true masque un rapport existant
GET/capabilitiesDroits actuels aux fonctionnalités CRM et actions autorisées ; cela n'implique pas que chaque fonctionnalité soit activée
GET/meEspace de travail, offre et utilisateur au nom duquel la clé agit
GET/deals?status=open|won|lost&q=&pipeline_id=Lister les opportunités avec l'étape, le montant, l'entreprise, le contact et le statut de lecture de la proposition
POST/dealsCréer une opportunité (name, company_id ou company_name, person_id, value, currency, pipeline_id, stage_id, expected_close)
GET PUT DELETE/deals/:idUne opportunité avec son historique ; modifier les champs, l'étape ou le statut ; close_details Advanced facultatif, ou next_activity à la réouverture, avec revision ; supprimer
POST/deals/:id/proposalsAssocier une proposition à l'opportunité ({proposal_id})
DELETE/deals/:id/proposals/:pidDissocier une proposition
GET POST/companiesLister ou créer des entreprises
GET PUT DELETE/companies/:idUne entreprise avec ses contacts, opportunités et son historique
GET POST/peopleLister ou créer des contacts
GET PUT DELETE/people/:idUn contact avec ses opportunités et son historique
GET PUT/activity-settingsLire ou définir votre fuseau horaire IANA ; les administrateurs peuvent aussi définir workspace_timezone. La valeur null applique la valeur par défaut.
GET POST/tasksLister ou créer des activités. scope=mine|all|unassigned, status=open|done|cancelled|all (ou l'ancien paramètre done=0|1|all), identifiants de fiches, offset et limit (max. 500). Suivez next_offset lorsque has_more vaut true.
GET PUT DELETE/tasks/:idLire, modifier, terminer, annuler ou supprimer une activité. Les champs notes, completed_date, call_result et l'ajout atomique de next_activity sont pris en charge. Envoyez revision lors des modifications et ?revision= lors des suppressions ; les écritures obsolètes renvoient 409.
POST/notesAjouter une note à une opportunité, un contact ou une entreprise
PUT DELETE/notes/:idModifier ou supprimer une note
GET/stages?pipeline_id=Étapes du pipeline, membres et devise (pipeline par défaut si omis)
PUT/stagesEnregistrer les étapes avec pipeline_id et revision. Les étapes utilisées doivent d'abord voir leurs opportunités ouvertes déplacées ou clôturées. Les étapes omises sont archivées.
GET/activity?since=&limit=&deal_id=&person_id=&company_id=Journal structuré des événements, du plus récent au plus ancien. since est un horodatage en millisecondes Unix
GET/search?q=Entreprises, contacts et opportunités en une seule recherche
GET/visitors?days=7|30|90Tiny Ant Visitors : entreprises ayant visité votre site, pages vues, dernière visite, fiche CRM associée et part des visites issues de connexions domestiques, mobiles et de centres de données
GET POST/visitors/settingsStatut et extrait de code Visitors ; activer ou désactiver ({enabled}), connecter ou retirer ipapi.is ({ipapi_key})
POST/visitors/companies/:id/addAjouter au CRM une entreprise ayant visité le site
GET/proposals?status=active|won|closed|archivedPropositions avec visites, temps de lecture et opportunité associée
GET/proposals/:idUne proposition avec le temps de lecture par page, les destinataires, l'activité et les versions
POST/proposalsImporter une proposition (même corps de requête que dans l'application : multipart avec fichier PDF, name et pages)
POST/proposals/:id/statusDéfinir le statut ({status: active|closed|won})

Activités

Les points de terminaison de tâches enregistrent aussi les appels, réunions et relances pour les espaces de travail disposant de CRM Advanced avec Team, Enterprise ou un pilote actif. Envoyez activity_type (task, call, meeting ou follow_up), due_date (YYYY-MM-DD), due_time facultatif (HH:mm), timezone (nom IANA), duration_minutes (1 à 1440), assignee_id ainsi que deal_id, person_id ou company_id facultatifs. Les tâches définies uniquement à la journée conservent leur date calendaire. En l'absence de fuseau horaire, la préférence de l'utilisateur s'applique par défaut, puis celle de l'espace de travail, puis UTC. Une heure locale inexistante est rejetée ; une heure répétée exige occurrence: earlier ou later. Lisez une activité avant de la modifier et envoyez sa valeur revision ; les modifications obsolètes renvoient 409. Les clients existants peuvent omettre revision. La valeur null efface les champs facultatifs. Listez avec scope=mine, all ou unassigned, done=0, 1 ou all, les identifiants de fiches facultatifs, limit jusqu'à 500 et offset ; suivez next_offset lorsque has_more vaut true. Si l'accès à CRM Advanced prend fin, les activités typées existantes restent modifiables et réalisables, et la création de tâches simples reste disponible. Les activités ne passent pas d'appels, n'envoient pas de messages et n'invitent personne à des réunions. En terminer une ne marque ni une opportunité ni une proposition comme gagnée.

Consignez un contact par e-mail, SMS, LinkedIn ou autre sous la forme activity_type: follow_up avec contact_channel: email, sms, linkedin ou other (Advanced). Les notes d'activité acceptent jusqu'à 10 000 caractères. done: true enregistre la réalisation ; completed_date est au format YYYY-MM-DD, au plus tard aujourd'hui. Terminer un appel exige call_result: answered, no_answer ou busy. cancelled: true annule sans supprimer ; done et cancelled ne peuvent pas être tous deux à true. Listez avec status: open, done, cancelled ou all ; les activités annulées sont exclues des listes de travail ouvertes et des rapports d'activité.

Une écriture d'activité peut inclure next_activity: {title, due_date, activity_type, contact_channel, notes, assignee_id} ; la nouvelle fiche hérite de l'opportunité et sa date doit être aujourd'hui ou une date ultérieure. Les écritures combinées sur une fiche existante exigent revision. Les deux modifications sont validées de façon atomique. Un administrateur Advanced peut activer require_next_activity sur un pipeline. Une opportunité ouverte doit alors conserver une activité ouverte lorsque sa dernière activité est terminée, annulée, supprimée ou dissociée, ainsi qu'à la réouverture de l'opportunité. Créer ou déplacer une opportunité sans activité reste autorisé. L'exigence cesse de s'appliquer lorsque l'accès Advanced prend fin.

Les mises à jour d'opportunités Advanced peuvent inclure close_details avec status won ou lost et revision : close_date (au plus tard aujourd'hui), open_activities (keep ou cancel), notes facultatif, ainsi que won_reason pour les opportunités gagnées ou loss_category pour les opportunités perdues. Les catégories de perte sont price, timing, no_need, competitor, no_response, no_authority_or_budget, in_house, poor_fit et other. Le champ facultatif competitor s'applique à la catégorie competitor ; revisit_date doit être une date future et ne crée pas de rappel. Le statut won exige un montant d'opportunité positif. La clôture et toute annulation sont validées ensemble selon les droits d'accès actuels de la fiche. Pour rouvrir, envoyez status: open et, si nécessaire, next_activity. La réouverture efface les détails de clôture mais ne restaure pas les activités annulées. Les mises à jour historiques portant uniquement sur le statut restent prises en charge.

Exemples

Lister les opportunités ouvertes :

curl https://app.tinyant.io/api/v1/deals?status=open \
  -H "Authorization: Bearer ta_live_..."

Créer une opportunité et laisser Tiny Ant créer ou associer l'entreprise par son nom :

curl -X POST https://app.tinyant.io/api/v1/deals \
  -H "Authorization: Bearer ta_live_..." \
  -H "Content-Type: application/json" \
  -d '{"name": "Website redesign", "company_name": "Acme Ltd", "value": 12500}'

Tout ce qui s'est passé depuis un horodatage, par exemple pour synchroniser votre propre système :

curl "https://app.tinyant.io/api/v1/activity?since=1760000000000&limit=100" \
  -H "Authorization: Bearer ta_live_..."

Serveur MCP

Le serveur MCP (Model Context Protocol) est disponible à l'adresse :

https://app.tinyant.io/mcp

Le transport utilise Streamable HTTP, sans état, en JSON-RPC via POST. L'authentification utilise la même clé Bearer. Il n'y a pas de flux initiés par le serveur ; un simple client HTTP suffit.

Claude Code. Une ligne dans votre terminal, puis interrogez Claude sur vos opportunités :

claude mcp add --transport http tiny-ant https://app.tinyant.io/mcp --header "Authorization: Bearer ta_live_..."

Autres clients MCP. Utilisez un client prenant en charge Streamable HTTP et un en-tête Authorization personnalisé. Définissez l'URL du serveur sur l'adresse ci-dessus et la valeur de l'en-tête sur Bearer suivi de votre clé API. Vérifiez les options de connexion actuelles du client. Lorsqu'une prise en charge MCP directe n'est pas disponible, une intégration sur mesure peut appeler l'API REST. Tiny Ant ne fournit pas d'intégration prête à l'emploi pour chaque client.

OAuth. La connexion MCP publiée par Tiny Ant utilise actuellement une clé Bearer statique. Un client qui exige OAuth ne peut pas utiliser cette connexion directement. Vérifiez la compatibilité avant de choisir un client.

Outils MCP

Chaque outil appelle la même API que ci-dessus et renvoie la réponse JSON sous forme de texte.

OutilDescription
searchRechercher des entreprises, contacts et opportunités dans le CRM par nom, adresse e-mail ou domaine.
list_dealsLister les opportunités.
get_dealVue complète d'une opportunité : détails, entreprise, contact, propositions avec données de lecture, tâches et historique des notes et événements.
create_dealCréer une opportunité.
update_dealMettre à jour une opportunité : renommer, modifier le montant, changer d'étape, marquer comme gagnée ou perdue, associer une entreprise ou un contact.
list_companiesLister les entreprises avec le nombre de contacts, les opportunités ouvertes et leur montant cumulé.
get_companyUne entreprise avec ses contacts, ses opportunités et son historique.
create_companyCréer une entreprise.
list_peopleLister les contacts, éventuellement pour une entreprise donnée.
get_personUn contact avec ses opportunités et son historique.
create_personCréer un contact.
add_noteAjouter une note à une opportunité, un contact ou une entreprise.
list_tasksLister les tâches ouvertes du titulaire de la clé (mine) ou de tout l'espace de travail.
create_taskCréer une tâche, éventuellement associée à une opportunité, un contact ou une entreprise.
get_taskLire une activité ainsi que sa valeur revision.
update_taskModifier une activité.
get_activity_settingsLire le fuseau horaire effectif des activités et les types disponibles.
complete_taskMarquer une tâche comme terminée (ou la rouvrir avec done=false).
get_crm_capabilitiesDroits actuels aux fonctionnalités CRM et actions autorisées pour cet utilisateur.
list_stagesÉtapes d'un pipeline (pipeline par défaut si omis), membres de l'espace de travail et devise.
move_dealsPrévisualiser ou appliquer le déplacement de 100 opportunités ouvertes au maximum.
get_dashboardLire votre tableau de bord personnel avec les indicateurs en direct selon vos droits d'accès.
save_dashboardEnregistrer la disposition et les filtres de votre tableau de bord avec la valeur revision obtenue via get_dashboard.
list_automationsLire les règles d'automatisation liées à votre clé API et les derniers résultats d'exécution accessibles.
preview_automationValider une règle et prévisualiser les opportunités ouvertes correspondantes sans appliquer de modifications.
save_automationCréer ou modifier une règle avec la confirmation issue de l'aperçu.
simulate_automationMettre en file d'attente une simulation pour une opportunité actuelle correspondante.
stop_automationDésactiver une règle et annuler ses exécutions en attente.
archive_automationArchiver une règle et annuler ses exécutions en attente.
cancel_automation_runAnnuler une exécution en attente.
list_automation_notificationsLire vos notifications internes d'automatisation selon vos droits d'accès actuels aux opportunités.
list_reportsLire les types de rapports, notes de calcul, filtres et rapports personnels enregistrés (administrateur Advanced).
run_reportExécuter un rapport selon les droits d'accès actuels aux fiches.
save_reportEnregistrer une définition de rapport personnel.
list_viewsLister les vues enregistrées accessibles en lecture, le catalogue des champs/opérateurs et les valeurs par défaut.
query_recordsParcourir par page une vue CRM validée.
preview_bulk_changePrévisualiser de 1 à 100 fiches CRM sélectionnées.
get_bulk_changeLire votre aperçu groupé et les résultats durables par ligne pendant sept jours, avec la même clé API.
apply_bulk_changeAppliquer jusqu'à cinq lignes prévisualisées de façon atomique ligne par ligne.
preview_importPrévisualiser jusqu'à 100 lignes CRM sans modifier les fiches.
get_importLire votre aperçu d'import et la progression durable ; les lots expirent après sept jours.
apply_importAppliquer jusqu'à dix lignes prévisualisées de façon atomique ligne par ligne.
save_viewCréer ou mettre à jour une vue personnelle, ou une vue de l'espace de travail en tant qu'administrateur (Advanced).
get_card_layoutLire les sections des fiches partagées, l'ordre des détails et les groupes de champs personnalisés.
set_card_layoutRemplacer la mise en page des fiches partagées et les groupes de champs personnalisés (administrateur Advanced).
list_fieldsLister les définitions de champs personnalisés, y compris les champs archivés et les options stables.
create_fieldCréer un champ personnalisé (administrateur Advanced).
update_fieldRenommer, réordonner, regrouper ou archiver un champ (administrateur Advanced).
set_field_rulesPrévisualiser ou enregistrer la visibilité et le caractère obligatoire des champs d'opportunité (administrateur Advanced).
get_record_fieldsLire les champs personnalisés, les valeurs et la révision d'une fiche.
set_record_fieldsModifier partiellement les valeurs de champs personnalisés par identifiant de champ.
list_pipelinesLister les pipelines de l'espace de travail, y compris les pipelines archivés, ainsi que le pipeline par défaut.
create_pipelineCréer un pipeline doté de quatre étapes initiales.
update_pipelineRenommer, réordonner, archiver ou définir un pipeline par défaut.
set_stagesRemplacer les étapes actives d'un pipeline.
activityJournal structuré des événements de l'espace de travail, du plus récent au plus ancien : opportunités créées et déplacées, gagnées et perdues, notes, tâches, propositions associées et lues.
list_proposalsPropositions avec statut de lecture : visites, temps de lecture total, lecture en cours, opportunité associée.
get_proposalUne proposition : temps de lecture par page, destinataires, activité, versions, opportunité associée.
list_visitorsEntreprises ayant visité votre site (Tiny Ant Visitors) : réseaux d'entreprises identifiés avec pages consultées, dernière visite et entreprise CRM associée le cas échéant, ainsi que le nombre de visites issues de réseaux domestiques, mobiles ou de centres de données.
link_proposalAssocier une proposition existante à une opportunité afin que ses lectures apparaissent dans l'historique de l'opportunité.

Limites de débit et usage raisonnable

MCP accepte un message JSON-RPC par requête POST, jusqu'à 512 Kio. Les tableaux JSON sont rejetés sans exécuter aucun outil. Envoyez des requêtes distinctes. Les requêtes CRM autres que GET, y compris les imports, opérations groupées et aperçus de requêtes, partagent un quota supplémentaire de 120 requêtes par minute et par espace de travail entre l'application, l'API REST et MCP ; un refus renvoie 429 et Retry-After. Ces quotas périphériques sont locaux à un point de présence Cloudflare.

Des limites de stockage CRM d'usage raisonnable s'appliquent par table (opportunités, tâches et notes) : 500 avec Free, 20 000 avec Pro, 50 000 avec Team et Enterprise. Free comporte aussi une limite distincte de 10 opportunités ouvertes. Les tâches terminées et les opportunités clôturées comptent toujours dans les limites de stockage ; les fiches existantes sont conservées lors du passage à une offre inférieure.

Le volume accepté par Visitors est limité par espace de travail et par jour UTC : 5 000 pages vues avec Pro, 20 000 avec Team et 50 000 avec Enterprise. Le trafic excédentaire est ignoré ; la collecte reprend le lendemain. Le plafond quotidien s'appuie sur un compteur partagé en base de données ; la protection périphérique limite également une adresse source à 60 balises et une clé publique Visitors à 600 balises par minute et par point de présence Cloudflare. Une recherche ou une écriture échouée après réservation peut consommer un emplacement quotidien. Le quota ipapi.is du client est géré séparément.

Chaque clé peut effectuer 120 requêtes par minute sur l'ensemble de l'API REST et du serveur MCP, et chaque adresse 300 par minute. Les requêtes sans clé valide sont limitées à 30 par minute et par adresse. En cas de dépassement, vous recevez un code 429 accompagné d'un en-tête Retry-After ; patientez avant de réessayer. Interrogez /activity avec le paramètre since plutôt que de relire des listes entières, utilisez une clé distincte par intégration afin de pouvoir la révoquer séparément et ne partagez jamais de clé en dehors de votre espace de travail. Un espace de travail peut compter jusqu'à 10 clés actives.

Les règles d'automatisation CRM Advanced commencent par une simulation. Les limites sont fixées à 50 règles actives et 1 000 exécutions par période glissante de 24 heures et par espace de travail. La création d'opportunités et les changements d'étape sont mis en file d'attente de façon atomique. Les ouvertures externes confirmées de propositions sont limitées à une par proposition et par jour UTC. Les échéances d'opportunités au point mort disposent d'une fenêtre de rattrapage de sept jours. Les exécutions et notifications internes sont conservées 90 jours. Aucune donnée client n'est envoyée à un modèle d'IA ni à un service de messagerie externe.

Les administrateurs Advanced peuvent exécuter des rapports sur le pipeline ouvert, les opportunités gagnées/perdues et le taux de réussite, l'historique des étapes, les activités et les prévisions pondérées. Les dates sont exprimées en jours UTC inclusifs (jusqu'à 366) ; les activités planifiées utilisent leur propre date d'échéance. Les prévisions reposent sur les opportunités ouvertes actuelles et les probabilités des étapes, en séparant les opportunités sans date et les différentes devises. Les observations de référence ne constituent pas des entrées d'étapes historiques ni des durées connues. Les rapports personnels enregistrés conservent les paramètres choisis, et non des instantanés de résultats. Chaque exécution et chaque exploration détaillée applique les droits d'accès actuels aux fiches.

Avec CRM Advanced, l'accès aux fiches est contrôlé dans l'application, l'API REST, MCP et les exports. Les clés API et les webhooks n'accèdent par défaut qu'aux fiches partagées avec l'espace de travail, y compris les fiches parentes partagées. Un administrateur peut créer explicitement une intégration couvrant toutes les fiches de l'espace de travail, fiches privées comprises. Le périmètre est affiché dans les Paramètres. Les restrictions existantes restent en vigueur si l'accès Advanced prend fin. Les liens publics de propositions destinés aux destinataires demeurent un canal de partage distinct.

Webhooks

Si vous préférez que Tiny Ant appelle votre système, des webhooks sortants se configurent sur cette même page Paramètres. Ils envoient une requête POST JSON signée lorsqu'une proposition est ouverte, qu'une consultation se termine, qu'un statut change ou qu'une opportunité est créée ou change d'étape.

Questions

Écrivez à hello@tinyant.io. Les évolutions de l'API sont annoncées sur cette page.