canonical: https://jentic.com/apis/hubspot.com/hubspot-crm-app-uninstalls

# HubSpot CRM App Uninstalls

The HubSpot CRM App Uninstalls API provides a single endpoint for triggering an external uninstall of a HubSpot app integration. Calling DELETE /appinstalls/v3/external-install removes the app's installation record for the calling account, useful for offboarding flows and self-service customer-led teardown of an integration. The API is narrow and intended for app lifecycle automation rather than data CRUD.

## For AI agents

Trigger uninstallation of an external HubSpot app integration via a single delete endpoint. Useful for agents handling app offboarding or self-service teardown.

## Scope

Does not delete CRM data, revoke OAuth refresh tokens, or list installed apps - use for triggering a HubSpot app uninstall only.

## Capabilities

- Trigger uninstall of an external HubSpot app installation
- Drive a self-service offboarding flow without using the HubSpot UI
- Clean up app installations programmatically when a customer cancels
- Integrate uninstall into a churn or downgrade workflow

## Use cases

### Self-Service Offboarding

When a customer cancels their plan in your portal, automatically remove the HubSpot app installation rather than asking them to uninstall manually inside HubSpot. DELETE /appinstalls/v3/external-install offboards the integration in a single call as part of the cancellation flow.

Example prompt: On cancellation, call DELETE /appinstalls/v3/external-install with the customer's HubSpot OAuth context to remove the integration.

### Failed-Trial Cleanup

If a trial workspace never converts and goes inactive, run an uninstall sweep to remove app installations that are no longer needed. The single uninstall endpoint plus a periodic job is enough to keep stale installs from accumulating.

Example prompt: For each lapsed trial, call DELETE /appinstalls/v3/external-install with the trial's OAuth credentials.

### Customer-Initiated Uninstall Bridge

When a customer clicks `Disconnect HubSpot` in your settings page, fire DELETE /appinstalls/v3/external-install before clearing local state. This keeps the HubSpot side of the integration consistent with your portal even if the customer never returns to HubSpot itself.

Example prompt: On disconnect click, call DELETE /appinstalls/v3/external-install, then revoke the stored OAuth refresh token locally.

### Agent-Driven Uninstall

Use Jentic to let a lifecycle agent revoke a HubSpot app installation as part of a customer-success or compliance workflow. The agent does not need HubSpot SDK code - it invokes the uninstall by intent and Jentic handles authentication.

Example prompt: Use Jentic search 'uninstall a HubSpot app integration', load the DELETE /appinstalls/v3/external-install schema, and execute with the install's OAuth context.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| DELETE | /appinstalls/v3/external-install | Uninstall an app for the current account |

## Key resources

- **External installs** — Single uninstall operation under /appinstalls/v3/external-install.

## Why Jentic

- **Setup:** Wiring HubSpot CRM App Uninstalls by hand means registering an OAuth app or minting a private app token, targeting api.hubapi.com, and coding the external-install request yourself. Through Jentic you install once, import CRM App Uninstalls from the API Directory, store the token once, and your agent calls it.
- **Permission scoping:** The uninstall target travels in the request body of DELETE /appinstalls/v3/external-install, so scope your agent to just that operation. That single operation is the only thing your agent can call, so it cannot delete CRM data or revoke refresh tokens.
- **Credential handling:** Your HubSpot OAuth token or private app token is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'uninstall a HubSpot app', and Jentic returns the matching CRM App Uninstalls operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **HubSpot OAuth** — Manage and revoke OAuth tokens around the install.
- **HubSpot CRM Custom Objects** — Clean up custom object records the app may have created.
- **HubSpot CRM Generic Objects** — Inspect or remove standard CRM data created by the app.

## FAQ

### What authentication does the HubSpot App Uninstalls API use?

OAuth 2.0 authorization code flow or a private app token in the `private-app` header - both scoped to the install being removed. Through Jentic, the credential is held encrypted and the agent only sees a scoped execution token.

### Can I uninstall a HubSpot app from outside HubSpot's UI?

Yes. DELETE /appinstalls/v3/external-install removes the app installation for the calling account without requiring the customer to log into HubSpot and uninstall manually.

### What are the rate limits for the App Uninstalls API?

Standard HubSpot API limits apply - roughly 100 requests per 10 seconds per OAuth app. Uninstall is a low-frequency operation, so the per-second ceiling is rarely a concern in practice.

### How do I trigger an uninstall through Jentic?

Search Jentic for `uninstall a HubSpot app`, load the DELETE /appinstalls/v3/external-install schema, and execute with the install's OAuth credentials. Install with `pip install jentic` and authenticate using `JENTIC_AGENT_API_KEY`.

### Does the uninstall remove all CRM data created by the app?

No. The endpoint removes the app installation itself, not the data it created. To clean up CRM records, call the matching CRM resource APIs before triggering the uninstall.

### Can I limit what my agent is allowed to do with the HubSpot App Uninstalls API?

Yes. Because Jentic One is self-hosted by you, your own rules decide which operations and credentials the agent may use. You can scope the agent to just the single DELETE /appinstalls/v3/external-install operation, so it can trigger an app uninstall but cannot delete CRM data or revoke OAuth refresh tokens. The OAuth or private app token stays with your instance and is injected only at execution time, never entering the agent's prompt or logs.
