{
  "service": "motion",
  "displayName": "Motion",
  "categories": [
    "Productivity"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Key",
      "placeholder": "motion_api_key",
      "description": "Motion API key sent with the X-API-Key header. Create or view API keys from the Motion web app API settings: https://app.usemotion.com/."
    }
  ],
  "homepageUrl": "https://www.usemotion.com",
  "actions": [
    {
      "id": "motion.create_project",
      "service": "motion",
      "name": "create_project",
      "description": "Create a Motion project in a workspace.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "The project name."
          },
          "workspaceId": {
            "type": "string",
            "minLength": 1,
            "description": "The Motion workspace ID."
          },
          "description": {
            "type": "string",
            "description": "The project description."
          },
          "dueDate": {
            "type": "string",
            "description": "The ISO 8601 project due date.",
            "format": "date-time"
          },
          "status": {
            "type": "string",
            "minLength": 1,
            "description": "The Motion project status name."
          },
          "priority": {
            "type": "string",
            "enum": [
              "ASAP",
              "HIGH",
              "MEDIUM",
              "LOW"
            ],
            "description": "The Motion task priority."
          }
        },
        "additionalProperties": false,
        "required": [
          "name",
          "workspaceId"
        ],
        "description": "The input payload for creating a Motion project."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "project": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "A Motion API resource object."
          }
        },
        "additionalProperties": false,
        "required": [
          "project"
        ],
        "description": "The response returned when creating a Motion project."
      }
    },
    {
      "id": "motion.create_task",
      "service": "motion",
      "name": "create_task",
      "description": "Create a Motion task in a workspace.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "The task title."
          },
          "workspaceId": {
            "type": "string",
            "minLength": 1,
            "description": "The Motion workspace ID."
          },
          "dueDate": {
            "type": "string",
            "description": "The ISO 8601 due date for the task.",
            "format": "date-time"
          },
          "duration": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 1,
                "description": "A positive duration in minutes."
              },
              {
                "type": "string",
                "enum": [
                  "NONE",
                  "REMINDER"
                ],
                "description": "A Motion duration keyword."
              }
            ],
            "description": "The task duration as minutes or a Motion duration keyword."
          },
          "status": {
            "type": "string",
            "minLength": 1,
            "description": "The Motion task status name."
          },
          "autoScheduled": {
            "anyOf": [
              {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "Motion auto-scheduling settings for the task."
              },
              {
                "type": "null"
              }
            ]
          },
          "projectId": {
            "type": "string",
            "minLength": 1,
            "description": "The Motion project ID."
          },
          "description": {
            "type": "string",
            "description": "The GitHub Flavored Markdown task description."
          },
          "priority": {
            "type": "string",
            "enum": [
              "ASAP",
              "HIGH",
              "MEDIUM",
              "LOW"
            ],
            "description": "The Motion task priority."
          },
          "labels": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "A Motion label name."
            },
            "description": "The label names to add to the task."
          },
          "assigneeId": {
            "type": "string",
            "minLength": 1,
            "description": "The Motion user ID assigned to the task."
          }
        },
        "additionalProperties": false,
        "required": [
          "name",
          "workspaceId"
        ],
        "description": "The input payload for creating a Motion task."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "task": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "A Motion task resource."
          }
        },
        "additionalProperties": false,
        "required": [
          "task"
        ],
        "description": "The response returned when creating a Motion task."
      }
    },
    {
      "id": "motion.delete_task",
      "service": "motion",
      "name": "delete_task",
      "description": "Delete a Motion task by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "The Motion resource ID."
          }
        },
        "additionalProperties": false,
        "required": [
          "id"
        ],
        "description": "The input payload for deleting a Motion task."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "deleted": {
            "type": "boolean",
            "description": "Whether the Motion task delete request completed successfully."
          }
        },
        "additionalProperties": false,
        "required": [
          "deleted"
        ],
        "description": "The response returned when deleting a Motion task."
      }
    },
    {
      "id": "motion.get_my_user",
      "service": "motion",
      "name": "get_my_user",
      "description": "Get the Motion user associated with the current API key.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "The input payload for getting the current Motion user."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "user": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "A Motion API resource object."
          }
        },
        "additionalProperties": false,
        "required": [
          "user"
        ],
        "description": "The response returned when getting the current Motion user."
      }
    },
    {
      "id": "motion.get_project",
      "service": "motion",
      "name": "get_project",
      "description": "Get a Motion project by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "The Motion resource ID."
          }
        },
        "additionalProperties": false,
        "required": [
          "id"
        ],
        "description": "The input payload for getting a Motion project."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "project": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "A Motion API resource object."
          }
        },
        "additionalProperties": false,
        "required": [
          "project"
        ],
        "description": "The response returned when getting a Motion project."
      }
    },
    {
      "id": "motion.get_task",
      "service": "motion",
      "name": "get_task",
      "description": "Get a Motion task by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "The Motion resource ID."
          }
        },
        "additionalProperties": false,
        "required": [
          "id"
        ],
        "description": "The input payload for getting a Motion task."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "task": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "A Motion task resource."
          }
        },
        "additionalProperties": false,
        "required": [
          "task"
        ],
        "description": "The response returned when getting a Motion task."
      }
    },
    {
      "id": "motion.list_projects",
      "service": "motion",
      "name": "list_projects",
      "description": "List Motion projects for a workspace.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "workspaceId": {
            "type": "string",
            "minLength": 1,
            "description": "The Motion workspace ID."
          },
          "cursor": {
            "type": "string",
            "minLength": 1,
            "description": "The pagination cursor returned by a previous Motion response."
          }
        },
        "additionalProperties": false,
        "required": [
          "workspaceId"
        ],
        "description": "The input payload for listing Motion projects."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "meta": {
            "type": "object",
            "properties": {
              "nextCursor": {
                "type": "string",
                "description": "The cursor for the next page of results."
              },
              "pageSize": {
                "type": "integer",
                "description": "The number of records returned in the current page."
              }
            },
            "additionalProperties": true,
            "description": "Motion pagination metadata."
          },
          "projects": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A Motion API resource object."
            },
            "description": "The Motion projects returned by the API."
          }
        },
        "additionalProperties": false,
        "required": [
          "meta",
          "projects"
        ],
        "description": "The response returned when listing Motion projects."
      }
    },
    {
      "id": "motion.list_schedules",
      "service": "motion",
      "name": "list_schedules",
      "description": "List Motion schedules for a workspace.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "workspaceId": {
            "type": "string",
            "minLength": 1,
            "description": "The Motion workspace ID."
          }
        },
        "additionalProperties": false,
        "required": [
          "workspaceId"
        ],
        "description": "The input payload for listing Motion schedules."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "schedules": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A Motion API resource object."
            },
            "description": "The Motion schedules returned by the API."
          }
        },
        "additionalProperties": false,
        "required": [
          "schedules"
        ],
        "description": "The response returned when listing Motion schedules."
      }
    },
    {
      "id": "motion.list_statuses",
      "service": "motion",
      "name": "list_statuses",
      "description": "List Motion statuses for a workspace.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "workspaceId": {
            "type": "string",
            "minLength": 1,
            "description": "The Motion workspace ID."
          }
        },
        "additionalProperties": false,
        "required": [
          "workspaceId"
        ],
        "description": "The input payload for listing Motion statuses."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "statuses": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A Motion API resource object."
            },
            "description": "The Motion statuses returned by the API."
          }
        },
        "additionalProperties": false,
        "required": [
          "statuses"
        ],
        "description": "The response returned when listing Motion statuses."
      }
    },
    {
      "id": "motion.list_tasks",
      "service": "motion",
      "name": "list_tasks",
      "description": "List Motion tasks with optional workspace, project, assignee, status, and cursor filters.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "workspaceId": {
            "type": "string",
            "minLength": 1,
            "description": "The Motion workspace ID."
          },
          "projectId": {
            "type": "string",
            "minLength": 1,
            "description": "Only return tasks in this Motion project."
          },
          "assigneeId": {
            "type": "string",
            "minLength": 1,
            "description": "Only return tasks assigned to this Motion user."
          },
          "cursor": {
            "type": "string",
            "minLength": 1,
            "description": "The pagination cursor returned by a previous Motion response."
          },
          "includeAllStatuses": {
            "type": "boolean",
            "description": "Whether to include all statuses that exist on tasks."
          },
          "label": {
            "type": "string",
            "minLength": 1,
            "description": "Only return tasks with this label."
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Only return tasks whose name contains this case-insensitive string."
          },
          "status": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "A task status name."
            },
            "description": "Only return tasks with these status names."
          }
        },
        "additionalProperties": false,
        "description": "The input payload for listing Motion tasks. includeAllStatuses and status cannot be provided together.",
        "not": {
          "required": [
            "includeAllStatuses",
            "status"
          ]
        }
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "meta": {
            "type": "object",
            "properties": {
              "nextCursor": {
                "type": "string",
                "description": "The cursor for the next page of results."
              },
              "pageSize": {
                "type": "integer",
                "description": "The number of records returned in the current page."
              }
            },
            "additionalProperties": true,
            "description": "Motion pagination metadata."
          },
          "tasks": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A Motion task resource."
            },
            "description": "The Motion tasks returned by the API."
          }
        },
        "additionalProperties": false,
        "required": [
          "meta",
          "tasks"
        ],
        "description": "The response returned when listing Motion tasks."
      }
    },
    {
      "id": "motion.list_users",
      "service": "motion",
      "name": "list_users",
      "description": "List Motion users visible to the API key.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "workspaceId": {
            "type": "string",
            "minLength": 1,
            "description": "The Motion workspace ID."
          }
        },
        "additionalProperties": false,
        "description": "The input payload for listing Motion users."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "users": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A Motion API resource object."
            },
            "description": "The Motion users returned by the API."
          }
        },
        "additionalProperties": false,
        "required": [
          "users"
        ],
        "description": "The response returned when listing Motion users."
      }
    },
    {
      "id": "motion.list_workspaces",
      "service": "motion",
      "name": "list_workspaces",
      "description": "List Motion workspaces available to the API key.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "The input payload for listing Motion workspaces."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "workspaces": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A Motion API resource object."
            },
            "description": "The Motion workspaces returned by the API."
          }
        },
        "additionalProperties": false,
        "required": [
          "workspaces"
        ],
        "description": "The response returned when listing Motion workspaces."
      }
    },
    {
      "id": "motion.update_task",
      "service": "motion",
      "name": "update_task",
      "description": "Update a Motion task by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "The Motion resource ID."
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "The task title."
          },
          "workspaceId": {
            "type": "string",
            "minLength": 1,
            "description": "The Motion workspace ID."
          },
          "dueDate": {
            "type": "string",
            "description": "The ISO 8601 due date for the task.",
            "format": "date-time"
          },
          "duration": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 1,
                "description": "A positive duration in minutes."
              },
              {
                "type": "string",
                "enum": [
                  "NONE",
                  "REMINDER"
                ],
                "description": "A Motion duration keyword."
              }
            ],
            "description": "The task duration as minutes or a Motion duration keyword."
          },
          "status": {
            "type": "string",
            "minLength": 1,
            "description": "The Motion task status name."
          },
          "autoScheduled": {
            "anyOf": [
              {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "Motion auto-scheduling settings for the task."
              },
              {
                "type": "null"
              }
            ]
          },
          "projectId": {
            "type": "string",
            "minLength": 1,
            "description": "The Motion project ID."
          },
          "description": {
            "type": "string",
            "description": "The GitHub Flavored Markdown task description."
          },
          "priority": {
            "type": "string",
            "enum": [
              "ASAP",
              "HIGH",
              "MEDIUM",
              "LOW"
            ],
            "description": "The Motion task priority."
          },
          "labels": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "A Motion label name."
            },
            "description": "The label names to add to the task."
          },
          "assigneeId": {
            "type": "string",
            "minLength": 1,
            "description": "The Motion user ID assigned to the task."
          }
        },
        "additionalProperties": false,
        "required": [
          "id"
        ],
        "description": "The input payload for updating a Motion task. At least one task update field must be provided.",
        "anyOf": [
          {
            "required": [
              "name"
            ]
          },
          {
            "required": [
              "workspaceId"
            ]
          },
          {
            "required": [
              "dueDate"
            ]
          },
          {
            "required": [
              "duration"
            ]
          },
          {
            "required": [
              "status"
            ]
          },
          {
            "required": [
              "autoScheduled"
            ]
          },
          {
            "required": [
              "projectId"
            ]
          },
          {
            "required": [
              "description"
            ]
          },
          {
            "required": [
              "priority"
            ]
          },
          {
            "required": [
              "labels"
            ]
          },
          {
            "required": [
              "assigneeId"
            ]
          }
        ]
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "task": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "A Motion task resource."
          }
        },
        "additionalProperties": false,
        "required": [
          "task"
        ],
        "description": "The response returned when updating a Motion task."
      }
    }
  ]
}
