ZemKit
ProductSolutionsDevelopersPricingBlog
Book a demo
ZemKit

One agent config. Every channel your customers actually use. Trained on your knowledge base, escalated to humans when it matters.

Product

  • Channels
  • Knowledge base
  • Agents & tools
  • Handoff

Solutions

  • Clinics
  • Agencies
  • SaaS support

Developers

  • Embed snippets
  • Chat API
  • Custom skills

Company

  • Pricing
  • Blog
  • Book a demo
  • Contact

© 2026 ZemKit. All rights reserved.

PrivacyTermsSecurity
Developers

Ship an agent in an afternoon.

Copy, paste, done. When you need more control, the APIs are waiting for you — but you probably won't need them on day one.

Embed

One script tag per channel.

No SDK to install. No build step. Grab the snippet from your dashboard and paste it into your site.

Chat widget

html
<script
  src="https://cdn.zemkit.com/widget.js"
  data-embed-key="YOUR_EMBED_KEY"
  data-position="bottom-right"
  defer
></script>

Video avatar

html
<script
  src="https://cdn.zemkit.com/avatar.js"
  data-embed-key="YOUR_EMBED_KEY"
  data-background="lobby"
  defer
></script>

Voice call

html
<script
  src="https://cdn.zemkit.com/voice.js"
  data-embed-key="YOUR_EMBED_KEY"
  data-launch="floating-button"
  defer
></script>

All in one

html
<script
  src="https://cdn.zemkit.com/hybrid.js"
  data-embed-key="YOUR_EMBED_KEY"
  data-modes="chat,voice,avatar"
  defer
></script>
Chat API

A familiar API. Zero surprises.

Our chat API follows the industry-standard shape you already know. Any client that talks to OpenAI's chat completions works with ZemKit — point it at your agent, done.

  • · Streaming responses by default
  • · Works with any language and SDK
  • · Knowledge, guardrails, and skills applied automatically
  • · Rate limits and usage in your dashboard

Point any SDK at your agent

python
from openai import OpenAI

client = OpenAI(
    base_url="https://api.zemkit.com/agents/YOUR_EMBED_KEY",
    api_key="YOUR_API_KEY",
)

stream = client.chat.completions.create(
    model="agent",
    messages=[{"role": "user", "content": "What are your hours?"}],
    stream=True,
)

for chunk in stream:
    print(chunk.choices[0].delta.content or "", end="")
Custom skills

Teach your agent new tricks.

Add your own actions — look up an order, check inventory, hit your CRM. The agent decides when to use them.

Define a skill

json
{
  "name": "book_appointment",
  "description": "Books a slot on the calendar.",
  "parameters": {
    "type": "object",
    "required": ["slot", "customer_name"],
    "properties": {
      "slot": { "type": "string", "format": "date-time" },
      "customer_name": { "type": "string" },
      "notes": { "type": "string" }
    }
  }
}

Built-in skills

Enable these with a toggle. No code required.

  • Calendar availability

    Reads live availability from your connected calendar.

  • Book appointment

    Reserves a slot, sends the invite, notifies your team.

  • Human handoff

    Escalates to a person with the full transcript attached.

  • End call

    Wraps up voice and phone calls cleanly.

Want a private preview of the docs?

We're rolling docs out to teams on the beta. Ask for access.

Request access