
Yes, GoHighLevel has a full REST API. The official documentation lives at marketplace.gohighlevel.com/docs, every request goes to services.leadconnectorhq.com, and you authenticate with either a Private Integration Token (for your own tools) or OAuth 2.0 (for Marketplace apps). API V1 and its API keys reached end of support on December 31, 2025, so new work should use V2's date-based versions or the newer v3.
HighLevel's help center says API access is included on every plan, from the $97 Starter plan up, with only a few agency endpoints reserved for the $497 plan. The default rate limit is 100 requests per 10 seconds and 200,000 per day for each app on each account.
This guide covers where the docs are, which token to use, plan access, rate limits, webhooks and the jobs the API is actually good for. For apps that connect without code, start with our GoHighLevel integrations guide.
GoHighLevel API at a Glance
| Details | |
|---|---|
| API type | REST, JSON |
| Base URL | services.leadconnectorhq.com |
| Documentation | marketplace.gohighlevel.com/docs |
| Current versions | v3 (latest) plus date-based versions 2023-02-21, 2021-07-28 and 2021-04-15 |
| Retired | API V1 and V1 API keys (end of support December 31, 2025) |
| Authentication | Private Integration Tokens or OAuth 2.0, sent as a Bearer token |
| Default rate limits | 100 requests per 10 seconds, 200,000 per day, per app per account |
| Official SDKs | Node.js, Python and PHP |
| Plan access | All plans per the help center; a few agency endpoints need the $497 plan |
In This Article
- GoHighLevel API at a Glance
- Where to Find the GoHighLevel API Documentation
- API V1 vs V2 vs V3
- Private Integration Tokens vs OAuth 2.0
- Which Plans Include API Access?
- GoHighLevel API Rate Limits
- Webhooks in the GoHighLevel API
- Making Your First GoHighLevel API Call
- What People Build With the GoHighLevel API
- API vs Zapier, Make and n8n
- Hiring a GoHighLevel Developer
- Common GoHighLevel API Mistakes
- Our Verdict
- Frequently Asked Questions
Where to Find the GoHighLevel API Documentation
HighLevel's help center says its API documentation is now at marketplace.gohighlevel.com/docs and asks developers who used the older Stoplight pages to update their bookmarks, because Stoplight is being deprecated. Searches for "GoHighLevel documentation" and "GoHighLevel API docs" should land there.
The documentation is organized in three parts:
- API reference: every endpoint with its parameters, required scopes, example payloads and code samples. A version switcher lets you view a specific API version.
- Guides: OAuth, Private Integrations, scopes, webhooks, Marketplace app publishing and the SDKs.
- AI-friendly files: HighLevel publishes llms.txt indexes of the reference. Its index lists 821 endpoints in v3 and 739 in the 2023-02-21 version.
If an endpoint you need is missing, HighLevel asks developers to request it through the GitHub issues page for its API docs. For general product help, see our GoHighLevel login and support guide.
API V1 vs V2 vs V3

