> ## Documentation Index
> Fetch the complete documentation index at: https://docs.modulex.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Motion Integration for AI Agents & Workflows

> AI-powered task and project management platform for automatic scheduling

{/* Self-hosted logo — build-time vendored from modulex.json / Iconify (see scripts/lib/logo.js). */}

<img className="block dark:hidden" src="https://mintcdn.com/modulexaillc/df8MOr-hXotYLTh5/logos/motion-light.svg?fit=max&auto=format&n=df8MOr-hXotYLTh5&q=85&s=a6c5022514d8cd890adf3cc33286260e" alt="Motion logo" width="72" height="72" data-path="logos/motion-light.svg" />

<img className="hidden dark:block" src="https://mintcdn.com/modulexaillc/df8MOr-hXotYLTh5/logos/motion-dark.svg?fit=max&auto=format&n=df8MOr-hXotYLTh5&q=85&s=7637f856ccb5472f3234a82f9376e9ba" alt="Motion logo" width="72" height="72" data-path="logos/motion-dark.svg" />

## Overview

Add **Motion** to any ModuleX agent or workflow. AI-powered task and project management platform with automatic scheduling, accessed via the Motion REST API (`api.usemotion.com/v1`).

<Info>
  **Categories**: Project & Task Management · Productivity & Collaboration · Project Management · **Auth**: API Key · **Actions**: 6
</Info>

## Authentication

### API Key Authentication

Authenticate using your Motion API key

