---
agentTools:
  projectIndex: https://hubflo.readme.io/llms.txt
---

# Creates a task in a project section template

**DEPRECATED — DO NOT USE.** Use `POST /api/v2/task_templates` instead, passing the project section id as `parent_id`. Creates a task in a project section template. When you specify a `parent_task_id` you will create a subtask. Some attributes are not available for subtasks: `clickup_id`, `monday_id`, `contact_id` and `visible_by_contact`

# OpenAPI definition

````json
{
  "openapi": "3.0.1",
  "info": {
    "title": "Hubflo API",
    "version": "v2",
    "description": "The Hubflo API allows you to write and read data from the Hubflo application.\nIt conforms to [REST](https://en.wikipedia.org/wiki/REST).\nIt has predictable resource-oriented URLS, accepts JSON request bodies, returns JSON and uses standard HTTP status codes\nand verbs.\n\n# Authentication\n\nThe Hubflo API requires authentication.\nIt's a bearer authentication, also called token authentication.\n\nTo start your integration journey with the Hubflo API, you must send your **authentication token** in the\n`Authorization` header when making requests to the API.\n\n```\nAuthorization: Bearer <token>\n```\n\n# Getting started\n\nNavigate to [https://app.hubflo.com/organizations/](https://app.hubflo.com/organizations/).\nIn the **Integrations** settings panel, click on the **Generate key** button if you don't already have an API key.\n\nThe generated API key is the required authentication token you must send in the `Authorization` header.\nLet's copy it.\n\nYou can use the `/pings` endpoint to check that you can successfully make an authenticated request.\nDo it directly from this documentation, using the **Authorize** button to paste your authentication token, then push\nthe **Try it out** button.\n\nAlternatively, you can run the following cURL command in a terminal:\n\n```\ncurl -X 'POST' \\\n  'https://app.hubflo.com/api/v2/pings' \\\n  -H 'accept: application/json' \\\n  -H 'Authorization: Bearer <token>' \\\n  -d ''\n```\n\nIf you're successfully authenticated, you receive:\n\n```json\n{\n  \"pong\": \"ok\"\n}\n```\n\nOtherwise you get a `401 - Unauthorized` error. For example:\n\n```json\n{\n  \"status\": 401,\n  \"title\": \"Unauthorized\",\n  \"message\": \"API token not found\"\n}\n```\n\n# Versioning\n\nThe API is versioned. The current version is 2.0 (referenced as v2 in the endpoints).\n\n# Routes\n\nThe API endpoints are accessible through a route of the form: `https://<domain>/api/<version>/<endpoint>`.\n\nWhere:\n\n- `domain` is the domain to use, usually \"app.hubflo.com\"\n- `version` is the API version\n- `endpoint` is the endpoint name\n\nFor example, we will have: `https://app.hubflo.com/api/v2/pings`.\n\n# Request headers\n\nEvery request should include the header `Content-Type: application/json`, except for file uploads.\n\n# Requests and parameters\n\nThe API adheres to REST principles:\n\n- `GET` requests: read without modification\n- `POST` requests: create a new resource\n- `PATCH` requests: update an existing resource\n- `DELETE` requests: delete a resource\n\nThe parameters for `GET` requests should be sent via the query string of the request.\n\nThe parameters for `POST` and `PATCH` requests should be transmitted in the request body in a valid JSON format.\n\nThe parameters should follow the following formats:\n- `date`: \"YYYY-MM-DD\", for example: \"2021-10-21\"\n- `time`: \"H:m[:s]\", for example: \"10:30\"\n- `date-time`: \"YYYY-MM-DDThh:mm:ssZ\", which is the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601#Combined_date_and_time_representations) format, using UTC\n\n# Response headers\n\nAs specified for each endpoint, the response headers contain:\n- `Content-Type`: the response content type\n- `X-Organization-ID`: your organization ID\n- `X-Rate-Limit` the maximum allowed requests in a given period\n- `X-Remaining-Requests`: the remaining requests count in the current period\n\n# Response format\n\nThe API only supports JSON format.\nAll responses sent by the API will contain the header `Content-Type: application/json` and their content is present in\nthe body in a JSON format to be de-serialized.\n\n# Rate limit\n\nThe use of the API is limited.\nYou can make a maximum of 1000 calls per minute.\nIf you exceed this limit, you receive a `429 - Too Many Requests` error and are blocked for one minute.\n\n# Pagination\n\nAll endpoints that return lists are paginated.\nIn general, any endpoint that returns a list can return an empty list.\n\nThe (optional) `page` parameter allows you to access a specific page.\n\nThe (optional) `per_page` parameter allows you to change the number of items on a given page.\nThe default value is 20 and it is limited to a maximum of 100.\n\n# Response codes\n\nThe API may return the following codes:\n\n| Code  | Name                  | Description                                                                      |\n| ----  | --------              | --------                                                                         |\n| `200` | Success               | Success                                                                          |\n| `201` | Created               | Resource created                                                                 |\n| `204` | No Content            | Success but the response does not contain any data (e.g., deletion)              |\n| `400` | Bad Request           | The request is invalid                                                           |\n| `401` | Unauthorized          | Authentication failed                                                            |\n| `403` | Forbidden             | Insufficient rights to perform the requested action                              |\n| `404` | Not Found             | The resource is not found                                                        |\n| `422` | Unprocessable Content  | The transmitted data is malformed                                                |\n| `429` | Too Many Requests     | Too many requests have been made                                                 |\n| `500` | Internal Server Error | An internal server error occurred (the technical team is automatically notified) |\n\n# Errors\n\nWhen an error occurs, the response code informs you about what is happening.\nThe response body contains:\n- the status code,\n- the status name, a.k.a the error title,\n- a human readable message.\n\nSee the error schemas below.\n\n# Resources\n\nAll resources are identified by a unique ID that looks like this: \"16242d6f-a808-41b7-8c4d-fe29b9b3245f\".\n\nJSON data types are used at most: `string`, `number`, `float`, `object`, `array`, `boolean` and `null`.\nDates and datetimes attributes are serialized with UTC [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601#Combined_date_and_time_representations) format.\n\n\n"
  },
  "paths": {
    "/api/v2/project-sections/templates/{template_id}/tasks": {
      "parameters": [
        {
          "name": "template_id",
          "in": "path",
          "required": true,
          "description": "Project section template ID",
          "schema": {
            "type": "string"
          }
        }
      ],
      "post": {
        "summary": "Creates a task in a project section template",
        "deprecated": true,
        "security": [
          {
            "bearer_auth": []
          }
        ],
        "description": "**DEPRECATED — DO NOT USE.** Use `POST /api/v2/task_templates` instead, passing the project section id as `parent_id`. Creates a task in a project section template. When you specify a `parent_task_id` you will create a subtask. Some attributes are not available for subtasks: `clickup_id`, `monday_id`, `contact_id` and `visible_by_contact`",
        "tags": [
          "project_section"
        ],
        "parameters": [],
        "responses": {
          "201": {
            "description": "Task created",
            "headers": {
              "Content-Type": {
                "schema": {
                  "type": "string"
                },
                "description": "application/json; charset=utf-8"
              },
              "X-Organization-ID": {
                "schema": {
                  "type": "string"
                },
                "description": "The organization ID"
              },
              "X-Rate-Limit": {
                "schema": {
                  "type": "integer"
                },
                "description": "Max allowed requests in the current period"
              },
              "X-Remaining-Requests": {
                "schema": {
                  "type": "integer"
                },
                "description": "Remaining requests in the current period"
              }
            },
            "content": {
              "application/json": {
                "examples": {
                  "example": {
                    "value": {
                      "id": "fd514c02-6fc1-4a95-b258-a907fc3909e6",
                      "name": "Design mockups",
                      "description": "Create initial mockups",
                      "completed": false,
                      "clickup_id": "123",
                      "monday_id": "456",
                      "kind": "to_do",
                      "visible_by_contact": true,
                      "slug": "fd514c02-6fc1-4a95-b258-a907fc3909e6",
                      "created_at": "2026-10-08T08:11:40Z",
                      "creator_id": "fc894d13-7988-471e-b5ab-24ec83062623",
                      "creator_type": "User",
                      "start_time": "2021-01-01T00:00:00Z",
                      "end_time": "2021-01-01T01:00:00Z",
                      "contact_id": null,
                      "project_section_id": "8e94f654-3418-4dd8-ac68-dd462471bfda",
                      "project_id": null,
                      "parent_task_id": null,
                      "workspace_id": null,
                      "tags": [],
                      "recurrence_type": null,
                      "recurrence_frequency": null,
                      "recurrence_customable_type": null,
                      "recurrence_week_days": null,
                      "recurrence_day_into_month": null,
                      "recurrence_days_after_completion": null
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "unauthorized: the Authorization header is missing or invalid",
            "content": {
              "application/json": {
                "examples": {
                  "example": {
                    "value": {
                      "status": 401,
                      "title": "Unauthorized",
                      "message": "Invalid API token"
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/error_unauthorized"
                }
              }
            }
          },
          "404": {
            "description": "not found: the resource is not found",
            "content": {
              "application/json": {
                "examples": {
                  "example": {
                    "value": {
                      "status": 404,
                      "title": "Not Found",
                      "message": "Resource not found"
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/error_not_found"
                }
              }
            }
          },
          "429": {
            "description": "too many requests: the user has reached the rate limit",
            "content": {
              "application/json": {
                "examples": {
                  "example": {
                    "value": {
                      "status": 429,
                      "title": "Too Many Requests",
                      "message": "Rate limit reached. Please wait for a couple of minutes."
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/error_too_many_requests"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "example": "Task name"
                  },
                  "description": {
                    "type": "string",
                    "example": "Task description"
                  },
                  "start_time": {
                    "type": "string",
                    "format": "date-time",
                    "example": "2021-01-01T00:00:00Z"
                  },
                  "estimated_minutes": {
                    "type": "integer",
                    "example": 60
                  },
                  "completed": {
                    "type": "boolean",
                    "example": false
                  },
                  "clickup_id": {
                    "type": "string",
                    "example": "123"
                  },
                  "monday_id": {
                    "type": "string",
                    "example": "123"
                  },
                  "kind": {
                    "type": "string",
                    "enum": [
                      "to_do",
                      "call",
                      "meeting",
                      "email",
                      "milestone"
                    ],
                    "example": "to_do"
                  },
                  "visible_by_contact": {
                    "type": "boolean",
                    "example": false
                  },
                  "parent_task_id": {
                    "type": "string",
                    "example": "a0a0e818-749a-41d6-b898-43fa3ea55dd8"
                  },
                  "contact_id": {
                    "type": "string",
                    "example": "a0a0e818-749a-41d6-b898-43fa3ea55dd8"
                  },
                  "user_ids": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "example": []
                  },
                  "contact_ids": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "example": []
                  },
                  "tags": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "example": [
                      "tag1",
                      "tag2"
                    ]
                  }
                },
                "required": [
                  "name"
                ]
              }
            }
          },
          "required": true,
          "description": "Task attributes"
        }
      }
    }
  },
  "servers": [
    {
      "url": "https://app.hubflo.com",
      "description": "The production API server"
    },
    {
      "url": "https://staging.hubflo.com",
      "description": "The staging API server"
    },
    {
      "url": "http://localhost:3000",
      "description": "The local API server"
    }
  ],
  "components": {
    "securitySchemes": {
      "bearer_auth": {
        "type": "http",
        "scheme": "bearer"
      }
    },
    "schemas": {
      "error_unauthorized": {
        "description": "A response describing an authentication error",
        "type": "object",
        "properties": {
          "status": {
            "type": "integer",
            "example": 401
          },
          "title": {
            "type": "string",
            "example": "Unauthorized"
          },
          "message": {
            "type": "string",
            "example": "API token not found"
          }
        },
        "required": [
          "status",
          "title",
          "message"
        ]
      },
      "error_not_found": {
        "description": "A response describing a not found error",
        "type": "object",
        "properties": {
          "status": {
            "type": "integer",
            "example": 404
          },
          "title": {
            "type": "string",
            "example": "Not Found"
          },
          "message": {
            "type": "string",
            "example": "Resource not found"
          }
        },
        "required": [
          "status",
          "title",
          "message"
        ]
      },
      "error_too_many_requests": {
        "description": "A response describing a rate limit error",
        "type": "object",
        "properties": {
          "status": {
            "type": "integer",
            "example": 429
          },
          "title": {
            "type": "string",
            "example": "Too Many Requests"
          },
          "message": {
            "type": "string",
            "example": "Rate limit reached. Please wait for a couple of minutes."
          }
        },
        "required": [
          "status",
          "title",
          "message"
        ]
      }
    }
  },
  "x-readme": {
    "explorer-enabled": true,
    "proxy-enabled": true
  },
  "_id": {
    "buffer": {
      "0": 102,
      "1": 23,
      "2": 174,
      "3": 218,
      "4": 191,
      "5": 119,
      "6": 176,
      "7": 0,
      "8": 103,
      "9": 211,
      "10": 245,
      "11": 119
    }
  }
}
````