Most outdated tutorials still show you how to copy an "API key" from settings. That is the V1 method, and it is gone for new builds.
| Version | Status | How You Authenticate | Notes |
|---|---|---|---|
| V1 | End of support since December 31, 2025 | Agency or location API key | Existing connections keep working, but get no updates or support |
| V2 (date-based, e.g. 2021-07-28, 2023-02-21) | Supported | Private Integration Token or OAuth 2.0 | Pass the date string in the Version header |
| v3 | Latest, released June 11, 2026 | Private Integration Token or OAuth 2.0 | Available for supported endpoints; pass "v3" in the Version header |
HighLevel's help center adds that the ability to generate new API keys is being removed from agency and sub-account settings for accounts that are not already using one. Its versioning guide says that when a new version ships, the previous one enters a maintenance window with critical fixes only, and a retired version stops accepting requests.
Quick Tip
Pick one version per integration and send it in the Version header on every request. HighLevel's docs warn against mixing endpoints or schemas from different versions in the same integration.
Private Integration Tokens vs OAuth 2.0
Both methods send a token in the Authorization header as "Bearer" plus the token. The difference is who creates the token and how long it lives.
| Private Integration Token (PIT) | OAuth 2.0 | |
|---|---|---|
| Best for | Internal tools, one agency or one sub-account | Public apps, Marketplace apps, many accounts |
| How you get it | Generated in Settings, shown once | Authorization-code flow, then exchanged for tokens |
| Lifetime | Static until you rotate it | Access token valid a day, refresh token valid a year |
| Permissions | Scopes you pick when creating it | Scopes the user approves at install |
| Works on all endpoints? | No, endpoints marked "OAuth access token only" reject PITs | Yes, subject to scopes and plan |
| Who can create it | Agency admins by default | Anyone with a developer account |
HighLevel calls Private Integration Tokens "static/fixed OAuth2 Access Tokens." They replace the old API keys, with one big security gain: you choose exactly which scopes a developer gets instead of handing over the whole account.
How to Create a Private Integration Token
- 1Open Settings in the agency or sub-account and find Private Integrations (enable it in Labs if it is missing)
- 2Click Create New Integration and give it a clear name and description
- 3Select only the scopes the integration needs
- 4Copy the token right away because it is shown only once
- 5Store it in a password manager or secrets vault, never in a shared doc
- 6Rotate it every 90 days as HighLevel recommends
Agency admins can restrict who manages Private Integrations under Settings > Team > Roles & Permissions. Editing a token's name or scopes later does not change the token itself.
How OAuth Works for Marketplace Apps
If you are building an app other agencies will install, you need OAuth and a developer account. HighLevel's steps are:
- Sign up at marketplace.gohighlevel.com and verify your phone and email. The first user becomes the only Owner, so add teammates as users rather than sharing a login.
- Create an app to get a client ID and secret, and choose its scopes.
- Set the distribution model. You pick whether the target user is an agency or a sub-account, and who can install it. HighLevel says bulk installation by agencies is now mandatory for new Marketplace apps.
- Exchange the authorization code for an access token and refresh token, and refresh the access token daily.
- Subscribe to webhooks so your app hears about changes in real time.
An agency token can also be exchanged for a sub-account (location) token, which is how one app works across many client accounts.
Which Plans Include API Access?
This is where HighLevel's own pages disagree, so read them side by side.
| Source | What It Says |
|---|---|
| Help center API article | "HighLevel provides API access across all subscription plans, including Starter, Unlimited, and Agency Pro." OAuth, PITs and standard endpoints are listed as available on all three |
| Same article, FAQ section | "Starter & Unlimited: Basic API access" and "advanced" access on the top plan |
| Pricing page | "API Access" in the core features list, "Basic API access" under Unlimited, and higher API limits on Enterprise "by request" |
The firm rule in the help center is that two endpoints need the $497 plan: Create Sub-Account and Enable SaaS for Sub-Account. That plan is called Agency Pro in the help center and Founder on the current pricing page.
| Plan | Price | API Access |
|---|---|---|
| Starter | $97/mo | OAuth, PITs, standard endpoints (help center) |
| Unlimited | $297/mo | Same, listed as "Basic API access" on the pricing page |
| Agency Pro / Founder | $497/mo | Adds Create Sub-Account and Enable SaaS endpoints |
| Enterprise | Custom | Higher API limits by request |
Watch Out
If your project depends on a specific endpoint, test it during the free trial on the plan you intend to buy. HighLevel notes that endpoint-specific restrictions may apply beyond the two listed above.
For full plan details and usage charges, see our GoHighLevel pricing guide.
GoHighLevel API Rate Limits
HighLevel's rate limits apply per app (or Private Integration) per resource, where a resource is one sub-account or one agency.
| Limit | Allowance | Window |
|---|---|---|
| Burst | 100 requests | 10 seconds |
| Daily | 200,000 requests | 24 hours from the first counted request |
A few details matter when you plan an integration:
- More installs do not split your budget. An app installed on two sub-accounts gets the full allowance on each.
- Private Integration Tokens share a daily counter. Each PIT has its own burst limit, but all PITs on the same sub-account share one 200,000-a-day budget.
- Windows are fixed, not calendar-based. The daily window does not reset at midnight; it starts with your first counted request.
- Rejected calls are free. A request rejected with a 429 error does not count against either limit.
Every response carries headers such as X-RateLimit-Remaining, X-RateLimit-Daily-Remaining and X-RateLimit-Daily-Reset. Read them and slow down before you hit zero, rather than counting requests yourself.
Webhooks in the GoHighLevel API

