POST /api/groups/{GroupID}/members

Invites a new members to the specified group.

Settings: This operation checks whether the setting that allows group members to invite members who are not already platform users is turned on. If the setting (InviteUnregisteredUsers) is turned off, the operation will fail. To check this setting, run the GET /api/businesses/{BusinessID}/usersettings operation.

Authorization Roles/Permissions: Must be logged in. Must have Modify permission for the resource. For example, a group leader can perform this action for the group. A Site Admin can invite another user to be a Site Admin; a Business Admin can invite another user to be a Business Admin.

Workflow: A default workflow is in effect for new group membership objects, unless a custom workflow is specified. By default, when a new group membership object is created, the API invokes the default initial action, @Invite, to start the workflow. This places the new group member in a Pending state. If a custom workflow is used, the custom workflow definition could choose which state the group membership will be placed in. For example, if you wanted to skip the acceptance of the group membership invitation by the invited user, you could develop and implement a custom workflow to skip the Pending state and put the new group membership directly into the Accepted state. For more information on workflow, see Executing Workflow Actions.

This topic includes the following sections:

HTTP Method

POST

URL

https://{hostname}/api/groups/{GroupID}/members

Sample Request #1

The example below shows a request to add or invite the specified user to a team.

Sample Request URL #1

https://{hostname}/api/groups/group19212.acmepaymentscorp/members

Sample request headers

POST /api/groups/group19212.acmepaymentscorp/members HTTP/1.1
Host: {hostname}
Accept: text/plain, */*; q=0.01
Content-Type: application/json; charset=UTF-8
X-Csrf-Token_acmepaymentscorp: TokenID%3D8ed70a13-8469-11e8-b37a-b155e4eabeb8%2CexpirationTime%3D153...

Sample request body

In the request body, the email and message body are optional.

{
  "Email":"hpawnitoff@acmepaymentscorp.com",
  "Role":"com.soa.group.membership.role.member",
  "Message":"Please join the team!",
}

Sample Request #2

Valid in Version: 2022.1.3 and later

The example below shows a request to assign groups or users to a role. Additionally, for the LDAP domain, you can assign LDAP groups to a role and assign users that are not registered with the Akana Platform.

Note: You cannot add multiple users with the same email address to a group. The email address is unique across all the tenants. If you try to add multiple users with same email address, POST /api/groups/{GroupID}/members API will add the first user in a group and ignore the second user.

Sample Request URL #2

https://{hostname}/api/groups/group19212.acmepaymentscorp/members

Sample request headers

POST /api/groups/group19212.acmepaymentscorp/members HTTP/1.1
Host: {hostname}
Accept: text/plain, */*; 
Content-Type: application/vnd.akana.v2023+json
X-Csrf-Token_acmepaymentscorp: TokenID%3D8ed70a13-8469-11e8-b37a-b155e4eabeb8%2CexpirationTime%3D153...

Sample request body

{
  "MembershipRequests": [
    {
      "GroupName": "BusinessAdministrators",
      "DomainName": "LDAP",
      "Role": "com.soa.group.membership.role.admin"
    },
    {
      "GroupName": "BusinessAdministrators",
      "DomainName": "SAML",
      "Role": "com.soa.group.membership.role.admin"
    },
    {
      "DomainName": "LDAP",
      "UserName": "business-admin-direct-ldap-user",
      "Role": "com.soa.group.membership.role.admin"
    },
    {
      "DomainName": "SAML",
      "UserName": "business-admin-direct-ldap-user-01",
      "Role": "com.soa.group.membership.role.admin"
    }
  ]
}

Request Headers

For general information on request header values, refer to HTTP Request Headers.

Header Description
Accept Any Accept header value that supports a response Content-Type of text/plain is valid; for example, */*.
Content-Type

Any one of the following media types is valid for the request Content-Type:

application/json, application/vnd.soa.v71+json, application/vnd.soa.v72+json, application/vnd.soa.v80+json, application/vnd.soa.v81+json

Cookie AtmoAuthToken_{fedmemberid}={cookie value, which usually starts with TokenID}—The platform cookie. This is the Akana API Platform authorization token, and must be sent with every API request that requires login. For more information and an example, see Session cookies.
X-Csrf-Token_{fedmemberID} The CSRF prevention header; may or may not be required, depending on platform settings. See CSRF Prevention on the Platform. By default, the CSRF header is not required for GET operations and is required for all others, with a few exceptions relating to user login.

Request Parameters

Parameter Parm Type Data Type Required Description
GroupID Path string Required The unique ID for a specific group.
MembershipRequest Body MembershipRequest Required Contains information about an invitation sent out to invite a new user to the group.

Response

If successful, this operation returns HTTP status code 200, with the MembershipRequestID for the request.

Sample Response #1

The following shows the response to the API request shown in Sample Request #1.

Sample response headers

HTTP/1.1 200 OK
Content-Type: application/json
Date: Fri, 14 Jun 2013 16:28:56 GMT

Sample response body

{
  "MembershipResponses": [
    {
      "UserName": "mrusso",
      "DomainName": "LDAP",
      "ResponseMessage": "Success"
    }
  ]
}

Sample Response #2

Valid in Version: 2022.1.3 and later

The following shows the response to the API request shown in Sample Request #2.

Sample response headers

HTTP/1.1 200 OK
Content-Type: application/json
Date: Fri, 14 Jun 2013 16:28:56 GMT

Sample response body

{
  "MembershipResponses": [
    {
      "GroupName": "BusinessAdministrators",
      "DomainName": "LDAP",
      "ResponseMessage": "Success"
    },
    {
      "GroupName": "BusinessAdministrators",
      "DomainName": "SAML",
      "ResponseMessage": "Success"
    },
    {
      "UserName": "business-admin-direct-ldap-user",
      "DomainName": "LDAP",
      "ResponseMessage": "Success"	
    },
    {
      "UserName": "business-admin-direct-ldap-user-01",
      "DomainName": "SAML",
      "ResponseMessage": "Success"
    }				
  ]
}

Response Headers

For general information on response header values, refer to HTTP Response Headers.

Header Description
Content-Type application/vnd.akana.v2023+json

Response Body

Name Type Description
Membership[ ] Membership Contains information about a user or group membership for a group.

Error Codes/Messages

If the call is unsuccessful an error code/message is returned. One or more examples of possible errors for this operation are shown below.

Item Value
400

Bad request: Returned if the client sends a malformed request; for example, invalid parameters or body content.

In this operation, you'd get a 400 response if you sent an invalid parameter in the request, such as a placeholder value.

401 Unauthorized. For example, you would get this response if you didn't include the custom X-Csrf-Token_{fedmemberID} header in the request, when it was required by the platform settings; or if you included an invalid or expired value for this header. You would also get this response for any operation that requires login (almost all) if the login cookie was missing.
404 The resource could not be found. For example, you might get this if you had the wrong HTTP verb, if there is a typo in the URL, or if you provide an invalid path parameter.
405 Method Not Allowed. You might get this if there is an error in the URL, or if you used the wrong HTTP verb.
500 An error occurred processing the call.

More information about Akana API Platform API error messages.