Missions

The mission object represents a mission collection and contains ideas.

The mission object

{
  "id": "b3f0255d-6dc9-4c4e-b932-7186d7268a66",
  "createdAt": "2025-03-07T13:22:11.878Z",
  "updatedAt": "2025-03-07T13:22:11.957Z",
  "title": "My mission",
  "question": "How might we improve the coffee?",
  "details": null,
  "friendlyId": 1,
  "archived": false,
  "canEdit": true,
  "canCreate": true,
  "stats": {
    "ideas": {
      "total": 1,
      "days7": 1
    }
  },
  "defaultPhase": {
    "name": "Comment",
    "kind": "GROW"
  },
  "section": {
    "title": "General"
  },
  "cover": {
    "url": {
      "thumbnail": "https://uploads.staging.ideanote.dev/static/gradients/1024x256/gradient869.jpg"
    }
  }
}

Fields

Field

Type

Description

id

string

The unique identifier of the mission.

createdAt

ISODate

The date when the mission was created.

updatedAt

ISODate

The date when the mission was last updated.

title

string

The title of the mission

question

string

The question of the mission

details

string

The details of the mission

friendlyId

string

The human readable ID of the mission

archived

boolean

Indicates if this mission is archived

canEdit

boolean

Indicates if the authorized user can edit this mission

canCreate

boolean

Indicates if the authorized user can create ideas in the mission

stats.ideas.total

number

The total amount of ideas in the mission

stats.ideas.days7

number

The total amount of ideas in the mission created during the last 7 days

defaultPhase

Phase

The default phase of ideas in the mission

section

Section

The section that the mission has been placed in

cover

Media

The cover image of the mission

List mission

curl -X GET "https://api.ideanote.io/v1/missions?fields=id,title,question,details,stats.ideas.total,cover.url.thumbnail" \
     -H "Content-Type: application/json" \
     -H "Authorization: Bearer <API Token>"
const result = await fetch("https://api.ideanote.io/v1/missions?fields=id,title,question,details,stats.ideas.total,cover.url.thumbnail", {
  method: "GET",
  headers: {
    "Content-Type": "application/json",
    "Authorization": "Bearer <API Token>",
  }
});

const missions = await result.json();
The above command returns JSON structured like this:
[
  {
    "details": null,
    "stats": {
      "ideas": {
        "total": 1
      }
    },
    "cover": {
      "url": {
        "thumbnail": "https://uploads.ideanote.dev/static/gradients/1024x256/gradient869.jpg"
      }
    }
  },
  {
    "details": null,
    "stats": {
      "ideas": {
        "total": 2
      }
    },
    "cover": {
      "url": {
        "thumbnail": "https://uploads.ideanote.dev/static/gradients/1024x256/gradient673.jpg"
      }
    }
  }
]

This endpoint lists missions.

HTTP Request

GET /v1/missions

Get mission

curl -X GET "https://api.ideanote.io/v1/missions/b3f0255d-6dc9-4c4e-b932-7186d7268a66?fields=id,title,question,details,stats.ideas.total,cover.url.thumbnail" \
     -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?fields=id,title,question,details,stats.ideas.total,cover.url.thumbnail", {
  method: "GET",
  headers: {
    "Content-Type": "application/json",
    "Authorization": "Bearer <API Token>",
  }
});

const mission = await result.json();
The above command returns JSON structured like this:
{
  "details": null,
  "stats": {
    "ideas": {
      "total": 1
    }
  },
  "cover": {
    "url": {
      "thumbnail": "https://uploads.ideanote.dev/static/gradients/1024x256/gradient869.jpg"
    }
  }
}

This endpoint retrieves a specific mission.

HTTP Request

GET /v1/missions/:mission_id

Query Parameters

Parameter

Description

mission_id

The ID of the mission to retrieve

Create mission

curl -X POST "https://api.ideanote.io/v1/missions?fields=id,title,question,details,stats.ideas.total,cover.url.thumbnail" \
     -H "Content-Type: application/json" \
     -H "Authorization: Bearer <API Token>" \
     -d '{"question":"How do we improve the coffee?"}'
const result = await fetch("https://api.ideanote.io/v1/missions?fields=id,title,question,details,stats.ideas.total,cover.url.thumbnail", {
  method: "POST",
  body: {
    "question": "How do we improve the coffee?"
  },
  headers: {
    "Content-Type": "application/json",
    "Authorization": "Bearer <API Token>",
  }
});

const missions = await result.json();
The above command returns JSON structured like this:
{
  "title": null,
  "details": null,
  "stats": {
    "ideas": {
      "total": 0
    }
  },
  "cover": null
}

This endpoint creates a new mission.

HTTP Request

POST /v1/missions

Update mission

curl -X PUT "https://api.ideanote.io/v1/missions/b3f0255d-6dc9-4c4e-b932-7186d7268a66?fields=id,title,question,details,stats.ideas.total,cover.url.thumbnail" \
     -H "Content-Type: application/json" \
     -H "Authorization: Bearer <API Token>" \
     -d '{"question":"How do we improve the cantina?"}'
const result = await fetch("https://api.ideanote.io/v1/missions/b3f0255d-6dc9-4c4e-b932-7186d7268a66?fields=id,title,question,details,stats.ideas.total,cover.url.thumbnail", {
  method: "PUT",
  body: {
    "question": "How do we improve the cantina?"
  },
  headers: {
    "Content-Type": "application/json",
    "Authorization": "Bearer <API Token>",
  }
});

const mission = await result.json();
The above command returns JSON structured like this:
{
  "details": null,
  "stats": {
    "ideas": {
      "total": 1
    }
  },
  "cover": {
    "url": {
      "thumbnail": "https://uploads.ideanote.dev/static/gradients/1024x256/gradient869.jpg"
    }
  }
}

This endpoint updates a specific mission.

HTTP Request

PUT /v1/missions/:mission_id

Query Parameters

Parameter

Description

mission_id

The ID of the mission to update

Delete mission

curl -X DELETE "https://api.ideanote.io/v1/missions/b3f0255d-6dc9-4c4e-b932-7186d7268a66" \
     -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", {
  method: "DELETE",
  headers: {
    "Content-Type": "application/json",
    "Authorization": "Bearer <API Token>",
  }
});

This endpoint deletes a specific mission.

HTTP Request

DELETE /v1/missions/:mission_id

Query Parameters

Parameter

Description

mission_id

The ID of the mission to delete