Documentation Index
Fetch the complete documentation index at: https://docs.orsay.ai/llms.txt
Use this file to discover all available pages before exploring further.
Vue dâensemble
LâAPI REST Orsay vous permet de gĂ©rer vos sĂ©quences de maniĂšre programmatique depuis votre propre serveur. Cas dâusage :
- Automatiser la création de séquences depuis un VPS ou un cron
- IntĂ©grer Orsay dans votre pipeline existant (ex : Instagram â DM sĂ©quence)
- Construire des automatisations personnalisées sans passer par le dashboard
Authentification
Toutes les requĂȘtes API nĂ©cessitent un Bearer token avec votre clĂ© API.
curl -X GET https://client.api.prod.orsay.ai/api/v1/sequences \
-H "Authorization: Bearer sk_live_votre_cle_api"
Obtenir votre clé API
- Allez dans Settings â API Keys dans le dashboard Orsay
- Cliquez sur Generate API Key
- Copiez la clĂ© immĂ©diatement â elle ne sera plus affichĂ©e
Votre clĂ© API donne un accĂšs complet aux sĂ©quences de votre organisation. Gardez-la secrĂšte et ne lâexposez jamais dans du code cĂŽtĂ© client.
Rate Limiting
LâAPI est limitĂ©e Ă 200 requĂȘtes par heure par organisation.
Si vous dépassez cette limite, vous recevrez une réponse 429 Too Many Requests avec un header Retry-After indiquant combien de secondes attendre.
URL de base
https://client.api.prod.orsay.ai/api/v1
Endpoints
Lister les agents
Retourne tous les agents IA de votre organisation.
Réponse :
[
{
"id": "e5f6g7h8-...",
"name": "Agent Commercial",
"is_published": true
}
]
Lister les profils
Retourne tous les profils Instagram et WhatsApp connectés.
Réponse :
{
"instagram": [
{
"id": "12345678",
"username": "monbusiness",
"status": "CONNECTED"
}
],
"whatsapp": [
{
"id": "abcd-1234-...",
"name": "Mon WhatsApp",
"status": "CONNECTED"
}
]
}
Lister les séquences
Retourne toutes les séquences de votre organisation.
Réponse :
[
{
"id": "a1b2c3d4-...",
"name": "Welcome DM",
"trigger": "INSTAGRAM_MESSAGE",
"channel": "INSTAGRAM",
"active": true
}
]
Obtenir une séquence
GET /sequences/{sequence_id}
Retourne les dĂ©tails complets dâune sĂ©quence.
Réponse :
{
"id": "a1b2c3d4-...",
"name": "Welcome DM",
"trigger": "INSTAGRAM_MESSAGE",
"channel": "INSTAGRAM",
"active": true,
"type": "INBOUND",
"agent_id": "e5f6g7h8-...",
"profile_id": "12345",
"inbound_response_delay": 5,
"inbound_response_delay_unit": "MINUTES",
"flow": [
{
"delay": 0,
"delay_unit": "MINUTES",
"content": "Bonjour ! Comment puis-je vous aider ?",
"template_id": null,
"action": null
}
]
}
Créer une séquence
Corps de la requĂȘte :
{
"name": "Ma Nouvelle Séquence",
"trigger": "INSTAGRAM_MESSAGE",
"inbound_response_delay": 5,
"inbound_response_delay_unit": "MINUTES",
"agent_id": "e5f6g7h8-...",
"profile_id": "12345",
"active": false,
"flow": [
{
"delay": 0,
"delay_unit": "MINUTES",
"followup_delays": [
{ "delay": 30, "delay_unit": "MINUTES" }
]
}
]
}
Champs requis :
| Champ | Type | Description |
|---|
name | string | Nom de la séquence |
trigger | string | Type de déclencheur (voir ci-dessous) |
Champs optionnels :
| Champ | Type | Défaut | Description |
|---|
inbound_response_delay | int | 5 | Délai avant la premiÚre réponse |
inbound_response_delay_unit | string | âMINUTESâ | SECONDS, MINUTES ou HOURS |
agent_id | string | null | ID de lâagent IA Ă utiliser |
profile_id | string | null | ID du profil Instagram ou WhatsApp |
active | bool | false | Si la séquence est active |
flow | array | [] | Définition des étapes du flow |
filtering_agent | string | null | ID de lâagent de filtrage |
should_continue_existing_conversations | bool | false | Continuer les conversations existantes |
keywords | array | null | Mots-clés déclencheurs |
target_accounts | array | null | Comptes cibles pour le scraping |
enable_agent_on_conversation | bool | true | Activer lâagent IA sur les conversations |
require_manual_approval | bool | false | Approbation manuelle requise |
Réponse (201) :
{
"id": "new-sequence-uuid"
}
Modifier une séquence
PUT /sequences/{sequence_id}
Incluez uniquement les champs que vous souhaitez modifier.
Corps de la requĂȘte :
{
"name": "Nom Mis Ă Jour",
"active": true,
"inbound_response_delay": 10
}
Réponse :
{
"id": "a1b2c3d4-...",
"status": "updated"
}
Supprimer une séquence
DELETE /sequences/{sequence_id}
Réponse :
Types de déclencheurs
| Déclencheur | Canal | Type |
|---|
INSTAGRAM_MESSAGE | Instagram | Inbound |
INSTAGRAM_COMMENT | Instagram | Outbound |
INSTAGRAM_STORY_REPLY | Instagram | Inbound |
INSTAGRAM_LEAD_FINDER_NEW_FOLLOWER | Instagram | Outbound |
INSTAGRAM_LEAD_FINDER_OTHER_ACCOUNT_FOLLOWERS | Instagram | Outbound |
INSTAGRAM_LEAD_FINDER_NEW_LIKE | Instagram | Outbound |
INSTAGRAM_LEAD_FINDER_OTHER_ACCOUNT_COMMENT | Instagram | Outbound |
WHATSAPP_MESSAGE | WhatsApp | Inbound |
CONTACT_CREATED | WhatsApp | Outbound |
CONTACT_SUBSCRIBED_TO_SEQUENCE | WhatsApp | Outbound |
Codes dâerreur
| Code | Description |
|---|
401 | Clé API invalide ou manquante |
404 | Séquence non trouvée |
429 | Rate limit dépassé (200 req/heure) |
400 | RequĂȘte invalide (mauvais trigger, champ manquant, etc.) |
Exemple : Pipeline complet
import requests
import time
API_KEY = "sk_live_votre_cle"
BASE_URL = "https://client.api.prod.orsay.ai/api/v1"
HEADERS = {"Authorization": f"Bearer {API_KEY}"}
# 1. Lister les séquences
sequences = requests.get(f"{BASE_URL}/sequences", headers=HEADERS).json()
print(f"{len(sequences)} séquences trouvées")
# 2. Créer une nouvelle séquence
new_seq = requests.post(f"{BASE_URL}/sequences", headers=HEADERS, json={
"name": "Pipeline Auto DM",
"trigger": "INSTAGRAM_MESSAGE",
"inbound_response_delay": 2,
"inbound_response_delay_unit": "MINUTES",
"agent_id": "votre-agent-id",
"profile_id": "votre-profil-instagram-id",
"active": True,
"flow": [
{
"delay": 0,
"delay_unit": "MINUTES",
"followup_delays": [
{"delay": 30, "delay_unit": "MINUTES"},
{"delay": 120, "delay_unit": "MINUTES"}
]
}
]
}).json()
print(f"Séquence créée : {new_seq['id']}")
# 3. La modifier plus tard
time.sleep(1) # Petit dĂ©lai entre les requĂȘtes
requests.put(f"{BASE_URL}/sequences/{new_seq['id']}", headers=HEADERS, json={
"name": "Pipeline Auto DM v2",
"inbound_response_delay": 5,
})