---
canonical_url: "https://docs.composio.dev/toolkits/highlevel_mcp"
markdown_url: "https://docs.composio.dev/toolkits/highlevel_mcp.md"
product: "platform"
version: null
last_updated: null
---

# HighLevel MCP

HighLevel MCP lets authorized agents work with contacts, conversations, calendars, opportunities, and other location-scoped HighLevel resources.

- **Category:** model context protocol
- **Auth:** API_KEY
- **Composio-managed OAuth available?** N/A
- **Tools:** 36
- **Triggers:** 0
- **Slug:** `HIGHLEVEL_MCP`
- **Version:** 00000000_00

## Tools

### Blogs check-url-slug-exists

**Slug:** `HIGHLEVEL_MCP_BLOGS_CHECK_URL_SLUG_EXISTS`

Validates whether a URL slug is available for a blog post before publishing. Checks if the slug already exists for other posts, optionally excluding a specific post ID. Returns a boolean indicating slug availability. Use this tool when users want to check if a URL slug is available, validate blog post slug, verify slug uniqueness, or check slug before publishing. Ideal for slug validation, URL slug checking, and pre-publication validation workflows.

Capabilities: check-url-slug-exists

Examples:
- Use this tool to check url slug
- Endpoint: /blogs/posts/url-slug-exists

Source: default | Team: blogs

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `query_postId` | string | No | query_postId |
| `query_urlSlug` | string | Yes | query_urlSlug |

### Blogs create-blog-post

**Slug:** `HIGHLEVEL_MCP_BLOGS_CREATE_BLOG_POST`

Creates a new blog post for a blog site with comprehensive content and metadata. Accepts blog post details including title, description, HTML content, featured image, categories, tags, author assignment, URL slug, canonical link, and publication timestamp. Supports status management (draft, published, scheduled, archived) and SEO optimization settings. Returns the created blog post with assigned ID and metadata. Use this tool when users want to create a blog post, publish an article, add blog content, write a blog entry, or create new blog content. Ideal for content creation workflows, blog publishing, article management, and content marketing.

Capabilities: create_create-blog-post

Examples:
- Use this tool to create blog post
- Endpoint: /blogs/posts

Source: default | Team: blogs

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `body_tags` | array | No | tags |
| `body_title` | string | Yes | title |
| `body_author` | string | Yes | This needs to be author id, which you can get from the author get api call. |
| `body_blogId` | string | Yes | You can find the blog id from blog site dashboard link |
| `body_status` | string ("DRAFT" | "PUBLISHED" | "SCHEDULED" | "ARCHIVED") | Yes | status |
| `body_rawHTML` | string | Yes | rawHTML |
| `body_urlSlug` | string | Yes | urlSlug |
| `body_imageUrl` | string | Yes | imageUrl |
| `body_categories` | array | Yes | This needs to be array of category ids, which you can get from the category get api call. |
| `body_description` | string | Yes | description |
| `body_publishedAt` | string | Yes | Provide ISO timestamp |
| `body_imageAltText` | string | Yes | imageAltText |
| `body_canonicalLink` | string | No | canonicalLink |

### Blogs get-all-blog-authors-by-location

**Slug:** `HIGHLEVEL_MCP_BLOGS_GET_ALL_BLOG_AUTHORS_BY_LOCATION`

Retrieves all blog authors for a specific location with pagination support. Returns a list of authors including author ID, name, location ID, and canonical link. Supports pagination with limit and offset parameters. Use this tool when users want to get blog authors, list authors, find available authors, or retrieve author information. Ideal for author selection, author management, and blog author lookup scenarios.

Capabilities: get_get-all-blog-authors-by-location

Examples:
- Use this tool to get all authors
- Endpoint: /blogs/authors

Source: default | Team: blogs

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `query_limit` | number | Yes | Number of authors to show in the listing |
| `query_offset` | number | Yes | Number of authors to skip in listing |

### Blogs get-all-categories-by-location

**Slug:** `HIGHLEVEL_MCP_BLOGS_GET_ALL_CATEGORIES_BY_LOCATION`

Retrieves all blog categories for a specific location with pagination support. Returns a list of categories including category ID, label, location ID, URL slug, and canonical link. Supports pagination with limit and offset parameters. Use this tool when users want to get blog categories, list categories, find available categories, or retrieve category information. Ideal for category selection, category management, and blog category lookup scenarios.

Capabilities: get_get-all-categories-by-location

Examples:
- Use this tool to get all categories
- Endpoint: /blogs/categories

Source: default | Team: blogs

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `query_limit` | number | Yes | Number of categories to show in the listing |
| `query_offset` | number | Yes | Number of categories to skip in listing |

### Blogs get-blog-post

**Slug:** `HIGHLEVEL_MCP_BLOGS_GET_BLOG_POST`

Retrieves blog posts for a specific blog site using blog ID with filtering and pagination. Supports filtering by publication status (published, scheduled, archived, draft), search terms for post name, and pagination with limit and offset. Returns a list of blog posts with title, description, content, image, categories, tags, author, publication date, and status. Use this tool when users want to get blog posts, list articles, find blog posts by status, search blog content, or retrieve published articles. Ideal for blog post listing, content management, article retrieval, and blog content browsing.

Capabilities: get_get-blog-post

Examples:
- Use this tool to get blog posts by blog id
- Endpoint: /blogs/posts/all

Source: default | Team: blogs

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `query_limit` | number | Yes | query_limit |
| `query_blogId` | string | Yes | query_blogId |
| `query_offset` | number | Yes | query_offset |
| `query_status` | string ("PUBLISHED" | "SCHEDULED" | "ARCHIVED" | "DRAFT") | No | query_status |
| `query_searchTerm` | string | No | search for any post by name |

