Skip to content

Profiles

Endpoints pour gérer vos profils de trading et stratégies.

Authentification

Toutes les routes supportent deux méthodes d'authentification :

MéthodeHeaderFormat
JWT (session)AuthorizationBearer <jwt_token>
API KeyX-API-Keyik_live_xxx ou ik_test_xxx

GET /profiles

Récupère tous les profils de trading de l'utilisateur.

Scope requis

profiles:read

Exemple de requête

javascript
const response = await fetch('https://api.insightrades.com/profiles', {
  headers: {
    'X-API-Key': 'ik_live_xxx'
  }
});

Réponse (200 OK)

json
[
  {
    "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

CodeDescription
401API Key invalide ou expirée
403Scope profiles:read manquant
500Erreur serveur interne

POST /profiles

Crée un nouveau profil de trading.

Scope requis

profiles:write

Corps de la requête

ChampTypeRequisDescription
namestringNom du profil
brokerstringNom du broker
accountNumberstringNuméro de compte
accountTypestringType de compte (Live, Demo, etc.)

Exemple de requête

javascript
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)

json
{
  "id": "550e8400-e29b-41d4-a716-446655440002",
  "name": "Prop Firm Account",
  "broker": "FTMO",
  "accountNumber": "98765432",
  "accountType": "Challenge",
  "createdAt": "2024-01-20T15:30:00Z"
}

Erreurs possibles

CodeDescription
400Données invalides (name requis)
401API Key invalide ou expirée
403Scope profiles:write manquant
500Erreur serveur interne

PUT /profiles/:id

Met à jour un profil existant.

Scope requis

profiles:write

Paramètres d'URL

ParamètreTypeDescription
idstringID du profil à modifier

Corps de la requête

Mêmes champs que POST /profiles, tous optionnels.

Exemple de requête

javascript
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)

json
{
  "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

CodeDescription
400Données invalides
401API Key invalide ou expirée
403Scope profiles:write manquant
404Profil non trouvé
500Erreur serveur interne

DELETE /profiles/:id

Supprime un profil et toutes ses données associées.

Scope requis

profiles:delete

Paramètres d'URL

ParamètreTypeDescription
idstringID 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

javascript
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)

json
{
  "deleted": true,
  "id": "550e8400-e29b-41d4-a716-446655440000"
}

Erreurs possibles

CodeDescription
401API Key invalide ou expirée
403Scope profiles:delete manquant
404Profil non trouvé
500Erreur 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:read

Paramètres d'URL

ParamètreTypeDescription
profileIdstringID du profil

Exemple de requête

javascript
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)

json
[
  {
    "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

CodeDescription
401API Key invalide ou expirée
403Scope profiles:read manquant
404Profil non trouvé
500Erreur serveur interne

POST /profiles/:profileId/strategies

Crée une nouvelle stratégie pour un profil.

Scope requis

profiles:write

Paramètres d'URL

ParamètreTypeDescription
profileIdstringID du profil

Corps de la requête

ChampTypeRequisDescription
namestringNom de la stratégie
descriptionstringDescription détaillée

Exemple de requête

javascript
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)

json
{
  "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

CodeDescription
400Données invalides (name requis)
401API Key invalide ou expirée
403Scope profiles:write manquant
404Profil non trouvé
500Erreur serveur interne

PUT /profiles/strategies/:id

Met à jour une stratégie existante.

Scope requis

profiles:write

Paramètres d'URL

ParamètreTypeDescription
idstringID de la stratégie à modifier

Corps de la requête

ChampTypeRequisDescription
namestringNouveau nom
descriptionstringNouvelle description

Exemple de requête

javascript
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)

json
{
  "id": "strategy-003",
  "name": "Breakout Strategy",
  "description": "Updated: Trading breakouts with volume confirmation and RSI filter",
  "updatedAt": "2024-01-20T18:00:00Z"
}

Erreurs possibles

CodeDescription
400Données invalides
401API Key invalide ou expirée
403Scope profiles:write manquant
404Stratégie non trouvée
500Erreur serveur interne

DELETE /profiles/strategies/:id

Supprime une stratégie.

Scope requis

profiles:delete

Paramètres d'URL

ParamètreTypeDescription
idstringID 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

javascript
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)

json
{
  "deleted": true,
  "id": "strategy-003"
}

Erreurs possibles

CodeDescription
401API Key invalide ou expirée
403Scope profiles:delete manquant
404Stratégie non trouvée
500Erreur serveur interne

Documentation de l'API InsighTrades