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).
Categories: Project & Task Management · Productivity & Collaboration · Project Management · Auth: API Key · Actions: 6
Authentication
API Key Authentication
Authenticate using your Motion API key1
Step 1
Go to https://app.usemotion.com and sign in
2
Step 2
Navigate to Settings > API
3
Step 3
Generate a new API key or copy your existing one
4
Step 4
Paste the API key below
Required Credentials
| Field | Description | Required | Format |
|---|---|---|---|
| Motion API Key | Your Motion API key from the Settings > API page | Yes | xxxxxxxxxxxxxxxxxxxxx |
Available Actions
create_task — Create a new task in a Motion workspace
create_task — Create a new task in a Motion workspace
Parameters
string
required
The ID of the workspace
string
required
Name / title of the task
string
The ID of the project to assign the task to
string
ISO 8601 due date. Required for scheduled tasks. Example: 2023-06-28T10:11:14.320-06:00
string
Duration: NONE, REMINDER, or an integer greater than 0
string
Task description in GitHub Flavored Markdown
string
Priority level: ASAP, HIGH, MEDIUM, LOW (Default:
MEDIUM)string
The user ID to assign the task to
array
List of label names to add to the task
string
The name of the task status
string
ISO 8601 date for auto-scheduled tasks. Example: 2023-06-28
string
Deadline type for auto-scheduled tasks: HARD, SOFT, NONE
string
Schedule the task must adhere to. Must be ‘Work Hours’ if scheduling for another user (Default:
Work Hours)Response
{
"$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"
}
delete_task — Delete a specific task by ID
delete_task — Delete a specific task by ID
Parameters
string
required
The ID of the task to delete
Response
{
"additionalProperties": false,
"properties": {
"success": {
"title": "Success",
"type": "boolean"
},
"error": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Error"
}
},
"required": [
"success"
],
"title": "DeleteTaskOutput",
"type": "object"
}
get_schedules — Get a list of schedules for the authenticated user
get_schedules — Get a list of schedules for the authenticated user
Response
{
"$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"
}
get_task — Retrieve a specific task by ID
get_task — Retrieve a specific task by ID
Parameters
string
required
The ID of the task to retrieve
Response
{
"$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"
}
move_workspace — Move a task to another workspace. Resets the task's project, status, labels, and assignee
move_workspace — Move a task to another workspace. Resets the task's project, status, labels, and assignee
Parameters
string
required
The ID of the task to move
string
required
The ID of the target workspace
string
The user ID to assign the task to in the target workspace
Response
{
"$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"
}
update_task — Update a specific task's properties
update_task — Update a specific task's properties
Parameters
string
required
The ID of the task to update
string
New name / title for the task
string
ISO 8601 due date. Example: 2023-06-28T10:11:14.320-06:00
string
Duration: NONE, REMINDER, or an integer greater than 0
string
The ID of the project to assign the task to
string
Task description in GitHub Flavored Markdown
string
Priority level: ASAP, HIGH, MEDIUM, LOW (Default:
MEDIUM)string
The user ID to assign the task to
array
List of label names to add to the task
string
The name of the task status
string
ISO 8601 date for auto-scheduled tasks. Example: 2023-06-28
string
Deadline type for auto-scheduled tasks: HARD, SOFT, NONE
string
Schedule the task must adhere to. Must be ‘Work Hours’ if scheduling for another user (Default:
Work Hours)Response
{
"$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"
}
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+errorrather than raising.