### Blogs get-blogs

**Slug:** `HIGHLEVEL_MCP_BLOGS_GET_BLOGS`

Retrieves a list of blog sites for a location with pagination and search support. Returns blog sites with their IDs and names. Supports filtering by search terms and pagination with skip and limit parameters. Use this tool when users want to list blog sites, get all blogs, find blog sites, or browse available blogs. Ideal for blog site discovery, blog management, and blog site listing scenarios.

Capabilities: get_get-blogs

Examples:
- Use this tool to get blogs by location id
- Endpoint: /blogs/site/all

Source: default | Team: blogs

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `query_skip` | number | Yes | query_skip |
| `query_limit` | number | Yes | query_limit |
| `query_searchTerm` | string | No | search for any post by name |

### Blogs update-blog-post

**Slug:** `HIGHLEVEL_MCP_BLOGS_UPDATE_BLOG_POST`

Modifies an existing blog post including content, metadata, categories, tags, and publication settings. Can update title, description, HTML content, featured image, status, SEO fields (URL slug, canonical link), categories, tags, author, and scheduling information. Returns the updated blog post with modified fields. Use this tool when users want to edit a blog post, update article content, modify blog entry, change blog post details, or revise published content. Ideal for content editing, article updates, blog maintenance, and content revision workflows.

Capabilities: update_update-blog-post

Examples:
- Use this tool to update blog post
- Endpoint: /blogs/posts/{postId}

Source: default | Team: blogs

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `body_tags` | array | No | tags |
| `body_title` | string | Yes | title |
| `body_author` | string | Yes | This needs to be author id, which you can get from the author get api call. |
| `body_blogId` | string | Yes | You can find the blog id from blog site dashboard link |
| `body_status` | string ("DRAFT" | "PUBLISHED" | "SCHEDULED" | "ARCHIVED") | Yes | status |
| `body_rawHTML` | string | Yes | rawHTML |
| `body_urlSlug` | string | Yes | urlSlug |
| `body_imageUrl` | string | Yes | imageUrl |
| `body_categories` | array | Yes | This needs to be array of category ids, which you can get from the category get api call. |
| `body_description` | string | Yes | description |
| `body_publishedAt` | string | Yes | Provide ISO timestamp |
| `body_imageAltText` | string | Yes | imageAltText |
| `body_canonicalLink` | string | No | canonicalLink |

### Calendars get-appointment-notes

**Slug:** `HIGHLEVEL_MCP_CALENDARS_GET_APPOINTMENT_NOTES`

Retrieves notes associated with a specific appointment. Returns a paginated list of notes including note ID, body, user ID, creation date, and creator information. Supports pagination with limit and offset parameters. Use this tool when users want to view appointment notes, get appointment notes, see notes for an appointment, or retrieve appointment note history. Ideal for appointment note review, note management, and appointment documentation lookup.

Capabilities: get_get-appointment-notes

Examples:
- Use this tool to get notes
- Endpoint: /calendars/appointments/{appointmentId}/notes

Source: default | Team: calendars

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `query_limit` | number | Yes | Limit of notes to fetch |
| `query_offset` | number | Yes | Offset of notes to fetch |
| `path_appointmentId` | string | Yes | Appointment ID |

### Calendars get-calendar-events

**Slug:** `HIGHLEVEL_MCP_CALENDARS_GET_CALENDAR_EVENTS`

Retrieves calendar events and appointments within a specified time range. Filters events by user ID, group ID, or calendar ID to show appointments for specific team members or calendars. Returns appointment details including participants, date and time, duration, status, location, notes, recurring event information, and assigned resources. Use this tool when users want to view calendar events, check appointments, see scheduled meetings, get calendar schedule, find appointments in a date range, or view team calendar. Ideal for calendar viewing, appointment lookup, schedule checking, and availability queries.

Capabilities: get_get-calendar-events

Examples:
- Use this tool to get calendar events
- Endpoint: /calendars/events

Source: default | Team: calendars

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `query_userId` | string | No | User Id - Owner of an appointment. Either of userId, groupId or calendarId is required |
| `query_endTime` | string | Yes | End Time (in millis) |
| `query_groupId` | string | No | Either of groupId, calendarId or userId is required |
| `query_startTime` | string | Yes | Start Time (in millis) |
| `query_calendarId` | string | No | Either of calendarId, userId or groupId is required |

### Contacts add-tags

**Slug:** `HIGHLEVEL_MCP_CONTACTS_ADD_TAGS`

Adds one or more tags to an existing contact record. Appends the new tags to the contact's current tag list without removing any existing tags, allowing incremental tag assignment. Returns the updated contact with the complete tag list including newly added tags. Use this tool when users want to add tags to a contact, tag a contact, categorize a contact, label a contact, or assign tags to a contact record. Ideal for contact organization, contact categorization, tag management, and contact labeling workflows.

Capabilities: add_add-tags

Examples:
- Use this tool to add tags
- Endpoint: /contacts/{contactId}/tags

Source: default | Team: contacts

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `body_tags` | array | Yes | tags |
| `path_contactId` | string | Yes | Contact Id |

### Contacts create-contact

**Slug:** `HIGHLEVEL_MCP_CONTACTS_CREATE_CONTACT`

Creates a new contact record in the CRM with personal and business information. Accepts contact details including name, email, phone number, address, company information, tags, custom fields, and assigned user. Returns the newly created contact with assigned ID and timestamps. Use this tool when users want to add a new contact, create a contact record, register a new lead, or save contact information. Ideal for contact creation workflows, lead capture, and contact management scenarios.

Capabilities: create_create-contact

