Hoppa till innehållet
thisflow

Utvecklare

thisflows API, endpoint för endpoint.

Parametrar, svar och ett curl-exempel för varje endpoint, från samma OpenAPI-dokument som API:t självt serverar.

Beskrivningarna av endpoints, fält och fel är på engelska, precis som i OpenAPI-dokumentet.

Bas-URL
https://app.thisflow.com/api/v1
Autentisering
Bearer-nyckel, en per person
Format
JSON i UTF-8

API:t serverar samma dokument, utan nyckel, på GET https://app.thisflow.com/api/v1/openapi.json.

Kom igång i tre steg.

  1. 01

    Skapa en nyckel

    Öppna Inställningar → API i thisflow. Under API och AI-assistenter ger du nyckeln ett namn och väljer Skapa nyckel. Kopiera den direkt: den visas bara en gång.

  2. 02

    Skicka den med varje anrop

    Lägg den i Authorization-headern som Bearer och nyckeln. Alla sökvägar nedan utgår från bas-URL:en.

  3. 03

    Anropa en endpoint

    Börja med dagens uppgifter. Uppgifter anges med id eller med sin kod, till exempel SAL-12.

Dagens uppgifter
curl "https://app.thisflow.com/api/v1/tasks?view=today" \
  -H "Authorization: Bearer $THISFLOW_TOKEN"

En nyckel, din egen behörighet.

En nyckel agerar som du, med din roll i varje projekt: en läsares nyckel kan läsa ett projekt men inte ändra det. Välj Återkalla bredvid den under Inställningar → API så slutar den fungera direkt.

Headern
Authorization: Bearer tf_…
Utan giltig nyckel · 401
{
  "error": "unauthenticated"
}

Samma nyckel fungerar för MCP-servern, så att Claude och andra AI-assistenter kan läsa och lägga till dina uppgifter med din behörighet. Adressen är: https://app.thisflow.com/api/mcp

Kom igång med MCP-servern

Gränser och sidindelning.

Sidindelning
GET /tasks returnerar de första limit uppgifterna (50 om du inte anger något annat, högst 200) och total, hur många som matchar. Det finns ingen offset eller cursor: smalna av listan med view, project och q.
Anropets storlek
Ett anrop kan innehålla upp till 1 MB. Är det större blir svaret 413 med felet too_large.
Anropsgränser
Varje nyckel får göra 120 anrop i minuten, upp till 30 i taget, REST och MCP tillsammans. Därutöver blir svaret 429 med felet rate_limited och en Retry-After-header: vänta så många sekunder och skicka anropet igen.
Webbläsare
Bara thisflows egen app får anropa API:t från en webbsida. Anropa det i stället från en server, ett skript eller ett verktyg.

Fel som går att åtgärda.

Varje fel är JSON med en felkod, och ett meddelande eller de fält som inte godtogs.

Schemat Error

  • 400 · Invalid

    The request does not validate: issues lists each field that did not, or message says why the change was refused (error is invalid_view for an unknown view).

    JSON
    {
      "error": "invalid",
      "issues": [
        {
          "code": "custom",
          "path": [
            "dueDate"
          ],
          "message": "Expected a date as yyyy-mm-dd"
        }
      ]
    }
  • 401 · Unauthenticated

    No token, or one that is unknown or revoked.

    JSON
    {
      "error": "unauthenticated"
    }
  • 403 · Forbidden

    Your role in the project does not allow this, such as a viewer changing a task.

    JSON
    {
      "error": "forbidden",
      "message": "A viewer cannot do this"
    }
  • 404 · NotFound

    No task or project you can see has this id or code.

    JSON
    {
      "error": "not_found",
      "message": "Task not found"
    }
  • 429 · RateLimited

    Too many requests with this token: 120 a minute, in bursts of up to 30. Retry-After (and retryAfter) says how many seconds to wait.

    JSON
    {
      "error": "rate_limited",
      "message": "Too many requests with this token: 120 a minute, bursts of up to 30. Try again in 1 s.",
      "retryAfter": 1
    }
  • Övrigt · Error

    Any other error: plan_limit (402) when your plan does not allow it, conflict (409), too_large (413, a body over 1 MB) or internal_error (500).

    JSON
    {
      "error": "internal_error"
    }

