Idées

L’objet idée

{
  "id": "c469e730-043d-4bda-a3a0-5e029f56c027",
  "createdAt": "2025-03-07T13:22:12.110Z",
  "updatedAt": "2025-03-07T13:22:12.110Z",
  "friendlyId": 1,
  "aiAssisted": false,
  "canEdit": true,
  "keywords": [],
  "anonymity": null,
  "isLiked": false,
  "fields": [
    {
      "kind": "SHORT_TEXT",
      "title": "Title",
      "value": "Great Idea"
    },
    {
      "kind": "LONG_TEXT",
      "title": "Description",
      "value": "This is a great idea"
    }
  ],
  "stats": {
    "likes": {
      "total": 0
    }
  },
  "mission": {
    "title": "My mission"
  },
  "owner": {
    "email": "test@test.com",
    "firstName": "Test"
  },
  "status": {
    "title": "On Track",
    "kind": "ACTIVE"
  },
  "phase": {
    "name": "Comment"
  }
}

Champs

Champ

Type

Description

identifiant

string

L’identifiant unique de l’idée.

createdAt

ISODate

La date à laquelle l’idée a été créée.

updatedAt

ISODate

La date à laquelle l’idée a été mise à jour pour la dernière fois.

friendlyId

number

L’identifiant de l’idée lisible par un humain

aiAssisted

boolean

Indique si cette idée a été créée à l’aide de l’IA

canEdit

boolean

Indique si l’utilisateur dispose d’un accès en modification à l’idée

mots-clés

string[]

Les mots-clés extraits du contenu de l’idée

anonymat

"partial" "full"

Le degré d’anonymat de cette idée

isLiked

boolean

Indique si l’utilisateur autorisé a aimé cette idée

fields.kind

"SHORT_TEXT" "LONG_TEXT" "ATTACHMENTS" "NUMERIC" "CHECKMARK" "SLIDER" "RADIO" "SELECT" "DATETIME" "CODE" "IMAGE_CHOICE" "SCORE" "MEMBER" "STATIC"

Le type de champ d’idée renseigné

fields.title

string

Le titre du champ d’idée renseigné

fields.value

"string" "number" "Media"

La valeur du champ d’idée renseigné

stats.likes.total

number

Le nombre total de mentions « J’aime » de l’idée

mission

Mission

La mission dans laquelle cette idée a été créée

propriétaire

Utilisateur

L’utilisateur qui a créé cette idée

statut

Statut

L’état de l’idée

phase

Phase

La phase actuelle de l’idée

Lister les idées

curl -X GET "https://api.ideanote.io/v1/ideas?fields=id,friendlyId,keywords,status.title,phase.name,fields.{kind,title,value},owner.{firstName}" \
     -H "Content-Type: application/json" \
     -H "Authorization: Bearer <API Token>"
const result = await fetch("https://api.ideanote.io/v1/ideas?fields=id,friendlyId,keywords,status.title,phase.name,fields.{kind,title,value},owner.{firstName}", {
  method: "GET",
  headers: {
    "Content-Type": "application/json",
    "Authorization": "Bearer <API Token>",
  }
});

const ideas = await result.json();
La commande ci-dessus renvoie un JSON structuré comme suit :
[
  {
    "friendlyId": 2,
    "keywords": [],
    "status": {},
    "phase": {},
    "fields": [
      {},
      {}
    ],
    "owner": {}
  },
  {
    "friendlyId": 1,
    "keywords": [],
    "status": {},
    "phase": {},
    "fields": [
      {},
      {}
    ],
    "owner": {}
  }
]

Ce point de terminaison répertorie les idées.

Requête HTTP

GET /v1/ideas

Lister les idées de la mission

curl -X GET "https://api.ideanote.io/v1/missions/b3f0255d-6dc9-4c4e-b932-7186d7268a66/ideas?fields=id,friendlyId,keywords,status.title,phase.name,fields.{kind,title,value},owner.{firstName}" \
     -H "Content-Type: application/json" \
     -H "Authorization: Bearer <API Token>"
const result = await fetch("https://api.ideanote.io/v1/missions/b3f0255d-6dc9-4c4e-b932-7186d7268a66/ideas?fields=id,friendlyId,keywords,status.title,phase.name,fields.{kind,title,value},owner.{firstName}", {
  method: "GET",
  headers: {
    "Content-Type": "application/json",
    "Authorization": "Bearer <API Token>",
  }
});

const idea = await result.json();
La commande ci-dessus renvoie un JSON structuré comme suit :
[]

Ce point de terminaison répertorie les idées.

Requête HTTP

GET /v1/missions/:mission_id/ideas

Paramètres de requête

Paramètre

Description

mission_id

L’ID de la mission dont vous souhaitez répertorier les idées

