Accept header is omitted.
Use the HTTP status to decide whether to correct your request or retry it.
Validation errors
message summarizes the failure. The errors object identifies each invalid field; messages can differ depending on the request.
A rejected V2 location update does not save a subset of its fields.
Empty hours and incomplete weeks
"hours": {} is valid and leaves hours unchanged. "hours": [] is invalid: hours must be a weekday object.
A nonempty POST or PUT hours object must include all seven days. Use PATCH to update selected days instead:
{"open":"09:00","close":"17:00"}. See opening hours.
Rate limits and retries
The current shared API limit is 1,000 requests per minute. ReadX-RateLimit-Limit and X-RateLimit-Remaining on responses; a 429 also includes Retry-After.
Wait for that interval before retrying, and space subsequent requests out.
Retrying a POST can create another location if the original request succeeded before the connection failed. Check whether the location already exists before retrying a create.
Addresses and coordinates
lat must be between -90 and 90; lng must be between -180 and 180. Zero is valid. The returned address field is address.
POST and PUT can geocode synchronously when either coordinate is missing or zero. Both accept zero during validation but retain this older geocoding behavior.
A PATCH affecting address or coordinate fields queues geocoding only if a coordinate is missing; it preserves supplied zero coordinates. The immediate response can still have null coordinates.
For precise pins, supply both coordinates. Changing a phone or other unrelated field with PATCH does not trigger geocoding.