Open Morse

Reference

Tasks

7 routes, generated from Morse’s own OpenAPI document. Every path below hangs off the base URL, and every one needs the bearer header.

The examples are built from each route’s schema, so the shapes and types are exactly what the API declares. The values are illustrative, and no one has run them.

Add a task of your own.

POST/tasks

Only you ever see it.

POST/tasks

curl -X POST "$MORSE/tasks" \
  -H "Authorization: Bearer $MORSE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "text": "Annual plans are billed up front." }'
201
{
  "done": true,
  "done_at": "2026-10-02T10:30:00+05:30",
  "due": "…",
  "id": "3f9c1a24-5e6f-4b31-9a77-1b2c3d4e5f60",
  "item_id": "3f9c1a24-5e6f-4b31-9a77-1b2c3d4e5f60",
  "kind": "…",
  "meeting_id": "3f9c1a24-5e6f-4b31-9a77-1b2c3d4e5f60",
  "meeting_title": "…",
  "text": "Annual plans are billed up front."
}

Tick, untick or re-date a meeting task in your own copy of its list — the same copy the meeting's page shows, so the two agree.

PATCH/tasks/meeting/{meeting_id}/{item_id}

PATCH/tasks/meeting/{meeting_id}/{item_id}

curl -X PATCH "$MORSE/tasks/meeting/3f9c1a24-5e6f-4b31-9a77-1b2c3d4e5f60/3f9c1a24-5e6f-4b31-9a77-1b2c3d4e5f60" \
  -H "Authorization: Bearer $MORSE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "done": true, "due": "2026-10-02" }'
200
{
  "done": true,
  "done_at": "2026-10-02T10:30:00+05:30",
  "due": "…",
  "id": "3f9c1a24-5e6f-4b31-9a77-1b2c3d4e5f60",
  "item_id": "3f9c1a24-5e6f-4b31-9a77-1b2c3d4e5f60",
  "kind": "…",
  "meeting_id": "3f9c1a24-5e6f-4b31-9a77-1b2c3d4e5f60",
  "meeting_title": "…",
  "text": "Annual plans are billed up front."
}

Say whose a meeting task is.

PUT/tasks/meeting/{meeting_id}/{item_id}/owner

An admin, or the meeting's host, for a meeting they can read; only to a colleague.

PUT/tasks/meeting/{meeting_id}/{item_id}/owner

curl -X PUT "$MORSE/tasks/meeting/3f9c1a24-5e6f-4b31-9a77-1b2c3d4e5f60/3f9c1a24-5e6f-4b31-9a77-1b2c3d4e5f60/owner" \
  -H "Authorization: Bearer $MORSE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "user_id": "3f9c1a24-5e6f-4b31-9a77-1b2c3d4e5f60" }'

Your checklist: meeting tasks that are yours, from meetings you can read, and the tasks you added.

GET/tasks/mine

Open ones, and done ones from the last fortnight.

GET/tasks/mine

curl "$MORSE/tasks/mine" \
  -H "Authorization: Bearer $MORSE_TOKEN"
200
{
  "items": [
    {
      "done": true,
      "done_at": "2026-10-02T10:30:00+05:30",
      "due": "…",
      "id": "3f9c1a24-5e6f-4b31-9a77-1b2c3d4e5f60",
      "item_id": "3f9c1a24-5e6f-4b31-9a77-1b2c3d4e5f60",
      "kind": "…",
      "meeting_id": "3f9c1a24-5e6f-4b31-9a77-1b2c3d4e5f60",
      "meeting_title": "…",
      "text": "Annual plans are billed up front."
    }
  ]
}

Your colleagues who share their tasks, each with the meeting tasks that are theirs: open ones, and those done this week.

GET/tasks/organisation

A task's words only where you could read its meeting.

GET/tasks/organisation

curl "$MORSE/tasks/organisation" \
  -H "Authorization: Bearer $MORSE_TOKEN"
200
{
  "not_sharing": 1,
  "people": [
    {
      "id": "3f9c1a24-5e6f-4b31-9a77-1b2c3d4e5f60",
      "items": [
        {
          "done": true,
          "done_at": "2026-10-02T10:30:00+05:30",
          "due": "…",
          "item_id": "3f9c1a24-5e6f-4b31-9a77-1b2c3d4e5f60",
          "meeting_id": "3f9c1a24-5e6f-4b31-9a77-1b2c3d4e5f60",
          "meeting_title": "…",
          "text": "Annual plans are billed up front."
        }
      ],
      "name": "Priya Shah",
      "title": "Pricing review"
    }
  ],
  "teams": [
    {
      "id": "3f9c1a24-5e6f-4b31-9a77-1b2c3d4e5f60",
      "members": [
        "…"
      ],
      "name": "Priya Shah"
    }
  ],
  "unassigned": [
    {
      "assignable": true,
      "due": "…",
      "item_id": "3f9c1a24-5e6f-4b31-9a77-1b2c3d4e5f60",
      "meeting_id": "3f9c1a24-5e6f-4b31-9a77-1b2c3d4e5f60",
      "meeting_title": "…",
      "owner": "…",
      "text": "Annual plans are billed up front."
    }
  ]
}

Rename, re-date, tick or untick a task of your own.

PATCH/tasks/{task_id}

A due date sent as null clears it.

PATCH/tasks/{task_id}

curl -X PATCH "$MORSE/tasks/3f9c1a24-5e6f-4b31-9a77-1b2c3d4e5f60" \
  -H "Authorization: Bearer $MORSE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "done": true, "due": "2026-10-02", "text": "Annual plans are billed up front." }'
200
{
  "done": true,
  "done_at": "2026-10-02T10:30:00+05:30",
  "due": "…",
  "id": "3f9c1a24-5e6f-4b31-9a77-1b2c3d4e5f60",
  "item_id": "3f9c1a24-5e6f-4b31-9a77-1b2c3d4e5f60",
  "kind": "…",
  "meeting_id": "3f9c1a24-5e6f-4b31-9a77-1b2c3d4e5f60",
  "meeting_title": "…",
  "text": "Annual plans are billed up front."
}

Delete a task of your own.

DELETE/tasks/{task_id}

A meeting's tasks belong to its notes; they can't be deleted here.

DELETE/tasks/{task_id}

curl -X DELETE "$MORSE/tasks/3f9c1a24-5e6f-4b31-9a77-1b2c3d4e5f60" \
  -H "Authorization: Bearer $MORSE_TOKEN"