GoHighLevel Marketplace Uninstall API

GoHighLevel Marketplace Uninstall API Guide

If you build SaaS tools and connect them with ClickUp or other platforms, you may also need to integrate with the GoHighLevel Marketplace App Uninstall API. This how-to guide explains how to correctly process uninstall events so your app is safely disconnected when agencies or sub-accounts remove it from their GoHighLevel accounts.

The steps below are based on the official GoHighLevel documentation and walk you through the endpoint, fields, and typical logic you should implement in your own backend.

What the GoHighLevel Marketplace Uninstall API Does

The Marketplace App Uninstall API allows GoHighLevel to notify your app when a user removes your marketplace listing. Your webhook endpoint receives details about the agency or sub-account so you can:

  • Clean up stored data related to that account.
  • Revoke any tokens, secrets, or API keys.
  • Stop billing or usage tracking, if applicable.
  • Disable your app’s features for that specific account.

Handling this uninstall event correctly ensures your integration with GoHighLevel remains secure, compliant, and user-friendly.

GoHighLevel Uninstall Event Flow Overview

When an agency or sub-account clicks uninstall inside the GoHighLevel Marketplace, the platform sends a POST request to the uninstall endpoint you configured in your app settings.

The high-level flow is:

  1. User uninstalls your app in the GoHighLevel Marketplace.
  2. GoHighLevel sends a signed POST request to your uninstall URL.
  3. Your server validates the request and signature (if implemented).
  4. Your app identifies the agency or sub-account from the payload.
  5. Your app performs clean-up actions and returns a response.

GoHighLevel Marketplace Uninstall API Endpoint

In your own infrastructure, you will expose an HTTPS endpoint dedicated to GoHighLevel uninstall events. The official documentation describes how this endpoint is triggered by the marketplace and what data you can expect to receive.

For reference and full technical detail, always review the official source page:
GoHighLevel Marketplace App Uninstall API Documentation.

Typical HTTP Method and Format

The uninstall callback is sent as an HTTP POST request, using JSON in the request body. Your endpoint should:

  • Accept Content-Type: application/json.
  • Be accessible over HTTPS.
  • Return a valid HTTP status code (for example, 200 on success).

GoHighLevel Uninstall Payload Structure

The uninstall payload enables your app to identify which account removed your marketplace listing. While exact field names may differ based on your app configuration, the core structure generally includes:

  • agencyId – Unique ID of the agency in GoHighLevel.
  • locationId (or sub-account ID) – Identifies the specific sub-account, when applicable.
  • appId – Your marketplace app identifier.
  • timestamp – When the uninstall action occurred.

Your logic should primarily rely on the agency and sub-account identifiers to locate and clean up the correct records in your own database.

Required Fields for GoHighLevel Integrations

When building an integration with GoHighLevel, ensure that your app records and links:

  • Your internal account ID to the agencyId and (if used) locationId.
  • Any OAuth tokens or API keys tied to that agency or sub-account.
  • Configuration data, such as mapping settings, preferences, and sync rules.

This makes it simple to remove or deactivate the right data when you receive the uninstall event.

How to Handle a GoHighLevel Uninstall Request

Use the following step-by-step process as a pattern when handling the Marketplace App Uninstall API callback from GoHighLevel.

Step 1: Validate the Request

First, make sure the callback is actually coming from GoHighLevel. Depending on your security setup, you may:

  • Check the source IP against an allowlist (if provided by your network team).
  • Validate any signature header or shared secret, if you implemented one.
  • Verify that the payload includes expected fields such as agencyId and appId.

If validation fails, log the attempt and return an appropriate error status code.

Step 2: Parse the GoHighLevel Payload

Next, parse the JSON payload from the GoHighLevel request. In most backends you would:

  1. Read the request body as JSON.
  2. Extract the agencyId and, if present, locationId.
  3. Extract any other relevant metadata for logging or audit purposes.

Store errors or malformed data in your logs for troubleshooting.

Step 3: Locate the Related Account

Use the identifiers from the request to locate the related customer and configuration in your database. Typical lookups might include:

  • Find internal customer account by agencyId.
  • Find sub-account record by locationId, if your app supports sub-account level installs.
  • Fetch all tokens, configuration settings, and scheduled jobs associated with that account.

Step 4: Clean Up App Data

Once you have identified the correct account, perform your clean-up logic. For most GoHighLevel Marketplace apps, this may include:

  • Revoking or deleting OAuth tokens or API keys.
  • Stopping any background synchronization jobs.
  • Removing webhooks you created on behalf of the agency.
  • Deleting or anonymizing account-specific data stored in your systems (according to your data retention policy).
  • Disabling billing for that specific account, if your pricing is tied to a GoHighLevel agency or sub-account.

Make sure your process is idempotent, so running it multiple times does not produce errors or inconsistent state.

Step 5: Respond to the GoHighLevel Request

After your app successfully performs its clean-up logic, return a success response. A typical pattern is:

  • Status code: 200 or 204.
  • Body: An empty body or a short JSON confirmation object, depending on your design.

If any step fails, return an appropriate 4xx or 5xx error code, and record the issue in your logs so you can investigate.

Best Practices for GoHighLevel Marketplace Apps

To maintain a reliable integration with GoHighLevel, follow these best practices around uninstall handling:

  • Use clear logging: Log every uninstall request, including the agencyId, timestamp, and outcome.
  • Keep uninstall fast: Avoid long-running tasks in the response cycle. If needed, enqueue background jobs.
  • Handle retries safely: Assume uninstall callbacks may be retried and make your logic safe to run multiple times.
  • Respect privacy: Remove or anonymize user data in line with your privacy policy and any regulations.

Testing Your GoHighLevel Uninstall Implementation

Before going live, thoroughly test your uninstall callback with the GoHighLevel sandbox or staging environment, if available. Recommended testing steps include:

  1. Install your app on a test agency account.
  2. Trigger the uninstall action from the GoHighLevel Marketplace UI.
  3. Confirm that your endpoint receives the expected payload.
  4. Verify that all tokens, data, and scheduled tasks for that agency are cleaned up.
  5. Repeat with different sub-accounts if your integration supports them.

Careful testing prevents orphaned data and keeps your integration aligned with GoHighLevel’s marketplace expectations.

Where to Learn More About GoHighLevel Integrations

For a complete reference on the Marketplace App Uninstall API and other related endpoints, always consult the official documentation on the GoHighLevel help center:
Official GoHighLevel Marketplace App Uninstall API.

If you need implementation help, integration architecture, or SEO and content strategy for your GoHighLevel-based SaaS, you can work with specialists at Consultevo.

By correctly implementing the Marketplace App Uninstall API and following the steps in this guide, your application will remain secure, compliant, and fully aligned with the expectations of GoHighLevel agencies and their sub-accounts.

Need Help With ClickUp?

If you want expert help building, automating, or scaling your GHL , work with ConsultEvo — trusted GoHighLevel Partners.

Scale GoHighLevel

“`