FruxonDocs
ApiParticipants

Creates a participant and optionally binds it to a set of agents atomically.

Creates the participant together with its channels and any initial agent bindings supplied in the request — all in one transaction, so a participant is never persisted half-bound. `Kind` is fixed at creation: switching a participant between Person, Group, and AI Agent requires recreating it.

POST
/v1/tenants/{tenant}/participants
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

kind?string

What sort of entity a Fruxon.Model.Participants.Participant represents. The Agent Network treats all three uniformly — they're the "things that talk to agents" — but the kind disambiguates UX and downstream routing rules.

Value in"UNSPECIFIED" | "PERSON" | "GROUP" | "AI_AGENT"
displayName*string
Length1 <= length <= 150
email?string|null
Lengthlength <= 4000
relatedAgentId?string|null
avatarFileId?string|null

Operator-uploaded avatar file id (in platform storage). Optional; AI-agent participants without one fall back to the backing agent's avatar at projection time.

channels?|null
agentIds?|null

Agents to bind to this participant on creation. May be empty.

[key: string]?never

Response Body

curl -X POST "https://api.fruxon.com/v1/tenants/string/participants" \  -H "Content-Type: application/json" \  -d '{    "displayName": "string"  }'
{
  "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",
  "createdAt": 0,
  "modifiedAt": 0
}
{
  "type": "string",
  "title": "string",
  "status": 0,
  "detail": "string",
  "instance": "string",
  "property1": null,
  "property2": null
}
Empty
Empty