Skip to content

Integrations ​

Integrations is where you connect Looma to your own systems through the public API — create API keys, manage outgoing webhooks, and find ready-made integrations. It lives in the sidebar (Owner and Administrator roles) and requires a plan that includes API access.

Who can use the API ​

The Integrations page is available to the Owner and Administrator roles only. On top of that, your plan must include the API access feature. If your current plan doesn't include it, or your subscription has expired, the page replaces the API tools with an upgrade prompt that links to Billing — pick or reactivate a plan with API access to unlock keys and webhooks. Everything below assumes the feature is active.

API keys ​

Open Integrations → API. The dark header at the top shows the Base URL of the API (https://api.looma.chat/v1/) with a Copy button and links to the documentation: Quick start, Authentication, Webhooks and Errors & limits. Below it, the Keys sub-tab lists your keys.

The API tab of Integrations: the dark "API & webhooks" header with the base URL https://api.looma.chat/v1/, a Copy button and four documentation links; below it the Keys sub-tab with a counter, the Create API Key button and a table of four keys — two Active with Edit and Revoke buttons, one Expired with only Revoke, and one greyed-out Revoked key

Click Create API Key and fill in:

  • Key name — an internal label so you can tell keys apart (for example "Production" or "My App").
  • Scopes — one card per scope with its name and code. All ten are ticked for a new key; Select all and Clear switch them in bulk. If you leave none selected, the key gets Full access.
  • Site access — All sites (no restriction) or Specific sites only, then tick the sites as chips.
  • Expiration — No expiration, 30 days, 90 days, 1 year or a Custom date picked in a calendar.

The Create API Key window: the Key name field, ten scope cards in two columns with four of them selected (Read leads, Write leads, Read chats, Read products), the Select all and Clear links, Site access switched to Specific sites only with one site chip selected, the Expiration options from No expiration to Custom date, and the Cancel and Create API Key buttons

The full key secret is shown only once, in the API Key Created window ("Copy this key now. You won't be able to see it again."), together with a First request example — copy it there and store it safely, then confirm with I have saved the key. Afterwards Looma only ever displays the key prefix (e.g. lm_xxx); the secret itself is stored as a hash and cannot be retrieved again. If you lose it, revoke the key and create a new one.

The keys table lists each key with its name and creation date, the key prefix (the first eight characters, such as lm_7Kq2a…), scopes (the first two plus a "+N" counter), sites, the Last used time (Never if the key was never used) and the status — Active, Revoked or Expired. From the row you can:

  • Edit an active key — change its name, scopes and sites. The expiration date cannot be changed after creation: create a new key instead.
  • Revoke it — this immediately disables all requests made with the key and cannot be undone. An expired key can still be revoked; a revoked key stays in the table greyed out.

Available scopes ​

Scopes control what an API key is allowed to do. Your developer picks the scopes their integration needs. A key with no scope restriction has Full access. Otherwise you grant a subset of these ten scopes:

  • leads:read — read captured leads.
  • leads:write — create or update leads.
  • chats:read — read chat sessions and messages.
  • chats:write — send messages and change chat state.
  • products:read — read the product catalogue.
  • visitors:read — read visitor events and sessions.
  • visitors:write — record visitor events.
  • sites:read — read site details. Channel endpoints are covered by this scope — there is no separate channels scope.
  • balance:read — read your credit balance.
  • webhooks:manage — create, edit, and delete webhooks via the API.

Webhooks ​

On the Webhooks sub-tab of Integrations → API you register endpoints that Looma calls when something happens in your account. Click Create Webhook and provide:

  • Endpoint URL — your server address, e.g. https://your-app.com/webhook.
  • Description — optional, for your own reference.
  • Select events to subscribe to — one card per event with a short explanation; all three are ticked for a new webhook.
  • Site filter — All sites or Specific sites only.

The Create Webhook window: the Endpoint URL and Description fields, three event cards (Lead created lead.created — selected, New chat session chat.started, New chat message chat.message.new) each with a one-line explanation, the Site filter set to All sites, and the Cancel and Create Webhook buttons

After creation the Webhook Created window shows the Signing secret — once only, like an API key — together with How to verify the signature. Copy it and confirm with I have saved the secret.

Each webhook row shows the endpoint, its events, the status (Active or Disabled, plus a red failure counter when recent deliveries failed) and the Last used time. The row buttons are:

  • Test — sends a sample delivery; a toast says "Test delivery succeeded" with the response time, or "Test delivery failed" with the reason (for example the HTTP code your server returned).
  • Deliveries — the log of recent attempts: event, status (success, failed or pending), the HTTP code your server returned, the response Time and the Date. A failed attempt with "—" in the HTTP column means your server did not answer at all.
  • Edit — change the URL, description, events, or switch the webhook off and back on. The site filter is set only at creation.
  • Delete — removes the webhook together with its whole delivery history.

The Webhooks sub-tab with two active webhooks — one showing a red "2 failures" counter — and their Test, Deliveries, Edit and Delete buttons; over it the Deliveries window with five attempts: two success with HTTP 200, a failed one with HTTP 500 after 1204 ms, a failed one with no response and a pending one

If your plan stops including API access or your subscription expires, the sub-tab shows the banner Events are not being delivered: webhooks keep the Active status but receive nothing until you upgrade or renew.

The signing details below are for the developer who builds your endpoint — you can hand this section to them.

Every delivery is signed so you can verify it really came from Looma. Looma sends a POST with these headers:

  • X-Looma-Event — the event name (e.g. lead.created).
  • X-Looma-Delivery — the unique delivery ID.
  • X-Looma-Timestamp — the Unix timestamp used in the signature.
  • X-Looma-Signature — sha256=<hmac>, where <hmac> is HMAC-SHA256(timestamp + "." + rawBody, webhook_secret).

To verify authenticity on your side: take the X-Looma-Timestamp value, concatenate it with . and the raw request body, compute HMAC-SHA256 with your webhook's secret, prefix the result with sha256=, and compare it (using a constant-time comparison) against X-Looma-Signature.

Webhook events ​

These are the three events you can subscribe a webhook to in the UI:

  • lead.created — a new lead is captured.
  • chat.started — a visitor opens a conversation.
  • chat.message.new — a new message is posted in a chat.

A single webhook can listen to any combination of these, and the site filter you set when creating the webhook restricts which sites trigger it.

Rate limits ​

The public API is rate-limited per key on a sliding one-minute window. Every API response carries three headers so you can pace your requests:

  • X-RateLimit-Limit — the maximum requests allowed in the window.
  • X-RateLimit-Remaining — how many requests you have left in the current window.
  • X-RateLimit-Reset — when the window resets.

The per-key limit is driven by your plan and key configuration rather than a fixed global number, so read the X-RateLimit-Limit header to learn the value that applies to a given key. When the limit is exceeded, requests are rejected until the window resets.

Ready-made integrations ​

The first top tab, Ready-made Integrations, is a catalog of prebuilt connectors to shop platforms, CRMs and automation services. Each card has a brand cover, country flags, capability tags, a short description, the number of your sites already connected (Sites connected: N) and a Set up connections button that opens the connector's own page.

The Ready-made Integrations tab: the country switch (All countries, Ukraine, Worldwide), capability chips with counters (All 7, Product catalog 3, Orders 2, Site pages 1, Leads 4) and seven cards — Horoshop, KeyCRM, SalesDrive, KeepinCRM, OpenCart, Zapier with a three-step guide and the Create API key and Open in Zapier buttons, and a greyed-out WooCommerce with the Coming soon badge and a disabled Configure button

ConnectorTypeTags on the cardGuide
HoroshopshopProduct catalog, OrdersDirect shop connection
OpenCartshopProduct catalog, Site pagesDirect shop connection
KeyCRMCRMLeadsKeyCRM
SalesDriveCRMLeadsSalesDrive
KeepinCRMCRMLeadsKeepinCRM
ZapierautomationLeadsZapier
WooCommerceshopProduct catalog, Ordersmarked Coming soon, its button is disabled

The tags show what a connector really does today: Product catalog (products come from the shop, no feed), Orders (orders reach your analytics), Site pages (shop pages are read) and Leads (Looma leads are delivered to a CRM as deals or orders, or start a Zap in Zapier).

The Zapier card works differently: there is nothing to connect on the Looma side, so instead of Set up connections it shows three steps, a Create API key button (opens the key form with the scopes Zapier needs already ticked) and Open in Zapier. See Zapier.

Filter the catalog ​

  • Country — All countries, Ukraine or Worldwide. Horoshop, KeyCRM, SalesDrive and KeepinCRM are marked Ukraine; OpenCart, Zapier and WooCommerce carry both flags.
  • Capability chips — All and one chip per tag, each with a live counter. A chip with no connectors in the chosen country is hidden.

The two filters combine, and the counters follow the selected country.

Full API reference ​

For endpoints, request and response schemas, and code examples, use the full API reference at docs.looma.chat — the same destination as the documentation banner on the API tab. Authenticate every request with your API key in the Authorization header as a Bearer token: Authorization: Bearer lm_xxx. Send the raw key (the full secret shown once at creation), not the prefix.

Looma.chat — AI-powered e-commerce search & chat