API-Referenz / Web widget
Web widget
Die Endpoints der Gruppe Web widget der Voiceland AI API, mit Parametern, Schemata und Beispielen mit curl.
Zuletzt aktualisiert:
Die Beschreibungen der Endpoints und der Felder erscheinen auf Englisch, genau so, wie die API sie ausliefert. Das ist Absicht: Sie lesen hier, was Sie auch in den Antworten sehen.
GET /v1/agents/{name}/share-links#
List test links. Public "try this agent" links for one agent: pages we host at /try/{token} that embed the agent's web widget, so you can hand a reviewer a URL instead of an embed snippet. Each carries its url, how many sessions it has spent, and a status of active, expired, exhausted or revoked.
Parameter
| Name | Ort | Typ | Erforderlich | Beschreibung |
|---|---|---|---|---|
name |
path |
string | Ja | Agent name. |
Antworten
| Code | Beschreibung |
|---|---|
200 |
Success. |
401 |
Missing or invalid API key. |
4XX |
Request error (validation, not-found, etc.). |
5XX |
Server or upstream error. |
Beispielanfrage
curl "https://api.voiceland.ai/v1/agents/{name}/share-links" \
-H "Authorization: Bearer VL_API_KEY"
Beispielantwort
{
"items": [
{
"agent": "front-desk",
"created_at": "2026-09-14T12:00:00Z",
"expires_at": "2026-09-17T12:00:00Z",
"label": "for the reviewer",
"last_used_at": "2026-09-14T15:20:00Z",
"max_sessions": 20,
"revoked": false,
"sessions_used": 3,
"status": "active",
"token": "k3JqTz9wY1n8Qb2vXm5LpR0e",
"url": "https://api.voiceland.ai/try/k3JqTz9wY1n8Qb2vXm5LpR0e"
}
]
}
POST /v1/agents/{name}/share-links#
Create a test link. Mints an unguessable link that hosts this agent's web widget on our domain. Anyone with the URL can talk to the agent, so the link expires (expires_in_hours, default 168, at most 720; or no_expiry: true for a link that only revocation or the cap ends), is capped (max_sessions, default 50, at most 1000) and can be revoked. Every session it mints spends your minutes under your own rate limit and concurrency cap, exactly like a session from your site; the token only widens who can reach the agent. The agent's web widget must be enabled.
Anfragetext
application/json Schema: WidgetShareRequest
| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
expires_in_hours |
integer | ||
label |
string | ||
max_sessions |
integer | ||
no_expiry |
boolean |
Antworten
| Code | Beschreibung |
|---|---|
201 |
Created. Send url to the person who should try the agent. |
401 |
Missing or invalid API key. |
409 |
widget_disabled, enable the web widget on the agent first; a test link is a hosted copy of it. |
4XX |
Request error (validation, not-found, etc.). |
5XX |
Server or upstream error. |
Beispielanfrage
curl -X POST "https://api.voiceland.ai/v1/agents/{name}/share-links" \
-H "Authorization: Bearer VL_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"expires_in_hours": 72,
"label": "for the reviewer",
"max_sessions": 20
}'
Eine erfolgreiche Antwort liefert ein WidgetShareView.
Beispielantwort
{
"agent": "front-desk",
"created_at": "2026-09-14T12:00:00Z",
"expires_at": "2026-09-17T12:00:00Z",
"label": "for the reviewer",
"last_used_at": "2026-09-14T15:20:00Z",
"max_sessions": 20,
"revoked": false,
"sessions_used": 3,
"status": "active",
"token": "k3JqTz9wY1n8Qb2vXm5LpR0e",
"url": "https://api.voiceland.ai/try/k3JqTz9wY1n8Qb2vXm5LpR0e"
}
DELETE /v1/agents/{name}/share-links/{token}#
Revoke a test link. Withdraws the link at once: the hosted page answers 404 and no further session can be minted with it. Sessions already running are unaffected.
Parameter
| Name | Ort | Typ | Erforderlich | Beschreibung |
|---|---|---|---|---|
name |
path |
string | Ja | Agent name. |
token |
path |
string | Ja | The link's token (the last path segment of its url). |
Antworten
| Code | Beschreibung |
|---|---|
204 |
Revoked. |
401 |
Missing or invalid API key. |
4XX |
Request error (validation, not-found, etc.). |
5XX |
Server or upstream error. |
Beispielanfrage
curl -X DELETE "https://api.voiceland.ai/v1/agents/{name}/share-links/{token}" \
-H "Authorization: Bearer VL_API_KEY"
Schemata#
Error#
Error envelope returned for non-2xx responses.
| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
error |
object | Ja |
WidgetShareRequest#
| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
expires_in_hours |
integer | ||
label |
string | ||
max_sessions |
integer | ||
no_expiry |
boolean |
WidgetShareView#
| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
agent |
string | Ja | |
created_at |
string (date-time) | Ja | |
expires_at |
string (date-time) | Ja | |
label |
string | ||
last_used_at |
string (date-time) | When a session was last minted with the link. | |
max_sessions |
integer | Ja | |
revoked |
boolean | Ja | |
revoked_at |
string (date-time) | ||
sessions_used |
integer | Ja | Sessions minted so far; taken atomically at mint time. |
status |
string | Ja | |
token |
string | Ja | The unguessable id of the link; the last path segment of url. |
url |
string | Ja |