canonical: https://jentic.com/apis/gohighlevel.com/gohighlevel

# Gohighlevel Contacts API

The HighLevel Contacts API exposes 32 endpoints for managing contacts, tasks, notes, tags, appointments, campaigns, workflows, and follower lists inside the HighLevel marketing CRM. It supports duplicate detection, bulk tag operations, and lookups across nested resources such as a contact's tasks and appointments. Designed for agencies that build automations on top of HighLevel sub-accounts, the API uses bearer tokens with location and agency scope variants so requests respect the account hierarchy.

## For AI agents

Manage HighLevel CRM contacts and their related tasks, notes, tags, appointments, campaigns, and workflows through 32 endpoints under the LeadConnector base URL.

## Scope

Does not handle calendar configuration, conversation messaging, payments, or sub-account provisioning - use for HighLevel contact, task, tag, note, appointment-read, campaign, and workflow operations only.

## Capabilities

- Search contacts and detect duplicates by email, phone, or custom field
- Create, update, and complete tasks attached to a specific contact record
- Add or remove tags in bulk to drive workflow and campaign segmentation
- Enroll contacts into HighLevel campaigns and trigger automation workflows
- Read appointments associated with a contact and write notes against the timeline
- Manage followers on a contact so the right team members get visibility

## Use cases

### Agency Lead Routing Automation

Marketing agencies running HighLevel sub-accounts can route inbound leads to the right pipeline by creating contacts, tagging them, and enrolling them into campaigns through the API. The Contacts API handles duplicate detection so a returning lead is updated rather than duplicated, and tag-driven workflows fire the correct nurture sequence within minutes of capture.

Example prompt: Search for a contact by email, add the tag 'qualified-lead', and enroll the contact into campaign id cmp_123.

### Task Management on Customer Records

Customer success teams use the Contacts API to attach tasks to a contact record so follow-ups stay in context. Agents create tasks with due dates, mark them complete when the work is done, and read open tasks across a contact to build dashboards or daily call lists without leaving HighLevel.

Example prompt: Create a task titled 'Renewal call' on contact contact_42 with due date 2026-07-01 and mark it complete after the call.

### Bulk Tag Operations During Migrations

When migrating contacts from another CRM into HighLevel, the bulk tag endpoints let teams classify thousands of records by source, lifecycle stage, or product interest in a single pass. Combined with workflow triggers, this turns a flat import into an active segmentation in one deployment.

Example prompt: Tag 5,000 imported contacts with 'migrated-2026-q2' and 'source-typeform' using the bulk tag endpoint.

### AI Agent CRM Updates via Jentic

An AI agent handling a sales conversation can update HighLevel contact records, log notes summarising the call, and trigger a workflow without the developer wiring REST clients. Through Jentic the agent searches for the right Contacts API operation by intent, loads its schema, and executes against the LeadConnector base URL using a scoped credential.

Example prompt: After a sales call, append a note summarising the conversation to contact contact_88 and trigger workflow wf_renewal.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/contacts/search` | Search contacts by filters |
| GET | `/contacts/search/duplicate` | Detect a duplicate contact |
| POST | `/contacts/{contactId}/tasks` | Create a task on a contact |
| POST | `/contacts/{contactId}/tags` | Add tags to a contact |
| DELETE | `/contacts/{contactId}/tags` | Remove tags from a contact |
| GET | `/contacts/{contactId}/appointments` | List appointments for a contact |
| GET | `/contacts/{contactId}/notes` | List notes on a contact |

## Key resources

- **Contacts** — Search and identify contact records in a HighLevel sub-account
- **Tasks** — Create, update, complete, and delete tasks attached to a contact
- **Tags** — Add or remove tags on contacts, including bulk operations
- **Notes** — Read and write notes against a contact's timeline
- **Appointments** — List appointments booked against a contact record
- **Campaigns** — Enroll a contact into HighLevel marketing campaigns
- **Workflows** — Trigger automation workflows for a specific contact
- **Followers** — Manage which users follow a contact for notifications

## Why Jentic

- **Setup:** Wiring HighLevel by hand means implementing its bearer auth against services.leadconnectorhq.com, tracking whether a token is scoped to a location or an agency, and mapping the contact, task, tag, and note endpoints yourself. Through Jentic you install once, import the Contacts API from the API Directory, store the token once, and your agent calls it.
- **Permission scoping:** HighLevel puts the contact id in the URL path (`/contacts/{contactId}/...`), so a rule can pin your agent to one contact's operations: it can add tasks, tags, and read appointments and notes for that contact. You choose the operations it may call, so removing tags via the DELETE endpoint is not included unless you add it.
- **Credential handling:** Your HighLevel token is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'tag a HighLevel contact' or 'find duplicate contacts', and Jentic returns the matching Contacts API operation with its input schema so the agent calls the right endpoint without browsing the LeadConnector docs.

## Related APIs

- **HubSpot CRM Contacts** — HubSpot's first-party contacts API offers a larger ecosystem and richer enrichment than HighLevel.
- **Salesforce REST API** — Enterprise-grade CRM with stronger admin controls than HighLevel's agency model.
- **Plivo** — Send SMS to HighLevel contacts after the agent updates the record.

## FAQ

### What authentication does the HighLevel Contacts API use?

The Contacts API uses bearer token authentication on the Authorization header, with five scoped scheme variants (bearer, Location-Access, Location-Access-Only, Agency-Access, Agency-Access-Only) so a token only acts on the sub-account or agency level it was issued for. Through Jentic the bearer token is held in the encrypted vault and never enters the agent context.

### Can I add tags in bulk with the HighLevel Contacts API?

Yes. POST `/contacts/{contactId}/tags` accepts an array of tag names and DELETE `/contacts/{contactId}/tags` removes them, and a Bulk tag endpoint group lets you act on many contacts in one call instead of looping per record.

### What are the rate limits for the HighLevel Contacts API?

HighLevel applies per-location and per-burst limits documented at highlevel.stoplight.io. The OpenAPI spec does not encode the exact numbers, so check the LeadConnector developer portal for the current daily and burst caps before running large migrations.

### How do I trigger a HighLevel workflow for a contact through Jentic?

Search Jentic for 'add a contact to a HighLevel workflow', load the schema for the POST workflow trigger endpoint under `/contacts/{contactId}/workflow`, and execute with the contactId and workflowId. Jentic injects the bearer token at execution so the agent only handles business arguments.

### Can I detect duplicates before creating a contact?

Yes. GET `/contacts/search/duplicate` accepts identifiers like email and phone and returns the matching contact if one already exists, which is the recommended pattern before creating a new record from a form submission or import.

### Does the Contacts API cover appointment booking itself?

No. GET `/contacts/{contactId}/appointments` only reads appointments associated with a contact. The appointment creation and calendar configuration endpoints live in the broader HighLevel Calendars API, not in the Contacts spec.

### Can I limit what my agent is allowed to do with the HighLevel Contacts API?

Yes. Because you run Jentic One yourself, your own rules decide which Contacts API operations the agent may call and which credential it uses. Since HighLevel puts the contact id in the URL path, such as `/contacts/{contactId}/tasks` and `/contacts/{contactId}/notes`, you can pin the agent to a single contact and grant only the operations you want, for example creating tasks, adding tags, and reading appointments and notes. Anything you leave out stays off, so the DELETE tag endpoint is not available unless you explicitly include it.
