Kyndreddocs

Platform Integrations

Build your own creator platform on top of Kyndred. Your users create companions through your UI; Kyndred powers the backend.

When you need this

  • You're building a marketplace where creators make companions
  • You have an existing product and want to add AI companions without sending users to kyndred.dev
  • You want white-label companion creation on your own domain

How it works

Your platform has ONE Kyndred API key. All companions created through your platform are owned by your Kyndred account — usage rolls up to one bill.

To keep your users' companions separate, tag each companion with your own identifiers using the metadata field — then filter by those tags when listing. Kyndred never interprets metadata; it's opaque data for your platform to organize companions however you like.

Setup

1

Create an API key

From kyndred.dev/app/api-keys. Save it in your platform's server environment. Never expose it to clients.

2

Create companions with metadata

Tag each companion with whatever identifiers your platform uses:

// Your platform backend
async function createCompanionForUser(platformUser, form) {
  const res = await fetch('https://kyndred.dev/api/companions', {
    method: 'POST',
    headers: {
      'Authorization': `Bearer ${process.env.KYNDRED_API_KEY}`,
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({
      name: form.name,
      system_prompt: form.personality,
      voice_id: form.voice_id,
      metadata: {
        user_id: platformUser.id,          // your own user ID
        workspace: platformUser.workspace, // whatever you need
        plan: platformUser.plan,
      },
    }),
  });
  return res.json();
}
ts

Metadata can be any JSON object. Use whatever keys make sense for your platform.

3

List a specific user's companions

Filter by any metadata field using metadata.{key}={value} query params:

curl 'https://kyndred.dev/api/companions?metadata.user_id=alice_123' \
  -H "Authorization: Bearer $KYNDRED_API_KEY"
bash

Returns only companions where user_id is alice_123. Combine multiple filters to narrow down: ?metadata.workspace=team-42&metadata.plan=pro.

4

Embed the companion in your product

Use the returned embed token with any standard embed option:

<iframe
  src="https://kyndred.dev/embed/${companion.embed_tokens[0].token}"
  allow="microphone"
  style="width: 100%; height: 600px; border: none;">
</iframe>
html
5

Show the voice catalog

Fetch the curated voice catalog in your UI for users to pick from:

const voices = await fetch('https://kyndred.dev/api/voices').then(r => r.json());
// [{ voice_id, name, description, preview_url, languages, tags }]
ts

Billing

Your API key is billed for all usage across all companions it creates. How you charge your own users is up to you — absorb it, pass it through, or mark it up.

Track per-key usage at GET /api/usage.

Voice architecture

Voice runs through a provider adapter — today ElevenLabs ConvAI, in the future our custom pipeline. The API surface doesn't change. Your platform picks a voice_id from the catalog; Kyndred handles the rest. See SDK Reference.