<Steps>
  <Step title="Step 1">
    Go to [https://app.usemotion.com](https://app.usemotion.com) and sign in
  </Step>

  <Step title="Step 2">
    Navigate to Settings > API
  </Step>

  <Step title="Step 3">
    Generate a new API key or copy your existing one
  </Step>

  <Step title="Step 4">
    Paste the API key below
  </Step>
</Steps>

#### Required Credentials

| Field          | Description                                      | Required | Format                  |
| -------------- | ------------------------------------------------ | -------- | ----------------------- |
| Motion API Key | Your Motion API key from the Settings > API page | Yes      | `xxxxxxxxxxxxxxxxxxxxx` |

## Available Actions

<AccordionGroup>
  <Accordion title="create_task — Create a new task in a Motion workspace">
    ### Parameters

    <ResponseField name="workspace_id" type="string" required>
      The ID of the workspace
    </ResponseField>

    <ResponseField name="name" type="string" required>
      Name / title of the task
    </ResponseField>

    <ResponseField name="project_id" type="string">
      The ID of the project to assign the task to
    </ResponseField>

    <ResponseField name="due_date" type="string">
      ISO 8601 due date. Required for scheduled tasks. Example: 2023-06-28T10:11:14.320-06:00
    </ResponseField>

    <ResponseField name="duration" type="string">
      Duration: NONE, REMINDER, or an integer greater than 0
    </ResponseField>

    <ResponseField name="description" type="string">
      Task description in GitHub Flavored Markdown
    </ResponseField>

    <ResponseField name="priority" type="string">
      Priority level: ASAP, HIGH, MEDIUM, LOW (Default: `MEDIUM`)
    </ResponseField>

    <ResponseField name="assignee_id" type="string">
      The user ID to assign the task to
    </ResponseField>

    <ResponseField name="labels" type="array">
      List of label names to add to the task
    </ResponseField>

    <ResponseField name="status" type="string">
      The name of the task status
    </ResponseField>

    <ResponseField name="start_date" type="string">
      ISO 8601 date for auto-scheduled tasks. Example: 2023-06-28
    </ResponseField>

    <ResponseField name="deadline_type" type="string">
      Deadline type for auto-scheduled tasks: HARD, SOFT, NONE
    </ResponseField>

    <ResponseField name="schedule" type="string">
      Schedule the task must adhere to. Must be 'Work Hours' if scheduling for another user (Default: `Work Hours`)
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "$defs": {
        "TaskObject": {
          "additionalProperties": false,
          "description": "A Motion task object returned by task-related actions.",
          "properties": {
            "id": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Id"
            },
            "name": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Name"
            },
            "description": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Description"
            },
            "status": {
              "anyOf": [
                {
                  "$ref": "#/$defs/TaskStatus"
                },
                {
                  "type": "null"
                }
              ],
              "default": null
            },
            "workspace_id": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Workspace Id"
            },
            "project_id": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Project Id"
            },
            "priority": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Priority"
            },
            "assignee_id": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Assignee Id"
            },
            "labels": {
              "items": {
                "type": "string"
              },
              "title": "Labels",
              "type": "array"
            },
            "due_date": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Due Date"
            },
            "duration": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Duration"
            },
            "created_at": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Created At"
            }
          },
          "title": "TaskObject",
          "type": "object"
        },
        "TaskStatus": {
          "additionalProperties": false,
          "description": "Status information for a task.",
          "properties": {
            "name": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Name"
            },
            "is_default_status": {
              "anyOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Is Default Status"
            },
            "is_resolved_status": {
              "anyOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Is Resolved Status"
            }
          },
          "title": "TaskStatus",
          "type": "object"
        }
      },
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "task": {
          "anyOf": [
            {
              "$ref": "#/$defs/TaskObject"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        }
      },
      "required": [
        "success"
      ],
      "title": "CreateTaskOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="delete_task — Delete a specific task by ID">
    ### Parameters

    <ResponseField name="task_id" type="string" required>
      The ID of the task to delete
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        }
      },
      "required": [
        "success"
      ],
      "title": "DeleteTaskOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="get_schedules — Get a list of schedules for the authenticated user">
    ### Response

    ```json theme={null}
    {
      "$defs": {
        "ScheduleItem": {
          "additionalProperties": false,
          "description": "A schedule object returned by the get_schedules action.",
          "properties": {
            "id": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Id"
            },
            "name": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Name"
            },
            "timezone": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Timezone"
            },
            "is_default": {
              "anyOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Is Default"
            }
          },
          "title": "ScheduleItem",
          "type": "object"
        }
      },
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "schedules": {
          "items": {
            "$ref": "#/$defs/ScheduleItem"
          },
          "title": "Schedules",
          "type": "array"
        }
      },
      "required": [
        "success"
      ],
      "title": "GetSchedulesOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="get_task — Retrieve a specific task by ID">
    ### Parameters

    <ResponseField name="task_id" type="string" required>
      The ID of the task to retrieve
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "$defs": {
        "TaskObject": {
          "additionalProperties": false,
          "description": "A Motion task object returned by task-related actions.",
          "properties": {
            "id": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Id"
            },
            "name": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Name"
            },
            "description": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Description"
            },
            "status": {
              "anyOf": [
                {
                  "$ref": "#/$defs/TaskStatus"
                },
                {
                  "type": "null"
                }
              ],
              "default": null
            },
            "workspace_id": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Workspace Id"
            },
            "project_id": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Project Id"
            },
            "priority": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Priority"
            },
            "assignee_id": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Assignee Id"
            },
            "labels": {
              "items": {
                "type": "string"
              },
              "title": "Labels",
              "type": "array"
            },
            "due_date": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Due Date"
            },
            "duration": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Duration"
            },
            "created_at": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Created At"
            }
          },
          "title": "TaskObject",
          "type": "object"
        },
        "TaskStatus": {
          "additionalProperties": false,
          "description": "Status information for a task.",
          "properties": {
            "name": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Name"
            },
            "is_default_status": {
              "anyOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Is Default Status"
            },
            "is_resolved_status": {
              "anyOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Is Resolved Status"
            }
          },
          "title": "TaskStatus",
          "type": "object"
        }
      },
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "task": {
          "anyOf": [
            {
              "$ref": "#/$defs/TaskObject"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        }
      },
      "required": [
        "success"
      ],
      "title": "GetTaskOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="move_workspace — Move a task to another workspace. Resets the task's project, status, labels, and assignee">
    ### Parameters

    <ResponseField name="task_id" type="string" required>
      The ID of the task to move
    </ResponseField>

    <ResponseField name="workspace_id" type="string" required>
      The ID of the target workspace
    </ResponseField>

    <ResponseField name="assignee_id" type="string">
      The user ID to assign the task to in the target workspace
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "$defs": {
        "TaskObject": {
          "additionalProperties": false,
          "description": "A Motion task object returned by task-related actions.",
          "properties": {
            "id": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Id"
            },
            "name": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Name"
            },
            "description": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Description"
            },
            "status": {
              "anyOf": [
                {
                  "$ref": "#/$defs/TaskStatus"
                },
                {
                  "type": "null"
                }
              ],
              "default": null
            },
            "workspace_id": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Workspace Id"
            },
            "project_id": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Project Id"
            },
            "priority": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Priority"
            },
            "assignee_id": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Assignee Id"
            },
            "labels": {
              "items": {
                "type": "string"
              },
              "title": "Labels",
              "type": "array"
            },
            "due_date": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Due Date"
            },
            "duration": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Duration"
            },
            "created_at": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Created At"
            }
          },
          "title": "TaskObject",
          "type": "object"
        },
        "TaskStatus": {
          "additionalProperties": false,
          "description": "Status information for a task.",
          "properties": {
            "name": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Name"
            },
            "is_default_status": {
              "anyOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Is Default Status"
            },
            "is_resolved_status": {
              "anyOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Is Resolved Status"
            }
          },
          "title": "TaskStatus",
          "type": "object"
        }
      },
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "task": {
          "anyOf": [
            {
              "$ref": "#/$defs/TaskObject"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        }
      },
      "required": [
        "success"
      ],
      "title": "MoveWorkspaceOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="update_task — Update a specific task's properties">
    ### Parameters

    <ResponseField name="task_id" type="string" required>
      The ID of the task to update
    </ResponseField>

    <ResponseField name="name" type="string">
      New name / title for the task
    </ResponseField>

    <ResponseField name="due_date" type="string">
      ISO 8601 due date. Example: 2023-06-28T10:11:14.320-06:00
    </ResponseField>

    <ResponseField name="duration" type="string">
      Duration: NONE, REMINDER, or an integer greater than 0
    </ResponseField>

    <ResponseField name="project_id" type="string">
      The ID of the project to assign the task to
    </ResponseField>

    <ResponseField name="description" type="string">
      Task description in GitHub Flavored Markdown
    </ResponseField>

    <ResponseField name="priority" type="string">
      Priority level: ASAP, HIGH, MEDIUM, LOW (Default: `MEDIUM`)
    </ResponseField>

    <ResponseField name="assignee_id" type="string">
      The user ID to assign the task to
    </ResponseField>

    <ResponseField name="labels" type="array">
      List of label names to add to the task
    </ResponseField>

    <ResponseField name="status" type="string">
      The name of the task status
    </ResponseField>

    <ResponseField name="start_date" type="string">
      ISO 8601 date for auto-scheduled tasks. Example: 2023-06-28
    </ResponseField>

    <ResponseField name="deadline_type" type="string">
      Deadline type for auto-scheduled tasks: HARD, SOFT, NONE
    </ResponseField>

    <ResponseField name="schedule" type="string">
      Schedule the task must adhere to. Must be 'Work Hours' if scheduling for another user (Default: `Work Hours`)
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "$defs": {
        "TaskObject": {
          "additionalProperties": false,
          "description": "A Motion task object returned by task-related actions.",
          "properties": {
            "id": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Id"
            },
            "name": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Name"
            },
            "description": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Description"
            },
            "status": {
              "anyOf": [
                {
                  "$ref": "#/$defs/TaskStatus"
                },
                {
                  "type": "null"
                }
              ],
              "default": null
            },
            "workspace_id": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Workspace Id"
            },
            "project_id": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Project Id"
            },
            "priority": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Priority"
            },
            "assignee_id": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Assignee Id"
            },
            "labels": {
              "items": {
                "type": "string"
              },
              "title": "Labels",
              "type": "array"
            },
            "due_date": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Due Date"
            },
            "duration": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Duration"
            },
            "created_at": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Created At"
            }
          },
          "title": "TaskObject",
          "type": "object"
        },
        "TaskStatus": {
          "additionalProperties": false,
          "description": "Status information for a task.",
          "properties": {
            "name": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Name"
            },
            "is_default_status": {
              "anyOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Is Default Status"
            },
            "is_resolved_status": {
              "anyOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Is Resolved Status"
            }
          },
          "title": "TaskStatus",
          "type": "object"
        }
      },
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "task": {
          "anyOf": [
            {
              "$ref": "#/$defs/TaskObject"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        }
      },
      "required": [
        "success"
      ],
      "title": "UpdateTaskOutput",
      "type": "object"
    }
    ```
  </Accordion>
</AccordionGroup>

## Limits & Quotas

* **Rate limit**: 12 requests per minute per API key (Motion API documentation).
* **Pricing**: API access requires a Motion Individual or Team plan.
* **Error model**: non-2xx responses and timeouts are caught and returned as `success=False` + `error` rather than raising.

## Related integrations

<CardGroup cols={3}>
  <Card title="Jira" href="/integrations/tools/jira" />

  <Card title="Monday.com" href="/integrations/tools/monday" />

  <Card title="Airtable" href="/integrations/tools/airtable" />
</CardGroup>

## Links

* [Motion](https://www.usemotion.com)
