Soft-pauses the participant
Sets the participant's `DisabledAt` timestamp. While disabled: inbound resolution skips them (the message will fall through to the connector-level policy / not match an agent), and outbound dispatch returns `DispatchOutcome.Disabled` distinct from the misconfig- flavored `NoChannel`. Agent bindings and channels are preserved so enabling restores the prior state without re-wiring. Returns 404 when the participant does not exist; re-disabling is a no-op (the original timestamp is kept).
Authorization
Bearer JWT Authorization header using the Bearer scheme. Enter 'Bearer' [space] and then your token.
In: header
Path Parameters
The participant identifier.
uuidThe tenant identifier
Response Body
curl -X POST "https://api.fruxon.com/v1/tenants/string/participants/497f6eca-6276-4993-bfeb-53cbbbba6f08:disable"{
"id": "00000000-0000-0000-0000-000000000000",
"kind": "PERSON",
"displayName": "string",
"email": "string",
"relatedAgentId": "string",
"channels": [
{
"integrationConfigId": "00000000-0000-0000-0000-000000000000",
"address": "string",
"priority": 0,
"label": "string",
"disabled": false
}
],
"agentIds": [
"string"
],
"disabledAt": 0,
"health": {
"reachable": false,
"channels": [
{
"address": "string",
"reason": null,
"keyStatus": "UNSPECIFIED",
"keyPrefix": "string",
"lastMessageAt": null
}
],
"reason": "INVALID_FORMAT"
},
"channelActivations": [
{
"agentId": "string",
"bindingId": "00000000-0000-0000-0000-000000000000",
"integrationConfigId": "00000000-0000-0000-0000-000000000000",
"provider": "string",
"address": "string",
"webhookUrl": "string",
"webhookUrlTemplate": "string",
"webhookKeyPrefix": "string",
"scope": "PER_BINDING"
}
],
"avatarFileId": "string",
"avatarSource": "UPLOADED",
"avatarSourceConfigId": "00000000-0000-0000-0000-000000000000",
"avatarSourceAddress": "string",
"avatarSyncedAt": 0,
"avatarAutoSync": {
"synced": false,
"provider": "string",
"address": "string"
},
"createdAt": 0,
"modifiedAt": 0
}{
"type": "string",
"title": "string",
"status": 0,
"detail": "string",
"instance": "string",
"property1": null,
"property2": null
}Deletes a participant and all its bindings.
Permanently removes the participant along with every agent binding attached to it. The delete does not cascade to the agents themselves. Returns 404 when the participant does not exist.
Dry-run dispatch — tests a single (integration config, address) tuple through the full sender pipeline without requiring a persisted participant.
Drives the participant dialog's "Try this address" affordance so the operator confirms a Telegram chat_id / Slack channel id / phone number actually works *before* saving the row. The address is validated against the integration's `AddressFormat` descriptor (Phase 4a) first; format mismatches surface as 400 with the descriptor's hint. A real provider call follows on valid addresses — the operator should send a brief test message. No audit row is written (no participant id to attach it to) and no agent binding gate applies — this is purely a dispatch smoke test.