Récupérer une idée

curl -X GET "https://api.ideanote.io/v1/ideas/c469e730-043d-4bda-a3a0-5e029f56c027?fields=id,friendlyId,keywords,status.title,phase.name,fields.{kind,title,value},owner.{firstName}" \
     -H "Content-Type: application/json" \
     -H "Authorization: Bearer <API Token>"
const result = await fetch("https://api.ideanote.io/v1/ideas/c469e730-043d-4bda-a3a0-5e029f56c027?fields=id,friendlyId,keywords,status.title,phase.name,fields.{kind,title,value},owner.{firstName}", {
  method: "GET",
  headers: {
    "Content-Type": "application/json",
    "Authorization": "Bearer <API Token>",
  }
});

const idea = await result.json();
La commande ci-dessus renvoie un JSON structuré comme suit :
{
  "friendlyId": 1,
  "keywords": [],
  "status": {},
  "phase": {},
  "fields": [
    {},
    {}
  ],
  "owner": {}
}

Ce point de terminaison récupère une idée spécifique.

Requête HTTP

GET /v1/ideas/:idea_id

Paramètres de requête

Paramètre

Description

idea_id

L’ID de l’idée à récupérer

Créer une idée

curl -X POST "https://api.ideanote.io/v1/ideas?fields=id,friendlyId,keywords,status.title,phase.name,fields.{kind,title,value},owner.{firstName}" \
     -H "Content-Type: application/json" \
     -H "Authorization: Bearer <API Token>" \
     -d '{"mission":"b3f0255d-6dc9-4c4e-b932-7186d7268a66","Title":"My idea","Description":"This is my idea","Days to Implement":28}'
const result = await fetch("https://api.ideanote.io/v1/ideas?fields=id,friendlyId,keywords,status.title,phase.name,fields.{kind,title,value},owner.{firstName}", {
  method: "POST",
  body: {
    "mission": "b3f0255d-6dc9-4c4e-b932-7186d7268a66",
    "Title": "My idea",
    "Description": "This is my idea",
    "Days to Implement": 28
  },
  headers: {
    "Content-Type": "application/json",
    "Authorization": "Bearer <API Token>",
  }
});

const ideas = await result.json();
La commande ci-dessus renvoie un JSON structuré comme suit :
{
  "friendlyId": 3,
  "keywords": [],
  "status": {},
  "phase": {},
  "fields": [
    {},
    {},
    {
      "value": 28
    }
  ],
  "owner": {}
}

Ce point de terminaison crée une nouvelle idée.

Requête HTTP

POST /v1/ideas

Mettre à jour une idée

curl -X PUT "https://api.ideanote.io/v1/ideas/c469e730-043d-4bda-a3a0-5e029f56c027?fields=id,friendlyId,keywords,status.title,phase.name,fields.{kind,title,value},owner.{firstName}" \
     -H "Content-Type: application/json" \
     -H "Authorization: Bearer <API Token>" \
     -d '{"status":"c52d8af2-2727-4c76-8a8f-1814e488324e"}'
const result = await fetch("https://api.ideanote.io/v1/ideas/c469e730-043d-4bda-a3a0-5e029f56c027?fields=id,friendlyId,keywords,status.title,phase.name,fields.{kind,title,value},owner.{firstName}", {
  method: "PUT",
  body: {
    "status": "c52d8af2-2727-4c76-8a8f-1814e488324e"
  },
  headers: {
    "Content-Type": "application/json",
    "Authorization": "Bearer <API Token>",
  }
});

const idea = await result.json();
La commande ci-dessus renvoie un JSON structuré comme suit :
{
  "friendlyId": 1,
  "keywords": [
    null,
    null,
    null,
    null
  ],
  "status": {},
  "phase": {},
  "fields": [
    {},
    {}
  ],
  "owner": {}
}

Ce point de terminaison met à jour une idée spécifique.

Requête HTTP

PUT /v1/ideas/:idea_id

Paramètres de requête

Paramètre

Description

idea_id

L’identifiant de l’idée à mettre à jour

Supprimer une idée

curl -X DELETE "https://api.ideanote.io/v1/idea/c469e730-043d-4bda-a3a0-5e029f56c027" \
     -H "Content-Type: application/json" \
     -H "Authorization: Bearer <API Token>"
const result = await fetch("https://api.ideanote.io/v1/idea/c469e730-043d-4bda-a3a0-5e029f56c027", {
  method: "DELETE",
  headers: {
    "Content-Type": "application/json",
    "Authorization": "Bearer <API Token>",
  }
});

Ce point de terminaison supprime une idée spécifique.

Requête HTTP

DELETE /v1/idea/:idea_id

Paramètres de requête

Paramètre

Description

idea_id

L’identifiant de l’idée à supprimer