### Get my user Source: https://docs.usemotion.com/api-reference/users/me Retrieves information about the owner of the provided API key. ```APIDOC ## GET /v1/users/me ### Description Retrieves information about the owner of the provided API key. ### Method GET ### Endpoint /v1/users/me ### Parameters #### Header Parameters - **X-API-Key** (string) - Required - Header with the name `X-API-Key` where the value is your API key. ### Response #### Success Response (200) - **id** (string) - Required - The user ID. - **name** (string) - The name of the user. - **email** (string) - Required - The email of the user. #### Response Example ```json { "id": "user_123", "name": "John Doe", "email": "john.doe@example.com" } ``` ``` -------------------------------- ### Get Statuses Source: https://docs.usemotion.com/api-reference/statuses/get Retrieves a list of statuses for a given workspace. Requires API key authentication. ```APIDOC ## GET /v1/statuses ### Description Get a list of statuses for a particular workspace. ### Method GET ### Endpoint /v1/statuses ### Parameters #### Header Parameters - **X-API-Key** (string) - Required - Header with the name `X-API-Key` where the value is your API key. #### Query Parameters - **workspaceId** (string) - Required - Get statuses for a particular workspace. ### Response #### Success Response (200) - **status** (object) - Required - The status of the item. - **name** (string) - The name of the status. - **isDefaultStatus** (boolean) - Whether this status is a default status for the workspace. - **isResolvedStatus** (boolean) - Whether this is a resolved (terminated) status for the workspace. #### Response Example ```json [ { "name": "Open", "isDefaultStatus": true, "isResolvedStatus": false }, { "name": "Closed", "isDefaultStatus": false, "isResolvedStatus": true } ] ``` ``` -------------------------------- ### GET /tasks Source: https://docs.usemotion.com/api-reference/recurring-tasks/get Retrieves a list of recurring tasks for the workspace. Supports pagination using nextCursor. ```APIDOC ## GET /tasks ### Description Retrieves a list of recurring tasks for the workspace. This endpoint supports pagination to fetch more results using the `nextCursor` provided in the response. ### Method GET ### Endpoint /tasks ### Query Parameters - **nextCursor** (string) - Optional - A cursor for fetching the next page of results. - **pageSize** (number) - Optional - The number of results to return per page. ### Response #### Success Response (200) - **meta** (object) - Contains pagination information. - **nextCursor** (string) - The cursor for the next page of results. - **pageSize** (number) - The number of results in the current response. - **tasks** (array) - A list of recurring tasks. - **id** (string) - The ID of the recurring task. - **name** (string) - The name of the recurring task. - **creator** (object) - The user who created the recurring task. - **id** (string) - The user ID of the creator. - **name** (string) - The name of the creator. - **email** (string) - The email of the creator. - **assignee** (object) - The user assigned to the recurring task. - **id** (string) - The user ID of the assignee. - **name** (string) - The name of the assignee. - **email** (string) - The email of the assignee. - **project** (object) - The project data associated with the task. - **id** (string) - The ID of the project. - **name** (string) - The name of the project. - **description** (string) - The HTML content of the project description. - **workspaceId** (string) - The ID of the workspace. - **status** (object) - The status of the project. - **name** (string) - The name of the status. - **isDefaultStatus** (boolean) - Whether this status is a default status for the workspace. - **isResolvedStatus** (boolean) - Whether this is a resolved (terminated) status for the workspace. - **createdTime** (datetime) - The timestamp when the project was created. - **updatedTime** (datetime) - The timestamp when the project was last updated. - **customFieldValues** (record) - Record of custom field values. - **text** (object) - Text custom field value. - **type** (string) - Always "text". - **value** (string | null) - Text value or null. - **number** (object) - Number custom field value. - **type** (string) - Always "number". - **value** (number | null) - Numeric value or null. - **url** (object) - URL custom field value. - **type** (string) - Always "url". - **value** (string | null) - URL string or null. - **date** (object) - Date custom field value. - **type** (string) - Always "date". - **value** (string | null) - ISO date string or null. - **select** (object) - Select custom field value. - **type** (string) - Always "select". - **value** (string | null) - Selected option value or null. - **multiSelect** (object) - Multi-select custom field value. - **type** (string) - Always "multiSelect". - **value** (array | null) - Array of selected option values or null. - **person** (object) - Person custom field value. - **type** (string) - Always "person". - **value** (object | null) - Person object or null. - **id** (string) - User ID of the person. - **name** (string) - Name of the person. - **email** (string) - Email of the person. - **multiPerson** (object) - Multi-person custom field value. - **type** (string) - Always "multiPerson". - **value** (array | null) - Array of person objects or null. - **[index]** (object) - Person object. - **id** (string) - User ID of the person. - **name** (string) - Name of the person. - **email** (string) - Email of the person. - **email** (object) - Email custom field value. - **type** (string) - Always "email". - **value** (string | null) - Email address or null. - **phone** (object) - Phone custom field value. - **type** (string) - Always "phone". - **value** (string | null) - Phone number or null. - **checkbox** (object) - Checkbox custom field value. - **type** (string) - Always "checkbox". - **value** (boolean | null) - Boolean value or null. - **relatedTo** (object) - Related task custom field value. - **type** (string) - Always "relatedTo". #### Response Example ```json { "meta": { "nextCursor": "some_cursor_string", "pageSize": 25 }, "tasks": [ { "id": "task_123", "name": "Follow up with client", "creator": { "id": "user_abc", "name": "Alice Smith", "email": "alice.smith@example.com" }, "assignee": { "id": "user_xyz", "name": "Bob Johnson", "email": "bob.johnson@example.com" }, "project": { "id": "project_456", "name": "Q3 Marketing Campaign", "description": "

