Skip to content

Tasks

The Task object represents an individual task in the EstatePrime system. This object is returned in JSON format, containing all available values for a task including its priority, status, and related contacts and users.

Object

The Task object represents an individual task record. Below are the fields included in a Task object:

Example

json
{
  "id": 312,
  "title": "Follow up with John Doe about apartment offer",
  "description": "Client requested a callback after reviewing the counter offer.",
  "created_by": 3,
  "date_created": "2025-03-10 09:00:00",
  "date_updated": "2025-03-12 14:30:00",
  "due_date": "2025-03-15",
  "status_id": 2,
  "category_id": 1,
  "priority": "high",
  "project_id": null,
  "is_star": false,
  "users": [3, 8],
  "contacts": [45],
  "tags": [2, 9]
}
  • id (int): The system id of the task.
  • title (string): The task title.
  • description (string, nullable): Optional longer description of the task.
  • created_by (int): The user ID of the user who created the task.
  • date_created (string): The date and time the task was created in YYYY-MM-DD HH:MM:SS format.
  • date_updated (string): The date and time the task was last updated in YYYY-MM-DD HH:MM:SS format.
  • due_date (string, nullable): The due date in YYYY-MM-DD format, or null if no deadline is set.
  • status_id (int): The ID of the task status. See Get statuses.
  • category_id (int, nullable): The ID of the task category, or null if uncategorised.
  • priority (string): The task priority. Possible values: low, normal, high.
  • project_id (int, nullable): The ID of the linked project, or null if not part of a project.
  • is_star (boolean): Whether the task has been starred/flagged.
  • users (array of integers): A list of user IDs assigned to this task.
  • contacts (array of integers): A list of contact IDs associated with this task.
  • tags (array of integers): A list of tag IDs associated with this task.

Get tasks

/api/tasks (GET)

Fetch a paginated list of tasks. Deleted tasks are always excluded.

Request

  • Method: GET
  • Headers: Include authentication headers as described in the Authentication section.
  • Body: JSON object with the following optional parameters:
    • page (int): The page number to fetch. Defaults to 1.
    • status_id (int): Filter by task status ID.
    • category_id (int): Filter by task category ID.
    • priority (int): Filter by priority level. Use 1 for low, 2 for normal, 3 for high.
    • due_date (object): Filter by due date range. Must include:
      • min (string): The minimum due date in YYYY-MM-DD format, or null for no lower limit.
      • max (string): The maximum due date in YYYY-MM-DD format, or null for no upper limit.
    • date_created (object): Filter by creation date range. Must include:
      • min (string): The minimum date in YYYY-MM-DD HH:MM:SS format, or null for no lower limit.
      • max (string): The maximum date in YYYY-MM-DD HH:MM:SS format, or null for no upper limit.

Example Body

json
{
  "page": 1,
  "status_id": 2,
  "priority": 3,
  "due_date": {
    "min": "2025-03-01",
    "max": "2025-03-31"
  }
}

Response

  • 200 OK: Returns a JSON array of task objects.

Example Response

json
{
  "status": 200,
  "page": 1,
  "total_pages": 5,
  "results_per_page": 50,
  "total_results": 214,
  "data": [
    {
      "id": 312,
      "title": "Follow up with John Doe about apartment offer",
      "description": "Client requested a callback after reviewing the counter offer.",
      "created_by": 3,
      "date_created": "2025-03-10 09:00:00",
      "date_updated": "2025-03-12 14:30:00",
      "due_date": "2025-03-15",
      "status_id": 2,
      "category_id": 1,
      "priority": "high",
      "project_id": null,
      "is_star": false,
      "users": [3, 8],
      "contacts": [45],
      "tags": [2, 9]
    }
    //Rest of the data...
  ]
}

Get single task

/api/tasks/{id} (GET)

Get a single task by its id.

Request

  • Method: GET
  • Headers: Include authentication headers.
  • Path Params: The task id to be fetched.

Example Response

json
{
  "status": 200,
  "data": {
    "id": 312,
    "title": "Follow up with John Doe about apartment offer",
    "description": "Client requested a callback after reviewing the counter offer.",
    "created_by": 3,
    "date_created": "2025-03-10 09:00:00",
    "date_updated": "2025-03-12 14:30:00",
    "due_date": "2025-03-15",
    "status_id": 2,
    "category_id": 1,
    "priority": "high",
    "project_id": null,
    "is_star": false,
    "users": [3, 8],
    "contacts": [45],
    "tags": [2, 9]
  }
}

Response

  • 200 OK: Returns the JSON object of the task.

Create task

/api/tasks (POST)

Create a new task.

Request

  • Method: POST
  • Headers: Include authentication headers.
  • Body: JSON object with the task details to be inserted.
