Skip to content

Sharing ​

Endpoints for letting people outside your workspace talk to a published agent. See Share an Agent for Testing for how the two modes differ. All endpoints here need a secret API key or a Studio session; publishable keys get 403.

Testers ​

Email invites, one per person. Each tester gets a free-minute allowance billed to your workspace.

List Testers ​

GET/v1/agents/:id/testers

Returns the agent's invites, the public link (link, or null), whether the deployment has share links on (link_feature), and agent_uses_owner_keys. When that last field is true, every tester needs at least 1 free minute.

Invite a Tester ​

POST/v1/agents/:id/testers
FieldTypeRequiredDefaultDescription
emailstringYes-The tester signs in with this address
minutes_limitintegerNo0Free minutes, 0 to 600. 0 means the tester pays from the start
expires_atISO dateNonullWhen the invite stops working. Must be in the future
bash
curl -X POST https://api.rymi.live/v1/agents/3a07...agent/testers \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "email": "officer@example.gov.in", "minutes_limit": 30 }'

Response 201: { "tester": { ... }, "invite_sent": true }. invite_sent: false means Rymi created the invite but the email didn't go out; use Resend.

Update a Tester ​

PATCH/v1/agents/:id/testers/:testerId

Send minutes_limit and/or expires_at. Changing minutes_limit also clears a pending "ask for more minutes" request.

Resend the Invite ​

POST/v1/agents/:id/testers/:testerId/resend

You can resend once a minute.

Revoke a Tester ​

DELETE/v1/agents/:id/testers/:testerId

Returns 204. The tester loses access at once.

Errors ​

StatusCodeMeaning
400invalid_tester_inputBad email, minutes outside 0 to 600, or an expiry in the past
400free_minutes_requiredThe agent runs on your own provider keys, so give at least 1 free minute
403-Publishable keys can't manage testers
404-Agent or tester not found
409tester_limit_reachedThe agent already has 50 active testers
409tester_already_invitedThis email already has an active invite for the agent
429tester_resend_cooldownWait a minute before resending
502tester_invite_send_failedThe email didn't send; try again

One link per agent. Anyone with the URL can talk to the published agent from a browser, on a pool of free minutes billed to your workspace.

PUT/v1/agents/:id/share-link

The first call creates the link. Later calls change only the fields you send.

FieldTypeDefaultRangeDescription
enabledboolean--Turn the link on or off. Off keeps the URL for later
minutes_limitinteger300 to 6,000Total free minutes shared by everyone
max_call_secondsinteger30060 to 1,800Cap on one call
max_concurrentinteger21 to 10Calls running at once
calls_per_ip_hourinteger31 to 30Calls from one network per hour
bash
curl -X PUT https://api.rymi.live/v1/agents/3a07...agent/share-link \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "enabled": true, "minutes_limit": 120 }'
ts
const { link } = await rymi.agents.setShareLink("3a07...agent", { enabled: true, minutes_limit: 120 });
console.log(link.url);
python
link = rymi.agents.set_share_link("3a07...agent", enabled=True, minutes_limit=120)["link"]
print(link["url"])

Response 200 ​

json
{
  "link": {
    "id": "c2de...",
    "url": "https://studio.rymi.live/s/7lh15TLC4VcY...",
    "enabled": true,
    "minutes_limit": 120,
    "minutes_used": 4,
    "minutes_reserved": 0,
    "minutes_remaining": 116,
    "live_calls": 0,
    "max_call_seconds": 300,
    "max_concurrent": 2,
    "calls_per_ip_hour": 3,
    "minutes_requested_at": null
  }
}

minutes_requested_at is set when a visitor asked for more minutes. Raising minutes_limit clears it.

Read link from List Testers. Node: rymi.agents.getShareLink(id). Python: rymi.agents.get_share_link(id).

POST/v1/agents/:id/share-link/regenerate

Issues a new URL and returns the same shape as above. The old URL stops working at once. Node: rymi.agents.regenerateShareLink(id). Python: rymi.agents.regenerate_share_link(id).

Errors ​

StatusMeaning
400A setting is out of range or the wrong type
403Publishable keys can't manage links
404Agent not found, share links are off on this deployment, or (regenerate) the agent has no link yet

Visitors on the link page can hit these: 409 share_link_off, 409 share_link_unpublished, 409 share_link_pool_empty, 409 share_link_busy (all max_concurrent slots in use) and 429 share_link_rate_limited.

MCP: get_share_link, set_share_link, regenerate_share_link.