Details about the Q3 campaign...

", "workspaceId": "workspace_789", "status": { "name": "In Progress", "isDefaultStatus": false, "isResolvedStatus": false }, "createdTime": "2023-10-27T10:00:00Z", "updatedTime": "2023-10-27T11:30:00Z", "customFieldValues": { "priority": { "type": "select", "value": "High" }, "budget": { "type": "number", "value": 5000 } } } } ] } ``` ``` -------------------------------- ### Get Project by ID Source: https://docs.usemotion.com/api-reference/projects/get Retrieves a single project's details using its unique identifier. Requires API key authentication. ```APIDOC ## GET /v1/projects/{id} ### Description Retrieves a single project, given its ID. ### Method GET ### Endpoint `/v1/projects/{id}` ### Parameters #### Path Parameters - **id** (string) - Required - The ID of the project to return. #### Header Parameters - **X-API-Key** (string) - Required - Header with the name `X-API-Key` where the value is your API key. ### Response #### Success Response (200) - **id** (string) - The ID of the project. - **name** (string) - The name of the project. - **description** (string) - The HTML contents of the description. - **workspaceId** (string) - The ID of the workspace. - **status** (object) - The status of the project. - **name** (string) - The name of the status. - **isDefaultStatus** (boolean) - Whether this status is a default status for the workspace. - **isResolvedStatus** (boolean) - Whether this is a resolved (terminated) status for the workspace. - **createdTime** (datetime) - The timestamp when the project was created. - **updatedTime** (datetime) - The timestamp when the project was last updated. - **customFieldValues** (record) - Record of custom field values for the entity, where each key is the name of the custom field (not the ID). Each object contains a "type" discriminator and a "value" property that varies based on the field type. - **text** (object) - Text custom field value. - **type** (string) - Required - Always "text" for this field type. - **value** (string | null) - Text value or null. - **number** (object) - Number custom field value. - **type** (string) - Required - Always "number" for this field type. - **value** (number | null) - Numeric value or null. - **url** (object) - URL custom field value. - **type** (string) - Required - Always "url" for this field type. - **value** (string | null) - URL string or null. - **date** (object) - Date custom field value. - **type** (string) - Required - Always "date" for this field type. - **value** (string | null) - ISO date string or null. - **select** (object) - Select custom field value. - **type** (string) - Required - Always "select" for this field type. - **value** (string | null) - Selected option value or null. - **multiSelect** (object) - Multi-select custom field value. - **type** (string) - Required - Always "multiSelect" for this field type. - **value** (array | null) - Array of selected option values or null. - **person** (object) - Person custom field value. - **type** (string) - Required - Always "person" for this field type. - **value** (object | null) - Person object or null. - **id** (string) - Required - User ID of the person. - **name** (string) - Required - Name of the person. - **email** (string) - Required - Email of the person. - **multiPerson** (object) - Multi-person custom field value. - **type** (string) - Required - Always "multiPerson" for this field type. - **value** (array | null) - Array of person objects or null. - **[index]** (object) - Person object. - **id** (string) - Required - User ID of the person. - **name** (string) - Required - Name of the person. - **email** (string) - Required - Email of the person. - **email** (object) - Email custom field value. - **type** (string) - Required - Always "email" for this field type. - **value** (string | null) - Email address or null. - **phone** (object) - Phone custom field value. - **type** (string) - Required - Always "phone" for this field type. - **value** (string | null) - Phone number or null. - **checkbox** (object) - Checkbox custom field value. - **type** (string) - Required - Always "checkbox" for this field type. - **value** (boolean | null) - Boolean value or null. - **relatedTo** (object) - Related task custom field value. - **type** (string) - Required - Always "relatedTo" for this field type. - **value** (string | null) - Related task ID or null. #### Response Example ```json { "id": "proj_123", "name": "Example Project", "description": "

