EmbedChat.io Documentation
Welcome to the developer documentation. Learn how to integrate, customize, and extend EmbedChat.io using our modern 2025 stack.
Modern Architecture
Our SaaS is built on a high-performance, type-safe stack designed for scalability in 2025.
Async Python Core
Built with FastAPI and Python 3.11+, utilizing full async/await support for high-throughput concurrency.
Clean Architecture
Strict separation of concerns:routers → services → crud → models.

Shopify App Integration
Our Shopify integration uses the OAuth 2.0 flow to securely connect merchants' stores.
Installation Flow
- 1
Initiate Install
Merchant clicks "Add App" in Shopify App Store. - 2
HMAC Verification
Request hits/api/v1/integrations/shopify/install. We verify the HMAC signature to ensure the request is from Shopify. - 3
OAuth Redirect
User is redirected to the Shopify authorization screen to grant scopes (e.g.,read_products). - 4
Token Exchange
Callback to/shopify/callbackexchanges the code for a permanent access token.
@router.get("/shopify/callback")
async def shopify_callback(
code: str,
shop: str,
hmac: str
):
# 1. Verify HMAC
if not verify_hmac(request.query, secret):
raise HTTPException(400)
# 2. Exchange code for token
token = await exchange_token(shop, code)
# 3. Register Webhooks
await register_webhooks(shop, token)
# 4. Redirect to Dashboard
return RedirectResponse("/dashboard")Webhook Compliance
We handle mandatory GDPR webhooks to ensure data privacy compliance.
Widget Installation
The widget is a lightweight, asynchronous JavaScript bundle that can be installed on any website.
</body> tag.<script>
(function(){
var s = document.createElement('script');
s.src = "https://embedchat.io/widget.js";
s.async = true;
s.setAttribute('data-org', 'YOUR_ORG_ID_HERE');
document.body.appendChild(s);
})();
</script>The widget loads asynchronously (async=true) so it never blocks your page render or affects Core Web Vitals.
All styles are encapsulated within a Shadow DOM to prevent conflicts with your existing site's CSS.
Last updated: December 2025
Go to Installation Settings