/analyze

Description

This endpoint allows you to send us one or multiple text messages for diagnosis and recommendation. You'll have access to specific fields like the severity, the type, the recommendedAction, a list of classifications and some other details relating to your message(s) input.

URL

To create an analysis, you must use the following endpoint:

POST https://bamboo.bodyguard.ai/api/analyze

Parameters

nameTypeRequiredDescription
channelUuidStringtrueThe moderation channel identifier you have created from your dashboard.
contents[Message]trueA set of messages to analyze.
⚠️ A maximum of 100 messages can be analyzed at the same time.
important

Each message reference are unique by channel. This means that if you set the same reference multiple times on a given channel, updates will be applied instead of creation.

Response

nameTypeDescription
data[Analysis]The list of Messages with their analysis.
errors[Error]A set of errors. These errors will represent all the messages that couldn't be analyzed by Bodyguard due to invalid user input (bad input or limit reach).
note

This endpoint handles partial errors. This means that if some messages cannot be analyzed, the endpoint will still return a 200 response.

  • The succesfully analyzed messages will be in the data attributes.
  • The messages that have failed to be analyzed will be in the errors field along with the error reason.

Examples

Single analysis

See the Quick start guide.

Batch analysis

Request:

curl --location --request POST 'bamboo.bodyguard.ai/api/analyze' \
--header 'X-Api-Key: $YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{
"channelUuid": "$YOUR_CHANNEL_UID",
"contents": [
{
"text": "Einstein is an asshole"
},
{
"text": "Good job !"
},
{
"text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras ut lacinia justo, et finibus est. In congue lacinia sapien sit amet mattis. Fusce varius magna vel felis viverra porta. Donec congue sodales tortor, a sollicitudin turpis tincidunt dictum. Aliquam fringilla consectetur magna, vitae venenatis turpis. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur pretium maximus erat, vel rutrum nulla tempor quis. Proin mauris ligula, porta at egestas facilisis, finibus a quam. Morbi sit amet neque metus. Proin mattis tempus malesuada. Praesent suscipit ante sed erat consequat suscipit. Aliquam posuere volutpat eros sit amet sodales. Sed non fringilla justo. Fusce non nunc vitae enim posuere volutpat. Donec vitae quam consequat, rhoncus ligula eu, laoreet diam. Proin semper, massa nec pellentesque hendrerit, dui turpis luctus purus, vel efficitur neque lorem ut sapien. Donec et maximus turpis. Cras varius enim et eros fermentum, et feugiat orci porttitor. Sed ipsum dui, molestie ac nisl in, varius tristique arcu. Vestibulum ac libero in enim suscipit lobortis. Curabitur placerat placerat nisi eget imperdiet. Quisque sollicitudin nibh vel risus dapibus viverra. Nullam quis dui in eros dapibus posuere. Fusce dapibus tempor nisi in convallis. Duis ipsum nibh, tristique id aliquam non, ultrices a nisi. Mauris vulputate turpis non mi dapibus, id viverra ipsum pharetra. Nunc elementum viverra urna in tempor. Cras tempus, diam in posuere mollis, augue augue pharetra risus, ac consequat diam lorem a purus. Nulla aliquam dapibus dolor. Aenean eget malesuada nisi. Fusce bibendum purus eget sem rhoncus venenatis. Nullam ornare ornare ante molestie condimentum. Sed accumsan ante sit amet ligula lacinia efficitur. Curabitur et gravida lectus. Donec neque lacus, pulvinar sit amet nulla pretium, lacinia porttitor justo. Curabitur imperdiet pretium ultricies. Curabitur finibus sit amet ligula id vulputate. Quisque posuere tincidunt massa sit amet tempor. Curabitur vitae feugiat nunc. Sed molestie ipsum sit amet metus faucibus, ut placerat risus cursus. Duis vulputate felis et tincidunt luctus. Praesent molestie lacus enim, sit amet ornare lectus accumsan a. Curabitur venenatis tortor elit, sed accumsan augue consectetur in. Duis ipsum nibh, pulvinar at lectus vel, condimentum viverra velit. Curabitur posuere lacus ipsum, id facilisis velit pretium in. Nam lectus orci, accumsan et volutpat a, volutpat sed urna. Nulla rutrum auctor diam, nec convallis sapien faucibus eget. Duis sit amet sodales mauris. Aliquam eu dolor convallis justo gravida placerat. Donec aliquet tortor ut lorem pretium pellentesque. Pellentesque ut magna quis tellus ultricies bibendum. Interdum et malesuada fames ac ante ipsum primis in faucibus. Mauris et euismod nisi. Duis nibh est, tempor nec enim ut, viverra iaculis quam. Maecenas eu arcu eget orci pellentesque viverra. Integer lobortis sodales nisi, eu convallis augue tempus eget. Vestibulum placerat justo id blandit dapibus. Fusce commodo vestibulum lectus, vel facilisis turpis laoreet ut. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Etiam tristique turpis eget dui consectetur scelerisque. Nullam ut justo sit amet purus rhoncus tincidunt. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae;"
}
]
}'

