Skip to main content
LTK
Step-by-Step Setup 10-15 minutes

Location Tasks Setup

Location & Config Intermediate
Need more detail? Read the full guide for config deep-dives and best practices.

Location Tasks Setup

Search and retrieve tasks across an entire GoHighLevel sub-account. Unlike contact-level task endpoints that show tasks for a single contact, this location-level endpoint returns all tasks across all contacts. Filter by status, assignee, and due date for team management and reporting. This quick-start covers authentication, querying tasks, and interpreting results.

Prerequisites

Before making your first Location Tasks call, confirm you have:

  • A GoHighLevel sub-account with existing tasks assigned to contacts
  • Access to Settings > Integrations > Private Integrations in your sub-account
  • A REST client such as Postman, Insomnia, or curl in your terminal
  • Your sub-account’s locationId (found in Settings > Business Profile)

If you do not have tasks yet, create a few through the GHL dashboard by opening a contact record and clicking Tasks > Add Task.

Set Up Authentication

The Location Tasks endpoint requires a Private Integration Token (PIT) with the locations scope.

Navigate to Settings > Integrations > Private Integrations. Click Create New Integration, name it “Location Tasks API,” and enable the locations scope. Click Save and copy the generated token.

Pass this token in the Authorization header as a Bearer token. Set your base URL to https://services.leadconnectorhq.com. Include the Version: 2021-07-28 header.

Make Your First Call

Retrieve tasks for your entire location using GET /locations/{locationId}/tasks:

GET /locations/{locationId}/tasks?status=open&limit=20&offset=0
Authorization: Bearer {your-pit-token}

Supported query parameters:

  • status — filter by "open", "completed", or "overdue"
  • assignedTo — filter by user ID to see tasks for a specific team member
  • dueDate — filter tasks due before a specific date (ISO 8601 format)
  • limit — number of results per page (default 20)
  • offset — pagination offset

Combine filters to create focused views. For example, status=overdue&assignedTo=user-123 shows overdue tasks for a specific person. This is useful for manager dashboards and accountability reporting.

Handle the Response

A successful call returns a 200 status with task data:

{
  "tasks": [
    {
      "id": "task-001",
      "title": "Follow up on proposal",
      "description": "Send revised pricing by Friday",
      "status": "open",
      "dueDate": "2026-03-10T17:00:00Z",
      "assignedTo": "user-123",
      "contactId": "contact-456",
      "createdAt": "2026-03-05T09:00:00Z"
    }
  ],
  "total": 34,
  "limit": 20,
  "offset": 0
}

Each task includes the contactId so you can link back to the associated contact record. The assignedTo field identifies the team member responsible. Use total, limit, and offset for pagination.

Common errors: 401 means your token is invalid. 400 means a filter parameter is malformed. An empty tasks array means no tasks match your filters. If you expect results but get none, try removing filters to see all tasks first.

Test Your Setup

Run through this checklist to confirm everything works:

  1. List all tasks with GET /locations/{locationId}/tasks (no filters) and verify results
  2. Filter by status — add status=open and confirm only open tasks return
  3. Filter by assignee — add assignedTo={userId} to see one person’s tasks
  4. Test pagination — set limit=5 and increment offset to page through results
  5. Cross-reference results with the task view in the GHL dashboard

If tasks are not appearing, ensure they exist in the GHL dashboard and that your locationId is correct. Tasks created via workflows should also appear through this endpoint.

Next Steps

Read the full Location Tasks Guide for team management dashboards and task automation patterns. From here, explore Contact CRUD for accessing individual contact records and Location Custom Fields for extending task-related data.

Stay sharp. New guides and playbooks as they drop.