FieldTypeRequiredDescription
titlestringYesThe task title.
created_byintYesThe user ID of the task creator. Must be a valid active user.
usersarray of intYesList of user IDs to assign. At least one valid user is required.
prioritystringYesTask priority. Accepted values: low, normal, high.
status_idintYesThe initial status ID. Must be a valid status.
descriptionstringNoOptional longer description.
due_datestringNoDue date in YYYY-MM-DD format.
category_idintNoCategory ID. Must be a valid category.
project_idintNoProject ID to link the task to. Must be a valid project.
contactsarray of intNoList of contact IDs to associate. Invalid IDs are silently ignored.
tagsarray of intNoList of tag IDs to associate. Invalid or wrong-type tags are silently ignored.

Example Body

json
{
  "title": "Follow up with John Doe about apartment offer",
  "created_by": 3,
  "users": [3, 8],
  "priority": "high",
  "status_id": 2,
  "description": "Client requested a callback after reviewing the counter offer.",
  "due_date": "2025-03-15",
  "category_id": 1,
  "contacts": [45],
  "tags": [2, 9]
}

Response

  • 200 OK: Returns the created task ID.

Example Response

json
{
  "status": 200,
  "created_id": 312
}

Delete task

/api/tasks/{id} (DELETE)

Soft-delete a task. The record is marked as deleted and excluded from all future list and single-fetch responses.

Request

  • Method: DELETE
  • Headers: Include authentication headers.
  • Path Params: The task id to be deleted.

Response

  • 200 OK: Returns the deleted task ID.

Example Response

json
{
  "status": 200,
  "deleted_id": 312
}

Get task statuses

/api/tasks/statuses (GET)

Fetch the available task statuses.

Request

  • Method: GET
  • Headers: Include authentication headers.

Response

  • 200 OK: Returns a JSON array of available task statuses.

Example Response

json
{
  "status": 200,
  "data": [
    {
      "id": 1,
      "name": "To Do"
    },
    {
      "id": 2,
      "name": "In Progress"
    },
    {
      "id": 3,
      "name": "Done"
    }
  ]
}

Get task categories

/api/tasks/categories (GET)

Fetch the available task categories.

Request

  • Method: GET
  • Headers: Include authentication headers.

Response

  • 200 OK: Returns a JSON array of available task categories.

Example Response

json
{
  "status": 200,
  "data": [
    {
      "id": 1,
      "name": "Follow Up"
    },
    {
      "id": 2,
      "name": "Viewing"
    },
    {
      "id": 3,
      "name": "Administrative"
    }
  ]
}

Get task tags

/api/tasks/tags (GET)

Fetch the available task tags.

Request

  • Method: GET
  • Headers: Include authentication headers.

Response

  • 200 OK: Returns a JSON array of available task tags.

Example Response

json
{
  "status": 200,
  "data": [
    {
      "id": 2,
      "name": "Urgent"
    },
    {
      "id": 9,
      "name": "Client Waiting"
    }
  ]
}

Get task custom fields

/api/tasks/custom-fields (GET)

Fetch the available custom fields for tasks.

Request

  • Method: GET
  • Headers: Include authentication headers.

Response

  • 200 OK: Returns a JSON array of available custom fields for tasks.

Example Response

json
{
  "status": 200,
  "data": [
    {
      "id": 1,
      "name": "Estimated Duration",
      "type": "number"
    },
    {
      "id": 2,
      "name": "Task Outcome",
      "type": "select",
      "options": [
        {
          "id": 1,
          "name": "Successful"
        },
        {
          "id": 2,
          "name": "Unsuccessful"
        },
        {
          "id": 3,
          "name": "Rescheduled"
        }
      ]
    }
  ]
}

Available custom field types

  • text: Text up to 255 characters.
  • textarea: Text up to 2500 characters.
  • wysiwyg: Text with HTML format.
  • number: Integer or decimal.
  • formatted_number: Integer or decimal that is formatted. E.g. 1,000,000.25.
  • select: Single select with options.
  • select_multi: Multiple select with options.
  • checkbox: Boolean.
  • file: Single file. (As a URL)
  • file_multi: Array of multiple files. (As URLs)
  • image: Single image. (As a URL)
  • image_multi: Array of multiple images. (As URLs)
  • address: Address. (E.g. Bellariastraße 6, 1010 Wien, Austria)
  • url: URL.
  • date: Date in YYYY-MM-DD format. (E.g. 2025-10-18)
  • datetime: Datetime in YYYY-MM-DD HH:MM:SS format. (E.g. 2025-10-18 18:24:10)
  • currency: Integer or decimal formatted as a currency. E.g. 1,000,000.25€.
  • user: Application user_id.
  • user_multi: An array of application user_id values.
  • contact: Another contact's id.
  • contact_multi: An array of multiple contact ids.

Last updated on May 9th, 2026.