GoHighLevel Contacts API

Update Task

PUT/contacts/:contactId/tasks/:taskId

PUT /contacts/:contactId/tasks/:taskId Update an existing task on a contact: retitle it, move its due date, reassign it, or mark it complete. It takes 2 path parameters and 5 body fields, requires the contacts.write scope and authenticates with a sub-account (location) token.

Request and authentication

Method
PUT
Full URL
https://services.leadconnectorhq.com/contacts/:contactId/tasks/:taskId
Scopes
contacts.write
Token type
Sub-account (location) token
Accepted auth
OAuth Access Token, Private Integration Token
API version header
Version: 2021-07-28
Schema verified
22 June 2026

Path parameters

Substituted into the URL. Required by definition.

NameTypeDescription
contactIdrequiredstring

Example: sx6wyHhbFdRXh302LLNR

taskIdrequiredstring

Example: ocQHyuzHvysMo5N5VsXc

Request body

JSON body fields. Nested objects are shown indented under their parent.

NameTypeDescription
titlestring

Example: First Task

bodystring

Example: loram ipsum

dueDatestring

Example: 2020-10-25T11:00:00Z

completedboolean

Example: true

assignedTostring

Example: hxHGVRb1YJUscrCB8eXK

Response fields

Top-level fields returned on a successful call.

NameTypeDescription
taskobject
idstring

Example: lJpzYrWdpkC2hX6t2yue

titlestring

Example: test

bodystring

Example: testing

assignedTostring

Example: tesTUcmRxWrjqzJS8EjkxNKting

dueDatestring

Example: 2021-07-08T02:30:00.000Z

completedboolean

Example: true

contactIdstring

Example: lJpzYrWdpkC2hX6t2yue

Example request

Copy-paste ready. Swap YOUR_TOKEN for your access token or Private Integration Token, and the sample IDs for your own.

curl -X PUT 'https://services.leadconnectorhq.com/contacts/sx6wyHhbFdRXh302LLNR/tasks/ocQHyuzHvysMo5N5VsXc' \
  -H 'Authorization: Bearer YOUR_TOKEN' \
  -H 'Version: 2021-07-28' \
  -H 'Content-Type: application/json' \
  -d '{
    "title": "First Task",
    "body": "loram ipsum",
    "dueDate": "2020-10-25T11:00:00Z"
  }'

Skip the schema lookup

Hylo gives your AI agent this schema — and the other 52 documented here — without you looking anything up. Ask in plain English; it picks the endpoint, fills the body, and can run the call against your own sub-account.

More contacts endpoints