# Create Participant

# Overview
This API allow you to register participant
New Account API process flow: Authenticiation > Client Application > **Participant** > Channel > Orchestration > Account
## Scope
Client application must have 'app.conversation.conversationmgr.manage' scope assigned.

Endpoint: POST /participants
Security: oAuthClient

## Description:

  - `Overview` ()
    This API allow you to register participantNew Account API process flow: Authenticiation > Client Application > Participant > Channel > Orchestration > Account

  - `Scope` ()
    Client application must have 'app.conversation.conversationmgr.manage' scope assigned.

## Security:

  - `oAuthClient` (unknown)
    oauth2 scopes: https://api-qe1.ezdev.net/auth/.default

## Request body:

  - `application/json` (unknown)
    Create participant

## Request fields (application/json):

  - `name` (string, required)
    Unique name for participant

  - `type` (string, required)
    Type of participant. eGain Bot participants are created automatically when bot is created in eGain VA application.
    Enum: "custom_bot", "egain_bot"

  - `description` (string)

  - `active` (boolean)

  - `application` (object, required)

  - `application.id` (string, required)
    ID to clientApplication, messages for this participant are sent to call back url registered in this client application
    Example: d987d07a-d59c-11ea-87d0-0242ac130001

  - `intents` (object)
    Intents supported by bot.

  - `intents.intent` (array, required)

  - `intents.intent.value` (string, required)
    Internal value for intent.

  - `intents.intent.displayValue` (string, required)
    Display value for intent.

  - `options` (array)

  - `options.name` (string, required)
    name of attribute

  - `options.value` (string, required)
    value of attribute

## Request examples:

  - `Participants with Intent` (unknown)

  - `Participants without Intent` (unknown)

## Response 201:

  - `201` (unknown)
    Created

## Response 201 fields (application/json):

  - `id` (string)
    UUID generated for the object.

## Response 400:

  - `400` (unknown)
    Bad Request

## Response 400 fields (application/json):

  - `code` (string, required)
    String that follow the pattern {integer}-{integer}.
* The first part is http status code.  The code is unique as a whole. Nothing common between 400-101 and 404-101

  - `developerMessage` (string, required)
    Response explaining what happened

  - `details` (array)

  - `details.key` (string, required)

  - `details.value` (string)

  - `userMessage` (string)
    UI friendly message only supported by some API.
* Client must request explicitly by passing X-egain-error-message=yes header

## Response 401:

  - `401` (unknown)
    Unauthorized

## Response 401 fields (application/json):

  - `code` (string, required)
    String that follow the pattern {integer}-{integer}.
* The first part is http status code.  The code is unique as a whole. Nothing common between 400-101 and 404-101

  - `developerMessage` (string, required)
    Response explaining what happened

  - `details` (array)

  - `details.key` (string, required)

  - `details.value` (string)

  - `userMessage` (string)
    UI friendly message only supported by some API.
* Client must request explicitly by passing X-egain-error-message=yes header

## Response 403:

  - `403` (unknown)
    Forbidden

## Response 403 fields (application/json):

  - `code` (string, required)
    String that follow the pattern {integer}-{integer}.
* The first part is http status code.  The code is unique as a whole. Nothing common between 400-101 and 404-101

  - `developerMessage` (string, required)
    Response explaining what happened

  - `details` (array)

  - `details.key` (string, required)

  - `details.value` (string)

  - `userMessage` (string)
    UI friendly message only supported by some API.
* Client must request explicitly by passing X-egain-error-message=yes header

## Response 500:

  - `500` (unknown)
    Internal server error

## Response 500 fields (application/json):

  - `code` (string, required)
    String that follow the pattern {integer}-{integer}.
* The first part is http status code.  The code is unique as a whole. Nothing common between 400-101 and 404-101

  - `developerMessage` (string, required)
    Response explaining what happened

  - `details` (array)

  - `details.key` (string, required)

  - `details.value` (string)

  - `userMessage` (string)
    UI friendly message only supported by some API.
* Client must request explicitly by passing X-egain-error-message=yes header

## Response 400 examples:

  - `Required Attribute missing` (unknown)
    Required attribute is missing in payload

  - `Duplicate Resource Found` (unknown)
    Resouce with same details found

  - `Unallowed attribute value` (unknown)
    One of the attribute has value which is not allowed

  - `Max length exceeded` (unknown)
    Attribute value has length that exceeds limit

  - `Unknown Attribute Present` (unknown)
    Unknown attribute present in request body

  - `Value doesn't match pattern` (unknown)
    Attribute value doesn't match pattern of allowed characters

## Response 401 examples:

  - `Invalid Authorization` (unknown)
    Invalid on expired Authorization. Generate new Authorization header and try again.

## Response 403 examples:

  - `Required Scope Missing` (unknown)
    OAuth Client application used for generating Authorization token doesn't have required scope to call this API.
Refer API description to know which scope needs to be assigned to OAuth client.

## Response 500 examples:

  - `Internal Server Error` (unknown)

