# Heap Documentation > Heap's APIs allow developers to capture additional data about user interactions, manage identity across sessions and devices, and more. ## Guides - [Overview](https://developers.heap.io/docs/overview.md) - [Installation](https://developers.heap.io/docs/web.md) - [API Reference (heap.js 5)](https://developers.heap.io/docs/api-reference.md) - [Ignoring Sensitive Data and PII](https://developers.heap.io/docs/ignoring-sensitive-data-and-pii.md) - [Shadow DOM](https://developers.heap.io/docs/shadowdom.md) - [Plugin Framework](https://developers.heap.io/docs/plugin-framework.md) - [Plugin Framework - Heap Event Message Schema](https://developers.heap.io/docs/plugin-framework-heap-event-schema.md) - [Web SDK upgrade FAQ](https://developers.heap.io/docs/frequently-asked-questions.md) - [iOS quick start](https://developers.heap.io/docs/ios.md) - [Swift Ecosystem quick start](https://developers.heap.io/docs/swift-ecosystem-quick-start.md) - [Android quick start](https://developers.heap.io/docs/android.md) - [Android Ecosystem quick start](https://developers.heap.io/docs/android-ecosystem-quick-start.md) - [React Native quick start](https://developers.heap.io/docs/react-native-quick-start.md) - [Flutter quick start](https://developers.heap.io/docs/flutter-quick-start.md) - [Capacitor Bridge quick start](https://developers.heap.io/docs/capacitor-bridge-installation.md) - [Xamarin/Maui quick start](https://developers.heap.io/docs/xamarin-quick-start.md) - [Hybrid Mobile Apps Installation](https://developers.heap.io/docs/hybrid-mobile-apps.md) - [Google Tag Manager (GTM) Installation](https://developers.heap.io/docs/google-tag-manager.md) - [Electron Installation](https://developers.heap.io/docs/electron.md) - [Instapage Installation](https://developers.heap.io/docs/instapage.md) - [Squarespace Installation](https://developers.heap.io/docs/squarespace.md) - [Tumblr Installation](https://developers.heap.io/docs/tumblr-installation.md) - [Unbounce Installation](https://developers.heap.io/docs/unbounce.md) - [Wordpress Installation](https://developers.heap.io/docs/wordpress.md) - [Track user identity](https://developers.heap.io/docs/using-identify.md) - [Manually track events](https://developers.heap.io/docs/manual-event-tracking.md) - [Hide sensitive data](https://developers.heap.io/docs/hide-sensitive-data.md) - [Tracking notification interactions](https://developers.heap.io/docs/tracking-notification-interactions.md) - [Continuing mobile sessions in WebViews](https://developers.heap.io/docs/continuing-mobile-sessions-in-webviews.md) - [Session Replay for apps with Heap analytics](https://developers.heap.io/docs/syncing-heap-data-to-contentsquare.md) - [Heap analytics for apps with Contentsquare](https://developers.heap.io/docs/syncing-contentsquare-data-to-heap.md) - [Android SDK Reference](https://developers.heap.io/docs/android-sdk-reference.md) - [Swift SDK reference](https://developers.heap.io/docs/swift-and-uikit-sdk-reference.md) - [React Native SDK Reference](https://developers.heap.io/docs/react-native-sdk-reference.md) - [Flutter SDK Reference](https://developers.heap.io/docs/flutter-sdk-reference.md) - [iOS Classic Installation](https://developers.heap.io/docs/ios-legacy.md) - [Android Classic Installation](https://developers.heap.io/docs/android-legacy.md) - [React Native Classic Installation](https://developers.heap.io/docs/react-legacy.md) - [Install Heap.js](https://developers.heap.io/docs/install-heapjs.md) - [Track impressions](https://developers.heap.io/docs/tracking-impressions.md) - [Track in an iFrame](https://developers.heap.io/docs/installing-heap-in-an-iframe.md) - [Track AMP or FBIA pages](https://developers.heap.io/docs/track-amp-or-fbia-pages.md) - [Android Custom Configuration](https://developers.heap.io/docs/android-custom-configuration.md) - [Swift Custom Configuration](https://developers.heap.io/docs/swift-custom-configuration.md) - [React Native Custom Configuration](https://developers.heap.io/docs/react-native-custom-configuration.md) - [Flutter Custom Configuration](https://developers.heap.io/docs/flutter-custom-configuration.md) - [How to set up a proxy for Heap](https://developers.heap.io/docs/setup-proxy-for-heap.md) - [heap.js 5 Changelog](https://developers.heap.io/docs/heapjs-5-changelog.md) - [Android Changelog](https://developers.heap.io/docs/android-changelog.md) - [Swift iOS Changelog](https://developers.heap.io/docs/ios-changelog.md) - [React Native Changelog](https://developers.heap.io/docs/react-changelog.md) - [Flutter Changelog](https://developers.heap.io/docs/flutter-changelog.md) - [Heap Gradle Plugin Changelog](https://developers.heap.io/docs/heap-gradle-plugin-changelog.md) - [Classic heap.js Changelog](https://developers.heap.io/docs/heapjs-changelog.md) ## API Reference - [API Reference Overview](https://developers.heap.io/reference/api-reference-overview.md) - [track](https://developers.heap.io/reference/track.md): Use this API to send custom events and associated metadata to Heap that we do not automatically capture, such as purchase information, email sent, and more. - [identify](https://developers.heap.io/reference/identify.md): This API allows you to attach a unique identity and maintain user histories across sessions, devices, and browsers under a single profile in Heap. - [addUserProperties](https://developers.heap.io/reference/adduserproperties.md): This API allows you to attach custom properties at the user level, such as user-level info from your database or demographic info. Note that these properties are stateless, and only the most recent value is stored. Heap will create a new property if it doesn’t already exist, and will overwrite the previous property value if one already exists with the same name. The client-side API allows you to add these custom user properties on identified and anonymous users. For best practices and use cases for managing identity, see our developer guide on [Using Identify](https://developers.heap.io/docs/using-identify). For a list of questions to consider when deciding what users to track, see the [Custom User Properties](https://help.heap.io/getting-started/setting-up-heap/enrich-your-dataset-via-apis/#custom-user-properties) section of the Setting Up Heap guide. Our Looker Actions integration allows you to quickly import property data into Heap. See the [Looker Actions Integration guide](https://help.heap.io/integrations/other/looker-actions-integration/) to learn more. - [addEventProperties](https://developers.heap.io/reference/addeventproperties.md): Use this API to send stateful information into Heap as a set of global key-value pairs that get attached to all of a user's subsequent events. - [userID](https://developers.heap.io/reference/userid-and-identity.md): Retrieve the current user’s ID. This API is read-only and is primarily used to [QA events With Live data feed](https://help.heap.io/define-analyze/data-management/qa-events-with-live-view/). - [identity](https://developers.heap.io/reference/identity.md): The current user’s identity, if identified. Use identity to link activity between Heap’s client-side and server-side track APIs. - [Server-side APIs Overview](https://developers.heap.io/reference/server-side-apis-overview.md) - [Track](https://developers.heap.io/reference/track-1.md): Use this API to send custom events to Heap server-side. We recommend using this for events that need to exactly match your backend, such as completed order transaction info, or events that are not available for Heap to capture on the client-side.