Endpoints

Projects

The projects you can see, with their sections.

List projects

GET/projects

Every project you can see that is not archived, your Inbox included, with its sections and how many open top-level tasks it has.

Kräver nyckel

Svar

  • 200Your projects. ProjectList
  • 401No token, or one that is unknown or revoked. Error
  • 429Too many requests with this token: 120 a minute, in bursts of up to 30. Retry-After (and retryAfter) says how many seconds to wait. Error
  • ÖvrigtAny other error: plan_limit (402) when your plan does not allow it, conflict (409), too_large (413, a body over 1 MB) or internal_error (500). Error
Exempel på anrop
curl "https://app.thisflow.com/api/v1/projects" \
  -H "Authorization: Bearer $THISFLOW_TOKEN"
Exempel på svar · 200
{
  "projects": [
    {
      "id": "0199f3a2-5b1c-7d2e-9f30-4a5b6c7d8e02",
      "name": "Inbox",
      "key": "INB",
      "inbox": true,
      "workspace": "Personal",
      "sections": [],
      "openTasks": 3
    },
    {
      "id": "0199f3a2-5b1c-7d2e-9f30-4a5b6c7d8e01",
      "name": "Sales",
      "key": "SAL",
      "inbox": false,
      "workspace": "Acme",
      "sections": [
        {
          "id": "0199f3a2-5b1c-7d2e-9f30-4a5b6c7d8e11",
          "name": "To do",
          "status": "todo"
        },
        {
          "id": "0199f3a2-5b1c-7d2e-9f30-4a5b6c7d8e12",
          "name": "Doing",
          "status": "in_progress"
        },
        {
          "id": "0199f3a2-5b1c-7d2e-9f30-4a5b6c7d8e13",
          "name": "Done",
          "status": "done"
        }
      ],
      "openTasks": 14
    }
  ]
}

Endpoints

Tasks

List, read, create, change and complete tasks, and comment on them.

List tasks

GET/tasks

The tasks of one of the app's views, in every project you can see or in one, optionally searched. Today, Upcoming and Inbox list top-level tasks; Overdue, Someday and all include subtasks. Today and Overdue are measured against your date in your time zone.

Kräver nyckel

Parametrar

  • viewstringi frågesträngen · valfri

    The view, as in the app: Today (due or started by today), Upcoming (later), Overdue (due before today), Inbox (the Inbox project, not waiting for a start date), Someday, or all.

    ett av "today", "upcoming", "overdue", "inbox", "someday", "all" · standard "all"

  • projectstring · uuidi frågesträngen · valfri

    Only tasks in this project (an id from GET /projects).

  • qstringi frågesträngen · valfri

    Search the titles, notes and comments, as the app's search does.

    t.ex. "invoice"

  • completedstringi frågesträngen · valfri

    1 or true includes completed tasks (never in overdue); 0, false or left out lists only open tasks. Any other value is 400 invalid.

    ett av "0", "1", "true", "false"

  • limitintegeri frågesträngen · valfri

    How many tasks to return, 1 to 200. An integer outside is clamped; one that is not an integer is 400 invalid. There is no offset or cursor: total says how many match, and view, project and q narrow the list.

    1 till 200 · standard 50

Svar

  • 200The first limit tasks that match, and how many match in all. TaskList
  • 400The request does not validate: issues lists each field that did not, or message says why the change was refused (error is invalid_view for an unknown view). Error
  • 401No token, or one that is unknown or revoked. Error
  • 429Too many requests with this token: 120 a minute, in bursts of up to 30. Retry-After (and retryAfter) says how many seconds to wait. Error
  • ÖvrigtAny other error: plan_limit (402) when your plan does not allow it, conflict (409), too_large (413, a body over 1 MB) or internal_error (500). Error
Exempel på anrop
curl "https://app.thisflow.com/api/v1/tasks?view=today" \
  -H "Authorization: Bearer $THISFLOW_TOKEN"
