Widget identify routes
Use these when your product or backend needs to push end-user, contact, or company context into HAL for a visitor session.
The API is the lowest-level integration surface. Use it for project data, workflow updates, and customer records when you are integrating HAL into your own backend.
https://api.chatwithhal.com/apiHAL exposes more than one HTTP surface, so the authentication method depends on which route family you are calling.
/api/widget/* is designed for customer-facing widget flows and uses project identification plus visitor identity input/api/* account routes use bearer-token authentication for signed-in HAL users and first-party backends/api/v1/* public integration routes use X-API-KeyAuthorization: Bearer YOUR_TOKEN
X-API-Key: YOUR_API_KEYUse these when your product or backend needs to push end-user, contact, or company context into HAL for a visitor session.
Use these when a signed-in HAL workspace owner or internal backend is managing records directly.
Use these for external integrations that need conversations and contacts through /api/v1.
If your goal is to send custom contact or company information from your app into HAL, use the widget-facing identify flow rather than the current /api/v1 surface.
The current public API key routes cover conversations and contacts, but they do not yet expose visitor/company metadata write endpoints. For customer identity and CRM enrichment tied to a widget visitor, see the visitor API details and widget identification docs.
That widget route family also includes CRM write endpoints such as POST /api/widget/set-stage and POST /api/widget/set-deal, which back window.HalWidget.setStage(...) and window.HalWidget.setDeal(...) in the browser widget.
Push or sync data between HAL and the rest of your stack when the built-in UI is not enough.
Wire up internal tools, admin panels, or provisioning systems to the same project data HAL uses.
Use the API when you need system-to-system actions beyond the approval-gated Manager experience.
If you are connecting an external AI client and want tool-style access rather than raw REST integration, use the hosted HTTP MCP endpoint instead of building your own orchestration on top of the REST API.
Use MCP for AI clients, OAuth for delegated access, and the widget for customer-facing entry points.