Overview
The iwy API provides everything you need to create and deploy conversational AI agents. There are two types of agents you can create:Single-Use Agents
Created via API, activated once, then expires. Perfect for personalized, per-session experiences.
Permanent Agents
Created via API or dashboard, reusable forever. Configure anytime at dashboard.iwy.ai.
Both types are production-ready and interchangeable. Use the same widgets and session APIs with either type. Choose based on your use case—many production systems use both.
Authentication
All API endpoints require a Bearer token.Base URL
Core Endpoints
These are the three endpoints you’ll use most often:| Endpoint | Purpose |
|---|---|
POST /ephemeral-agent | Create a single-use agent |
POST /agent | Create a permanent agent |
POST /start-agent-session | Start a video call session |
Using iwy widgets? The
<live-avatar> widget and meet.iwy.ai already call /start-agent-session for you automatically. You only need this endpoint if you’re building a custom integration with the Daily.co SDK.Single-Use vs Permanent Agents
What's the difference?
What's the difference?
Single-Use Agents are created through the API and can only be activated once. After their first session ends (or the TTL expires), the agent ID becomes invalid. They don’t appear in your dashboard.Permanent Agents persist in your account forever. The same agent ID can be used for unlimited sessions. You can edit them anytime at dashboard.iwy.ai or via the API.
| Feature | Single-Use | Permanent |
|---|---|---|
| Sessions per agent | 1 | Unlimited |
| Visible in dashboard | No | Yes |
| Editable after creation | No | Yes |
| Auto-expires | Yes (TTL) | No |
Which should I use?
Which should I use?
Both are production-ready. Choose based on your architecture:
Many production systems use both: permanent agents for core experiences, single-use agents for personalization.
| Use Case | Recommended |
|---|---|
| Same agent for all users | Permanent |
| Personalized agent per user/session | Single-Use |
| Want to edit config in dashboard | Permanent |
| Config generated from your database | Single-Use |
| White-label / multi-tenant apps | Single-Use |
| Quick prototyping and testing | Permanent |
Can I use them interchangeably?
Can I use them interchangeably?
Yes! Both agent types work identically with:
- All iwy widgets (
<live-avatar>, etc.) - meet.iwy.ai hosted pages
- The
/start-agent-sessionAPI - Tool integrations
What happens after a single-use agent is activated?
What happens after a single-use agent is activated?
Once a session starts with a single-use agent:
- The agent becomes “active” for that session
- When the session ends, the agent expires immediately
- Any further attempts to use that agent ID will fail
How do I convert between types?
How do I convert between types?
You can’t convert directly, but you can reuse configurations:
- Single-Use → Permanent: Use the same
configurationobject withPOST /agent - Permanent → Single-Use: Fetch config with
GET /agent/{id}, then use it withPOST /ephemeral-agent
Single-Use Agents
Create dynamic agents that activate once and then expire. Ideal for personalized, per-session experiences.Create Single-Use Agent
Creates an agent that can be activated once, then expires.
Agent configuration including LLM, TTS, and video settings.
Maximum time (in seconds) before the agent expires if not activated. Common values: 600 (10 min), 3600 (1 hour), 86400 (24 hours).
Permanent Agents
Create reusable agents that persist in your account. Configure them anytime at dashboard.iwy.ai or via the API.Create Permanent Agent
Creates a reusable agent that persists in your account.
Human-readable name for the agent (visible in dashboard)
Visibility status:
draft, private, or publicAgent configuration (same structure as single-use agents, plus additional options)
https://meet.iwy.ai/YOUR_AGENT_ID
Sessions
Start video call sessions with your agents.Start Agent Session
Starts a video call session with an agent. Returns Daily.co connection details.
Agent UUID (works with both single-use and permanent agents), or
"demo" for a demo session| Method | When to use |
|---|---|
<live-avatar> widget | Recommended for most integrations |
| meet.iwy.ai link | Share a direct link to your agent |
Daily.co SDK with roomUrl + dailyToken | Custom video UI implementations |
webLink | Browser-based access without SDK |
Advanced Endpoints
These endpoints provide additional management capabilities for permanent agents and tools.Permanent Agent Management
| Endpoint | Method | Description |
|---|---|---|
/agent | GET | List all permanent agents |
/agent/{id} | GET | Get agent configuration |
/agent/{id} | PATCH | Update agent settings |
/agent/{id} | DELETE | Delete agent permanently |
List All Agents
List All Agents
Get Agent Details
Get Agent Details
Update Agent
Update Agent
Delete Agent
Delete Agent
Tools
Tools are custom functions that extend your agent’s capabilities via webhooks.| Endpoint | Method | Description |
|---|---|---|
/tool | GET | List all tools |
/tool | POST | Create a new tool |
/tool/{id} | GET | Get tool configuration |
/tool/{id} | PATCH | Update tool settings |
/tool/{id} | DELETE | Delete tool |
/tool/{id}/test | POST | Test tool execution |
Create Tool
Create Tool
Test Tool
Test Tool
Error Responses
All endpoints return consistent error responses:| Status | Description |
|---|---|
400 | Bad request - validation failed |
401 | Unauthorized - invalid or missing API key |
404 | Not found - resource doesn’t exist |
408 | Request timeout |
500 | Internal server error |
Quick Reference
Core Endpoints
| Endpoint | Method | Description |
|---|---|---|
/ephemeral-agent | POST | Create single-use agent |
/agent | POST | Create permanent agent |
/start-agent-session | POST | Start video session (called automatically by widgets) |
Management Endpoints
| Endpoint | Method | Description |
|---|---|---|
/agent | GET | List permanent agents |
/agent/{id} | GET | Get agent details |
/agent/{id} | PATCH | Update agent |
/agent/{id} | DELETE | Delete agent |
/tool | GET | List tools |
/tool | POST | Create tool |
/tool/{id} | GET | Get tool details |
/tool/{id} | PATCH | Update tool |
/tool/{id} | DELETE | Delete tool |
/tool/{id}/test | POST | Test tool |