Exempel på svar · 200
{
  "today": "2026-10-23",
  "total": 1,
  "tasks": [
    {
      "id": "0199f3a4-0c21-7a6b-8d4e-1f2a3b4c5d60",
      "code": "SAL-12",
      "title": "Call Anna",
      "note": "",
      "project": {
        "id": "0199f3a2-5b1c-7d2e-9f30-4a5b6c7d8e01",
        "name": "Sales"
      },
      "section": "To do",
      "status": "todo",
      "priority": 2,
      "dueDate": "2026-10-23",
      "dueTime": "15:00",
      "startDate": null,
      "someday": false,
      "recurrence": null,
      "assignees": [
        {
          "id": "u_8kq2m4",
          "name": "Erik Lund"
        }
      ],
      "tags": [
        "calls"
      ],
      "parentId": null,
      "completedAt": null,
      "url": "https://app.thisflow.com/t/SAL-12"
    }
  ]
}

Create a task

POST/tasks

Creates a task from one line of text, read exactly as quick add reads it (English and Swedish, in your time zone). Tags that do not exist yet are created in the project's workspace. A top-level task joins the first section of its project. Any role but viewer may add tasks.

Kräver nyckel

Anropets innehåll

Schema: CreateTaskBody

  • textstringkrävs

    The task in natural language, read like quick add in English or Swedish: a date or time, p1 to p4, #project, @tag and +person become fields, the rest is the title.

    1 till 1000 tecken · t.ex. "Call Anna tomorrow 15:00 p2 #Sales @calls"

  • projectIdstring · uuidvalfri

    The project to add it to. Wins over a #project in the text. Without either, the task goes to the Inbox.

  • notestringvalfri

    The task's note (Markdown).

    högst 20000 tecken

  • parentIdstringvalfri

    Make it a subtask of this task: its id or its code, such as SAL-12. The subtask joins the parent's project.

    högst 80 tecken

Svar

  • 201The new task. TaskDetail
  • 400The request does not validate: issues lists each field that did not, or message says why the change was refused (error is invalid_view for an unknown view). Error
  • 401No token, or one that is unknown or revoked. Error
  • 403Your role in the project does not allow this, such as a viewer changing a task. Error
  • 404No task or project you can see has this id or code. Error
  • 429Too many requests with this token: 120 a minute, in bursts of up to 30. Retry-After (and retryAfter) says how many seconds to wait. Error
  • ÖvrigtAny other error: plan_limit (402) when your plan does not allow it, conflict (409), too_large (413, a body over 1 MB) or internal_error (500). Error
Exempel på anrop
curl -X POST "https://app.thisflow.com/api/v1/tasks" \
  -H "Authorization: Bearer $THISFLOW_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"text":"Call Anna tomorrow 15:00 p2 #Sales @calls"}'
Exempel på svar · 201
{
  "id": "0199f3a4-0c21-7a6b-8d4e-1f2a3b4c5d60",
  "code": "SAL-12",
  "title": "Call Anna",
  "note": "",
  "project": {
    "id": "0199f3a2-5b1c-7d2e-9f30-4a5b6c7d8e01",
    "name": "Sales"
  },
  "section": "To do",
  "status": "todo",
  "priority": 2,
  "dueDate": "2026-10-23",
  "dueTime": "15:00",
  "startDate": null,
  "someday": false,
  "recurrence": null,
  "assignees": [
    {
      "id": "u_8kq2m4",
      "name": "Erik Lund"
    }
  ],
  "tags": [
    "calls"
  ],
  "parentId": null,
  "completedAt": null,
  "url": "https://app.thisflow.com/t/SAL-12",
  "subtasks": [],
  "comments": []
}

Get a task

GET/tasks/{idOrCode}

One task with its subtasks and comments.

Kräver nyckel

Parametrar

  • idOrCodestringi sökvägen · krävs

    The task's id, or its code such as SAL-12.

    högst 80 tecken · t.ex. "SAL-12"

Svar

  • 200The task. TaskDetail
  • 401No token, or one that is unknown or revoked. Error
  • 404No task or project you can see has this id or code. Error
  • 429Too many requests with this token: 120 a minute, in bursts of up to 30. Retry-After (and retryAfter) says how many seconds to wait. Error
  • ÖvrigtAny other error: plan_limit (402) when your plan does not allow it, conflict (409), too_large (413, a body over 1 MB) or internal_error (500). Error
Exempel på anrop
curl "https://app.thisflow.com/api/v1/tasks/SAL-12" \
  -H "Authorization: Bearer $THISFLOW_TOKEN"
