diff --git a/src/test/cord-api/Tests/Soak_ScaleVCPE.txt b/src/test/cord-api/Tests/Soak_ScaleVCPE.txt
index 8d2f18a..c1b872b 100644
--- a/src/test/cord-api/Tests/Soak_ScaleVCPE.txt
+++ b/src/test/cord-api/Tests/Soak_ScaleVCPE.txt
@@ -11,8 +11,6 @@
 Library           ../Framework/restApi.py
 
 *** Variables ***
-${USER}           admin
-${PASSWORD}       admin
 ${PATHFILE}       ${CURDIR}/data/Soak_ScaleVCPE.json
 ${SCALE_COUNT}    1
 
diff --git a/src/test/cord-api/Tests/Soak_ScaleVSG.txt b/src/test/cord-api/Tests/Soak_ScaleVSG.txt
new file mode 100644
index 0000000..ca7b3fd
--- /dev/null
+++ b/src/test/cord-api/Tests/Soak_ScaleVSG.txt
@@ -0,0 +1,98 @@
+*** Settings ***
+Documentation     Test suite for Instance creation for multiple subscribers with same "s_tag" - Chameleon APIs
+Suite Setup       Read InputFile
+Library           Collections
+Library           String
+Library           OperatingSystem
+Library           XML
+Library           RequestsLibrary
+Library           HttpLibrary.HTTP
+Library           ../Framework/utils/utils.py
+Library           ../Framework/restApi.py
+
+*** Variables ***
+${PATHFILE}       ${CURDIR}/data/Soak_ScaleVSG.json
+${SCALE_COUNT}    1
+
+*** Test Cases ***
+Test Post Subscriber Create
+    [Documentation]     Tests creates subscribers based on the count
+    ${service_specific_id}=    utils.convertStringToInt    ${service_specific_id}
+    :FOR        ${i}    IN RANGE        ${SCALE_COUNT}
+    \   ${service_specific_id}=    Evaluate        ${service_specific_id} + 1
+    \   ${service_specific_id}=    utils.convertToString    ${service_specific_id}
+    \   &{subscriberDict}=    Create Dictionary    service_specific_id     ${service_specific_id}
+    \   ${api_result}=    restApi.ApiPost    VOLT_SUBSCRIBER    ${subscriberDict}
+    \   Should Be True    ${api_result}
+    # Volt Tenant Creation
+    \   ${json_result}=    restApi.ApiGet    VOLT_SUBSCRIBER
+    \   Log    ${json_result}
+    \   ${json_result_list}=    Get From Dictionary    ${json_result}    items
+    \   ${getJsonDict}=    utils.getDictFromListOfDict    ${json_result_list}    service_specific_id    ${service_specific_id}
+    \   ${Subscriber_Id}=    utils.getFieldValueFromDict    ${getJsonDict}    id
+    \   Log    ${Subscriber_Id}
+    \   ${s_tag}=       Evaluate        ${s_tag} + 1
+    \   ${c_tag}=       Evaluate        ${c_tag} + 1
+    \   &{voltDict}=     Create Dictionary       s_tag   ${s_tag}        c_tag   ${c_tag}
+    \   Log    ${voltDict}
+    \   ${postResult}=    restApi.ApiPost    VOLT_TENANT    ${voltDict}
+    \   Sleep    30
+    # Verifying GET operation after POST
+    \   ${get_result}=    restApi.ApiGet    VOLT_TENANT
+    \   ${get_result_list}=    Get From Dictionary    ${get_result}    items
+    \   ${getJsonDict}=    utils.getDictFromListofDict    ${get_result_list}    c_tag    ${c_tag}
+    \   Log    ${getJsonDict}
+    \   #${test_result}=    utils.compare_dict    ${voltDict}    ${getJsonDict}
+    \   #Should Be True    ${test_result}
+    \   ${Volt_Id}=    Get From Dictionary    ${getJsonDict}    id
+    \   ${provided_links_ids_list}=    utils.getFieldValueFromDict    ${getJsonDict}    provided_links_ids
+    \   Log    ${provided_links_ids_list}
+    \   ${provided_links_ids}=    Get From List    ${provided_links_ids_list}    0
+    \   Log    ${provided_links_ids}
+    # Get subscribed_links_ids from volttenant
+    \   ${subscribed_links_ids_list}=    utils.getFieldValueFromDict    ${getJsonDict}    subscribed_links_ids
+    \   ${subscribed_links_ids}=    Get From List    ${subscribed_links_ids_list}    0
+    # Retrieve service links using provided links ID
+    \   ${getServiceLink}=    restApi.ApiChameleonGet    CH_CORE_SERVICELINK    ${provided_links_ids}
+    \   ${provider_service_instance_id}=    Get From Dictionary    ${getServiceLink}    provider_service_instance_id
+    # Update the subscriber_service_instance_id to the required subscriber_id to establish desired link
+    \   ${serviceDict}=    Create Dictionary    subscriber_service_instance_id=${Subscriber_Id}
+    \   ${result}=    restApi.ApiChameleonPut    CH_CORE_SERVICELINK    ${serviceDict}    ${provided_links_ids}
+    \   Sleep    30
+    \   Should Be True    ${result}
+    # Validation of Instances
+    \   Log    ${instanceList}
+    \   ${serviceLinkDict}=    restApi.ApiChameleonGet    CH_CORE_SERVICELINK    ${subscribed_links_ids}
+    \   Log    ${serviceLinkDict}
+    \   ${VSGTenant}=    Get From Dictionary    ${serviceLinkDict}    provider_service_instance_id
+    # Retrieve VSGTenant to retrieve instance_id
+    \   ${getVSG_result}=    restApi.ApiChameleonGet    VSG_TENANT    ${VSGTenant}
+    \   ${instance_id}=    Get From Dictionary    ${getVSG_result}    instance_id
+    \   Append To List    ${instanceList}    ${instance_id}
+    # Wait for container to be created
+    \   Sleep    420
+    # Verify container creation within the VSG
+    \   ${nova_id}=    Run    . /opt/cord_profile/admin-openrc.sh; nova list --all-tenants | grep mysite_vsg-${instance_id} | awk '{print $2}'
+    \   ${compute_node}=    Run    . /opt/cord_profile/admin-openrc.sh; nova show ${nova_id} | grep :host | awk '{print $4}'
+    \   ${vsg_ip}=    Run    . /opt/cord_profile/admin-openrc.sh; nova show ${nova_id} | grep management | awk '{print $5}'
+    \   ${docker_container}=    Run    ssh -o ProxyCommand="ssh -W %h:%p -l ubuntu ${compute_node}" ubuntu@${vsg_ip} sudo docker ps | grep vsg-${s_tag}-${c_tag} | wc -l
+    \   Should Not Contain    ${docker_container}    0
+    Log    ${c_tag}
+    Log    ${s_tag}
+    Log    ${service_specific_id}
+
+*** Keywords ***
+Read InputFile
+    ${inputDict}=	utils.readFile	${PATHFILE}
+    Log To Console    \n ${inputDict}
+    ${service_specific_id}=	Get Json Value    ${inputDict}    /service_specific_id
+    Log   \n ${service_specific_id}
+    ${s_tag} =    Get Json Value    ${inputDict}    /s_tag
+    Log   \n ${s_tag}
+    ${c_tag} =    Get Json Value    ${inputDict}    /c_tag
+    Log   \n ${c_tag}
+    Set Suite Variable    ${service_specific_id}
+    Set Suite Variable    ${s_tag}
+    Set Suite Variable    ${c_tag}
+    @{instanceList}=    Create List
+    Set Suite Variable    @{instanceList}
diff --git a/src/test/cord-api/Tests/data/Soak_ScaleVSG.json b/src/test/cord-api/Tests/data/Soak_ScaleVSG.json
new file mode 100644
index 0000000..50ee691
--- /dev/null
+++ b/src/test/cord-api/Tests/data/Soak_ScaleVSG.json
@@ -0,0 +1,5 @@
+{
+  "s_tag" : 700,
+  "c_tag" : 700,
+  "service_specific_id" : 700
+}
