Changelog

Follow up on the latest improvements and updates.

RSS

new

App Marketplace

API

Voice AI

Voice AI - Public APIs

Overview:
We’re excited to announce that Voice AI APIs are now public, giving you direct programmatic access to configure agents, manage actions, retrieve call data, and integrate webhooks into your workflows.
This elevates Voice AI from a product feature to an extensible capability that can be integrated directly into your workflows and applications.
What You Can Do Today
Instead of limiting Voice AI to in-app controls, you can now:
  • Manage Agents & Actions – Create, update, and organize agents and their behaviors via API.
  • Retrieve Call Data – Access logs and transcripts for reporting, compliance, or analytics.
  • Leverage Webhooks – Receive real-time call outcomes, transcripts, and summaries in your own systems.
What’s Coming Next
  • Knowledge Base Support via Actions API – Agents will soon be able to dynamically reference Knowledge Base entries as part of their configured actions.
  • Voices API – Retrieve the list of available voices and fetch details, so you can align an agent with the right voice.
Why It Matters
  • By making these APIs public, we’re giving you the flexibility to go beyond the UI. Automating setup, integrating with external tools, or tailoring Voice AI to fit your operational needs.
  • This is a big step toward making Voice AI not just usable, but buildable.

new

App Marketplace

Users & Permissions

API

User Lifecycle Events via Webhooks

Webhooks let developers receive real-time notifications from our platform and trigger event-driven integrations—sync data across tools, automate workflows, and keep systems consistent without polling. They’re critical for reliable, decoupled integrations and clear observability.
The issue
We didn’t expose webhook events for user create, update, and delete, leaving developers with limited visibility, stale states, extra polling, and weaker audit/metrics for user lifecycle changes.
The fix
We’ve added three events: user.created, user.updated, user.deleted—with delivery retries and signed requests. Subscribe, receive the payload, and react instantly.
Why it matters
  • Visibility for developers
    : Know exactly when a user is created, updated, or removed—no drift, no guesswork.
  • Better tracking & stats
    : Stream events to analytics/warehouse for activation, churn, and cohort metrics.
  • Fewer support tickets
    : Real-time sync reduces “why didn’t this update?” issues and shortens TTR.
  • API-first reliability
    : Event-driven architecture makes our platform more predictable, scalable, and integration-friendly.
  • Clear communication with consumers
    : Downstream systems stay up-to-date, improving user experience and trust.
Perspective highlights
  • Scale, robustness, security
    : High-throughput delivery with retries; HMAC-signed requests; idempotency via event IDs.
  • Support impact
    : Push > poll means fewer sync failures and faster diagnostics with delivery logs.
  • Customer satisfaction
    : Immediate reflection of changes across stacks → smoother onboarding & cleaner data.
Documentation:
The API CoE team is excited to announce the new Developer Doc -
What's new?
Why is this important?
  • The new platform gives us more flexibility to embed our own markdown content inside the docs. This enables us to consolidate all developer resources in one location and create a strong onboarding experience for new developers on the HighLevel Marketplace.
What's next?
  • We're adding new docs every week to improve the onboarding experience for new developers.
  • We're moving and organising developer-related resources from Help Articles to http://marketplace.gohighlevel.com/docs/
  • Stoplight docs will be deprecated in a few months
Preview Images
image
The API Center of Excellence team is proud to announce TypeScript/JavaScript SDK that fully automate OAuth 2.0 for developers. This has been tested with developer partners over the past couple of weeks and is now launched live on NPM.
What's new?
  • The newly released TypeScript/JavaScript SDK fully automate OAuth 2.0 across the following scenarios:
  1. All app installation scenarios - installation by a sub-account, bulk installation by an agency, automated future installation,
  2. Daily token refresh on expiry,
  3. Uninstallation scenarios
  • Database-agnostic SDK design enables developers to connect their preferred database for token management automation.
  • Supports all public APIs, with sample code snippets embedded inside every API doc
  • Fully automated SDK generation so that SDK evolves automatically as our APIs evolve
  • Launched on NPM to enable developers to install the SDK with ease
  • Detailed documentation with a dedicated repo with an example project
Why is this important?
  • The SDK aims to abstract the complexity of implementing OAuth 2.0 away from developers, fully managing tokens for them across all scenarios.
  • This helps reduce support tickets for HighLevel.
What's next?
We'll wait for feedback from the broader developer community and soon launch SDKs across PHP and Python, incorporating the developer community's feedback.
Resources
Preview Images
SDK Documentation:
image
Code snippets in every API doc:
image
GitHub repo with example project:
image
The Marketplace team is excited to announce support for OAuth 2.0 with PKCE (Proof Key for Code Exchange)!
What’s New?
  • Enhanced Security
    : OAuth flows now support PKCE, adding an additional layer of protection against interception attacks.
  • Standards Compliance
    : Fully aligned with modern OAuth 2.0 best practices for secure authorisation.
Benefits
  • Expands the possibilities of integrations support on HighLevel Marketplace through wider support for connections
  • Stronger protection for authorisation codes in public clients.
  • Reduced risk of token interception in browser-based or mobile environments.
  • Easier, more secure integration for developers building with HighLevel APIs.
