Skip to main content
LTG
Step-by-Step Setup 5-10 minutes

Location Tags Setup

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

Location Tags Setup

Manage tags at the location level for organizing contacts, triggering automations, and segmenting audiences. Location tags are distinct from contact tags. They define which tags are available within a sub-account. This quick-start covers creating, reading, updating, and deleting location-level tags.

Prerequisites

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

  • A GoHighLevel sub-account (or agency access to a sub-account)
  • 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)

Location tags are the master tag list for the sub-account. Contact-level tag operations (adding/removing tags on individual contacts) use the Contact Tags endpoints instead.

Set Up Authentication

All Location Tags endpoints require a Private Integration Token (PIT) with the locations scope.

Navigate to Settings > Integrations > Private Integrations. Click Create New Integration, name it “Location Tags 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 Content-Type: application/json and the Version: 2021-07-28 header.

Make Your First Call

Start by listing all tags for a location:

GET /locations/{locationId}/tags
Authorization: Bearer {your-pit-token}

This returns all tags defined at the location level. To create a new tag:

POST /locations/{locationId}/tags
Authorization: Bearer {your-pit-token}
Content-Type: application/json

{
  "name": "VIP Client"
}

To update a tag name, use PUT /locations/{locationId}/tags/{tagId} with a new name value. To delete a tag, call DELETE /locations/{locationId}/tags/{tagId}.

Note: deleting a location tag does not automatically remove it from contacts who already have it applied. You may need to clean up contact-level tags separately using the Contact Tags endpoint.

Handle the Response

A successful GET returns a 200 status with the tag list:

{
  "tags": [
    { "id": "tag-001", "name": "VIP Client" },
    { "id": "tag-002", "name": "Newsletter Subscriber" },
    { "id": "tag-003", "name": "Past Customer" }
  ]
}

The POST endpoint returns the newly created tag with its generated id. Store tag IDs for use in contact operations and workflow triggers.

Common errors: 400 means the tag name is missing or empty. 401 means your token is invalid. 404 means the locationId or tagId does not exist. 409 may occur if a tag with the same name already exists in this location.

Test Your Setup

Run through this checklist to confirm everything works:

  1. List existing tags with GET /locations/{locationId}/tags
  2. Create a test tag with POST /locations/{locationId}/tags
  3. Update the tag name with PUT /locations/{locationId}/tags/{tagId}
  4. Verify the tag appears in Settings > Tags in the GHL dashboard
  5. Delete the test tag with DELETE /locations/{locationId}/tags/{tagId}

If creation returns 409, a tag with that name already exists. Use a unique name or update the existing tag instead.

Next Steps

Read the full Location Tags Guide for tag management strategies and automation triggers. From here, explore Contact Tags for applying tags to individual contacts and Location Custom Fields for extending your location data model.

Stay sharp. New guides and playbooks as they drop.