Examples:
- Use this tool to create contact
- Endpoint: /contacts/

Source: default | Team: contacts

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `body_dnd` | boolean | No | dnd |
| `body_city` | string | No | city |
| `body_name` | string | No | name |
| `body_tags` | array | No | tags |
| `body_email` | string | No | email |
| `body_phone` | string | No | phone |
| `body_state` | string | No | state |
| `body_gender` | string | No | gender |
| `body_source` | string | No | source |
| `body_country` | string | No | country |
| `body_website` | string | No | website |
| `body_address1` | string | No | address1 |
| `body_lastName` | string | No | lastName |
| `body_timezone` | string | No | timezone |
| `body_firstName` | string | No | firstName |
| `body_assignedTo` | string | No | User's Id |
| `body_postalCode` | string | No | postalCode |
| `body_companyName` | string | No | companyName |
| `body_dndSettings` | object | No | dndSettings |
| `body_customFields` | array | No | List of custom field values to assign to the contact |
| `body_inboundDndSettings` | object | No | inboundDndSettings |

### Contacts get-all-tasks

**Slug:** `HIGHLEVEL_MCP_CONTACTS_GET_ALL_TASKS`

Retrieves all tasks associated with a specific contact. Returns a list of tasks including title, description, body, due date, completion status, assigned user, and task ID. Shows both completed and pending tasks for the contact. Use this tool when users want to view contact tasks, see tasks for a contact, get contact task list, check contact to-dos, or list tasks assigned to a contact. Ideal for task management, contact task tracking, follow-up management, and contact activity review.

Capabilities: get_get-all-tasks

Examples:
- Use this tool to get all tasks
- Endpoint: /contacts/{contactId}/tasks

Source: default | Team: contacts

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `path_contactId` | string | Yes | Contact Id |

### Contacts get-contact

**Slug:** `HIGHLEVEL_MCP_CONTACTS_GET_CONTACT`

Retrieves detailed contact information by contact ID. Returns complete contact profile including personal details (name, email, phone), address information, tags, custom fields, and associated opportunities. Use this tool when users want to look up a specific contact, view contact details, get contact information, or fetch a contact profile. Ideal for scenarios where the contact ID is known and full contact information is needed.

Capabilities: get_get-contact

Examples:
- Use this tool to get contact
- Endpoint: /contacts/{contactId}

Source: default | Team: contacts

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `path_contactId` | string | Yes | Contact Id |

### Contacts get-contacts

**Slug:** `HIGHLEVEL_MCP_CONTACTS_GET_CONTACTS`

Retrieves a list of contacts with pagination support. Supports filtering by location ID, query terms for name/email search, and pagination using startAfter and startAfterId. Returns a list of contacts with basic information. Note: This endpoint is deprecated in favor of the search contacts endpoint. Use this tool when users want to list contacts, get contact list, view all contacts, or browse contacts with pagination. Ideal for contact listing and basic contact browsing scenarios.

Capabilities: get_get-contacts

Examples:
- Use this tool to get contacts
- Endpoint: /contacts/

Source: default | Team: contacts

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `query_limit` | number | No | Limit Per Page records count. will allow maximum up to 100 and default will be 20 |
| `query_query` | string | No | Contact Query |
| `query_startAfter` | number | No | Start Afte |
| `query_startAfterId` | string | No | Start After Id |

### Contacts remove-tags

**Slug:** `HIGHLEVEL_MCP_CONTACTS_REMOVE_TAGS`

Removes specified tags from a contact record. Deletes only the provided tags while preserving all other tags on the contact, allowing selective tag removal. Returns the updated contact with the remaining tags. Use this tool when users want to remove tags from a contact, untag a contact, delete contact tags, unlabel a contact, or clear specific tags from a contact. Ideal for tag cleanup, contact tag management, and removing outdated categorizations.

Capabilities: remove_remove-tags

Examples:
- Use this tool to remove tags
- Endpoint: /contacts/{contactId}/tags

Source: default | Team: contacts

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `body_tags` | array | Yes | tags |
| `path_contactId` | string | Yes | Contact Id |

### Contacts update-contact

**Slug:** `HIGHLEVEL_MCP_CONTACTS_UPDATE_CONTACT`

Modifies existing contact information in the CRM. Can update any contact property including name, email, phone number, address, tags, custom fields, and company details. Updates only the provided fields while preserving all other existing contact data. Returns the updated contact record with modified fields. Use this tool when users want to edit contact information, update contact details, change contact data, modify a contact record, or correct contact information. Ideal for contact maintenance, data correction, and contact information updates.

Capabilities: update_update-contact

Examples:
- Use this tool to update contact
- Endpoint: /contacts/{contactId}

Source: default | Team: contacts

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `body_dnd` | boolean | No | dnd |
| `body_city` | string | No | city |
| `body_name` | string | No | name |
| `body_tags` | array | No | This field will overwrite all current tags associated with the contact. To update a tags, it is recommended to use the Add Tag or Remove Tag API instead. |
| `body_email` | string | No | email |
| `body_phone` | string | No | phone |
| `body_state` | string | No | state |
| `body_source` | string | No | source |
| `body_country` | string | No | country |
| `body_website` | string | No | website |
| `body_address1` | string | No | address1 |
| `body_lastName` | string | No | lastName |
| `body_timezone` | string | No | timezone |
| `body_firstName` | string | No | firstName |
| `path_contactId` | string | Yes | Contact Id |
| `body_assignedTo` | string | No | User's Id |
| `body_postalCode` | string | No | postalCode |
| `body_dndSettings` | object | No | dndSettings |
| `body_customFields` | array | No | List of custom field values to assign to the contact |
| `body_inboundDndSettings` | object | No | inboundDndSettings |

