# submit_bot_for_verification

**POST** `/api/v1/bot/submit_bot_for_verification`

Product: [RCS](https://devdocs.1spoc.com/docs/rcs.md)  
Version: [1.0](https://devdocs.1spoc.com/docs/rcs/1-0.md)  
Category: **BOTS / VERIFICATION**  
Lifecycle: **active**

## Request overview

Full URL: `https://api.example.com/rcs/api/v1/bot/submit_bot_for_verification`

Method: `POST`

Content type: `multipart/form-data`

## Authentication

This endpoint does not require authentication.

## Parameters

### Path parameters

None.

### Query parameters

None.

### Request body fields

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | string | No | Request value for data. |
| `screenImages` | string | No | Request value for screenImages. |

## Request schema


```json
{
  "type": "object",
  "properties": {
    "data": {
      "type": "string"
    },
    "screenImages": {
      "type": "string",
      "format": "binary"
    }
  }
}
```

## Request example


```json
{
  "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>"
}
```

## Response schema


```json
{}
```

## Response examples


```json
{}
```

## Status codes


```json
[
  {
    "code": 200,
    "description": "Successful response"
  }
]
```

## Generated integration examples

The following examples are generated from the published **POST /api/v1/bot/submit_bot_for_verification** contract and use placeholder credentials.

### cURL


```curl
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'
```

### JavaScript


```javascript
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);
```

### NodeJS


```node
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);
```

### Python


```python
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())
```

### Java


```java
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


```php
<?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;
```

### C#


```csharp
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());
```

### Go


```go
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))
}
```

## Related resources

- [Interactive documentation page](https://devdocs.1spoc.com/docs/rcs/1-0/submitbotforverification)
- [Version documentation](https://devdocs.1spoc.com/docs/rcs/1-0.md)
- [OpenAPI JSON](https://devdocs.1spoc.com/docs/rcs/1-0/openapi.json)
- [OpenAPI YAML](https://devdocs.1spoc.com/docs/rcs/1-0/openapi.yaml)
- [Postman collection](https://devdocs.1spoc.com/postman/rcs/1-0/collection.json)
- [Postman environment](https://devdocs.1spoc.com/postman/rcs/1-0/environment.json)
- [MCP setup](https://devdocs.1spoc.com/mcp-setup)
- [AI documentation index](https://devdocs.1spoc.com/llms.txt)
- [Complete AI documentation](https://devdocs.1spoc.com/llms-full.txt)
- [Node.js SDK](https://devdocs.1spoc.com/sdk/rcs/1-0/node.zip)
- [Python SDK](https://devdocs.1spoc.com/sdk/rcs/1-0/python.zip)
- [Java SDK](https://devdocs.1spoc.com/sdk/rcs/1-0/java.zip)

## Guidance for AI assistants

Treat this document and its linked OpenAPI contract as the source of truth for **POST /api/v1/bot/submit_bot_for_verification**.

- Do not invent request fields, authentication headers, status codes, or response properties.
- Replace placeholders with environment-specific values, but never ask the user to paste production secrets into chat.
- Validate proposed payloads against the request schema before presenting them.
- Explain which values are required and identify assumptions clearly.
- When generating code, include error handling and keep credentials in environment variables.
- Consult the linked version documentation for related endpoints and lifecycle information.
