View as Markdown Open in ChatGPT Open in Claude
POST
RCS API · BOTS / VERIFICATION · v1.0

submit_bot_for_verification

https://api.example.com/rcs/api/v1/bot/submit_bot_for_verification
infoOverview

About this API

keySecurity

Authentication

This endpoint does not require authentication.

uploadInput

Request Body

Send a multipart/form-data payload. Replace placeholder values with data from your integration.

Top-Level Fields

NameTypeRequirementDescription
datastringNot specifiedRequest value for data.
screenImagesstringNot specifiedRequest value for screenImages.
{
  "data": "{\n  \"botId\": \"6a1d390cf9cbdcd11b02290d\",\n  \"is_conversational_supported\": true,\n  \"is_opt_out_by_platform\": true,\n  \"bot_access_instructions\": \"bot_access_instructions\",\n  \"bot_interaction_types\": \"bot_interaction_types\",\n  \"opt_in_message\": \"opt_in_message\",\n  \"opt_out_keywords\": \"opt_out_keywords\",\n  \"opt_out_message\": \"opt_out_message\",\n  \"revoke_opt_out_keywords\": \"revoke_opt_out_keywords\",\n  \"trigger_action\": \"trigger_action temp\",\n  \"revoke_opt_out_message\": \"revoke_opt_out_message\",\n  \"bot_recog_keywords\": \"bot_recog_keywords\",\n  \"video_url\": \"https://file-examples.com/storage/fe1a98702d6a1d25f9af8f4/2017/04/file_example_MP4_480_1_5MG.mp4\",\n  \"screen_image\": [\n    \"screen1.png\",\n    \"screen2.png\"\n  ]\n}",
  "screenImages": "<screenImages-file>"
}
{
  "type": "object",
  "properties": {
    "data": {
      "type": "string"
    },
    "screenImages": {
      "type": "string",
      "format": "binary"
    }
  }
}
codeIntegration

Code Examples

Select your language and customize the request URL. Credential placeholders are intentionally preserved so secrets never appear in generated samples.

shield_lockCredentials protectedAdd secrets only in your secure server environment.
downloadSDK
curl --request POST 'https://api.example.com/rcs/api/v1/bot/submit_bot_for_verification' \
  --form 'data={
  "botId": "6a1d390cf9cbdcd11b02290d",
  "is_conversational_supported": true,
  "is_opt_out_by_platform": true,
  "bot_access_instructions": "bot_access_instructions",
  "bot_interaction_types": "bot_interaction_types",
  "opt_in_message": "opt_in_message",
  "opt_out_keywords": "opt_out_keywords",
  "opt_out_message": "opt_out_message",
  "revoke_opt_out_keywords": "revoke_opt_out_keywords",
  "trigger_action": "trigger_action temp",
  "revoke_opt_out_message": "revoke_opt_out_message",
  "bot_recog_keywords": "bot_recog_keywords",
  "video_url": "https://file-examples.com/storage/fe1a98702d6a1d25f9af8f4/2017/04/file_example_MP4_480_1_5MG.mp4",
  "screen_image": [
    "screen1.png",
    "screen2.png"
  ]
}' \
  --form 'screenImages=@/path/to/screenImages'
const form = new FormData();
form.append('data', '{
  "botId": "6a1d390cf9cbdcd11b02290d",
  "is_conversational_supported": true,
  "is_opt_out_by_platform": true,
  "bot_access_instructions": "bot_access_instructions",
  "bot_interaction_types": "bot_interaction_types",
  "opt_in_message": "opt_in_message",
  "opt_out_keywords": "opt_out_keywords",
  "opt_out_message": "opt_out_message",
  "revoke_opt_out_keywords": "revoke_opt_out_keywords",
  "trigger_action": "trigger_action temp",
  "revoke_opt_out_message": "revoke_opt_out_message",
  "bot_recog_keywords": "bot_recog_keywords",
  "video_url": "https://file-examples.com/storage/fe1a98702d6a1d25f9af8f4/2017/04/file_example_MP4_480_1_5MG.mp4",
  "screen_image": [
    "screen1.png",
    "screen2.png"
  ]
}');
form.append('screenImages', fileInput.files[0]);

const response = await fetch('https://api.example.com/rcs/api/v1/bot/submit_bot_for_verification', {
  method: 'POST',
  body: form,
});

if (!response.ok) throw new Error(`HTTP ${response.status}`);
const data = await response.json();
console.log(data);
import { openAsBlob } from 'node:fs';

const form = new FormData();
form.append('data', '{
  "botId": "6a1d390cf9cbdcd11b02290d",
  "is_conversational_supported": true,
  "is_opt_out_by_platform": true,
  "bot_access_instructions": "bot_access_instructions",
  "bot_interaction_types": "bot_interaction_types",
  "opt_in_message": "opt_in_message",
  "opt_out_keywords": "opt_out_keywords",
  "opt_out_message": "opt_out_message",
  "revoke_opt_out_keywords": "revoke_opt_out_keywords",
  "trigger_action": "trigger_action temp",
  "revoke_opt_out_message": "revoke_opt_out_message",
  "bot_recog_keywords": "bot_recog_keywords",
  "video_url": "https://file-examples.com/storage/fe1a98702d6a1d25f9af8f4/2017/04/file_example_MP4_480_1_5MG.mp4",
  "screen_image": [
    "screen1.png",
    "screen2.png"
  ]
}');
form.append('screenImages', await openAsBlob('/path/to/screenImages'));