### Contacts upsert-contact

**Slug:** `HIGHLEVEL_MCP_CONTACTS_UPSERT_CONTACT`

Creates a new contact or updates an existing contact based on duplicate detection settings. Uses global unique identifier for de-duplication when duplicate contacts are disabled, or creates a new contact when duplicates are allowed. Accepts complete contact information including name, email, phone, address, company details, tags, and custom fields. Returns the contact record with a flag indicating whether it was newly created or already existed. Use this tool when users want to create or update a contact, ensure contact exists, add contact if missing, or sync contact information. Ideal for contact synchronization, data import workflows, and contact upsert operations.

Capabilities: upsert-contact

Examples:
- Use this tool to upsert contact
- Endpoint: /contacts/upsert

Source: default | Team: contacts

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `body_dnd` | boolean | No | dnd |
| `body_city` | string | No | city |
| `body_name` | string | No | name |
| `body_tags` | array | No | This field will overwrite all current tags associated with the contact. To update a tags, it is recommended to use the Add Tag or Remove Tag API instead. |
| `body_email` | string | No | email |
| `body_phone` | string | No | phone |
| `body_state` | string | No | state |
| `body_gender` | string | No | gender |
| `body_source` | string | No | source |
| `body_country` | string | No | country |
| `body_website` | string | No | website |
| `body_address1` | string | No | address1 |
| `body_lastName` | string | No | lastName |
| `body_timezone` | string | No | timezone |
| `body_firstName` | string | No | firstName |
| `body_assignedTo` | string | No | User's Id |
| `body_postalCode` | string | No | postalCode |
| `body_companyName` | string | No | companyName |
| `body_dndSettings` | object | No | dndSettings |
| `body_customFields` | array | No | List of custom field values to assign to the contact |
| `body_inboundDndSettings` | object | No | inboundDndSettings |

### Conversations get-messages

**Slug:** `HIGHLEVEL_MCP_CONVERSATIONS_GET_MESSAGES`

Retrieves messages from a specific conversation with optional filtering by message type. Supports filtering by message types (SMS, Email, Call, Facebook, Instagram, WhatsApp, etc.) and pagination using lastMessageId and limit. Returns a list of messages with body, direction, status, attachments, metadata, and timestamps. Use this tool when users want to view conversation messages, get message history, see conversation thread, retrieve messages from a conversation, or read conversation messages. Ideal for message viewing, conversation history review, and message thread retrieval.

Capabilities: get_get-messages

Examples:
- Use this tool to get messages by conversation id
- Endpoint: /conversations/{conversationId}/messages

Source: default | Team: conversations

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `query_type` | string ("TYPE_CALL" | "TYPE_SMS" | "TYPE_EMAIL" | "TYPE_FACEBOOK" | "TYPE_GMB" | "TYPE_INSTAGRAM" | "TYPE_WHATSAPP" | "TYPE_ACTIVITY_APPOINTMENT" | "TYPE_ACTIVITY_CONTACT" | "TYPE_ACTIVITY_INVOICE" | "TYPE_ACTIVITY_PAYMENT" | "TYPE_ACTIVITY_OPPORTUNITY" | "TYPE_LIVE_CHAT" | "TYPE_INTERNAL_COMMENTS") | No | Types of message to fetched separated with comma |
| `query_limit` | number | No | Number of messages to be fetched from the conversation. Default limit is 20 |
| `path_conversationId` | string | Yes | Conversation ID as string |
| `query_lastMessageId` | string | No | Message ID of the last message in the list as a string |

### Conversations search-conversation

**Slug:** `HIGHLEVEL_MCP_CONVERSATIONS_SEARCH_CONVERSATION`

Searches conversations using multiple filters including contact, assigned user, followers, mentions, status, message type, and date range. Supports sorting by last message date or score profile, filtering by conversation status (all, read, unread, starred), and pagination. Returns matching conversations with contact details, last message information, unread count, and conversation metadata. Use this tool when users want to find conversations, search messages, filter conversations by contact, look up conversation history, find unread conversations, or search by assigned user. Ideal for conversation management, message search, communication tracking, and conversation filtering.

Capabilities: search_search-conversation

Examples:
- Use this tool to search conversations
- Endpoint: /conversations/search