Exempel på svar · 200
{
  "id": "0199f3a4-0c21-7a6b-8d4e-1f2a3b4c5d60",
  "code": "SAL-12",
  "title": "Call Anna",
  "note": "",
  "project": {
    "id": "0199f3a2-5b1c-7d2e-9f30-4a5b6c7d8e01",
    "name": "Sales"
  },
  "section": "To do",
  "status": "todo",
  "priority": 2,
  "dueDate": "2026-10-23",
  "dueTime": "15:00",
  "startDate": null,
  "someday": false,
  "recurrence": null,
  "assignees": [
    {
      "id": "u_8kq2m4",
      "name": "Erik Lund"
    }
  ],
  "tags": [
    "calls"
  ],
  "parentId": null,
  "completedAt": null,
  "url": "https://app.thisflow.com/t/SAL-12",
  "subtasks": [
    {
      "id": "0199f3a4-0c21-7a6b-8d4e-1f2a3b4c5d61",
      "code": "SAL-13",
      "title": "Find the last offer",
      "note": "",
      "project": {
        "id": "0199f3a2-5b1c-7d2e-9f30-4a5b6c7d8e01",
        "name": "Sales"
      },
      "section": "To do",
      "status": "todo",
      "priority": 2,
      "dueDate": null,
      "dueTime": null,
      "startDate": null,
      "someday": false,
      "recurrence": null,
      "assignees": [],
      "tags": [],
      "parentId": "0199f3a4-0c21-7a6b-8d4e-1f2a3b4c5d60",
      "completedAt": null,
      "url": "https://app.thisflow.com/t/SAL-13"
    }
  ],
  "comments": [
    {
      "id": "0199f3a6-77e0-7b1c-a2d3-e4f5a6b7c8d9",
      "author": "Erik Lund",
      "body": "Sent the draft, waiting for Anna.",
      "createdAt": "2026-10-22T09:41:07.000Z"
    }
  ]
}

Update a task

PATCH/tasks/{idOrCode}

Changes only the fields you send; null clears a date or time. Each field is its own change, so a teammate's edit to another field is kept.

Kräver nyckel

Parametrar

  • idOrCodestringi sökvägen · krävs

    The task's id, or its code such as SAL-12.

    högst 80 tecken · t.ex. "SAL-12"

Anropets innehåll

Schema: UpdateTaskBody

  • titlestringvalfri

    The title, as it is (not read as quick add).

    1 till 500 tecken

  • notestringvalfri

    The note (Markdown).

    högst 20000 tecken

  • priorityintegervalfri

    1 is the highest (P1), 4 is none.

    ett av 1, 2, 3, 4

  • dueDatestring · date eller nullvalfri

    The due date in your time zone, or null to clear it.

    t.ex. "2026-10-23"

  • dueTimestring eller nullvalfri

    A time of day on the due date, HH:MM (24 h), or null for all day.

    t.ex. "15:00"

  • startDatestring · date eller nullvalfri

    The day the task starts showing in Today, or null.

    t.ex. "2026-10-23"

  • somedaybooleanvalfri

    true moves the task to Someday.

  • projectIdstring · uuidvalfri

    Move the task to another project you can edit.

  • sectionIdstring · uuidvalfri

    Move the task to a section of its project (an id from GET /projects).

  • assigneeIdslista av stringvalfri

    The people assigned, by user id. Replaces the current list; [] clears it.

    högst 20 st.

Svar

  • 200The task after the change. TaskDetail
  • 400The request does not validate: issues lists each field that did not, or message says why the change was refused (error is invalid_view for an unknown view). Error
  • 401No token, or one that is unknown or revoked. Error
  • 403Your role in the project does not allow this, such as a viewer changing a task. Error
  • 404No task or project you can see has this id or code. Error
  • 429Too many requests with this token: 120 a minute, in bursts of up to 30. Retry-After (and retryAfter) says how many seconds to wait. Error
  • ÖvrigtAny other error: plan_limit (402) when your plan does not allow it, conflict (409), too_large (413, a body over 1 MB) or internal_error (500). Error
Exempel på anrop
curl -X PATCH "https://app.thisflow.com/api/v1/tasks/SAL-12" \
  -H "Authorization: Bearer $THISFLOW_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"priority":1,"dueDate":"2026-10-24"}'