You must replace $YOUR_API_KEY by your own API key.
You must replace $YOUR_CHANNEL_UID by your own Channel UID.

Response:

{
"data": [
{
"text": "Einstein is an asshole",
"reference": "bodyguard/00fa1bc5-2c4d-4135-a19b-0f01f103def3",
"type": "HATEFUL",
"severity": "VERY_HIGH",
"recommendedAction": "REMOVE",
"meta": {
"directedAt": "SINGLE_PERSON",
"classifications": [
"INSULT"
]
},
"language": "en",
"analyzedAt": "2021-01-14T14:24:18.721Z"
},
{
"text": "Good job !",
"reference": "bodyguard/a1571ce4-1803-4d68-9c93-e0416fbdb73b",
"type": "SUPPORTIVE",
"severity": "NONE",
"recommendedAction": "KEEP",
"meta": {
"directedAt": "USER",
"classifications": [
"SUPPORTIVE"
]
},
"language": "en",
"analyzedAt": "2021-01-14T14:24:18.736Z"
}
],
"errors": [
{
"reason": "\"contents[2].text\" length must be less than or equal to 1000 characters long",
"status": "TEXT_TOO_LONG",
"details": {
"position": 2,
"limit": 1000,
"value": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras ut lacinia justo, et finibus est. In congue lacinia sapien sit amet mattis. Fusce varius magna vel felis viverra porta. Donec congue sodales tortor, a sollicitudin turpis tincidunt dictum. Aliquam fringilla consectetur magna, vitae venenatis turpis. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur pretium maximus erat, vel rutrum nulla tempor quis. Proin mauris ligula, porta at egestas facilisis, finibus a quam. Morbi sit amet neque metus. Proin mattis tempus malesuada. Praesent suscipit ante sed erat consequat suscipit. Aliquam posuere volutpat eros sit amet sodales. Sed non fringilla justo. Fusce non nunc vitae enim posuere volutpat. Donec vitae quam consequat, rhoncus ligula eu, laoreet diam. Proin semper, massa nec pellentesque hendrerit, dui turpis luctus purus, vel efficitur neque lorem ut sapien. Donec et maximus turpis. Cras varius enim et eros fermentum, et feugiat orci porttitor. Sed ipsum dui, molestie ac nisl in, varius tristique arcu. Vestibulum ac libero in enim suscipit lobortis. Curabitur placerat placerat nisi eget imperdiet. Quisque sollicitudin nibh vel risus dapibus viverra. Nullam quis dui in eros dapibus posuere. Fusce dapibus tempor nisi in convallis. Duis ipsum nibh, tristique id aliquam non, ultrices a nisi. Mauris vulputate turpis non mi dapibus, id viverra ipsum pharetra. Nunc elementum viverra urna in tempor. Cras tempus, diam in posuere mollis, augue augue pharetra risus, ac consequat diam lorem a purus. Nulla aliquam dapibus dolor. Aenean eget malesuada nisi. Fusce bibendum purus eget sem rhoncus venenatis. Nullam ornare ornare ante molestie condimentum. Sed accumsan ante sit amet ligula lacinia efficitur. Curabitur et gravida lectus. Donec neque lacus, pulvinar sit amet nulla pretium, lacinia porttitor justo. Curabitur imperdiet pretium ultricies. Curabitur finibus sit amet ligula id vulputate. Quisque posuere tincidunt massa sit amet tempor. Curabitur vitae feugiat nunc. Sed molestie ipsum sit amet metus faucibus, ut placerat risus cursus. Duis vulputate felis et tincidunt luctus. Praesent molestie lacus enim, sit amet ornare lectus accumsan a. Curabitur venenatis tortor elit, sed accumsan augue consectetur in. Duis ipsum nibh, pulvinar at lectus vel, condimentum viverra velit. Curabitur posuere lacus ipsum, id facilisis velit pretium in. Nam lectus orci, accumsan et volutpat a, volutpat sed urna. Nulla rutrum auctor diam, nec convallis sapien faucibus eget. Duis sit amet sodales mauris. Aliquam eu dolor convallis justo gravida placerat. Donec aliquet tortor ut lorem pretium pellentesque. Pellentesque ut magna quis tellus ultricies bibendum. Interdum et malesuada fames ac ante ipsum primis in faucibus. Mauris et euismod nisi. Duis nibh est, tempor nec enim ut, viverra iaculis quam. Maecenas eu arcu eget orci pellentesque viverra. Integer lobortis sodales nisi, eu convallis augue tempus eget. Vestibulum placerat justo id blandit dapibus. Fusce commodo vestibulum lectus, vel facilisis turpis laoreet ut. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Etiam tristique turpis eget dui consectetur scelerisque. Nullam ut justo sit amet purus rhoncus tincidunt. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae;"
}
}
]
}