const response = await fetch('https://api.example.com/rcs/api/v1/bot/submit_bot_for_verification', {
  method: 'POST',
  body: form,
});

if (!response.ok) throw new Error(`HTTP ${response.status}`);
const data = await response.json();
console.log(data);
import json
import requests

url = 'https://api.example.com/rcs/api/v1/bot/submit_bot_for_verification'
headers = {}
data = json.loads(r'''{
  "data": "{\\n  \\"botId\\": \\"6a1d390cf9cbdcd11b02290d\\",\\n  \\"is_conversational_supported\\": true,\\n  \\"is_opt_out_by_platform\\": true,\\n  \\"bot_access_instructions\\": \\"bot_access_instructions\\",\\n  \\"bot_interaction_types\\": \\"bot_interaction_types\\",\\n  \\"opt_in_message\\": \\"opt_in_message\\",\\n  \\"opt_out_keywords\\": \\"opt_out_keywords\\",\\n  \\"opt_out_message\\": \\"opt_out_message\\",\\n  \\"revoke_opt_out_keywords\\": \\"revoke_opt_out_keywords\\",\\n  \\"trigger_action\\": \\"trigger_action temp\\",\\n  \\"revoke_opt_out_message\\": \\"revoke_opt_out_message\\",\\n  \\"bot_recog_keywords\\": \\"bot_recog_keywords\\",\\n  \\"video_url\\": \\"https://file-examples.com/storage/fe1a98702d6a1d25f9af8f4/2017/04/file_example_MP4_480_1_5MG.mp4\\",\\n  \\"screen_image\\": [\\n    \\"screen1.png\\",\\n    \\"screen2.png\\"\\n  ]\\n}"
}''')
with open('/path/to/screenImages', 'rb') as media:
    response = requests.post(url, headers=headers, data=data, files={'screenImages': media})

response.raise_for_status()
print(response.json())
import java.io.ByteArrayOutputStream;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;

String boundary = "----ApiDocsBoundary" + System.currentTimeMillis();
var body = new ByteArrayOutputStream();
body.write(("--" + boundary + "\r\n").getBytes(StandardCharsets.UTF_8));
body.write("Content-Disposition: form-data; name=\"data\"\r\n\r\n".getBytes(StandardCharsets.UTF_8));
body.write("{
  \"botId\": \"6a1d390cf9cbdcd11b02290d\",
  \"is_conversational_supported\": true,
  \"is_opt_out_by_platform\": true,
  \"bot_access_instructions\": \"bot_access_instructions\",
  \"bot_interaction_types\": \"bot_interaction_types\",
  \"opt_in_message\": \"opt_in_message\",
  \"opt_out_keywords\": \"opt_out_keywords\",
  \"opt_out_message\": \"opt_out_message\",
  \"revoke_opt_out_keywords\": \"revoke_opt_out_keywords\",
  \"trigger_action\": \"trigger_action temp\",
  \"revoke_opt_out_message\": \"revoke_opt_out_message\",
  \"bot_recog_keywords\": \"bot_recog_keywords\",
  \"video_url\": \"https://file-examples.com/storage/fe1a98702d6a1d25f9af8f4/2017/04/file_example_MP4_480_1_5MG.mp4\",
  \"screen_image\": [
    \"screen1.png\",
    \"screen2.png\"
  ]
}\r\n".getBytes(StandardCharsets.UTF_8));
body.write(("--" + boundary + "\r\n").getBytes(StandardCharsets.UTF_8));
body.write("Content-Disposition: form-data; name=\"screenImages\"; filename=\"screenImages\"\r\n".getBytes(StandardCharsets.UTF_8));
body.write("Content-Type: application/octet-stream\r\n\r\n".getBytes(StandardCharsets.UTF_8));
body.write(Files.readAllBytes(Path.of("/path/to/screenImages")));
body.write("\r\n".getBytes(StandardCharsets.UTF_8));
body.write(("--" + boundary + "--\r\n").getBytes(StandardCharsets.UTF_8));

var requestBuilder = HttpRequest.newBuilder(URI.create("https://api.example.com/rcs/api/v1/bot/submit_bot_for_verification"))
    .header("Content-Type", "multipart/form-data; boundary=" + boundary)
    .method("POST", HttpRequest.BodyPublishers.ofByteArray(body.toByteArray()));
