diff --git a/src/test/cord-api/Tests/XosScaleValidations/xos-remove-service.robot b/src/test/cord-api/Tests/XosScaleValidations/xos-remove-service.robot
new file mode 100644
index 0000000..62fcacc
--- /dev/null
+++ b/src/test/cord-api/Tests/XosScaleValidations/xos-remove-service.robot
@@ -0,0 +1,195 @@
+*** Settings ***
+Documentation     Test remove of a service
+Library           RequestsLibrary
+Library           HttpLibrary.HTTP
+Library           Collections
+Library           String
+Library           OperatingSystem
+Library           DateTime
+Library           ../../Framework/utils/utils.py
+Library           DatabaseLibrary
+Resource          ../../Framework/utils/utils.robot
+Library           ../../Framework/restApi.py
+Variables         ../../Properties/RestApiProperties.py
+Suite Setup       Setup
+Suite Teardown    Teardown
+
+*** Variables ***
+${timeout}    300s
+${repository}    xosproject/simpleexampleservice-synchronizer
+${migration1}    migration-test1
+${migration2}    migration-test2
+${helm_chart}    ~/cord/helm-charts/xos-services/simpleexampleservice
+${cleanup}       ${true}
+
+*** Test Cases ***
+Ensure Clean Environment
+    [Documentation]    Ensure the service is not installed and its endpoint is not being served
+    [Tags]    test1
+    ${output}=    Run    helm ls | grep simpleexampleservice | wc -l
+    Should Be Equal As Integers    ${output}    0
+    ${resp} =    Get Request    ${SERVER_IP}    uri=/xosapi/v1/simpleexampleservice/simpleexampleservices
+    Should Be Equal As Strings    ${resp.status_code}    404
+
+Install SimpleExampleService
+    [Documentation]    Install version A of the service and wait for completion
+    [Tags]    test2
+    Run    helm install -n simpleexampleservice --set image.repository=${repository} --set image.tag=${migration1} ${helm_chart}
+    Wait Until Keyword Succeeds    ${timeout}    5s    Validate Service Running
+
+Verify Tables Present
+    [Documentation]    Verify the tables are present
+    [Tags]    test3
+    Table Must Exist    simpleexampleservice_simpleexampleservice
+    Table Must Exist    simpleexampleservice_simpleexampleserviceinstance
+    Table Must Exist    simpleexampleservice_serviceinstancewithcompute2
+    Table Must Exist    simpleexampleservice_embeddedimagenew
+    Table Must Exist    simpleexampleservice_colornew
+
+Verify Migrations Present
+    [Documentation]    Verify Migrations are Present
+    [Tags]    test4
+    Row Count is Greater Than X    SELECT * FROM django_migrations where app='simpleexampleservice'    0
+
+Create Model
+    [Documentation]    Create a service model
+    [Tags]    test5
+    ${model_name}=    Generate Random Value    string
+    ${data}=    Create Dictionary    name=${model_name}    service_message=initial
+    ${data}=    Evaluate    json.dumps(${data})    json
+    ${resp}=    CORD Post    /xosapi/v1/simpleexampleservice/simpleexampleservices    ${data}
+    ${json_content}=    Evaluate    json.loads('''${resp.content}''')    json
+    ${model_id}=    Get From Dictionary    ${json_content}    id
+    Set Suite Variable    ${model_id}
+    Set Suite Variable    ${model_name}
+
+Delete Service Synchronizer
+    [Documentation]    Delete the service synchronizer
+    [Tags]    test6
+    Delete Service
+    Wait Until Keyword Succeeds    ${timeout}    5s    Validate Service Not Running
+
+Unload Service While Dirty
+    [Documentation]    Unload the service
+    [Tags]    test7
+    ${data}=    Create Dictionary    name=simpleexampleservice    version=1.1.7
+    ${data}=    Evaluate    json.dumps(${data})    json
+    ${resp}=    Post Request    ${SERVER_IP}    uri=/xosapi/v1/dynamicload/unload_models    data=${data}
+    Should Be Equal As Strings    ${resp.status_code}    409
+
+Unload Service Automatic Cleanup
+    [Documentation]    Unload the service
+    [Tags]    test8
+    ${data}=    Create Dictionary    name=simpleexampleservice    version=1.1.7    cleanup_behavior=1
+    ${data}=    Evaluate    json.dumps(${data})    json
+    # The first time it should delete the model, and may return a TRYAGAIN
+    ${resp}=    Post Request    ${SERVER_IP}    uri=/xosapi/v1/dynamicload/unload_models    data=${data}
+    Should Be Equal As Strings    ${resp.status_code}    200
+    # Try it a second time, just in case deletion was in progress, should succeed this time
+    ${resp}=    Post Request    ${SERVER_IP}    uri=/xosapi/v1/dynamicload/unload_models    data=${data}
+    Should Be Equal As Strings    ${resp.status_code}    200
+
+Verify Service Stopped
+    [Documentation]    Make sure the core has stopped serving the service
+    [Tags]    test9
+    Wait Until Keyword Succeeds    ${timeout}    5s    Validate Service Not Served
+
+Verify Tables Removed
+    [Documentation]    Verify the tables have been removed
+    [Tags]    test10
+    Run Keyword And Expect Error    Table 'simpleexampleservice_simpleexampleservice' does not exist in the db    Table Must Exist    simpleexampleservice_simpleexampleservice
+    Run Keyword And Expect Error    Table 'simpleexampleservice_simpleexampleserviceinstance' does not exist in the db    Table Must Exist    simpleexampleservice_simpleexampleserviceinstance
+    Run Keyword And Expect Error    Table 'simpleexampleservice_serviceinstancewithcompute2' does not exist in the db    Table Must Exist    simpleexampleservice_serviceinstancewithcompute2
+    Run Keyword And Expect Error    Table 'simpleexampleservice_embeddedimagenew' does not exist in the db    Table Must Exist    simpleexampleservice_embeddedimagenew
+    Run Keyword And Expect Error    Table 'simpleexampleservice_colornew' does not exist in the db    Table Must Exist    simpleexampleservice_colornew
+
+Verify Migrations Removed
+    [Documentation]    Verify Migrations Removed
+    [Tags]    test11
+    Row Count is 0    SELECT * FROM django_migrations where app='simpleexampleservice'
+
+
+*** Keywords ***
+Setup
+    ${auth} =    Create List    ${XOS_USER}    ${XOS_PASSWD}
+    ${HEADERS}    Create Dictionary    Content-Type=application/json    allow_modify_feedback=True
+    Create Session    ${server_ip}    http://${server_ip}:${server_port}    auth=${AUTH}    headers=${HEADERS}
+    @{model_A_fields}=    Create List    service_message    service_secret
+    @{model_B_fields}=    Create List    service_message    service_secret    new_field
+    @{model_B_only_fields}=    Create List    new_field
+
+    ${db_addr}=    Run    kubectl get services | grep -i xos-db | awk '{print $3}'
+    Connect To Database   psycopg2    xos    postgres    password    ${db_addr}    5432
+
+    Set Suite Variable    @{model_A_fields}
+
+    Set Suite Variable    @{model_B_fields}
+
+    Set Suite Variable    @{model_B_only_fields}
+
+Teardown
+    [Documentation]    Delete all https sessions
+    Run Keyword If    ${cleanup} == ${true}    Ensure Service Deleted
+    Run Keyword If    ${cleanup} == ${true}    Ensure Service Unloaded
+    Disconnect From Database
+    Delete All Sessions
+
+Validate Service Running
+    # wait for helm chart to be deployed
+    ${output}=    Run    helm ls | grep simpleexampleservice | grep -i deployed | wc -l
+    Should Be Equal As Integers    ${output}    1
+    # wait for the synchronizer pod to be running
+    ${output}=    Run    kubectl get pods | grep simpleexampleservice | grep -i running | grep 1/1 | wc -l
+    Should Be Equal As Integers    ${output}    1
+    # wait for no other synchronizer pods to be terminating
+    ${output}=    Run    kubectl get pods | grep simpleexampleservice | grep -i terminating | wc -l
+    Should Be Equal As Integers    ${output}    0
+    # wait for the endpoint to exist
+    ${resp} =   CORD Get    /xosapi/v1/simpleexampleservice/simpleexampleservices
+
+Validate Service Not Running
+    # wait for helm chart to be deployed
+    ${output}=    Run    helm ls | grep simpleexampleservice | grep -i deployed | wc -l
+    Should Be Equal As Integers    ${output}    0
+    # wait for the synchronizer pod to be not running
+    ${output}=    Run    kubectl get pods | grep simpleexampleservice | grep -i running | grep 1/1 | wc -l
+    # wait for no other synchronizer pods to finish terminating
+    ${output}=    Run    kubectl get pods | grep simpleexampleservice | grep -i terminating | wc -l
+    Should Be Equal As Integers    ${output}    0
+
+Validate Service Not Served
+    # endpoint should not be served
+    ${resp} =    Get Request    ${SERVER_IP}    uri=/xosapi/v1/simpleexampleservice/simpleexampleservices
+    Should Be Equal As Strings    ${resp.status_code}    404
+    # wait for the core to be up
+    ${resp} =   CORD Get    /xosapi/v1/core/users
+
+Ensure Service Deleted
+    ${output}=    Run    helm ls | grep simpleexampleservice | grep -i deployed | wc -l
+    Run Keyword If    ${output} == 1    Delete Service
+
+Delete Service
+    Log    Deleating Service Helm Chart
+    ${rc}=    Run And Return RC    helm del --purge simpleexampleservice
+    Should Be Equal As Integers    ${rc}    0
+    Log    Deleted Service Helm Chart
+
+Ensure Service Unloaded
+    [Documentation]    Unload the service if it is loaded.
+    Wait Until Keyword Succeeds    200s    2s    CORD Get    /xosapi/v1/core/users
+    ${resp}=   Get Request    ${SERVER_IP}    uri=/xosapi/v1/dynamicload/load_status
+    Should Be Equal As Strings    ${resp.status_code}    200
+    ${jsondata}=    To Json    ${resp.content}
+    ${length}=    Get Length   ${jsondata['services']}
+    : FOR    ${INDEX}    IN RANGE    0    ${length}
+    \    ${dict}=    Get From List    ${jsondata['services']}    ${INDEX}
+    \    Run Keyword If    "${dict['name']}" == "simpleexampleservice" and "${dict['state']}" == "present"    Unload Service
+
+Unload Service
+    [Documentation]    Unload the service
+    Log    Unloading Service, with table purge
+    ${data}=    Create Dictionary    name=simpleexampleservice    version=1.1.7    cleanup_behavior=2
+    ${data}=    Evaluate    json.dumps(${data})    json
+    ${resp}=    Post Request    ${SERVER_IP}    uri=/xosapi/v1/dynamicload/unload_models    data=${data}
+    Should Be Equal As Strings    ${resp.status_code}    200
+    Log    Successfully Unloaded