Analysis with context

Each messages, CAN contain additional fields to add more context (see Context):

Request:

curl --location --request POST 'bamboo.bodyguard.ai/api/analyze' \
--header 'X-Api-Key: $YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{
"channelUuid": "$YOUR_CHANNEL_UID",
"contents": [
{
"text": "New video available !",
"reference": "78568088",
"context": {
"topLevelReference": "78568088",
"from": {
"type": "AUTHOR",
"data": {
"identifier": "9131",
"username": "Charles",
"birthdate": "1989-10-19",
"gender": "MALE"
}
},
"content": {
"type": "VIDEO",
"data": {
"identifier": "5468b255562e",
"title": "Nice content"
}
}
}
},
{
"text": "Your video is trash",
"reference": "78568089",
"context": {
"topLevelReference": "78568088",
"parentReference": "78568088",
"from": {
"type": "AUTHOR",
"data": {
"identifier": "7676",
"username": "Seb",
"birthdate": "1994-03-09",
"gender": "MALE"
}
},
"to": {
"type": "AUTHOR",
"data": {
"identifier": "9131",
"username": "Charles",
"birthdate": "1989-10-19",
"gender": "MALE"
}
},
"content": {
"type": "VIDEO",
"data": {
"identifier": "5468b255562e",
"title": "Nice content"
}
}
}
}
]
}'

You must replace $YOUR_API_KEY by your own API key.
You must replace $YOUR_CHANNEL_UID by your own Channel UID.

Response:

{
"data": [
{
"text": "New video available !",
"reference": "78568088",
"type": "NEUTRAL",
"severity": "NONE",
"recommendedAction": "KEEP",
"meta": {
"classifications": [
"NEUTRAL"
],
"directedAt": "UNDEFINED"
},
"language": "en",
"analyzedAt": "2020-12-03T16:58:16.554Z"
},
{
"text": "Your video is trash",
"reference": "78568089",
"type": "HATEFUL",
"severity": "MEDIUM",
"recommendedAction": "REMOVE",
"meta": {
"classifications": [
"HATRED"
],
"directedAt": "USER"
},
"language": "en",
"analyzedAt": "2020-12-03T16:58:16.579Z"
}
]
}