Buddy Docs Open Studio

Quickstart Examples

Copy-paste starting points. Replace tokens and URLs with your own.

1. Embed & authenticate (browser)

<script src="https://buddy.ui.pe/app/embed.js" data-token="SHARE_TOKEN" defer></script>
<script>
  // After your app knows who the user is:
  window.addEventListener('DOMContentLoaded', async () => {
    const token = await fetch('/api/me/buddy-token').then(r => r.text());
    window.BuddyWidget.setAuthToken(token);
  });
</script>

2. Mint a JWT (Node)

import jwt from 'jsonwebtoken';
export function buddyToken(user) {
  return jwt.sign(
    { sub: user.id, email: user.email, role: user.role },
    process.env.PRIVATE_KEY,
    { algorithm: 'RS256', expiresIn: '5m', issuer: process.env.ISSUER }
  );
}

3. Sign a session token (Python)

import base64, hmac, hashlib, json, time

def buddy_token(user, secret):
    payload = {"userId": user["id"], "email": user["email"], "role": user["role"],
               "iat": int(time.time()), "exp": int(time.time()) + 300}
    body = base64.urlsafe_b64encode(json.dumps(payload).encode()).rstrip(b"=")
    sig = base64.urlsafe_b64encode(
        hmac.new(secret.encode(), body, hashlib.sha256).digest()).rstrip(b"=")
    return body.decode() + "." + sig.decode()

4. Handle an injected user (your API)

// The Business API tool calls your endpoint with verified identity headers.
app.get('/orders/recent', (req, res) => {
  const userId = req.get('X-Platform-User-Id');   // trustworthy — set by Buddy
  if (!userId) return res.status(401).end();
  res.json({ orders: ordersFor(userId) });
});

Verify it instantly in the live test console.