This is an example project.

", "workspaceId": "ws_abc", "status": { "name": "In Progress", "isDefaultStatus": false, "isResolvedStatus": false }, "createdTime": "2023-10-27T10:00:00Z", "updatedTime": "2023-10-27T10:30:00Z", "customFieldValues": { "priority": { "type": "select", "value": "High" }, "assignees": { "type": "multiPerson", "value": [ { "id": "user_xyz", "name": "John Doe", "email": "john.doe@example.com" } ] } } } ``` ``` -------------------------------- ### POST /v1/projects Source: https://docs.usemotion.com/api-reference/projects/post Creates a new project within a workspace. This endpoint allows for detailed project setup, including due dates, descriptions, labels, priorities, and optional project definitions with stages. ```APIDOC ## POST /v1/projects ### Description Creates a new project. Allows for setting a name, workspace ID, due date, description, labels, priority, and optionally a project definition with stages. ### Method POST ### Endpoint /v1/projects ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body - **dueDate** (ISO 8601 date) - Optional - ISO 8601 Due date on the project, like 2024-03-12T10:52:55.714-06:00. - **name** (string) - Required - The name of the project. - **workspaceId** (string) - Required - The workspace to which the project belongs. - **description** (string) - Optional - The description of the project. HTML input accepted. - **labels** (array) - Optional - The list of labels by name the project should have. - **priority** (string) - Optional - Defaults to MEDIUM. Options are ASAP, HIGH, MEDIUM, and LOW. - **projectDefinitionId** (string) - Optional - ID of the project definition (template) to use. If provided, the `stages` array must also be included. - **stages** (array) - Optional - Array of stage objects, required if `projectDefinitionId` is provided. Each object defines a stage in the project, including its definition ID, due date, and optionally, values for variables defined in that stage. - **stageDefinitionId** (string) - Required - ID of the stage definition. - **dueDate** (string) - Required - Due date for this stage. - **variableInstances** (array) - Optional - Array to assign values to variables specific to this stage. Each object requires `variableName` and `value`. - **variableName** (string) - Required - Name of the variable definition. - **value** (string) - Required - The value for the variable. ### Request Example ```json { "name": "New Marketing Campaign", "workspaceId": "ws_abc123", "dueDate": "2024-12-31T00:00:00Z", "description": "

Plan and execute the Q4 marketing campaign.

