FruxonDocs
Agent NetworkParticipants

Dry-run dispatch — tests a single (integration config, address) tuple through the full sender pipeline without requiring a persisted participant.

Sends a real test message to an address before saving a participant. Validates the address against the integration's format first; invalid addresses return 400 with a format hint. No participant binding is required and no participant audit record is created.

POST
/v1/tenants/{tenant}/participants:dryRunSend
AuthorizationBearer <token>

JWT Authorization header using the Bearer scheme. Enter 'Bearer' [space] and then your token.

In: header

Path Parameters

tenant*string

The tenant identifier

integrationConfigId*string

The TenantIntegrationConfig to send through (decrypted server-side).

Formatuuid
address*string

The provider-native destination address (chat_id, channel id, phone, …).

Length1 <= length <= 4000
message*string

Text to dispatch. Required — a dry-run still hits the provider. Keep it short and obviously a test so a real chat doesn't surface a stray "fruxon test" message in production conversations.

Length1 <= length <= 4000
[key: string]?never

Response Body

curl -X POST "https://api.fruxon.com/v1/tenants/string/participants:dryRunSend" \  -H "Content-Type: application/json" \  -d '{    "integrationConfigId": "928c9032-93b2-49a3-82db-be1a31402d0e",    "address": "string",    "message": "string"  }'
{
  "outcome": "NO_CHANNEL",
  "providerMessageId": "string",
  "errorCode": "string",
  "errorMessage": "string"
}
{
  "type": "string",
  "title": "string",
  "status": 0,
  "detail": "string",
  "instance": "string",
  "property1": null,
  "property2": null
}
Empty
Empty
{
  "type": "string",
  "title": "string",
  "status": 0,
  "detail": "string",
  "instance": "string",
  "property1": null,
  "property2": null
}