Preview images
image
image
The Marketplace team is excited to announce Dynamic Pricing for Usage-Based Billing.
Common use case
: SMS services where the cost per message varies by destination.
What’s new?
  • Dynamic price support for usage-based billing via the Create Wallet Charge API.
  • A new request parameter: price lets app-developers set the per-unit price at charge time for services with variable costs.
  • Agencies can configure a flat per-unit markup when reselling the app's service (app reselling)
How to use it as a Developer?
A) Configure your billing meter
  1. Go to App → Pricing → Billing Meters and create (or edit) a meter with Module Type = Custom Event (API).
  2. Set Price Type: Dynamic
  3. Enter Minimum and Maximum price, add a Pricing Page URL (recommended for transparency), and set a Default Price per Unit.
  4. Save changes.
image
B) Charge the wallet via API
  • Use the existing
    Create Wallet Charge API
    . Include the new, optional price field when you want to apply a dynamic per-unit price for that charge.
  • If price is omitted, the meter’s Default Price per Unit is applied.
How to use it as an Agency?
  • In your app’s Pricing section, end users see the price range for dynamic meters and a link to the Pricing Page URL.
  • Visibility note: The Pricing Page URL is visible to agency admins only, not to sub-accounts.
image
Reselling & markup behavior (agencies)
  • Agencies can configure a flat per-unit markup when reselling apps' service (app reselling).
  • Because markups change effective end pricing, the Pricing Page URL is hidden from sub-accounts to avoid confusion.
  • Example: If an SMS base price is $1.00 (UK) and $1.50 (France), an agency can add a $0.50 markup so sub-accounts pay $1.50 (UK) and $2.00 (France).
image
Why this is important
  1. Match real-world costs
    : Many services (SMS, telephony, geo-based APIs) have variable costs. Dynamic pricing lets you pass the right price at the moment of charge.
  2. Clear, upfront expectations
    : Min/Max price ranges and a Pricing Page URL give buyers transparency into how pricing can vary.
  3. Supports growth via resellers
    : Agency markups create healthy margins and incentives to promote apps, helping distribution without extra engineering.
The Marketplace team is excited to announce a new API endpoint - App Installer Details.
What's new?
  1. The new Installer Details endpoint offers detailed context about the user who installed the app, including the sub-account and agency where the app is installed. The API response also includes the agency's details, such as company name, company email, agency owner's name, and agency white-label information.
  2. The API can be accessed using both the Agency Token and the Sub-account Token.
Why is this important?
  1. The API provides all the details necessary for the app developer to identify the installer, customise their offering based on the agency's white-label and build a relationship with the agency owner to improve their retention, without breaking the white-label for the sub-accounts.
  2. This API is designed to simplify marketplace app distribution. It eliminates the need for app developers to obtain company-level OAuth permissions or scopes to access the agency's details. Thus, apps can be sold directly to sub-accounts and through agencies, maximising the apps' reach.

new

App Marketplace

API

Marketplace | App Uninstall API

The App Marketplace team is excited to announce the release of App Uninstall API.
What's new?
Developers can now uninstall their apps from dormant users' accounts via API.
Why is this important?
Webhook events generated for activities by dormant accounts that are not using the app cause overhead costs for developers and increase latency for events from active accounts.
What's next?
In Q4, the Marketplace team will develop APIs for app developers to manage webhook subscriptions for individual accounts, providing them with complete flexibility to manage webhook events.
We’ve implemented a significant enhancement to how refresh tokens are managed, particularly for concurrent API calls in distributed environments. This improvement ensures greater stability and efficiency when refreshing access tokens.
What’s Improved?
Concurrent Refresh Token Call Handling:
To optimize performance and prevent race conditions in distributed systems, we’ve refined our refresh token mechanism. Now, if multiple concurrent calls are made within a 30-second window using the exact same client_id and client_secret and refresh_token combination, the system will return the same refresh token for all these calls.
Why was this enhancement necessary?
This enhancement is targeted to help large-scale developers who have distributed systems:
  • Improve Stability
    : Reduces the likelihood of invalidating refresh tokens prematurely due to concurrent requests from different services or instances.
  • Simplify Distributed Architecture
    : Makes it easier to manage token refreshing in environments where multiple services might simultaneously attempt to refresh tokens.
Note
: No changes are required on your end to benefit from this enhancement. It is automatically applied to all relevant API interactions.
Overview:
We’ve added API support for the User Management permission (view & manage users and view users), which governs the ability to view, create, and edit users. Earlier these permissions being security sensitive and critical were restricted from update via users API.
What’s New:
We have added another check in the Enhanced Account Security to allow agencies flexibility in terms of whether they want to enable or disable above scope in API.
How to Enable User Management permissions via API
Navigate to:
Settings > Company > Advanced Settings
Disable the Enhanced Security option to allow API-based user management.
Why It Matters:
  • Operational Efficiency → Reduce manual overhead for high-volume agencies
Preview:
Screenshot 2025-06-24 at 2
Screenshot 2025-06-24 at 1
Load More