Exempel på svar · 200
{
  "id": "0199f3a4-0c21-7a6b-8d4e-1f2a3b4c5d60",
  "code": "SAL-12",
  "title": "Call Anna",
  "note": "",
  "project": {
    "id": "0199f3a2-5b1c-7d2e-9f30-4a5b6c7d8e01",
    "name": "Sales"
  },
  "section": "To do",
  "status": "todo",
  "priority": 1,
  "dueDate": "2026-10-24",
  "dueTime": "15:00",
  "startDate": null,
  "someday": false,
  "recurrence": null,
  "assignees": [
    {
      "id": "u_8kq2m4",
      "name": "Erik Lund"
    }
  ],
  "tags": [
    "calls"
  ],
  "parentId": null,
  "completedAt": null,
  "url": "https://app.thisflow.com/t/SAL-12",
  "subtasks": [
    {
      "id": "0199f3a4-0c21-7a6b-8d4e-1f2a3b4c5d61",
      "code": "SAL-13",
      "title": "Find the last offer",
      "note": "",
      "project": {
        "id": "0199f3a2-5b1c-7d2e-9f30-4a5b6c7d8e01",
        "name": "Sales"
      },
      "section": "To do",
      "status": "todo",
      "priority": 2,
      "dueDate": null,
      "dueTime": null,
      "startDate": null,
      "someday": false,
      "recurrence": null,
      "assignees": [],
      "tags": [],
      "parentId": "0199f3a4-0c21-7a6b-8d4e-1f2a3b4c5d60",
      "completedAt": null,
      "url": "https://app.thisflow.com/t/SAL-13"
    }
  ],
  "comments": [
    {
      "id": "0199f3a6-77e0-7b1c-a2d3-e4f5a6b7c8d9",
      "author": "Erik Lund",
      "body": "Sent the draft, waiting for Anna.",
      "createdAt": "2026-10-22T09:41:07.000Z"
    }
  ]
}

Complete or reopen a task

POST/tasks/{idOrCode}/complete

Completes the task, as ticking it in the app does: a top-level task moves to its project's Done section when there is one, and a repeating task rolls forward to its next date instead. Send { "completed": false } to reopen it.

Kräver nyckel

Parametrar

  • idOrCodestringi sökvägen · krävs

    The task's id, or its code such as SAL-12.

    högst 80 tecken · t.ex. "SAL-12"

Anropets innehåll

Schema: CompleteTaskBody

  • completedbooleanvalfri

    false reopens a completed task.

    standard true

  • dueDatestring · date eller nullvalfri

    The due date you last read. On a repeating task the call does nothing if the task has moved on to another occurrence, so a retried call never completes two.

    t.ex. "2026-10-23"

Svar

  • 200The task after the change. TaskDetail
  • 400The request does not validate: issues lists each field that did not, or message says why the change was refused (error is invalid_view for an unknown view). Error
  • 401No token, or one that is unknown or revoked. Error
  • 403Your role in the project does not allow this, such as a viewer changing a task. Error
  • 404No task or project you can see has this id or code. Error
  • 429Too many requests with this token: 120 a minute, in bursts of up to 30. Retry-After (and retryAfter) says how many seconds to wait. Error
  • ÖvrigtAny other error: plan_limit (402) when your plan does not allow it, conflict (409), too_large (413, a body over 1 MB) or internal_error (500). Error
Exempel på anrop
curl -X POST "https://app.thisflow.com/api/v1/tasks/SAL-12/complete" \
  -H "Authorization: Bearer $THISFLOW_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"completed":true}'
