HTTP 400 in GoHighLevel

GoHighLevel returns 400 most often when a workflow webhook or API v2 request has a malformed JSON body, an unknown field, or a `locationId` that doesn't match the auth token's scope.

Why GoHighLevel returns 400

GoHighLevel returns 400 most often when a workflow webhook or API v2 request has a malformed JSON body, an unknown field, or a `locationId` that doesn't match the auth token's scope.

How to fix it

Validate the JSON payload against the GoHighLevel API v2 reference, confirm `locationId` matches the OAuth token's location, and double-check custom-field IDs (they're UUIDs, not display names).

What it looks like in the logs

HTTP/1.1 400 Bad Request {"statusCode":400,"message":"locationId must be a valid UUID"}

Where this surfaces in GoHighLevel

GoHighLevel's Funnels & Websites builder, workflow webhooks, or the API v2 responses.

GoHighLevel (HighLevel) — all-in-one agency CRM & funnels platform.

What HTTP 400 means generally

The server could not understand the request due to invalid syntax or malformed data.

HTTP 400 Bad Request means the server cannot process the request because the client sent something invalid — malformed JSON, missing required fields, invalid characters in the URL, or exceeded size limits.

Other common causes of 400

SEO impact

Pages returning 400 will not be indexed. If users see 400 errors, it indicates a broken form or link.

How to catch it next time

LemWatch alerts on 400 errors from your monitored pages. Frequent 400s may indicate broken forms or outdated API integrations.