Source: default | Team: conversations

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `query_id` | string | No | Id of the conversation |
| `query_sort` | string ("asc" | "desc") | No | Sort paramater - asc or desc |
| `query_limit` | number | No | Limit of conversations - Default is 20 |
| `query_query` | string | No | Search paramater as a string |
| `query_sortBy` | string ("last_manual_message_date" | "last_message_date" | "score_profile") | No | The sorting of the conversation to be filtered as - manual messages or all messages |
| `query_status` | string ("all" | "read" | "unread" | "starred" | "recents") | No | The status of the conversation to be filtered - all, read, unread, starred  |
| `query_mentions` | string | No | User Id of the mention. Multiple values are comma separated. |
| `query_contactId` | string | No | Contact Id |
| `query_followers` | string | No | User IDs of followers to filter conversations by. Multiple IDs can be provided as comma-separated values. |
| `query_assignedTo` | string | No | User IDs that conversations are assigned to. Multiple IDs can be provided as comma-separated values. Use "unassigned" to fetch conversations not assigned to any user. |
| `query_scoreProfile` | string | No | Id of score profile on which conversations should get filtered out, works with scoreProfileMin & scoreProfileMax |
| `query_startAfterDate` | number | No | Search to begin after the specified date - should contain the sort value of the last document |
| `query_lastMessageType` | string ("TYPE_CALL" | "TYPE_SMS" | "TYPE_EMAIL" | "TYPE_SMS_REVIEW_REQUEST" | "TYPE_WEBCHAT" | "TYPE_SMS_NO_SHOW_REQUEST" | "TYPE_CAMPAIGN_SMS" | "TYPE_CAMPAIGN_CALL" | "TYPE_CAMPAIGN_EMAIL" | "TYPE_CAMPAIGN_VOICEMAIL" | "TYPE_FACEBOOK" | "TYPE_CAMPAIGN_FACEBOOK" | "TYPE_CAMPAIGN_MANUAL_CALL" | "TYPE_CAMPAIGN_MANUAL_SMS" | "TYPE_GMB" | "TYPE_CAMPAIGN_GMB" | "TYPE_REVIEW" | "TYPE_INSTAGRAM" | "TYPE_WHATSAPP" | "TYPE_CUSTOM_SMS" | "TYPE_CUSTOM_EMAIL" | "TYPE_CUSTOM_PROVIDER_SMS" | "TYPE_CUSTOM_PROVIDER_EMAIL" | "TYPE_IVR_CALL" | "TYPE_ACTIVITY_CONTACT" | "TYPE_ACTIVITY_INVOICE" | "TYPE_ACTIVITY_PAYMENT" | "TYPE_ACTIVITY_OPPORTUNITY" | "TYPE_LIVE_CHAT" | "TYPE_LIVE_CHAT_INFO_MESSAGE" | "TYPE_ACTIVITY_APPOINTMENT" | "TYPE_FACEBOOK_COMMENT" | "TYPE_INSTAGRAM_COMMENT" | "TYPE_CUSTOM_CALL" | "TYPE_INTERNAL_COMMENT") | No | Type of the last message in the conversation as a string |
| `query_scoreProfileMax` | number | No | Maximum value for score |
| `query_scoreProfileMin` | number | No | Minimum value for score |
| `query_sortScoreProfile` | string | No | Id of score profile on which sortBy.ScoreProfile should sort on |
| `query_lastMessageAction` | string ("automated" | "manual") | No | Action of the last outbound message in the conversation as string. |
| `query_lastMessageDirection` | string ("inbound" | "outbound") | No | Direction of the last message in the conversation as string. |

### Conversations send-a-new-message

**Slug:** `HIGHLEVEL_MCP_CONVERSATIONS_SEND_A_NEW_MESSAGE`

Sends a new message to a contact through various channels including SMS, Email, WhatsApp, Instagram, Facebook, Custom, or Live Chat. Supports text messages, HTML email content, attachments, email CC/BCC, reply threading, template usage, and message scheduling. Returns conversation ID, message ID, and email message ID for threaded replies. Use this tool when users want to send a message, send SMS, send email, send WhatsApp message, reply to conversation, or schedule a message. Ideal for message sending, communication workflows, customer messaging, and multi-channel communication.

Capabilities: send-a-new-message

Examples:
- Use this tool to send a new message
- Endpoint: /conversations/messages

Source: default | Team: conversations

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `body_html` | string | No | HTML content of the message |
| `body_type` | string ("SMS" | "Email" | "WhatsApp" | "IG" | "FB" | "Custom" | "Live_Chat") | Yes | Type of message being sent |
| `body_emailCc` | array | No | Array of CC email addresses |
| `body_emailTo` | string | No | Email address to send to, if different from contact's primary email. This should be a valid email address associated with the contact. |
| `body_message` | string | No | Text content of the message |
| `body_subject` | string | No | Subject line for email messages |
| `body_emailBcc` | array | No | Array of BCC email addresses |
| `body_threadId` | string | No | ID of message thread. For email messages, this is the message ID that contains multiple email messages in the thread |
| `body_toNumber` | string | No | Recipient phone number for outbound messages |
| `body_contactId` | string | Yes | ID of the contact receiving the message |
| `body_emailFrom` | string | No | Email address to send from |
| `body_fromNumber` | string | No | Phone number used as the sender number for outbound messages |
| `body_templateId` | string | No | ID of message template |
| `body_attachments` | array | No | Array of attachment URLs |
| `body_appointmentId` | string | No | ID of the associated appointment |
| `body_emailReplyMode` | string ("reply" | "reply_all") | No | Mode for email replies |
| `body_replyMessageId` | string | No | ID of message being replied to |
| `body_scheduledTimestamp` | number | No | UTC Timestamp (in seconds) at which the message should be scheduled |
| `body_conversationProviderId` | string | No | ID of conversation provider |

### Emails create-template

**Slug:** `HIGHLEVEL_MCP_EMAILS_CREATE_TEMPLATE`

Creates a new email template with various types including HTML, builder, blank, folder, or imported templates. Supports importing from Mailchimp, ActiveCampaign, or Kajabi, and accepts template name, parent folder, builder version, and template source. Returns the created template ID and trace ID. Use this tool when users want to create email template, add email template, make new template, import email template, or build email template. Ideal for email template creation, template management, email design workflows, and template import scenarios.

Capabilities: create_create-template

Examples:
- Use this tool to create a new template
- Endpoint: /emails/builder

Source: default | Team: emails

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `body_name` | string | No | name |
| `body_type` | string ("html" | "folder" | "import" | "builder" | "blank") | Yes | type |
| `body_title` | string | No | title |
| `body_parentId` | string | No | parentId |
| `body_importURL` | string | No | importURL |
| `body_updatedBy` | string | No | updatedBy |
| `body_isPlainText` | boolean | No | isPlainText |
| `body_builderVersion` | string ("1" | "2") | No | builderVersion |
| `body_importProvider` | string ("mailchimp" | "active_campaign" | "kajabi") | Yes | importProvider |
| `body_templateSource` | string | No | templateSource |
| `body_templateDataUrl` | string | No | templateDataUrl |