Exempel på svar · 200
{
  "id": "0199f3a4-0c21-7a6b-8d4e-1f2a3b4c5d60",
  "code": "SAL-12",
  "title": "Call Anna",
  "note": "",
  "project": {
    "id": "0199f3a2-5b1c-7d2e-9f30-4a5b6c7d8e01",
    "name": "Sales"
  },
  "section": "Done",
  "status": "done",
  "priority": 2,
  "dueDate": "2026-10-23",
  "dueTime": "15:00",
  "startDate": null,
  "someday": false,
  "recurrence": null,
  "assignees": [
    {
      "id": "u_8kq2m4",
      "name": "Erik Lund"
    }
  ],
  "tags": [
    "calls"
  ],
  "parentId": null,
  "completedAt": "2026-10-23T14:02:55.000Z",
  "url": "https://app.thisflow.com/t/SAL-12",
  "subtasks": [
    {
      "id": "0199f3a4-0c21-7a6b-8d4e-1f2a3b4c5d61",
      "code": "SAL-13",
      "title": "Find the last offer",
      "note": "",
      "project": {
        "id": "0199f3a2-5b1c-7d2e-9f30-4a5b6c7d8e01",
        "name": "Sales"
      },
      "section": "To do",
      "status": "todo",
      "priority": 2,
      "dueDate": null,
      "dueTime": null,
      "startDate": null,
      "someday": false,
      "recurrence": null,
      "assignees": [],
      "tags": [],
      "parentId": "0199f3a4-0c21-7a6b-8d4e-1f2a3b4c5d60",
      "completedAt": null,
      "url": "https://app.thisflow.com/t/SAL-13"
    }
  ],
  "comments": [
    {
      "id": "0199f3a6-77e0-7b1c-a2d3-e4f5a6b7c8d9",
      "author": "Erik Lund",
      "body": "Sent the draft, waiting for Anna.",
      "createdAt": "2026-10-22T09:41:07.000Z"
    }
  ]
}

Add a comment

POST/tasks/{idOrCode}/comments

Adds a comment to the task as you.

Kräver nyckel

Parametrar

  • idOrCodestringi sökvägen · krävs

    The task's id, or its code such as SAL-12.

    högst 80 tecken · t.ex. "SAL-12"

Anropets innehåll

Schema: CommentBody

  • bodystringkrävs

    The comment (Markdown). @name mentions notify, as in the app.

    1 till 10000 tecken · t.ex. "Sent the draft, waiting for Anna."

Svar

  • 201The task with its comments. TaskDetail
  • 400The request does not validate: issues lists each field that did not, or message says why the change was refused (error is invalid_view for an unknown view). Error
  • 401No token, or one that is unknown or revoked. Error
  • 403Your role in the project does not allow this, such as a viewer changing a task. Error
  • 404No task or project you can see has this id or code. Error
  • 429Too many requests with this token: 120 a minute, in bursts of up to 30. Retry-After (and retryAfter) says how many seconds to wait. Error
  • ÖvrigtAny other error: plan_limit (402) when your plan does not allow it, conflict (409), too_large (413, a body over 1 MB) or internal_error (500). Error
Exempel på anrop
curl -X POST "https://app.thisflow.com/api/v1/tasks/SAL-12/comments" \
  -H "Authorization: Bearer $THISFLOW_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"body":"Sent the draft, waiting for Anna."}'
Exempel på svar · 201
{
  "id": "0199f3a4-0c21-7a6b-8d4e-1f2a3b4c5d60",
  "code": "SAL-12",
  "title": "Call Anna",
  "note": "",
  "project": {
    "id": "0199f3a2-5b1c-7d2e-9f30-4a5b6c7d8e01",
    "name": "Sales"
  },
  "section": "To do",
  "status": "todo",
  "priority": 2,
  "dueDate": "2026-10-23",
  "dueTime": "15:00",
  "startDate": null,
  "someday": false,
  "recurrence": null,
  "assignees": [
    {
      "id": "u_8kq2m4",
      "name": "Erik Lund"
    }
  ],
  "tags": [
    "calls"
  ],
  "parentId": null,
  "completedAt": null,
  "url": "https://app.thisflow.com/t/SAL-12",
  "subtasks": [
    {
      "id": "0199f3a4-0c21-7a6b-8d4e-1f2a3b4c5d61",
      "code": "SAL-13",
      "title": "Find the last offer",
      "note": "",
      "project": {
        "id": "0199f3a2-5b1c-7d2e-9f30-4a5b6c7d8e01",
        "name": "Sales"
      },
      "section": "To do",
      "status": "todo",
      "priority": 2,
      "dueDate": null,
      "dueTime": null,
      "startDate": null,
      "someday": false,
      "recurrence": null,
      "assignees": [],
      "tags": [],
      "parentId": "0199f3a4-0c21-7a6b-8d4e-1f2a3b4c5d60",
      "completedAt": null,
      "url": "https://app.thisflow.com/t/SAL-13"
    }
  ],
  "comments": [
    {
      "id": "0199f3a6-77e0-7b1c-a2d3-e4f5a6b7c8d9",
      "author": "Erik Lund",
      "body": "Sent the draft, waiting for Anna.",
      "createdAt": "2026-10-22T09:41:07.000Z"
    }
  ]
}

