# V1 # Tasks ## List tasks **get** `/api/v1/tasks` Returns tasks for the resolved space; includes `spaceVersion` from `repVersionGet` semantics. ### Query Parameters - `contextId: optional string` - `cursor: optional string` Opaque cursor from the previous response `nextCursor`. - `includeDeleted: optional boolean` - `limit: optional number` - `listId: optional string` - `spaceId: optional string` Optional space id; when omitted, the user’s default space is used. - `status: optional string` ### Returns - `data: array of Todo` - `sortOrder: number` - `todoId: string` - `complexity: optional string` - `contextId: optional string` - `dateDue: optional string` - `dateStart: optional string` - `durationEstimate: optional number` - `durationMs: optional number` - `goalId: optional string` - `isImportant: optional boolean` - `isTimeSensitive: optional boolean` - `listId: optional string` - `name: optional string` - `notesMarkdown: optional string` - `status: optional string` - `TodoPredecessorsAllAny: optional "ALL" or "ANY"` - `"ALL"` - `"ANY"` - `TodoPredecessorsView: optional boolean` - `spaceVersion: number` Current Replicache space version (`Space.version`). - `nextCursor: optional string` ### Example ```http curl https://$FLUIDWAVE_HOST/api/v1/tasks ``` #### Response ```json { "data": [ { "id": "id", "createdAt": "2019-12-27T18:11:19.117Z", "deletedAt": "2019-12-27T18:11:19.117Z", "isDeleted": true, "spaceId": "spaceId", "updatedAt": "2019-12-27T18:11:19.117Z", "versionUpdatedAt": 0, "sortOrder": 0, "todoId": "todoId", "complexity": "complexity", "contextId": "contextId", "dateDue": "2019-12-27T18:11:19.117Z", "dateStart": "2019-12-27T18:11:19.117Z", "durationEstimate": 0, "durationMs": 0, "goalId": "goalId", "isImportant": true, "isTimeSensitive": true, "listId": "listId", "name": "name", "notesMarkdown": "notesMarkdown", "status": "status", "TodoPredecessorsAllAny": "ALL", "TodoPredecessorsView": true } ], "spaceVersion": 0, "nextCursor": "nextCursor" } ``` ## Create task **post** `/api/v1/tasks` Increments the Replicache space version via repVersionIncrement after writing. ### Query Parameters - `spaceId: optional string` Optional space id; when omitted, the user’s default space is used. ### Body Parameters - `categoryIds: optional array of string` - `contextId: optional string` - `goalId: optional string` - `listId: optional string` - `name: optional string` - `scheduleIds: optional array of string` - `spaceId: optional string` - `tagIds: optional array of string` - `todoId: optional string` ### Returns - `SingleResponseTodo = object { data, spaceVersion }` - `data: Todo` - `sortOrder: number` - `todoId: string` - `complexity: optional string` - `contextId: optional string` - `dateDue: optional string` - `dateStart: optional string` - `durationEstimate: optional number` - `durationMs: optional number` - `goalId: optional string` - `isImportant: optional boolean` - `isTimeSensitive: optional boolean` - `listId: optional string` - `name: optional string` - `notesMarkdown: optional string` - `status: optional string` - `TodoPredecessorsAllAny: optional "ALL" or "ANY"` - `"ALL"` - `"ANY"` - `TodoPredecessorsView: optional boolean` - `spaceVersion: number` Current Replicache space version (`Space.version`). ### Example ```http curl https://$FLUIDWAVE_HOST/api/v1/tasks \ -H 'Content-Type: application/json' \ -d '{}' ``` #### Response ```json { "data": { "id": "id", "createdAt": "2019-12-27T18:11:19.117Z", "deletedAt": "2019-12-27T18:11:19.117Z", "isDeleted": true, "spaceId": "spaceId", "updatedAt": "2019-12-27T18:11:19.117Z", "versionUpdatedAt": 0, "sortOrder": 0, "todoId": "todoId", "complexity": "complexity", "contextId": "contextId", "dateDue": "2019-12-27T18:11:19.117Z", "dateStart": "2019-12-27T18:11:19.117Z", "durationEstimate": 0, "durationMs": 0, "goalId": "goalId", "isImportant": true, "isTimeSensitive": true, "listId": "listId", "name": "name", "notesMarkdown": "notesMarkdown", "status": "status", "TodoPredecessorsAllAny": "ALL", "TodoPredecessorsView": true }, "spaceVersion": 0 } ``` ## Get task **get** `/api/v1/tasks/{todoId}` Get task ### Path Parameters - `todoId: string` ### Query Parameters - `spaceId: optional string` Optional space id; when omitted, the user’s default space is used. ### Returns - `SingleResponseTodo = object { data, spaceVersion }` - `data: Todo` - `sortOrder: number` - `todoId: string` - `complexity: optional string` - `contextId: optional string` - `dateDue: optional string` - `dateStart: optional string` - `durationEstimate: optional number` - `durationMs: optional number` - `goalId: optional string` - `isImportant: optional boolean` - `isTimeSensitive: optional boolean` - `listId: optional string` - `name: optional string` - `notesMarkdown: optional string` - `status: optional string` - `TodoPredecessorsAllAny: optional "ALL" or "ANY"` - `"ALL"` - `"ANY"` - `TodoPredecessorsView: optional boolean` - `spaceVersion: number` Current Replicache space version (`Space.version`). ### Example ```http curl https://$FLUIDWAVE_HOST/api/v1/tasks/$TODO_ID ``` #### Response ```json { "data": { "id": "id", "createdAt": "2019-12-27T18:11:19.117Z", "deletedAt": "2019-12-27T18:11:19.117Z", "isDeleted": true, "spaceId": "spaceId", "updatedAt": "2019-12-27T18:11:19.117Z", "versionUpdatedAt": 0, "sortOrder": 0, "todoId": "todoId", "complexity": "complexity", "contextId": "contextId", "dateDue": "2019-12-27T18:11:19.117Z", "dateStart": "2019-12-27T18:11:19.117Z", "durationEstimate": 0, "durationMs": 0, "goalId": "goalId", "isImportant": true, "isTimeSensitive": true, "listId": "listId", "name": "name", "notesMarkdown": "notesMarkdown", "status": "status", "TodoPredecessorsAllAny": "ALL", "TodoPredecessorsView": true }, "spaceVersion": 0 } ``` ## Update task **patch** `/api/v1/tasks/{todoId}` Increments the Replicache space version via repVersionIncrement after writing. ### Path Parameters - `todoId: string` ### Query Parameters - `spaceId: optional string` Optional space id; when omitted, the user’s default space is used. ### Body Parameters - `spaceId: optional string` ### Returns - `SingleResponseTodo = object { data, spaceVersion }` - `data: Todo` - `sortOrder: number` - `todoId: string` - `complexity: optional string` - `contextId: optional string` - `dateDue: optional string` - `dateStart: optional string` - `durationEstimate: optional number` - `durationMs: optional number` - `goalId: optional string` - `isImportant: optional boolean` - `isTimeSensitive: optional boolean` - `listId: optional string` - `name: optional string` - `notesMarkdown: optional string` - `status: optional string` - `TodoPredecessorsAllAny: optional "ALL" or "ANY"` - `"ALL"` - `"ANY"` - `TodoPredecessorsView: optional boolean` - `spaceVersion: number` Current Replicache space version (`Space.version`). ### Example ```http curl https://$FLUIDWAVE_HOST/api/v1/tasks/$TODO_ID \ -X PATCH \ -H 'Content-Type: application/json' \ -d '{}' ``` #### Response ```json { "data": { "id": "id", "createdAt": "2019-12-27T18:11:19.117Z", "deletedAt": "2019-12-27T18:11:19.117Z", "isDeleted": true, "spaceId": "spaceId", "updatedAt": "2019-12-27T18:11:19.117Z", "versionUpdatedAt": 0, "sortOrder": 0, "todoId": "todoId", "complexity": "complexity", "contextId": "contextId", "dateDue": "2019-12-27T18:11:19.117Z", "dateStart": "2019-12-27T18:11:19.117Z", "durationEstimate": 0, "durationMs": 0, "goalId": "goalId", "isImportant": true, "isTimeSensitive": true, "listId": "listId", "name": "name", "notesMarkdown": "notesMarkdown", "status": "status", "TodoPredecessorsAllAny": "ALL", "TodoPredecessorsView": true }, "spaceVersion": 0 } ``` ## Delete task (soft) **delete** `/api/v1/tasks/{todoId}` Increments the Replicache space version via repVersionIncrement after writing. ### Path Parameters - `todoId: string` ### Query Parameters - `spaceId: optional string` Optional space id; when omitted, the user’s default space is used. ### Returns - `SingleResponseTodo = object { data, spaceVersion }` - `data: Todo` - `sortOrder: number` - `todoId: string` - `complexity: optional string` - `contextId: optional string` - `dateDue: optional string` - `dateStart: optional string` - `durationEstimate: optional number` - `durationMs: optional number` - `goalId: optional string` - `isImportant: optional boolean` - `isTimeSensitive: optional boolean` - `listId: optional string` - `name: optional string` - `notesMarkdown: optional string` - `status: optional string` - `TodoPredecessorsAllAny: optional "ALL" or "ANY"` - `"ALL"` - `"ANY"` - `TodoPredecessorsView: optional boolean` - `spaceVersion: number` Current Replicache space version (`Space.version`). ### Example ```http curl https://$FLUIDWAVE_HOST/api/v1/tasks/$TODO_ID \ -X DELETE ``` #### Response ```json { "data": { "id": "id", "createdAt": "2019-12-27T18:11:19.117Z", "deletedAt": "2019-12-27T18:11:19.117Z", "isDeleted": true, "spaceId": "spaceId", "updatedAt": "2019-12-27T18:11:19.117Z", "versionUpdatedAt": 0, "sortOrder": 0, "todoId": "todoId", "complexity": "complexity", "contextId": "contextId", "dateDue": "2019-12-27T18:11:19.117Z", "dateStart": "2019-12-27T18:11:19.117Z", "durationEstimate": 0, "durationMs": 0, "goalId": "goalId", "isImportant": true, "isTimeSensitive": true, "listId": "listId", "name": "name", "notesMarkdown": "notesMarkdown", "status": "status", "TodoPredecessorsAllAny": "ALL", "TodoPredecessorsView": true }, "spaceVersion": 0 } ``` ## Domain Types ### Base Entity - `BaseEntity = object { id, createdAt, deletedAt, 4 more }` - `id: string` - `createdAt: string` - `deletedAt: string` - `isDeleted: boolean` - `spaceId: string` - `updatedAt: string` - `versionUpdatedAt: number` ### Single Response Todo - `SingleResponseTodo = object { data, spaceVersion }` - `data: Todo` - `sortOrder: number` - `todoId: string` - `complexity: optional string` - `contextId: optional string` - `dateDue: optional string` - `dateStart: optional string` - `durationEstimate: optional number` - `durationMs: optional number` - `goalId: optional string` - `isImportant: optional boolean` - `isTimeSensitive: optional boolean` - `listId: optional string` - `name: optional string` - `notesMarkdown: optional string` - `status: optional string` - `TodoPredecessorsAllAny: optional "ALL" or "ANY"` - `"ALL"` - `"ANY"` - `TodoPredecessorsView: optional boolean` - `spaceVersion: number` Current Replicache space version (`Space.version`). ### Todo - `Todo = BaseEntity` - `sortOrder: number` - `todoId: string` - `complexity: optional string` - `contextId: optional string` - `dateDue: optional string` - `dateStart: optional string` - `durationEstimate: optional number` - `durationMs: optional number` - `goalId: optional string` - `isImportant: optional boolean` - `isTimeSensitive: optional boolean` - `listId: optional string` - `name: optional string` - `notesMarkdown: optional string` - `status: optional string` - `TodoPredecessorsAllAny: optional "ALL" or "ANY"` - `"ALL"` - `"ANY"` - `TodoPredecessorsView: optional boolean` # Lists ## List lists **get** `/api/v1/lists` List lists ### Query Parameters - `cursor: optional string` Opaque cursor from the previous response `nextCursor`. - `includeDeleted: optional boolean` - `limit: optional number` - `spaceId: optional string` Optional space id; when omitted, the user’s default space is used. ### Returns - `data: array of BaseEntity` - `listId: string` - `sortOrder: number` - `color: optional string` - `emoji: optional string` - `icon: optional string` - `isDefault: optional boolean` - `keyboardShortcut: optional string` - `name: optional string` - `spaceVersion: number` Current Replicache space version (`Space.version`). - `nextCursor: optional string` ### Example ```http curl https://$FLUIDWAVE_HOST/api/v1/lists ``` #### Response ```json { "data": [ { "id": "id", "createdAt": "2019-12-27T18:11:19.117Z", "deletedAt": "2019-12-27T18:11:19.117Z", "isDeleted": true, "spaceId": "spaceId", "updatedAt": "2019-12-27T18:11:19.117Z", "versionUpdatedAt": 0, "listId": "listId", "sortOrder": 0, "color": "color", "emoji": "emoji", "icon": "icon", "isDefault": true, "keyboardShortcut": "keyboardShortcut", "name": "name" } ], "spaceVersion": 0, "nextCursor": "nextCursor" } ``` ## Create list **post** `/api/v1/lists` Increments the Replicache space version via repVersionIncrement after writing. ### Query Parameters - `spaceId: optional string` Optional space id; when omitted, the user’s default space is used. ### Body Parameters - `listId: optional string` - `name: optional string` - `spaceId: optional string` ### Example ```http curl https://$FLUIDWAVE_HOST/api/v1/lists \ -H 'Content-Type: application/json' \ -d '{}' ``` ## Get list **get** `/api/v1/lists/{listId}` Get list ### Path Parameters - `listId: string` ### Query Parameters - `spaceId: optional string` Optional space id; when omitted, the user’s default space is used. ### Example ```http curl https://$FLUIDWAVE_HOST/api/v1/lists/$LIST_ID ``` ## Update list **patch** `/api/v1/lists/{listId}` Increments the Replicache space version via repVersionIncrement after writing. ### Path Parameters - `listId: string` ### Query Parameters - `spaceId: optional string` Optional space id; when omitted, the user’s default space is used. ### Example ```http curl https://$FLUIDWAVE_HOST/api/v1/lists/$LIST_ID \ -X PATCH ``` ## Delete list (soft) **delete** `/api/v1/lists/{listId}` Increments the Replicache space version via repVersionIncrement after writing. ### Path Parameters - `listId: string` ### Query Parameters - `spaceId: optional string` Optional space id; when omitted, the user’s default space is used. ### Example ```http curl https://$FLUIDWAVE_HOST/api/v1/lists/$LIST_ID \ -X DELETE ``` # Schedules ## List schedules **get** `/api/v1/schedules` List schedules ### Query Parameters - `cursor: optional string` Opaque cursor from the previous response `nextCursor`. - `includeDeleted: optional boolean` - `limit: optional number` - `spaceId: optional string` Optional space id; when omitted, the user’s default space is used. ### Example ```http curl https://$FLUIDWAVE_HOST/api/v1/schedules ``` ## Create schedule **post** `/api/v1/schedules` Increments the Replicache space version via repVersionIncrement after writing. ### Query Parameters - `spaceId: optional string` Optional space id; when omitted, the user’s default space is used. ### Example ```http curl https://$FLUIDWAVE_HOST/api/v1/schedules \ -X POST ``` ## Get schedule **get** `/api/v1/schedules/{scheduleId}` Get schedule ### Path Parameters - `scheduleId: string` ### Query Parameters - `spaceId: optional string` Optional space id; when omitted, the user’s default space is used. ### Example ```http curl https://$FLUIDWAVE_HOST/api/v1/schedules/$SCHEDULE_ID ``` ## Update schedule **patch** `/api/v1/schedules/{scheduleId}` Increments the Replicache space version via repVersionIncrement after writing. ### Path Parameters - `scheduleId: string` ### Query Parameters - `spaceId: optional string` Optional space id; when omitted, the user’s default space is used. ### Example ```http curl https://$FLUIDWAVE_HOST/api/v1/schedules/$SCHEDULE_ID \ -X PATCH ``` ## Delete schedule (soft) **delete** `/api/v1/schedules/{scheduleId}` Increments the Replicache space version via repVersionIncrement after writing. ### Path Parameters - `scheduleId: string` ### Query Parameters - `spaceId: optional string` Optional space id; when omitted, the user’s default space is used. ### Example ```http curl https://$FLUIDWAVE_HOST/api/v1/schedules/$SCHEDULE_ID \ -X DELETE ``` # Categories ## List categories **get** `/api/v1/categories` List categories ### Query Parameters - `cursor: optional string` Opaque cursor from the previous response `nextCursor`. - `includeDeleted: optional boolean` - `limit: optional number` - `spaceId: optional string` Optional space id; when omitted, the user’s default space is used. ### Example ```http curl https://$FLUIDWAVE_HOST/api/v1/categories ``` ## Create category **post** `/api/v1/categories` Increments the Replicache space version via repVersionIncrement after writing. ### Query Parameters - `spaceId: optional string` Optional space id; when omitted, the user’s default space is used. ### Example ```http curl https://$FLUIDWAVE_HOST/api/v1/categories \ -X POST ``` ## Get category **get** `/api/v1/categories/{categoryId}` Get category ### Path Parameters - `categoryId: string` ### Query Parameters - `spaceId: optional string` Optional space id; when omitted, the user’s default space is used. ### Example ```http curl https://$FLUIDWAVE_HOST/api/v1/categories/$CATEGORY_ID ``` ## Update category **patch** `/api/v1/categories/{categoryId}` Increments the Replicache space version via repVersionIncrement after writing. ### Path Parameters - `categoryId: string` ### Query Parameters - `spaceId: optional string` Optional space id; when omitted, the user’s default space is used. ### Example ```http curl https://$FLUIDWAVE_HOST/api/v1/categories/$CATEGORY_ID \ -X PATCH ``` ## Delete category (soft) **delete** `/api/v1/categories/{categoryId}` Increments the Replicache space version via repVersionIncrement after writing. ### Path Parameters - `categoryId: string` ### Query Parameters - `spaceId: optional string` Optional space id; when omitted, the user’s default space is used. ### Example ```http curl https://$FLUIDWAVE_HOST/api/v1/categories/$CATEGORY_ID \ -X DELETE ``` # Contexts ## List contexts **get** `/api/v1/contexts` List contexts ### Query Parameters - `cursor: optional string` Opaque cursor from the previous response `nextCursor`. - `includeDeleted: optional boolean` - `limit: optional number` - `spaceId: optional string` Optional space id; when omitted, the user’s default space is used. ### Example ```http curl https://$FLUIDWAVE_HOST/api/v1/contexts ``` ## Create context **post** `/api/v1/contexts` Increments the Replicache space version via repVersionIncrement after writing. ### Query Parameters - `spaceId: optional string` Optional space id; when omitted, the user’s default space is used. ### Example ```http curl https://$FLUIDWAVE_HOST/api/v1/contexts \ -X POST ``` ## Get context **get** `/api/v1/contexts/{contextId}` Get context ### Path Parameters - `contextId: string` ### Query Parameters - `spaceId: optional string` Optional space id; when omitted, the user’s default space is used. ### Example ```http curl https://$FLUIDWAVE_HOST/api/v1/contexts/$CONTEXT_ID ``` ## Update context **patch** `/api/v1/contexts/{contextId}` Increments the Replicache space version via repVersionIncrement after writing. ### Path Parameters - `contextId: string` ### Query Parameters - `spaceId: optional string` Optional space id; when omitted, the user’s default space is used. ### Example ```http curl https://$FLUIDWAVE_HOST/api/v1/contexts/$CONTEXT_ID \ -X PATCH ``` ## Delete context (soft) **delete** `/api/v1/contexts/{contextId}` Increments the Replicache space version via repVersionIncrement after writing. ### Path Parameters - `contextId: string` ### Query Parameters - `spaceId: optional string` Optional space id; when omitted, the user’s default space is used. ### Example ```http curl https://$FLUIDWAVE_HOST/api/v1/contexts/$CONTEXT_ID \ -X DELETE ```