**NOTE: It is required that you use either the `identity` or `user_id` param, but not both.** - [Bulk Track](https://developers.heap.io/reference/bulk-track.md): If you have many custom track events to send at once, you can use this API. - [Identify](https://developers.heap.io/reference/identify-1.md): This API allows you to identify users given some anonymous user_id from the Heap SDK and some known identity, such as an email address. When this call is made, all events associated with the provided user_id are migrated to the user with the provided identity.

To protect the integrity of your data, we limit the number of identities mapped to a user_id to 1. We also limit the number of user_ids mapped to an identity to 10, over a one-month period.

As an example, if you send an identify request for user_id `123` and identity `susan`, we will drop a subsequent identify call for user_id `123` and identity `bill`. Likewise, if you send 10 identify calls with 10 different user_ids for identity `susan` in a one-month period, the 11th user_id for identity `susan` will be ignored. - [Add User Properties](https://developers.heap.io/reference/add-user-properties.md): This API allows you to attach custom properties to any identified users from your servers, such as Sign Up Date (in [ISO8601 format](https://help.heap.io/heap-administration/administration-faqs/what-format-do-i-use-to-send-time-as-a-data-type-into-heap/)), Total # Transactions Completed, or Total Dollars Spent.

Note that Heap will create a new property if it doesn’t already exist, and will overwrite the previous property if one already exists with the same name. If the identity does not exist in Heap, Heap will create it as a user but with no events. Once events come to the user with the same Identity, the two will be merged under one user profile.

Currently, `heap.AddUserProperties` calls cannot be named all casings of id (ID,Id,iD,id) as it clashes with internal variables.

Our Looker Actions integration allows you to quickly import property data into Heap. See the [Looker Actions Integration guide](https://help.heap.io/integrations/other/looker-actions-integration/) to learn more. - [Bulk Add User Properties](https://developers.heap.io/reference/bulk-add-user-properties.md): If you have many custom user properties to attach all at once, you can use this API. - [Add Account Properties](https://developers.heap.io/reference/add-account-properties.md): This API allows you to attach custom account properties to users. An account ID or use of our Salesforce integration is required for this to work. Note that, as your set of accounts and their properties change, you’ll need to periodically call this API with an account ID as well as any account-level properties. You will need to configure the Account ID setting before using this API to send your account data into Heap. Instructions to complete this and all of the other steps to analyze account data are available in the [Account Health Analysis](https://help.heap.io/analysis-examples/analysis-features/account-health-analysis/) guide. Our Looker Actions integration allows you to quickly import property data into Heap. See the [Looker Actions Integration guide](https://help.heap.io/integrations/other/looker-actions-integration/) to learn more. - [Bulk Add Account Properties](https://developers.heap.io/reference/bulk-add-account-properties.md): If you have many custom account properties to attach all at once, you can use this API. - [User Deletion (Delete API)](https://developers.heap.io/reference/user-deletion.md): Use this API to delete users from your Heap workspace. This API requires an auth token, which you can generate. ## Pages - [404](https://developers.heap.io/page/404.md)