Move overdue tasks to today

POST/overdue/move-to-today

Moves your own open tasks that were due before today to today, as Today's Move to today does: tasks assigned to you, and unassigned tasks in your personal workspace. Teammates' tasks stay where they are; a task you may not change is skipped.

Kräver nyckel

Svar

  • 200How many tasks moved. MoveOverdueResult
  • 401No token, or one that is unknown or revoked. Error
  • 429Too many requests with this token: 120 a minute, in bursts of up to 30. Retry-After (and retryAfter) says how many seconds to wait. Error
  • ÖvrigtAny other error: plan_limit (402) when your plan does not allow it, conflict (409), too_large (413, a body over 1 MB) or internal_error (500). Error
Exempel på anrop
curl -X POST "https://app.thisflow.com/api/v1/overdue/move-to-today" \
  -H "Authorization: Bearer $THISFLOW_TOKEN"
Exempel på svar · 200
{
  "moved": 2,
  "skipped": 0,
  "today": "2026-10-23",
  "tomorrow": "2026-10-24"
}

Endpoints

Specification

This document.

Get this document

GET/openapi.json

This OpenAPI 3.1 document, as JSON. No token needed; it may be cached for an hour and answers If-None-Match with 304.

Ingen nyckel behövs

Svar

  • 200The OpenAPI document.
Exempel på anrop
curl "https://app.thisflow.com/api/v1/openapi.json"

Objekten du skickar och får.

Det som endpoints ovan skickar och tar emot, fält för fält.

Task

A task, as every endpoint returns it.

  • idstring · uuidkrävs

  • codestringkrävs

    The project key and the task's number, such as SAL-12. Works wherever an id does.

  • titlestringkrävs

  • notestringkrävs

    The note (Markdown), or an empty string.

  • projectobjectkrävs

    The project the task is in.

  • sectionstring eller nullkrävs

    The name of its section, or null.

  • statusstringkrävs

    done when completed, else the status of its section (todo without one).

    ett av "todo", "in_progress", "in_review", "done"

  • priorityintegerkrävs

    1 is the highest (P1), 4 is none.

    ett av 1, 2, 3, 4

  • dueDatestring · date eller nullkrävs

    The due date in your time zone.

    t.ex. "2026-10-23"

  • dueTimestring eller nullkrävs

    The time on the due date, or null for all day.

    t.ex. "15:00"

  • startDatestring · date eller nullkrävs

    The day it starts showing in Today.

    t.ex. "2026-10-23"

  • somedaybooleankrävs

  • recurrencestring eller nullkrävs

    How it repeats, as an RRULE (FREQ=WEEKLY;BYDAY=MO), or null.

  • assigneeslista av Personkrävs

  • tagslista av stringkrävs

    Tag names.

  • parentIdstring · uuid eller nullkrävs

    The parent task's id for a subtask, else null.

  • completedAtstring · date-time eller nullkrävs

    When it was completed (UTC), or null while open.

  • urlstring · urikrävs

    Opens the task in thisflow.

TaskDetail

A task with its subtasks and comments.

Alla fält i Task, och dessutom:

  • subtaskslista av Taskkrävs

    Its open and completed subtasks.

  • commentslista av Commentkrävs

Comment

A comment on a task.

  • idstring · uuidkrävs

  • authorstringkrävs

    The author's name.

  • bodystringkrävs

  • createdAtstring · date-timekrävs

Person

Someone you share a project with.

  • idstringkrävs

    The user id.

  • namestringkrävs

Project

A project you can see.

  • idstring · uuidkrävs

  • namestringkrävs

    The project's name; the Inbox is called Inbox.

  • keystringkrävs

    The prefix of its task codes, such as SAL in SAL-12.

  • inboxbooleankrävs

    true for your Inbox.

  • workspacestringkrävs

    The name of the project's workspace.

  • sectionslista av Sectionkrävs

    Its sections in order: list headings and board columns.

  • openTasksintegerkrävs

    Open top-level tasks in it.

    minst 0

