Profiles
Endpoints pour gérer vos profils de trading et stratégies.
Authentification
Toutes les routes supportent deux méthodes d'authentification :
| Méthode | Header | Format |
|---|---|---|
| JWT (session) | Authorization | Bearer <jwt_token> |
| API Key | X-API-Key | ik_live_xxx ou ik_test_xxx |
GET /profiles
Récupère tous les profils de trading de l'utilisateur.
Scope requis
profiles:readExemple de requête
const response = await fetch('https://api.insightrades.com/profiles', {
headers: {
'X-API-Key': 'ik_live_xxx'
}
});Réponse (200 OK)
[
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Main Trading Account",
"broker": "IC Markets",
"accountNumber": "67890123",
"accountType": "Live",
"createdAt": "2024-01-01T00:00:00Z",
"updatedAt": "2024-01-15T10:00:00Z"
},
{
"id": "550e8400-e29b-41d4-a716-446655440001",
"name": "Demo Account",
"broker": "OANDA",
"accountNumber": "12345678",
"accountType": "Demo",
"createdAt": "2024-01-05T00:00:00Z",
"updatedAt": "2024-01-05T00:00:00Z"
}
]Erreurs possibles
| Code | Description |
|---|---|
| 401 | API Key invalide ou expirée |
| 403 | Scope profiles:read manquant |
| 500 | Erreur serveur interne |
POST /profiles
Crée un nouveau profil de trading.
Scope requis
profiles:writeCorps de la requête
| Champ | Type | Requis | Description |
|---|---|---|---|
name | string | ✅ | Nom du profil |
broker | string | ❌ | Nom du broker |
accountNumber | string | ❌ | Numéro de compte |
accountType | string | ❌ | Type de compte (Live, Demo, etc.) |
Exemple de requête
const response = await fetch('https://api.insightrades.com/profiles', {
method: 'POST',
headers: {
'X-API-Key': 'ik_live_xxx',
'Content-Type': 'application/json'
},
body: JSON.stringify({
name: 'Prop Firm Account',
broker: 'FTMO',
accountNumber: '98765432',
accountType: 'Challenge'
})
});Réponse (201 Created)
{
"id": "550e8400-e29b-41d4-a716-446655440002",
"name": "Prop Firm Account",
"broker": "FTMO",
"accountNumber": "98765432",
"accountType": "Challenge",
"createdAt": "2024-01-20T15:30:00Z"
}Erreurs possibles
| Code | Description |
|---|---|
| 400 | Données invalides (name requis) |
| 401 | API Key invalide ou expirée |
| 403 | Scope profiles:write manquant |
| 500 | Erreur serveur interne |
PUT /profiles/:id
Met à jour un profil existant.
Scope requis
profiles:writeParamètres d'URL
| Paramètre | Type | Description |
|---|---|---|
id | string | ID du profil à modifier |
Corps de la requête
Mêmes champs que POST /profiles, tous optionnels.
Exemple de requête
const response = await fetch('https://api.insightrades.com/profiles/550e8400-e29b-41d4-a716-446655440000', {
method: 'PUT',
headers: {
'X-API-Key': 'ik_live_xxx',
'Content-Type': 'application/json'
},
body: JSON.stringify({
name: 'Main Account - Updated',
accountType: 'Live - Verified'
})
});Réponse (200 OK)
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Main Account - Updated",
"broker": "IC Markets",
"accountNumber": "67890123",
"accountType": "Live - Verified",
"updatedAt": "2024-01-20T16:00:00Z"
}Erreurs possibles
| Code | Description |
|---|---|
| 400 | Données invalides |
| 401 | API Key invalide ou expirée |
| 403 | Scope profiles:write manquant |
| 404 | Profil non trouvé |
| 500 | Erreur serveur interne |
DELETE /profiles/:id
Supprime un profil et toutes ses données associées.
Scope requis
profiles:deleteParamètres d'URL
| Paramètre | Type | Description |
|---|---|---|
id | string | ID du profil à supprimer |
Attention
La suppression d'un profil supprime également tous les trades et stratégies associés. Cette action est irréversible.
Exemple de requête
const response = await fetch('https://api.insightrades.com/profiles/550e8400-e29b-41d4-a716-446655440000', {
method: 'DELETE',
headers: {
'X-API-Key': 'ik_live_xxx'
}
});Réponse (200 OK)
{
"deleted": true,
"id": "550e8400-e29b-41d4-a716-446655440000"
}Erreurs possibles
| Code | Description |
|---|---|
| 401 | API Key invalide ou expirée |
| 403 | Scope profiles:delete manquant |
| 404 | Profil non trouvé |
| 500 | Erreur serveur interne |
Strategies
Les stratégies sont liées à un profil. Elles permettent de catégoriser vos trades par approche de trading.
GET /profiles/:profileId/strategies
Récupère toutes les stratégies d'un profil.
Scope requis
profiles:readParamètres d'URL
| Paramètre | Type | Description |
|---|---|---|
profileId | string | ID du profil |
Exemple de requête
const response = await fetch('https://api.insightrades.com/profiles/550e8400-e29b-41d4-a716-446655440000/strategies', {
headers: {
'X-API-Key': 'ik_live_xxx'
}
});Réponse (200 OK)
[
{
"id": "strategy-001",
"name": "Scalping EUR/USD",
"description": "Quick trades on 5min timeframe during London session",
"createdAt": "2024-01-10T00:00:00Z"
},
{
"id": "strategy-002",
"name": "Swing Trading",
"description": "Multi-day positions based on daily chart analysis",
"createdAt": "2024-01-12T00:00:00Z"
}
]Erreurs possibles
| Code | Description |
|---|---|
| 401 | API Key invalide ou expirée |
| 403 | Scope profiles:read manquant |
| 404 | Profil non trouvé |
| 500 | Erreur serveur interne |
POST /profiles/:profileId/strategies
Crée une nouvelle stratégie pour un profil.
Scope requis
profiles:writeParamètres d'URL
| Paramètre | Type | Description |
|---|---|---|
profileId | string | ID du profil |
Corps de la requête
| Champ | Type | Requis | Description |
|---|---|---|---|
name | string | ✅ | Nom de la stratégie |
description | string | ❌ | Description détaillée |
Exemple de requête
const response = await fetch('https://api.insightrades.com/profiles/550e8400-e29b-41d4-a716-446655440000/strategies', {
method: 'POST',
headers: {
'X-API-Key': 'ik_live_xxx',
'Content-Type': 'application/json'
},
body: JSON.stringify({
name: 'Breakout Strategy',
description: 'Trading breakouts from consolidation zones with momentum confirmation'
})
});Réponse (201 Created)
{
"id": "strategy-003",
"name": "Breakout Strategy",
"description": "Trading breakouts from consolidation zones with momentum confirmation",
"profileId": "550e8400-e29b-41d4-a716-446655440000",
"createdAt": "2024-01-20T17:00:00Z"
}Erreurs possibles
| Code | Description |
|---|---|
| 400 | Données invalides (name requis) |
| 401 | API Key invalide ou expirée |
| 403 | Scope profiles:write manquant |
| 404 | Profil non trouvé |
| 500 | Erreur serveur interne |
PUT /profiles/strategies/:id
Met à jour une stratégie existante.
Scope requis
profiles:writeParamètres d'URL
| Paramètre | Type | Description |
|---|---|---|
id | string | ID de la stratégie à modifier |
Corps de la requête
| Champ | Type | Requis | Description |
|---|---|---|---|
name | string | ❌ | Nouveau nom |
description | string | ❌ | Nouvelle description |
Exemple de requête
const response = await fetch('https://api.insightrades.com/profiles/strategies/strategy-003', {
method: 'PUT',
headers: {
'X-API-Key': 'ik_live_xxx',
'Content-Type': 'application/json'
},
body: JSON.stringify({
description: 'Updated: Trading breakouts with volume confirmation and RSI filter'
})
});Réponse (200 OK)
{
"id": "strategy-003",
"name": "Breakout Strategy",
"description": "Updated: Trading breakouts with volume confirmation and RSI filter",
"updatedAt": "2024-01-20T18:00:00Z"
}Erreurs possibles
| Code | Description |
|---|---|
| 400 | Données invalides |
| 401 | API Key invalide ou expirée |
| 403 | Scope profiles:write manquant |
| 404 | Stratégie non trouvée |
| 500 | Erreur serveur interne |
DELETE /profiles/strategies/:id
Supprime une stratégie.
Scope requis
profiles:deleteParamètres d'URL
| Paramètre | Type | Description |
|---|---|---|
id | string | ID de la stratégie à supprimer |
Attention
Les trades associés à cette stratégie ne seront pas supprimés, mais leur référence à cette stratégie sera retirée.
Exemple de requête
const response = await fetch('https://api.insightrades.com/profiles/strategies/strategy-003', {
method: 'DELETE',
headers: {
'X-API-Key': 'ik_live_xxx'
}
});Réponse (200 OK)
{
"deleted": true,
"id": "strategy-003"
}Erreurs possibles
| Code | Description |
|---|---|
| 401 | API Key invalide ou expirée |
| 403 | Scope profiles:delete manquant |
| 404 | Stratégie non trouvée |
| 500 | Erreur serveur interne |