Webhooks let HighLevel notify your system the moment something changes, so you do not have to poll the API.
There are two kinds, and they are easy to confuse:
| Type | Where You Set It Up | Good For |
|---|---|---|
| Marketplace app webhooks | In your app's settings, with matching scopes | Apps that react to events across installed accounts |
| Workflow webhooks | A webhook action or inbound webhook trigger inside a workflow | One account sending data out or receiving it without an app |
App webhooks cover events such as contact created or updated, tag changes, appointments, opportunities, invoices, notes, inbound messages and app installs. HighLevel's webhook documentation includes a sample payload for each event.
Verify every delivery before you trust it. HighLevel signs webhooks with an X-GHL-Signature header (Ed25519) and publishes the public key in its webhook guide. Some OAuth app webhooks also carry a legacy X-WH-Signature header during the transition.
Workflow webhooks, including the premium inbound webhook trigger, are covered in our integrations guide.
Making Your First GoHighLevel API Call
Every request needs the same three pieces:
| Piece | Value |
|---|---|
| URL | services.leadconnectorhq.com plus the endpoint path, such as /contacts/ |
| Authorization header | Bearer followed by your token |
| Version header | The version you built against, such as 2021-07-28 or v3 |
A simple first test is creating a contact. HighLevel's Private Integrations guide shows a POST to the contacts endpoint with a first name, last name, email, phone and the locationId (the sub-account ID). If the contact appears in that sub-account, your token, scopes and headers are all working.
Official SDKs and the MCP Server
You do not have to hand-write every request. HighLevel ships official SDKs:
| Language | Package | Minimum Version |
|---|---|---|
| Node.js | @gohighlevel/api-client | Node.js 18 |
| Python | gohighlevel-api-client | Python 3.8 |
| PHP | gohighlevel/api-client | PHP 7.4 |
HighLevel says all three handle OAuth flows, PIT support, token refresh and webhook signature checks.
HighLevel also runs a LeadConnector MCP server that lets AI assistants such as Claude, ChatGPT and Cursor work with CRM data through an OAuth connection. Its documentation lists more than 550 operations, limited by the scopes you approve. See our GoHighLevel AI guide for the built-in AI tools.
What People Build With the GoHighLevel API
| Use Case | How the API Helps |
|---|---|
| Lead sync from a custom site or app | Create or update contacts and opportunities the moment a lead arrives |
| Two-way sync with an internal system | Webhooks push changes out; API calls write updates back |
| Booking from your own front end | Read free calendar slots and create appointments |
| Client reporting dashboards | Pull opportunities, conversations and payments into a data warehouse or BI tool |
| SaaS onboarding for agencies | Create sub-accounts and enable SaaS programmatically (top plan only) |
| Marketplace apps | Sell an add-on that agencies install across their sub-accounts |
| AI agents and chatbots | Read and write CRM records from an AI assistant via the API or MCP server |
Agencies running a SaaS offer get the most from the sub-account endpoints, which our GoHighLevel for agencies guide explains.
API vs Zapier, Make and n8n
The API is the most flexible option, but it is rarely the first one to reach for.
| Option | Choose It When | Watch Out For |
|---|---|---|
| Native integration | HighLevel already connects to the tool | Limited to what the integration syncs |
| Zapier | You want no-code flows and simple triggers | Monthly task costs and fewer HighLevel triggers |
| Make or n8n | You need branching, loops or self-hosting | Some setup time; n8n self-hosting needs a server |
| Direct API | You need custom logic, volume or an app others install | Developer time, token security, version upgrades |
Compare the no-code routes in GoHighLevel vs Zapier and GoHighLevel vs n8n.
Hiring a GoHighLevel Developer

