Riferimento API / Web widget
Web widget
Gli endpoint del gruppo Web widget dell'API Voiceland AI, con parametri, schemi ed esempi curl.
Ultimo aggiornamento:
Le descrizioni degli endpoint e dei campi restano in inglese, esattamente come le pubblica l'API. È una scelta voluta: qui legge ciò che vedrà anche nelle risposte.
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.
Parametri
| Nome | Posizione | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|---|
name |
path |
string | Sì | Agent name. |
Risposte
| Codice | Descrizione |
|---|---|
200 |
Success. |
401 |
Missing or invalid API key. |
4XX |
Request error (validation, not-found, etc.). |
5XX |
Server or upstream error. |
Esempio di richiesta
curl "https://api.voiceland.ai/v1/agents/{name}/share-links" \
-H "Authorization: Bearer VL_API_KEY"
Esempio di risposta
{
"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.
Corpo della richiesta
application/json Schema: WidgetShareRequest
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
expires_in_hours |
integer | ||
label |
string | ||
max_sessions |
integer | ||
no_expiry |
boolean |
Risposte
| Codice | Descrizione |
|---|---|
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. |
Esempio di richiesta
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
}'
Una risposta riuscita restituisce un WidgetShareView.
Esempio di risposta
{
"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.
Parametri
| Nome | Posizione | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|---|
name |
path |
string | Sì | Agent name. |
token |
path |
string | Sì | The link's token (the last path segment of its url). |
Risposte
| Codice | Descrizione |
|---|---|
204 |
Revoked. |
401 |
Missing or invalid API key. |
4XX |
Request error (validation, not-found, etc.). |
5XX |
Server or upstream error. |
Esempio di richiesta
curl -X DELETE "https://api.voiceland.ai/v1/agents/{name}/share-links/{token}" \
-H "Authorization: Bearer VL_API_KEY"
Schemi#
Error#
Error envelope returned for non-2xx responses.
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
error |
object | Sì |
WidgetShareRequest#
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
expires_in_hours |
integer | ||
label |
string | ||
max_sessions |
integer | ||
no_expiry |
boolean |
WidgetShareView#
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
agent |
string | Sì | |
created_at |
string (date-time) | Sì | |
expires_at |
string (date-time) | Sì | |
label |
string | ||
last_used_at |
string (date-time) | When a session was last minted with the link. | |
max_sessions |
integer | Sì | |
revoked |
boolean | Sì | |
revoked_at |
string (date-time) | ||
sessions_used |
integer | Sì | Sessions minted so far; taken atomically at mint time. |
status |
string | Sì | |
token |
string | Sì | The unguessable id of the link; the last path segment of url. |
url |
string | Sì |