### Emails fetch-template

**Slug:** `HIGHLEVEL_MCP_EMAILS_FETCH_TEMPLATE`

Retrieves email templates for a location with advanced filtering and pagination. Supports filtering by name, parent folder, builder version, archived status, search terms, and sorting by date. Returns template list with name, ID, type, last updated date, preview URL, and template metadata. Use this tool when users want to get email templates, list templates, find email template, search templates, or browse email templates. Ideal for template listing, template search, template management, and email template discovery.

Capabilities: fetch_fetch-template

Examples:
- Use this tool to fetch email templates
- Endpoint: /emails/builder

Source: default | Team: emails

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `query_name` | string | No | query_name |
| `query_limit` | string | No | query_limit |
| `query_offset` | string | No | query_offset |
| `query_search` | string | No | query_search |
| `query_archived` | string | No | query_archived |
| `query_originId` | string | No | query_originId |
| `query_parentId` | string | No | query_parentId |
| `query_sortByDate` | string | No | query_sortByDate |
| `query_templatesOnly` | string | No | query_templatesOnly |
| `query_builderVersion` | string ("1" | "2") | No | query_builderVersion |

### Locations get-custom-fields

**Slug:** `HIGHLEVEL_MCP_LOCATIONS_GET_CUSTOM_FIELDS`

Retrieves custom fields for a location with optional filtering by model type. Supports filtering by model (contact, opportunity, or all) to retrieve custom fields for specific entity types. Returns custom field list including field ID, name, field key, data type, placeholder, position, picklist options, and field settings. Use this tool when users want to get custom fields, list custom fields, find available custom fields, retrieve field definitions, or view custom field configuration. Ideal for custom field management, field discovery, and custom field configuration lookup.

Capabilities: get_get-custom-fields

Examples:
- Use this tool to get custom fields
- Endpoint: /locations/{authorized location}/customFields

Source: default | Team: locations

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `query_model` | string ("contact" | "opportunity" | "all") | No | Model of the custom field you want to retrieve |

### Locations get-location

**Slug:** `HIGHLEVEL_MCP_LOCATIONS_GET_LOCATION`

Retrieves detailed information for a sub-account (formerly location) by location ID. Returns complete location details including name, domain, address, business information, social media links, settings, company ID, contact information, and logo URL. Use this tool when users want to get location details, view location information, see sub-account details, retrieve location data, or look up location by ID. Ideal for location information retrieval, sub-account detail viewing, and location data lookup.

Capabilities: get_get-location

Examples:
- Use this tool to get sub-account (formerly location)
- Endpoint: /locations/{authorized location}

Source: default | Team: locations

### Opportunities get-opportunity

**Slug:** `HIGHLEVEL_MCP_OPPORTUNITIES_GET_OPPORTUNITY`

Retrieves detailed information for a specific opportunity by opportunity ID. Returns complete opportunity details including name, monetary value, pipeline and stage information, status, assigned user, contact details, custom fields, notes, tasks, and calendar events. Use this tool when users want to get opportunity details, view opportunity, see deal information, retrieve opportunity data, or look up opportunity by ID. Ideal for opportunity detail viewing, deal information retrieval, and opportunity data lookup.

Capabilities: get_get-opportunity

Examples:
- Use this tool to get opportunity
- Endpoint: /opportunities/{id}

Source: default | Team: opportunities

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `path_id` | string | Yes | Opportunity Id |

### Opportunities get-pipelines

**Slug:** `HIGHLEVEL_MCP_OPPORTUNITIES_GET_PIPELINES`

Retrieves all sales pipelines for a location. Returns pipeline list including pipeline ID, name, stages, visibility settings (funnel and pie chart), and location ID. Use this tool when users want to get pipelines, list sales pipelines, find available pipelines, or retrieve pipeline information. Ideal for pipeline selection, pipeline management, and pipeline discovery scenarios.

Capabilities: get_get-pipelines

Examples:
- Use this tool to get pipelines
- Endpoint: /opportunities/pipelines

Source: default | Team: opportunities

### Opportunities search-opportunity

**Slug:** `HIGHLEVEL_MCP_OPPORTUNITIES_SEARCH_OPPORTUNITY`

Searches and filters opportunities in the sales pipeline using multiple criteria. Supports filtering by pipeline, pipeline stage, contact, opportunity status (open, won, lost, abandoned), assigned user, campaign, date range, and country. Returns matching opportunities with monetary values, pipeline stage information, contact details, custom fields, notes, tasks, and calendar events. Use this tool when users want to find opportunities, search deals, filter sales pipeline, look up opportunities by contact, find opportunities by stage, query the sales pipeline, or search opportunities by status. Ideal for pipeline management, deal tracking, sales reporting, and opportunity analysis.

Capabilities: search_search-opportunity

Examples:
- Use this tool to search opportunity
- Endpoint: /opportunities/search

Source: default | Team: opportunities

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `query_q` | string | No | query_q |
| `query_id` | string | No | Opportunity Id |
| `query_date` | string | No | Start date |
| `query_page` | number | No | query_page |
| `query_limit` | number | No | Limit Per Page records count. will allow maximum up to 100 and default will be 20 |
| `query_order` | string | No | query_order |
| `query_status` | string ("open" | "won" | "lost" | "abandoned" | "all") | No | query_status |
| `query_country` | string | No | query_country |
| `query_endDate` | string | No | End date |
| `query_getNotes` | boolean | No | get Notes in contact |
| `query_getTasks` | boolean | No | get Tasks in contact |
| `query_campaignId` | string | No | Campaign Id |
| `query_contact_id` | string | No | Contact Id |
| `query_startAfter` | string | No | Start After |
| `query_assigned_to` | string | No | query_assigned_to |
| `query_pipeline_id` | string | No | Pipeline Id |
| `query_startAfterId` | string | No | Start After Id |
| `query_getCalendarEvents` | boolean | No | get Calender event in contact |
| `query_pipeline_stage_id` | string | No | stage Id |