HighLevel support does not write or debug integration code, so many agencies hire a developer. Ask any candidate these questions:
- Do you build on V2 or v3 with Private Integration Tokens or OAuth? Anyone still asking for an "API key" is working from V1 methods.
- How will you handle rate limits and 429 errors? Look for retries with backoff and use of the rate limit headers.
- How will you store tokens? Tokens belong in a secrets store, never in code or spreadsheets.
- Will you verify webhook signatures? The answer should be yes.
- Who owns the developer account and code? Make sure your business does.
For community help, HighLevel runs a developer Slack group and a monthly Developer Council call, and accepts bug reports through its developer support form.
Common GoHighLevel API Mistakes
- Following V1 tutorials. Location API keys and the old Stoplight docs are retired or being retired.
- Over-scoping tokens. Give each Private Integration only the scopes it needs.
- Forgetting the Version header. Requests without the right version fail or return a different schema.
- Polling instead of using webhooks. Polling burns your rate limit; webhooks are near real time.
- Assuming the plan. Sub-account creation and SaaS endpoints need the top plan.
- Skipping token rotation. HighLevel recommends rotating Private Integration Tokens every 90 days.
Our Verdict
The GoHighLevel API is mature and open on every plan, according to HighLevel's help center. The documentation is now in one place, official SDKs exist for three languages, and the rate limits are generous for most agency projects.
The main traps are outdated V1 tutorials and the mixed messages about plan access. Use Private Integration Tokens for your own tools, OAuth for anything you will distribute, and test the exact endpoints you need on your intended plan during the free trial. For the no-code side, read our GoHighLevel integrations guide and the full GoHighLevel review.
Try GoHighLevel Free for 14 Days
Funnels, CRM, email, SMS, calendars and client accounts in one platform built for agencies, with a free 14-day trial on any plan.
Frequently Asked Questions
Does GoHighLevel Have an API?
Yes. HighLevel offers a REST API covering contacts, conversations, calendars, opportunities, payments, workflows and more. The documentation is at marketplace.gohighlevel.com/docs and every request goes to services.leadconnectorhq.com.
Where Is the GoHighLevel API Documentation?
The official documentation moved to marketplace.gohighlevel.com/docs. It has a version switcher for v3 and the older date-based versions, and HighLevel says the legacy Stoplight documentation is being deprecated.
Where Do I Find My GoHighLevel API Key?
New builds no longer use API keys. HighLevel says V1 reached end of support on December 31, 2025 and that generating new API keys is being removed from agency and sub-account settings. Create a Private Integration Token under Settings instead.
Is the GoHighLevel API Available on the Starter Plan?
HighLevel's help center says yes, with OAuth 2.0, Private Integration Tokens and standard endpoints on Starter, Unlimited and Agency Pro. The pricing page lists "Basic API access" under Unlimited, so confirm with support before you build a client project on Starter.
What Are the GoHighLevel API Rate Limits?
The default limits are 100 requests per 10 seconds and 200,000 requests per day, counted per app per sub-account or agency. Every response carries X-RateLimit headers that show your remaining allowance.
What Is the Difference Between a Private Integration Token and OAuth?
A Private Integration Token is a static token you create in settings for one agency or sub-account, best for internal tools. OAuth 2.0 issues tokens that expire daily and is required for public Marketplace apps installed across many accounts.
Which API Endpoints Need the Top Plan?
HighLevel's help center lists Create Sub-Account and Enable SaaS for Sub-Account as restricted to the $497 Agency Pro plan. Other standard endpoints are available on every plan.
Does HighLevel Support Help with API Code?
No. HighLevel's help center says support does not audit setup code or provide developer consulting. You can report confirmed bugs through the developer support form and ask questions in the developer Slack community.
Build Your First Integration During the Trial
Create a Private Integration Token, push one test contact through the API and wire up one webhook in the 14-day free trial, then decide.
Start a 14-Day GoHighLevel Trial