", "labels": ["marketing", "q4"], "priority": "HIGH", "projectDefinitionId": "pd_xyz789", "stages": [ { "stageDefinitionId": "sd_111aaa", "dueDate": "2024-10-15T00:00:00Z", "variableInstances": [ { "variableName": "Content Lead", "value": "usr_lead1" }, { "variableName": "Designer", "value": "usr_designer2" } ] }, { "stageDefinitionId": "sd_222bbb", "dueDate": "2024-11-30T00:00:00Z" } ] } ``` ### Response #### Success Response (200) - **id** (string) - The ID of the project. - **name** (string) - The name of the project. - **description** (string) - The HTML contents of the description. - **workspaceId** (string) - The ID of the workspace. - **status** (object) - The status of the project. - **name** (string) - The name of the status. - **isDefaultStatus** (boolean) - Whether this status is a default status for the workspace. - **isResolvedStatus** (boolean) - Whether this is a resolved (terminated) status for the workspace. #### Response Example ```json { "id": "proj_abcdef123", "name": "New Marketing Campaign", "description": "

Plan and execute the Q4 marketing campaign.

", "workspaceId": "ws_abc123", "status": { "name": "Open", "isDefaultStatus": true, "isResolvedStatus": false } } ``` ### Headers - **X-API-Key** (string) - Required - Header with the name `X-API-Key` where the value is your API key. ``` -------------------------------- ### Get Workspaces Source: https://docs.usemotion.com/cookbooks/getting-started Retrieve a list of workspaces associated with your account. This endpoint requires authentication via an API key. ```APIDOC ## GET /v1/workspaces ### Description Retrieves a list of all workspaces associated with the authenticated account. ### Method GET ### Endpoint https://api.usemotion.com/v1/workspaces ### Parameters #### Headers - **X-API-Key** (string) - Required - Your Motion API key for authentication. ### Request Example ```http GET /v1/workspaces HTTP/1.1 Host: api.usemotion.com X-API-Key: YOUR_API_KEY ``` ### Response #### Success Response (200) - **workspaces** (array) - A list of workspace objects. - **id** (string) - The unique identifier for the workspace. - **name** (string) - The name of the workspace. #### Response Example ```json { "workspaces": [ { "id": "ws_12345", "name": "My Primary Workspace" }, { "id": "ws_67890", "name": "Team Project Space" } ] } ``` ``` -------------------------------- ### GET /websites/usemotion/tasks Source: https://docs.usemotion.com/api-reference/tasks/list Retrieves a list of tasks associated with a project. The response includes pagination details and a list of task objects, each containing comprehensive information about the task, its creator, and its project. ```APIDOC ## GET /websites/usemotion/tasks ### Description Retrieves a list of tasks for a given project. This endpoint supports pagination and returns detailed information for each task, including its status, due dates, creator, and associated project details. ### Method GET ### Endpoint /websites/usemotion/tasks ### Query Parameters - **cursor** (string) - Optional - Used to paginate through results. Make the same query with the new cursor to get more results. - **pageSize** (number) - Optional - The number of results to return per page. ### Response #### Success Response (200) - **meta** (object) - Required - Contains pagination information. - **nextCursor** (string) - The cursor for the next page of results. - **pageSize** (number) - The number of results in the current response. - **tasks** (array) - Required - An array of task objects. - **id** (string) - Required - The unique identifier for the task. - **name** (string) - Required - The name or title of the task. - **description** (string) - Required - The HTML content of the task description. - **duration** (string | number) - The duration of the task (in minutes), or 'NONE', or 'REMINDER'. - **dueDate** (datetime) - The date and time when the task is due. - **deadlineType** (string) - Required - The type of deadline ('HARD', 'SOFT', or 'NONE'). - **parentRecurringTaskId** (string) - Required - The ID of the parent recurring task, if applicable. - **completed** (boolean) - Required - Indicates if the task has been completed. - **completedTime** (datetime) - The timestamp when the task was completed. - **updatedTime** (datetime) - The timestamp when the task was last updated. - **startOn** (string) - The date when the task should start (YYYY-MM-DD format). - **creator** (object) - Required - Information about the user who created the task. - **id** (string) - The user ID of the creator. - **name** (string) - The name of the creator. - **email** (string) - The email address of the creator. - **project** (object) - Information about the project the task belongs to. - **id** (string) - Required - The ID of the project. - **name** (string) - Required - The name of the project. - **description** (string) - Required - The HTML content of the project description. - **workspaceId** (string) - Required - The ID of the workspace the project belongs to. - **status** (object) - The status of the project. - **name** (string) - The name of the project status. - **isDefaultStatus** (boolean) - Whether this is the default status for the workspace. - **isResolvedStatus** (boolean) - Whether this is a resolved status for the workspace. - **createdTime** (datetime) - The timestamp when the project was created. - **updatedTime** (datetime) - The timestamp when the project was last updated. - **customFieldValues** (record) - Custom field values for the project. - **text** (object) - Text custom field. - **type** (string) - Required - Always 'text'. - **value** (string | null) - The text value. - **number** (object) - Number custom field. - **type** (string) - Required - Always 'number'. - **value** (number | null) - The numeric value. - **url** (object) - URL custom field. - **type** (string) - Required - Always 'url'. - **value** (string | null) - The URL value. - **date** (object) - Date custom field. - **type** (string) - Required - Always 'date'. - **value** (string | null) - The ISO date string value. - **select** (object) - Select custom field. - **type** (string) - Required - Always 'select'. - **value** (string | null) - The selected option value. - **multiSelect** (object) - Multi-select custom field. - **type** (string) - Required - Always 'multiSelect'. - **value** (array | null) - An array of selected option values. - **person** (object) - Person custom field. - **type** (string) - Required - Always 'person'. - **value** (object | null) - The person object. - **id** (string) - Required - User ID. - **name** (string) - Required - Name. - **email** (string) - Required - Email. - **multiPerson** (object) - Multi-person custom field. - **type** (string) - Required - Always 'multiPerson'. - **value** (array | null) - An array of person objects. - **[index]** (object) - A person object. - **id** (string) - Required - User ID. - **name** (string) - Required - Name. - **email** (string) - Required - Email. - **email** (object) - Email custom field. - **type** (string) - Required - Always 'email'. - **value** (string | null) - The email address. - **phone** (object) - Phone custom field. - **type** (string) - Required - Always 'phone'. - **value** (string | null) - The phone number. ### Request Example ```json { "cursor": "some_cursor_string", "pageSize": 25 } ``` ### Response Example ```json { "meta": { "nextCursor": "next_page_cursor", "pageSize": 25 }, "tasks": [ { "id": "task_123", "name": "Implement Feature X", "description": "