var response = HttpClient.newHttpClient().send(requestBuilder.build(), HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
<?php
$curl = curl_init();
$fields = [
    'data' => '{
  "botId": "6a1d390cf9cbdcd11b02290d",
  "is_conversational_supported": true,
  "is_opt_out_by_platform": true,
  "bot_access_instructions": "bot_access_instructions",
  "bot_interaction_types": "bot_interaction_types",
  "opt_in_message": "opt_in_message",
  "opt_out_keywords": "opt_out_keywords",
  "opt_out_message": "opt_out_message",
  "revoke_opt_out_keywords": "revoke_opt_out_keywords",
  "trigger_action": "trigger_action temp",
  "revoke_opt_out_message": "revoke_opt_out_message",
  "bot_recog_keywords": "bot_recog_keywords",
  "video_url": "https://file-examples.com/storage/fe1a98702d6a1d25f9af8f4/2017/04/file_example_MP4_480_1_5MG.mp4",
  "screen_image": [
    "screen1.png",
    "screen2.png"
  ]
}',
    'screenImages' => new CURLFile('/path/to/screenImages'),
];
curl_setopt_array($curl, [
    CURLOPT_URL => 'https://api.example.com/rcs/api/v1/bot/submit_bot_for_verification',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_POSTFIELDS => $fields,
]);
$response = curl_exec($curl);
if ($response === false) throw new Exception(curl_error($curl));
curl_close($curl);
echo $response;
using System.Net.Http.Headers;
using System.Text;

using var client = new HttpClient();
using var form = new MultipartFormDataContent();
form.Add(new StringContent("{
  \"botId\": \"6a1d390cf9cbdcd11b02290d\",
  \"is_conversational_supported\": true,
  \"is_opt_out_by_platform\": true,
  \"bot_access_instructions\": \"bot_access_instructions\",
  \"bot_interaction_types\": \"bot_interaction_types\",
  \"opt_in_message\": \"opt_in_message\",
  \"opt_out_keywords\": \"opt_out_keywords\",
  \"opt_out_message\": \"opt_out_message\",
  \"revoke_opt_out_keywords\": \"revoke_opt_out_keywords\",
  \"trigger_action\": \"trigger_action temp\",
  \"revoke_opt_out_message\": \"revoke_opt_out_message\",
  \"bot_recog_keywords\": \"bot_recog_keywords\",
  \"video_url\": \"https://file-examples.com/storage/fe1a98702d6a1d25f9af8f4/2017/04/file_example_MP4_480_1_5MG.mp4\",
  \"screen_image\": [
    \"screen1.png\",
    \"screen2.png\"
  ]
}"), "data");
form.Add(new StreamContent(File.OpenRead(@"/path/to/screenImages")), "screenImages", "screenImages");
var response = await client.PostAsync("https://api.example.com/rcs/api/v1/bot/submit_bot_for_verification", form);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());
package main

import (
    "fmt"
    "io"
    "net/http"
    "bytes"
    "mime/multipart"
    "os"
    "path/filepath"
)

func main() {
    var body bytes.Buffer
    writer := multipart.NewWriter(&body)
    if err := writer.WriteField("data", "{\n  \"botId\": \"6a1d390cf9cbdcd11b02290d\",\n  \"is_conversational_supported\": true,\n  \"is_opt_out_by_platform\": true,\n  \"bot_access_instructions\": \"bot_access_instructions\",\n  \"bot_interaction_types\": \"bot_interaction_types\",\n  \"opt_in_message\": \"opt_in_message\",\n  \"opt_out_keywords\": \"opt_out_keywords\",\n  \"opt_out_message\": \"opt_out_message\",\n  \"revoke_opt_out_keywords\": \"revoke_opt_out_keywords\",\n  \"trigger_action\": \"trigger_action temp\",\n  \"revoke_opt_out_message\": \"revoke_opt_out_message\",\n  \"bot_recog_keywords\": \"bot_recog_keywords\",\n  \"video_url\": \"https://file-examples.com/storage/fe1a98702d6a1d25f9af8f4/2017/04/file_example_MP4_480_1_5MG.mp4\",\n  \"screen_image\": [\n    \"screen1.png\",\n    \"screen2.png\"\n  ]\n}"); err != nil { panic(err) }
    file, err := os.Open("/path/to/screenImages")
    if err != nil { panic(err) }
    defer file.Close()
    part, err := writer.CreateFormFile("screenImages", filepath.Base(file.Name()))
    if err != nil { panic(err) }
    if _, err = io.Copy(part, file); err != nil { panic(err) }
    if err := writer.Close(); err != nil { panic(err) }
    request, err := http.NewRequest("POST", "https://api.example.com/rcs/api/v1/bot/submit_bot_for_verification", &body)
    if err != nil { panic(err) }
    request.Header.Set("Content-Type", writer.FormDataContentType())
    request.Header.Set("Accept", "application/json")
    response, err := http.DefaultClient.Do(request)
    if err != nil { panic(err) }
    defer response.Body.Close()
    data, err := io.ReadAll(response.Body)
    if err != nil { panic(err) }
    if response.StatusCode >= 400 { panic(fmt.Sprintf("HTTP %d: %s", response.StatusCode, data)) }
    fmt.Println(string(data))
}
downloadOutput

Response

A successful request returns the documented response payload. Delivery and asynchronous events may arrive separately through configured webhooks.

{}
{}
ruleHTTP Responses

Status Codes

200Successful response
Global API SearchProducts, versions, endpoints, paths, and payload fields
Esc
Full search page
manage_searchSearch the complete API catalogEnter at least two characters to begin.