### Opportunities update-opportunity

**Slug:** `HIGHLEVEL_MCP_OPPORTUNITIES_UPDATE_OPPORTUNITY`

Modifies an existing opportunity in the sales pipeline. Can update opportunity name, pipeline, pipeline stage, status, monetary value, assigned user, and custom fields. Returns the updated opportunity with modified fields. Use this tool when users want to update opportunity, edit deal, change opportunity status, modify opportunity value, move opportunity to different stage, or update deal information. Ideal for opportunity management, deal updates, pipeline stage changes, and opportunity modification workflows.

Capabilities: update_update-opportunity

Examples:
- Use this tool to update opportunity
- Endpoint: /opportunities/{id}

Source: default | Team: opportunities

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `path_id` | string | Yes | Opportunity Id |
| `body_name` | string | No | name |
| `body_status` | string ("open" | "won" | "lost" | "abandoned" | "all") | No | status |
| `body_assignedTo` | string | No | assignedTo |
| `body_pipelineId` | string | No | pipeline Id |
| `body_customFields` | array | No | Update custom fields to opportunities. |
| `body_monetaryValue` | number | No | monetaryValue |
| `body_pipelineStageId` | string | No | pipelineStageId |

### Payments get-order-by-id

**Slug:** `HIGHLEVEL_MCP_PAYMENTS_GET_ORDER_BY_ID`

Retrieves detailed information for a specific order using its unique order ID. Returns complete order details including order ID, contact information, currency, amount, status, fulfillment status, order items, payment source, amount summary (subtotal, discount), coupon information, and timestamps. Use this tool when users want to get order details, view order information, see order status, retrieve order data, or look up order by ID. Ideal for order detail viewing, order information retrieval, and order status checking.

Capabilities: get_get-order-by-id

Examples:
- Use this tool to get order by id
- Endpoint: /payments/orders/{orderId}

Source: default | Team: payments

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `query_altId` | string | Yes | AltId is the unique identifier e.g: location id. |
| `path_orderId` | string | Yes | ID of the order that needs to be returned |
| `query_altType` | string | Yes | AltType is the type of identifier. |

### Payments list-transactions

**Slug:** `HIGHLEVEL_MCP_PAYMENTS_LIST_TRANSACTIONS`

Retrieves a paginated list of transactions with comprehensive filtering options. Supports filtering by payment mode, date range, transaction source type and subtype, contact, subscription ID, entity ID, and search terms. Returns transaction list with amount, status, payment method, contact information, entity details, charge information, and timestamps. Use this tool when users want to list transactions, get transaction history, filter transactions, search transactions, find transactions by contact, or view payment transactions. Ideal for transaction management, payment tracking, financial reporting, and transaction analysis.

Capabilities: list_list-transactions

Examples:
- Use this tool to list transactions
- Endpoint: /payments/transactions

Source: default | Team: payments

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `query_altId` | string | Yes | AltId is the unique identifier e.g: location id. |
| `query_endAt` | string | No | Closing interval of transactions. |
| `query_limit` | number | No | The maximum number of items to be included in a single page of results |
| `query_offset` | number | No | The starting index of the page, indicating the position from which the results should be retrieved. |
| `query_search` | string | No | The name of the transaction for searching. |
| `query_altType` | string | Yes | AltType is the type of identifier. |
| `query_startAt` | string | No | Starting interval of transactions. |
| `query_entityId` | string | No | Entity id for filtering of transactions. |
| `query_contactId` | string | No | Contact id for filtering of transactions. |
| `query_paymentMode` | string | No | Mode of payment. |
| `query_subscriptionId` | string | No | Subscription id for filtering of transactions. |
| `query_entitySourceType` | string | No | Source of the transactions. |
| `query_entitySourceSubType` | string | No | Source sub-type of the transactions. |

### Social-media-posting create-post

**Slug:** `HIGHLEVEL_MCP_SOCIAL_MEDIA_POSTING_CREATE_POST`

Creates a new social media post for multiple platforms. Supports posting to Facebook, Instagram, Twitter, LinkedIn, Google My Business, and TikTok with platform-specific content and media. Accepts post content, media files, scheduling information, tags, categories. Returns the created post with post ID and status. Use this tool when users want to create social media post, publish post, schedule social media content, post to multiple platforms, or create social media content. Ideal for social media content creation, multi-platform posting, content scheduling, and social media management.

Capabilities: create_create-post

Examples:
- Use this tool to create post
- Endpoint: /social-media-posting/{authorized location}/posts

Source: default | Team: social-media-posting

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `body_tags` | array | No | Array of Tag Value |
| `body_type` | string | Yes | Post Type must be one of the following values: - post, story, reel |
| `body_media` | array | No | Post Media Data   The limitations of media as per the platforms is provided through the reference link in API description |
| `body_status` | string | Yes | Status must be one of the following values: null, in_progress, draft, failed, published, scheduled, in_review, notification_sent, deleted |
| `body_userId` | string | Yes | User ID |
| `body_summary` | string | No | The post content goes here |
| `body_createdBy` | string | No | Created By |
| `body_accountIds` | array | Yes | Choose the available accountId or prefer most recent accountId if found multiple |
| `body_categoryId` | string | No | Category Id |
| `body_scheduleDate` | string | No | Schedule Date |
| `body_followUpComment` | string | No | Follow Up Comment on platform. It is not allowed on Tiktok and GMB accounts and there is a limit of 280 charecters for twitter account |
| `body_scheduleTimeUpdated` | boolean | No | if schedule datetime is updated |