Detailed description of the task.

", "duration": 60, "dueDate": "2023-12-31T23:59:59Z", "deadlineType": "HARD", "parentRecurringTaskId": null, "completed": false, "completedTime": null, "updatedTime": "2023-10-27T10:00:00Z", "startOn": "2023-10-01", "creator": { "id": "user_abc", "name": "Alice Smith", "email": "alice.smith@example.com" }, "project": { "id": "project_456", "name": "Website Redesign", "description": "

Redesign the company website.

", "workspaceId": "workspace_789", "status": { "name": "In Progress", "isDefaultStatus": false, "isResolvedStatus": false }, "createdTime": "2023-09-01T09:00:00Z", "updatedTime": "2023-10-26T15:30:00Z", "customFieldValues": { "priority": { "type": "select", "value": "High" } } } } ] } ``` ``` -------------------------------- ### Get Custom Fields Source: https://docs.usemotion.com/api-reference/custom-fields/get Retrieves all custom fields for a given workspace. Requires authentication via an API key. ```APIDOC ## GET /beta/workspaces/{workspaceId}/custom-fields ### Description Get all custom fields for a given workspace. ### Method GET ### Endpoint `/beta/workspaces/{workspaceId}/custom-fields` ### Parameters #### Header Parameters - **X-API-Key** (string) - Required - Header with the name `X-API-Key` where the value is your API key. #### Path Parameters - **workspaceId** (string) - Required - The workspace for which all custom fields should be retrieved. ### Response #### Success Response (200) - **id** (string) - Required - The ID of the custom field. - **field** (string) - Required - The type of custom field. "text", "url", "date", "person", "multiPerson", "phone", "select", "multiSelect", "number", "email", "checkbox", and "relatedTo" are all valid options. #### Response Example ```json [ { "id": "60f7b0b0e1b2c3d4e5f6a7b8", "field": "text" }, { "id": "60f7b0b0e1b2c3d4e5f6a7b9", "field": "date" } ] ``` ``` -------------------------------- ### GET /v1/recurring-tasks Source: https://docs.usemotion.com/api-reference/recurring-tasks/get Retrieves all recurring tasks for a given workspace. Supports pagination using a cursor. ```APIDOC ## GET /v1/recurring-tasks ### Description Get all recurring tasks for a workspace. ### Method GET ### Endpoint /v1/recurring-tasks ### Parameters #### Header Parameters - **X-API-Key** (string) - Required - Header with the name `X-API-Key` where the value is your API key. #### Query Parameters - **cursor** (string) - Optional - Use if a previous request returned a cursor. Will page through results. - **workspaceId** (string) - Required - The workspace for which all recurring tasks should be returned. ### Request Example ```json { "headers": { "X-API-Key": "YOUR_API_KEY" }, "query": { "workspaceId": "some_workspace_id", "cursor": "optional_cursor" } } ``` ### Response #### Success Response (200) - **tasks** (array) - A list of recurring tasks. - **id** (string) - The unique identifier for the recurring task. - **name** (string) - The name of the recurring task. - **frequency** (string) - The frequency of the recurring task (e.g., 'daily', 'weekly'). - **createdAt** (string) - The timestamp when the recurring task was created. - **cursor** (string) - A cursor for paginating through results. Present if there are more results. #### Response Example ```json { "tasks": [ { "id": "rec_task_123", "name": "Daily Standup", "frequency": "daily", "createdAt": "2023-10-27T10:00:00Z" } ], "cursor": "next_page_cursor" } ``` ``` -------------------------------- ### GET /v1/tasks/{id} Source: https://docs.usemotion.com/api-reference/tasks/get Retrieves the details of a specific task using its ID. Requires authentication via an API key. ```APIDOC ## GET /v1/tasks/{id} ### Description Retrieves the details of a specific task using its ID. ### Method GET ### Endpoint /v1/tasks/{id} ### Parameters #### Header Parameters - **X-API-Key** (string) - Required - Header with the name `X-API-Key` where the value is your API key. #### Path Parameters - **id** (string) - Required - The id of the task to fetch. ### Request Example ``` GET /v1/tasks/some-task-id Host: api.usemotion.com X-API-Key: YOUR_API_KEY ``` ### Response #### Success Response (200) - **id** (string) - The unique identifier of the task. - **title** (string) - The title of the task. - **description** (string) - The description of the task. - **status** (string) - The current status of the task (e.g., 'open', 'in_progress', 'completed'). - **createdAt** (string) - The timestamp when the task was created. - **updatedAt** (string) - The timestamp when the task was last updated. #### Response Example ```json { "id": "task_abc123", "title": "Implement new feature", "description": "Develop and deploy the user profile update functionality.", "status": "in_progress", "createdAt": "2023-10-27T10:00:00Z", "updatedAt": "2023-10-27T11:30:00Z" } ``` ``` -------------------------------- ### GET /v1/tasks Source: https://docs.usemotion.com/api-reference/tasks/list Retrieves a list of tasks based on the provided query parameters. This endpoint supports filtering by assignee, cursor for pagination, status, labels, project, and workspace. ```APIDOC ## GET /v1/tasks ### Description Get all tasks for a given query. This endpoint allows filtering tasks by various criteria and supports cursor-based pagination. ### Method GET ### Endpoint `/v1/tasks` ### Parameters #### Header Parameters - **X-API-Key** (string) - Required - Header with the name `X-API-Key` where the value is your API key. #### Query Parameters - **assigneeId** (string) - Optional - Limit tasks returned to a specific assignee. - **cursor** (string) - Optional - Use if a previous request returned a cursor. Will page through results. - **includeAllStatuses** (boolean) - Optional - Limit tasks returned by statuses that exist on tasks, cannot specify this ('includeAllStatuses') AND status in the same request. - **label** (string) - Optional - Limit tasks returned by label on the task. - **name** (string) - Optional - Limit tasks returned to those that contain this string. Case insensitive. - **projectId** (string) - Optional - Limit tasks returned to a given project. - **status** (array) - Optional - Limit tasks returned by statuses that exist on tasks, cannot specify this ('status') AND includeAllStatuses in the same request. - **workspaceId** (string) - Optional - The id of the workspace you want tasks from. If not provided, will return tasks from all workspaces the user is a member of. ### Request Example ```json { "example": "Request details would go here, but this is a GET request, so the body is typically empty. Parameters are sent in the URL." } ``` ### Response #### Success Response (200) - **tasks** (array) - A list of task objects. - **next_cursor** (string) - A cursor for fetching the next page of results, if available. #### Response Example ```json { "tasks": [ { "id": "task_123", "name": "Implement feature X", "status": "in_progress", "assigneeId": "user_abc", "projectId": "proj_def", "workspaceId": "ws_ghi", "createdAt": "2023-10-27T10:00:00Z", "updatedAt": "2023-10-27T11:00:00Z" } ], "next_cursor": "cursor_xyz" } ``` ``` -------------------------------- ### Get Schedules Source: https://docs.usemotion.com/api-reference/schedules/get Retrieves a list of schedules associated with the authenticated user. This endpoint allows you to fetch all configured schedules, including their names, timezone information, and daily time slots. ```APIDOC ## GET /v1/schedules ### Description Get a list of schedules for your user. ### Method GET ### Endpoint /v1/schedules ### Parameters #### Header Parameters - **X-API-Key** (string) - Required - Header with the name `X-API-Key` where the value is your API key. ### Response #### Success Response (200) - **name** (string) - The name of the schedule. - **isDefaultTimezone** (boolean) - Whether the schedule is the default timezone. - **timezone** (string) - The timezone of the schedule. - **schedule** (object) - The schedule details. - **monday** (array) - An array of objects detailing start and end times. - **start** (string) - When the schedule starts, formatted HH:MM. - **end** (string) - When the schedule ends, formatted HH:MM. - **tuesday** (array) - An array of objects detailing start and end times. - **start** (string) - When the schedule starts, formatted HH:MM. - **end** (string) - When the schedule ends, formatted HH:MM. - **wednesday** (array) - An array of objects detailing start and end times. - **start** (string) - When the schedule starts, formatted HH:MM. - **end** (string) - When the schedule ends, formatted HH:MM. - **thursday** (array) - An array of objects detailing start and end times. - **start** (string) - When the schedule starts, formatted HH:MM. - **end** (string) - When the schedule ends, formatted HH:MM. - **friday** (array) - An array of objects detailing start and end times. - **start** (string) - When the schedule starts, formatted HH:MM. - **end** (string) - When the schedule ends, formatted HH:MM. - **saturday** (array) - An array of objects detailing start and end times. - **start** (string) - When the schedule starts, formatted HH:MM. - **end** (string) - When the schedule ends, formatted HH:MM. - **sunday** (array) - An array of objects detailing start and end times. - **start** (string) - When the schedule starts, formatted HH:MM. - **end** (string) - When the schedule ends, formatted HH:MM. #### Response Example ```json [ { "name": "Work Hours", "isDefaultTimezone": true, "timezone": "America/New_York", "schedule": { "monday": [ {"start": "09:00", "end": "17:00"} ], "tuesday": [ {"start": "09:00", "end": "17:00"} ], "wednesday": [ {"start": "09:00", "end": "17:00"} ], "thursday": [ {"start": "09:00", "end": "17:00"} ], "friday": [ {"start": "09:00", "end": "17:00"} ], "saturday": [], "sunday": [] } } ] ``` ``` -------------------------------- ### List Projects Source: https://docs.usemotion.com/api-reference/projects/list Retrieves a list of all projects within a specified workspace. Supports pagination using a cursor. ```APIDOC ## GET /v1/projects ### Description Get all projects for a workspace. ### Method GET ### Endpoint /v1/projects ### Parameters #### Header Parameters - **X-API-Key** (string) - Required - Header with the name `X-API-Key` where the value is your API key. #### Query Parameters - **cursor** (string) - Optional - Use if a previous request returned a cursor. Will page through results. - **workspaceId** (string) - Required - The workspace for which all projects should be returned. ### Response #### Success Response (200) - **meta** (object) - Required - Contains the nextCursor, if one exists, along with the pageSize. - **nextCursor** (string) - Make the same query with the new cursor to get more results. - **pageSize** (number) - The number of results in this response. - **projects** (array) - The projects returned. - **id** (string) - Required - The ID of the project. - **name** (string) - Required - The name of the project. - **description** (string) - Required - The HTML contents of the description. - **workspaceId** (string) - Required - The ID of the workspace. - **status** (object) - The status of the project. - **name** (string) - The name of the status. - **isDefaultStatus** (boolean) - Whether this status is a default status for the workspace. - **isResolvedStatus** (boolean) - Whether this is a resolved (terminated) status for the workspace. - **createdTime** (datetime) - The timestamp when the project was created. - **updatedTime** (datetime) - The timestamp when the project was last updated. - **customFieldValues** (record) - Record of custom field values for the entity, where each key is the name of the custom field (not the ID). Each object contains a "type" discriminator and a "value" property that varies based on the field type. - **text** (object) - **type** (string) - Required - Always "text" for this field type. - **value** (string | null) - Text value or null. - **number** (object) - **type** (string) - Required - Always "number" for this field type. - **value** (number | null) - Numeric value or null. - **url** (object) - **type** (string) - Required - Always "url" for this field type. - **value** (string | null) - URL string or null. - **date** (object) - **type** (string) - Required - Always "date" for this field type. - **value** (string | null) - ISO date string or null. - **select** (object) - **type** (string) - Required - Always "select" for this field type. - **value** (string | null) - Selected option value or null. - **multiSelect** (object) - **type** (string) - Required - Always "multiSelect" for this field type. - **value** (array | null) - Array of selected option values or null. - **person** (object) - **type** (string) - Required - Always "person" for this field type. - **value** (object | null) - Person object or null. - **id** (string) - Required - User ID of the person. - **name** (string) - Required - Name of the person. - **email** (string) - Required - Email of the person. - **multiPerson** (object) - **type** (string) - Required - Always "multiPerson" for this field type. - **value** (array | null) - Array of person objects or null. - **[index]** (object) - Person object. - **id** (string) - Required - User ID of the person. - **name** (string) - Required - Name of the person. - **email** (string) - Required - Email of the person. - **email** (object) - **type** (string) - Required - Always "email" for this field type. - **value** (string | null) - Email address or null. - **phone** (object) - **type** (string) - Required - Always "phone" for this field type. - **value** (string | null) - Phone number or null. - **checkbox** (object) - **type** (string) - Required - Always "checkbox" for this field type. - **value** (boolean | null) - Boolean value or null. - **relatedTo** (object) - **type** (string) - Required - Always "relatedTo" for this field type. - **value** (string | null) - Related task ID or null. #### Response Example ```json { "meta": { "nextCursor": "someCursorString", "pageSize": 10 }, "projects": [ { "id": "proj_123", "name": "Project Alpha", "description": "

Project Alpha Description

", "workspaceId": "ws_abc", "status": { "name": "In Progress", "isDefaultStatus": false, "isResolvedStatus": false }, "createdTime": "2023-01-01T10:00:00Z", "updatedTime": "2023-01-01T10:00:00Z", "customFieldValues": { "priority": { "type": "select", "value": "High" }, "assignees": { "type": "multiPerson", "value": [ { "id": "user_1", "name": "Alice", "email": "alice@example.com" } ] } } } ] } ``` ```