Section

A section of a project: a list heading and a board column.

  • idstring · uuidkrävs

  • namestringkrävs

  • statusstringkrävs

    What the section means on the board: a task in it has this status.

    ett av "todo", "in_progress", "in_review", "done"

ProjectList

The answer of GET /projects.

TaskList

The answer of GET /tasks.

  • todaystring · datekrävs

    Your date today, in your time zone: what Today and Overdue are measured against.

    t.ex. "2026-10-23"

  • totalintegerkrävs

    Every task that matches; tasks holds the first limit of them.

    minst 0

  • taskslista av Taskkrävs

    Sorted by due date (none last), priority, then position.

MoveOverdueResult

What Move to today did.

  • movedintegerkrävs

    minst 0

  • skippedintegerkrävs

    Overdue tasks you may not change, left as they were.

    minst 0

  • todaystring · datekrävs

    t.ex. "2026-10-23"

  • tomorrowstring · datekrävs

    t.ex. "2026-10-23"

Error

Every error answer has this shape.

  • errorstringkrävs

    What went wrong: invalid, invalid_view, unauthenticated, forbidden, not_found, conflict, plan_limit, too_large, rate_limited or internal_error.

    t.ex. "not_found"

  • messagestringvalfri

    A sentence for people, when there is one.

  • issueslista av objectvalfri

    For invalid: each field that did not validate.

  • retryAfterintegervalfri

    For rate_limited: the seconds to wait before the next request, as in the Retry-After header.

    minst 1

CreateTaskBody

A new task, in natural language.

  • textstringkrävs

    The task in natural language, read like quick add in English or Swedish: a date or time, p1 to p4, #project, @tag and +person become fields, the rest is the title.

    1 till 1000 tecken · t.ex. "Call Anna tomorrow 15:00 p2 #Sales @calls"

  • projectIdstring · uuidvalfri

    The project to add it to. Wins over a #project in the text. Without either, the task goes to the Inbox.

  • notestringvalfri

    The task's note (Markdown).

    högst 20000 tecken

  • parentIdstringvalfri

    Make it a subtask of this task: its id or its code, such as SAL-12. The subtask joins the parent's project.

    högst 80 tecken

UpdateTaskBody

The fields to change; at least one.

  • titlestringvalfri

    The title, as it is (not read as quick add).

    1 till 500 tecken

  • notestringvalfri

    The note (Markdown).

    högst 20000 tecken

  • priorityintegervalfri

    1 is the highest (P1), 4 is none.

    ett av 1, 2, 3, 4

  • dueDatestring · date eller nullvalfri

    The due date in your time zone, or null to clear it.

    t.ex. "2026-10-23"

  • dueTimestring eller nullvalfri

    A time of day on the due date, HH:MM (24 h), or null for all day.

    t.ex. "15:00"

  • startDatestring · date eller nullvalfri

    The day the task starts showing in Today, or null.

    t.ex. "2026-10-23"

  • somedaybooleanvalfri

    true moves the task to Someday.

  • projectIdstring · uuidvalfri

    Move the task to another project you can edit.

  • sectionIdstring · uuidvalfri

    Move the task to a section of its project (an id from GET /projects).

  • assigneeIdslista av stringvalfri

    The people assigned, by user id. Replaces the current list; [] clears it.

    högst 20 st.

CompleteTaskBody

Send {} to complete the task.

  • completedbooleanvalfri

    false reopens a completed task.

    standard true

  • dueDatestring · date eller nullvalfri

    The due date you last read. On a repeating task the call does nothing if the task has moved on to another occurrence, so a retried call never completes two.

    t.ex. "2026-10-23"

CommentBody

A new comment.

  • bodystringkrävs

    The comment (Markdown). @name mentions notify, as in the app.

    1 till 10000 tecken · t.ex. "Sent the draft, waiting for Anna."

Skapa en nyckel och börja bygga.

Börja gratis och skapa din första nyckel under Inställningar → API.

Välj vilka cookies thisflow.com får använda. Du kan ändra det när som helst via länken längst ner på varje sida.