### Social-media-posting edit-post

**Slug:** `HIGHLEVEL_MCP_SOCIAL_MEDIA_POSTING_EDIT_POST`

Modifies an existing social media post including content, media, scheduling, and platform-specific settings. Can update post summary, media files, schedule date, tags, categories, approval details, and platform configurations. Returns the updated post with modified fields. Use this tool when users want to edit social media post, update post content, modify scheduled post, change post details, or revise social media content. Ideal for post editing, content updates, schedule changes, and social media post modification.

Capabilities: edit-post

Examples:
- Use this tool to edit post
- Endpoint: /social-media-posting/{authorized location}/posts/{id}

Source: default | Team: social-media-posting

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `path_id` | string | Yes | Post Id |
| `body_tags` | array | No | Array of Tag Value |
| `body_type` | object | Yes | Post Type must be one of the following values: - post, story, reel |
| `body_media` | array | No | Post Media Data   The limitations of media as per the platforms is provided through the reference link in API description |
| `body_status` | object | No | Status must be one of the following values: in_progress, draft, failed, published, scheduled, in_review, notification_sent, deleted |
| `body_userId` | string | No | User ID |
| `body_summary` | string | No | Post Content   The limitations of content as per the platforms is provided through the reference link in API description |
| `body_createdBy` | string | No | Created By |
| `body_accountIds` | array | No | Account Ids |
| `body_categoryId` | string | No | Category Id |
| `body_scheduleDate` | string | No | Schedule Date |
| `body_ogTagsDetails` | string | No | Og Tags Meta Data |
| `body_gmbPostDetails` | string | No | GMB Post Details |
| `body_followUpComment` | string | No | Follow Up Comment on platform. It is not allowed on Tiktok and GMB accounts and there is a limit of 280 charecters for twitter account |
| `body_tiktokPostDetails` | string | No | Tiktok Post Details |
| `body_postApprovalDetails` | string | No | Post Approval Details |
| `body_scheduleTimeUpdated` | boolean | No | if schedule datetime is updated |

### Social-media-posting get-account

**Slug:** `HIGHLEVEL_MCP_SOCIAL_MEDIA_POSTING_GET_ACCOUNT`

Retrieves a list of connected social media accounts and groups for a location. Returns account information including account IDs, platform types, and group associations. Use this tool when users want to get social media accounts, list connected accounts, find available accounts, or retrieve account information. Ideal for account selection, account management, and social media account discovery.

Capabilities: get_get-account

Examples:
- Use this tool to get accounts
- Endpoint: /social-media-posting/{authorized location}/accounts

Source: default | Team: social-media-posting

### Social-media-posting get-post

**Slug:** `HIGHLEVEL_MCP_SOCIAL_MEDIA_POSTING_GET_POST`

Retrieves detailed information for a specific social media post by post ID. Returns complete post details including content, media, status, schedule information, platform accounts, tags, categories, and post metadata. Use this tool when users want to get post details, view social media post, see post information, retrieve post data, or look up post by ID. Ideal for post detail viewing, post information retrieval, and post data lookup.

Capabilities: get_get-post

Examples:
- Use this tool to get post
- Endpoint: /social-media-posting/{authorized location}/posts/{id}

Source: default | Team: social-media-posting

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `path_id` | string | Yes | Post Id |

### Social-media-posting get-posts

**Slug:** `HIGHLEVEL_MCP_SOCIAL_MEDIA_POSTING_GET_POSTS`

Retrieves social media posts with advanced filtering and pagination. Supports filtering by post type (recent, all, scheduled, draft, failed, in_review, published, in_progress, deleted), account IDs, date range, and post type (post, story, reel). Returns post list with content, media, status, schedule information, and post metadata. Use this tool when users want to get social media posts, list posts, find posts by status, search posts, filter posts by account, or view scheduled posts. Ideal for post management, content review, post scheduling, and social media content browsing.

Capabilities: get_get-posts

Examples:
- Use this tool to get posts
- Endpoint: /social-media-posting/{authorized location}/posts/list

Source: default | Team: social-media-posting

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `body_skip` | string | Yes | skip |
| `body_type` | string | No | type must be one of the following values: recent, all, scheduled, draft, failed, in_review, published, in_progress and deleted |
| `body_limit` | string | Yes | limit |
| `body_toDate` | string | Yes | To Date |
| `body_accounts` | string | No | List of account Ids seperated by comma as a string |
| `body_fromDate` | string | Yes | From Date |
| `body_postType` | object | No | Post Type must be one of the following values: - post, story, reel |
| `body_includeUsers` | string | Yes | Include User Data |

### Social-media-posting get-social-media-statistics

**Slug:** `HIGHLEVEL_MCP_SOCIAL_MEDIA_POSTING_GET_SOCIAL_MEDIA_STATISTICS`

Retrieve analytics data for multiple social media accounts. Provides metrics for the last 7 days with comparison to the previous 7 days. Supports filtering by platforms and specific connected accounts.

Capabilities: get_get-social-media-statistics

Examples:
- Use this tool to get social media statistics
- Endpoint: /social-media-posting/statistics

Source: default | Team: social-media-posting

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `body_platforms` | array | No | Array of social media platforms to filter analytics by. If not provided, all platforms will be included. NOTE: Linkedin (PAGE only) and Tiktok (BUSINESS only) are supported. |
| `body_profileIds` | array | Yes | Array of connected social media account IDs to fetch analytics for. This can be found as 'profileId' in /accounts api. |
