API and Integrations
GoHighLevel API and Webhook Recipes Hub (2026)
By Marnix Geerkens. Published 2026-05-29. Updated 2026-05-29.
In short
GoHighLevel has a full REST API and a webhook system that lets you connect it to any other tool. These 10 recipes cover the most common patterns: managing contacts and opportunities, booking appointments, handling payment events, building Marketplace apps, and syncing data to external databases.
- 10 hands-on recipes covering the GHL REST API, inbound and outbound webhooks, OAuth 2.0, and data sync to external tools.
- Each recipe includes working code examples and explains the edge cases that trip people up.
- GHL API base URL: api.gohighlevel.com. Rate limit: 100 requests per 10 seconds per sub-account. Auth: API key or OAuth 2.0.
All 10 API and webhook recipes
Each recipe is a complete build guide with code, configuration steps, and common gotchas. Pick the one that matches what you are trying to build.
What the GoHighLevel API covers
The GHL REST API covers nearly every object in the platform: contacts, opportunities, pipelines, calendars, appointments, conversations, messages, campaigns, forms, surveys, payments, memberships, and sub-accounts. For most agencies and builders, the four most-used endpoints are contacts (create and update), opportunities (pipeline stage moves), calendar (check availability and book), and conversations (send SMS or email).
The API uses standard REST patterns: GET to read, POST to create, PUT or PATCH to update, DELETE to remove. Authentication is a Bearer token passed in the Authorization header. For internal tools, generate an API key in your GHL agency dashboard. For Marketplace apps used by other GHL accounts, use the OAuth 2.0 flow covered in the OAuth recipe on this hub.
When to use the API vs a workflow
GHL Workflows handle most automation needs without code. Use the API when you need to read or write data from an external system that does not have a native GHL integration, when you need bulk operations faster than a workflow can run, or when you are building a product for other GHL users.
The decision guide in this hub compares Zapier, Make, n8n, and direct API calls so you can pick the right tool for your situation without overcomplicating it.
Frequently asked questions
Does GoHighLevel have a public REST API?
Yes. GoHighLevel has a full REST API that covers contacts, opportunities, calendars, conversations, campaigns, pipelines, forms, and more. The base URL is api.gohighlevel.com. You authenticate with either an API key (for agency-owned sub-accounts) or OAuth 2.0 (for Marketplace apps). The docs live at highlevel.stoplight.io.
What is the rate limit for the GoHighLevel API?
GoHighLevel enforces rate limits at the sub-account level. The standard limit is 100 requests per 10 seconds per location. Burst requests above that return a 429 status. Use exponential backoff and respect Retry-After headers to stay within limits.
Can I use GoHighLevel webhooks without writing code?
Yes. GHL supports no-code webhook triggers inside Workflows. You can fire an outbound webhook from any workflow action step. For inbound events (like payment webhooks from Stripe), you create a custom webhook trigger URL inside GHL and point your third-party app at it. Tools like Zapier, Make, and n8n give you a visual layer on top of both.
What is the difference between a GHL API key and OAuth 2.0?
An API key is a static credential tied to a specific sub-account. Use it for internal automations where you control both sides. OAuth 2.0 is for published Marketplace apps where end users grant your app access to their own GHL accounts. If you are building a product for other GHL users, use OAuth 2.0.
Is there an MCP server for GoHighLevel?
Yes. GoHighLevel now ships an official MCP server that lets AI tools like Claude, Cursor, and n8n read and write your account, and it is free with any plan. Our GoHighLevel MCP server guide covers the full setup. You can also build your own custom MCP server if you need actions the official one does not cover yet, and the recipe on this hub walks through wrapping the API endpoints so Claude and other AI agents can call them as tools.
