Skip to content

cURL Commands

1. Overview

To access the Quadified API, you need to request an access token using your assigned credentials. Each environment has its own base URL, defined as a configurable variable. This page is shared across customer deployments; use the clientId, clientSecret, and environment URL assigned to your customer.

2. API Sections

3. Base URL (Configurable)

The base URL of the API differs by environment and should be defined as a variable in your configuration. All API requests must use this base URL as a prefix.

Example:

BASE_URL=https://app-{environment}.quadified.com

Replace {environment} with your assigned environment name

4. Request API Credentials

clientId and clientSecret are created by Quadified and are unique per customer and environment. They are not generated from the documentation page.

To request credentials, contact support@quadified.com and include:

  • Customer or project name
  • Target environment, for example integration, staging, or production
  • Requester name and email address
  • Intended API usage, such as automation, reporting, or integration testing

Keep the returned credentials secure. Do not commit them to repositories, paste them into tickets, or share them in screenshots.

5. Getting an Access Token

Example Request:

curl --request POST \
  --url "$BASE_URL/api/v2/connect/token" \
  --header "Content-Type: application/json" \
  --data '{
    "clientId": "<YOUR_CLIENT_ID>",
    "clientSecret": "<YOUR_CLIENT_SECRET>"
  }'

Parameters:

Parameter Description
clientId Provided by Quadified team; unique per customer and environment
clientSecret Provided by Quadified team; used together with clientId for authentication

Example Response:

{
  "accessToken": "eyJraWQiOiJcL3QwazdyN0phKzVOc0JNUVJlR25XM0x1R1pKcCtFZmQ4azFpVUhJaFIzUT0iLCJhbGciOiJSUzI1NiJ9...",
  "tokenType": "Bearer",
  "expiresIn": 3600
}
  • accessToken: The token used to authenticate API requests.
  • tokenType: Always "Bearer".
  • expiresIn: Token validity in seconds (3600 = 1 hour).

Quick setup (optional environment variables):

BASE_URL="https://app-integration.quadified.com"
TOKEN="REPLACE_WITH_ACCESS_TOKEN"
Tip: You can export these variables in your shell and paste commands as-is.

Agent Config

  • GET /api/v2/agentconfig
    curl --request GET \
      --url "$BASE_URL/api/v2/agentconfig?label={LABEL}" \
      --header "Authorization: Bearer $TOKEN"
    

API Clients

  • GET /api/v2/apiclients/{id}
    curl --request GET \
      --url "$BASE_URL/api/v2/apiclients/{id}" \
      --header "Authorization: Bearer $TOKEN"
    
  • PUT /api/v2/apiclients/{id}
    curl --request PUT \
      --url "$BASE_URL/api/v2/apiclients/{id}" \
      --header "Authorization: Bearer $TOKEN" \
      --header 'Content-Type: application/json' \
      --data '{
        "basicAuthViaSecrets": true,
        "name": "string",
        "apiClientAuthType": "NONE",
        "headerParams": {},
        "authParams": {},
        "serverURL": "string",
        "payload": "string",
        "httpMethod": "string",
        "failureRegexBody": "string",
        "username": "string",
        "password": "string",
        "tokenEndpointForOAuth2": "string",
        "oauth2Scopes": "string"
      }'
    
  • DELETE /api/v2/apiclients/{id}
    curl --request DELETE \
      --url "$BASE_URL/api/v2/apiclients/{id}" \
      --header "Authorization: Bearer $TOKEN"
    
  • GET /api/v2/apiclients
    curl --request GET \
      --url "$BASE_URL/api/v2/apiclients?start={start}&end={end}&search={search}" \
      --header "Authorization: Bearer $TOKEN"
    
  • POST /api/v2/apiclients
    curl --request POST \
      --url "$BASE_URL/api/v2/apiclients" \
      --header "Authorization: Bearer $TOKEN" \
      --header 'Content-Type: application/json' \
      --data '{
        "basicAuthViaSecrets": true,
        "name": "string",
        "apiClientAuthType": "NONE",
        "headerParams": {},
        "authParams": {},
        "serverURL": "string",
        "payload": "string",
        "httpMethod": "string",
        "failureRegexBody": "string",
        "username": "string",
        "password": "string",
        "tokenEndpointForOAuth2": "string",
        "oauth2Scopes": "string"
      }'
    

Device Models

  • GET /api/v2/devicemodels
    curl --request GET \
      --url "$BASE_URL/api/v2/devicemodels" \
      --header "Authorization: Bearer $TOKEN"
    

Function Params

  • GET /api/v2/functionparams
    curl --request GET \
      --url "$BASE_URL/api/v2/functionparams?function={functionName}" \
      --header "Authorization: Bearer $TOKEN"
    

Mobile Devices

  • GET /api/v2/mobiledevices/{id}
    curl --request GET \
      --url "$BASE_URL/api/v2/mobiledevices/{id}" \
      --header "Authorization: Bearer $TOKEN"
    
  • PUT /api/v2/mobiledevices/{id}
    curl --request PUT \
      --url "$BASE_URL/api/v2/mobiledevices/{id}" \
      --header "Authorization: Bearer $TOKEN" \
      --header 'Content-Type: application/json' \
      --data '{
        "name": "string",
        "msisdn": "string",
        "imsi": "string",
        "imei": "string",
        "ranType": "string",
        "testNodeId": 0,
        "deviceModelId": 0,
        "subscriptionType": "string",
        "platformName": "string",
        "deviceId": "string",
        "nationalFormat": "string",
        "internationalFormat": "string",
        "iccid": "string",
        "eid": "string",
        "ecid": "string"
      }'
    
  • DELETE /api/v2/mobiledevices/{id}
    curl --request DELETE \
      --url "$BASE_URL/api/v2/mobiledevices/{id}" \
      --header "Authorization: Bearer $TOKEN"
    
  • POST /api/v2/mobiledevices/{id}/action
    curl --request POST \
      --url "$BASE_URL/api/v2/mobiledevices/{id}/action" \
      --header "Authorization: Bearer $TOKEN" \
      --header 'Content-Type: application/json' \
      --data '{
        "command": "PREPARE",
        "params": "string"
      }'
    
  • GET /api/v2/mobiledevices
    curl --request GET \
      --url "$BASE_URL/api/v2/mobiledevices" \
      --header "Authorization: Bearer $TOKEN"
    
  • POST /api/v2/mobiledevices
    curl --request POST \
      --url "$BASE_URL/api/v2/mobiledevices" \
      --header "Authorization: Bearer $TOKEN" \
      --header 'Content-Type: application/json' \
      --data '{
        "name": "string",
        "msisdn": "string",
        "imsi": "string",
        "imei": "string",
        "ranType": "string",
        "testNodeId": 0,
        "deviceModelId": 0,
        "subscriptionType": "string",
        "platformName": "string",
        "deviceId": "string",
        "nationalFormat": "string",
        "internationalFormat": "string",
        "iccid": "string",
        "eid": "string"
      }'
    
  • GET /api/v2/mobiledevices/{id}/testcases
    curl --request GET \
      --url "$BASE_URL/api/v2/mobiledevices/{id}/testcases" \
      --header "Authorization: Bearer $TOKEN"
    
  • GET /api/v2/mobiledevices/{id}/status
    curl --request GET \
      --url "$BASE_URL/api/v2/mobiledevices/{id}/status" \
      --header "Authorization: Bearer $TOKEN"
    

Projects

  • GET /api/v2/projects/{id}
    curl --request GET \
      --url "$BASE_URL/api/v2/projects/{id}" \
      --header "Authorization: Bearer $TOKEN"
    
  • PUT /api/v2/projects/{id}
    curl --request PUT \
      --url "$BASE_URL/api/v2/projects/{id}" \
      --header "Authorization: Bearer $TOKEN" \
      --header 'Content-Type: application/json' \
      --data '{ "name": "string" }'
    
  • DELETE /api/v2/projects/{id}
    curl --request DELETE \
      --url "$BASE_URL/api/v2/projects/{id}" \
      --header "Authorization: Bearer $TOKEN"
    
  • POST /api/v2/projects/listAssignments
    curl --request POST \
      --url "$BASE_URL/api/v2/projects/listAssignments" \
      --header "Authorization: Bearer $TOKEN" \
      --header 'Content-Type: application/json' \
      --data '{ "entityType": "TEST_NODE", "entityIds": [0] }'
    
  • POST /api/v2/projects/assignments
    curl --request POST \
      --url "$BASE_URL/api/v2/projects/assignments" \
      --header "Authorization: Bearer $TOKEN" \
      --header 'Content-Type: application/json' \
      --data '{ "entityType": "TEST_NODE", "entityIds": [0], "projectIds": [0] }'
    
  • GET /api/v2/projects
    curl --request GET \
      --url "$BASE_URL/api/v2/projects" \
      --header "Authorization: Bearer $TOKEN"
    
  • POST /api/v2/projects
    curl --request POST \
      --url "$BASE_URL/api/v2/projects" \
      --header "Authorization: Bearer $TOKEN" \
      --header 'Content-Type: application/json' \
      --data '{ "name": "string", "entityType": "TEST_NODE", "entityIds": [0] }'
    

Test Cases

  • GET /api/v2/testcases/{id}
    curl --request GET \
      --url "$BASE_URL/api/v2/testcases/{id}" \
      --header "Authorization: Bearer $TOKEN"
    
  • PUT /api/v2/testcases/{id}
    curl --request PUT \
      --url "$BASE_URL/api/v2/testcases/{id}" \
      --header "Authorization: Bearer $TOKEN" \
      --header 'Content-Type: application/json' \
      --data '{
        "name": "string",
        "description": "string",
        "testStepList": [{}],
        "tags": "string",
        "disableReason": "string",
        "notes": "string",
        "disabled": true,
        "traceFilters": [{"mobileDeviceId": 0, "traceFilterId": 0}],
        "sipTraceFilters": [{"mobileDeviceId": 0, "sipMessageCodes": "string"}]
      }'
    
  • DELETE /api/v2/testcases/{id}
    curl --request DELETE \
      --url "$BASE_URL/api/v2/testcases/{id}" \
      --header "Authorization: Bearer $TOKEN"
    
  • POST /api/v2/testcases/import
    curl --request POST \
      --url "$BASE_URL/api/v2/testcases/import" \
      --header "Authorization: Bearer $TOKEN" \
      --header 'Content-Type: application/json' \
      --data '[{ "name": "string", "description": "string", "testStepList": [{}] }]'
    
  • POST /api/v2/testcases/export
    curl --request POST \
      --url "$BASE_URL/api/v2/testcases/export" \
      --header "Authorization: Bearer $TOKEN" \
      --header 'Content-Type: application/json' \
      --data '{ "ids": [0] }'
    
  • GET /api/v2/testcases
    curl --request GET \
      --url "$BASE_URL/api/v2/testcases" \
      --header "Authorization: Bearer $TOKEN"
    
  • POST /api/v2/testcases
    curl --request POST \
      --url "$BASE_URL/api/v2/testcases" \
      --header "Authorization: Bearer $TOKEN" \
      --header 'Content-Type: application/json' \
      --data '{
        "name": "string",
        "description": "string",
        "testStepList": [{}],
        "tags": "string",
        "disableReason": "string",
        "notes": "string",
        "disabled": true,
        "traceFilters": [{"mobileDeviceId": 0, "traceFilterId": 0}],
        "sipTraceFilters": [{"mobileDeviceId": 0, "sipMessageCodes": "string"}]
      }'
    
  • GET /api/v2/testcases/{id}/testsuites
    curl --request GET \
      --url "$BASE_URL/api/v2/testcases/{id}/testsuites" \
      --header "Authorization: Bearer $TOKEN"
    

Test Executions

  • POST /api/v2/testexecutions/{id}/rerun
    curl --request POST \
      --url "$BASE_URL/api/v2/testexecutions/{id}/rerun" \
      --header "Authorization: Bearer $TOKEN"
    
  • GET /api/v2/testexecutions/{id}
    curl --request GET \
      --url "$BASE_URL/api/v2/testexecutions/{id}" \
      --header "Authorization: Bearer $TOKEN"
    
  • DELETE /api/v2/testexecutions/{id}
    curl --request DELETE \
      --url "$BASE_URL/api/v2/testexecutions/{id}" \
      --header "Authorization: Bearer $TOKEN"
    
  • GET /api/v2/testexecutions
    curl --request GET \
      --url "$BASE_URL/api/v2/testexecutions?start={start}&end={end}&search={search}" \
      --header "Authorization: Bearer $TOKEN"
    

Test Nodes

  • GET /api/v2/testnodes/{id}
    curl --request GET \
      --url "$BASE_URL/api/v2/testnodes/{id}" \
      --header "Authorization: Bearer $TOKEN"
    
  • PUT /api/v2/testnodes/{id}
    curl --request PUT \
      --url "$BASE_URL/api/v2/testnodes/{id}" \
      --header "Authorization: Bearer $TOKEN" \
      --header 'Content-Type: application/json' \
      --data '{ "name": "string" }'
    
  • POST /api/v2/testnodes/{id}/action
    curl --request POST \
      --url "$BASE_URL/api/v2/testnodes/{id}/action" \
      --header "Authorization: Bearer $TOKEN" \
      --header 'Content-Type: application/json' \
      --data '{ "command": "RESTART_AGENT", "params": "string" }'
    
  • GET /api/v2/testnodes
    curl --request GET \
      --url "$BASE_URL/api/v2/testnodes" \
      --header "Authorization: Bearer $TOKEN"
    
  • POST /api/v2/testnodes
    curl --request POST \
      --url "$BASE_URL/api/v2/testnodes" \
      --header "Authorization: Bearer $TOKEN" \
      --header 'Content-Type: application/json' \
      --data '{ "name": "string" }'
    
  • GET /api/v2/testnodes/{id}/status
    curl --request GET \
      --url "$BASE_URL/api/v2/testnodes/{id}/status" \
      --header "Authorization: Bearer $TOKEN"
    
  • GET /api/v2/testnodes/info
    curl --request GET \
      --url "$BASE_URL/api/v2/testnodes/info" \
      --header "Authorization: Bearer $TOKEN"
    

Test Suites

  • GET /api/v2/testsuites/{id}
    curl --request GET \
      --url "$BASE_URL/api/v2/testsuites/{id}" \
      --header "Authorization: Bearer $TOKEN"
    
  • PUT /api/v2/testsuites/{id}
    curl --request PUT \
      --url "$BASE_URL/api/v2/testsuites/{id}" \
      --header "Authorization: Bearer $TOKEN" \
      --header 'Content-Type: application/json' \
      --data '{
        "name": "string",
        "description": "string",
        "testCaseIds": [{"id": 0, "name": "string"}],
        "schedule": {"startTime": "string", "repeating": true, "repeatPeriod": 0, "repeatUnit": "string"},
        "tags": "string",
        "notifyFailureThresholdPercentage": 100,
        "disabled": true,
        "notifEmail": "string",
        "failureNotifEmail": "string",
        "skipInitialization": true,
        "projects": [{"id": 0, "name": "string"}]
      }'
    
  • DELETE /api/v2/testsuites/{id}
    curl --request DELETE \
      --url "$BASE_URL/api/v2/testsuites/{id}" \
      --header "Authorization: Bearer $TOKEN"
    
  • POST /api/v2/testsuites/{id}/execute
    curl --request POST \
      --url "$BASE_URL/api/v2/testsuites/{id}/execute" \
      --header "Authorization: Bearer $TOKEN"
    
  • POST /api/v2/testsuites/{id}/cancel
    curl --request POST \
      --url "$BASE_URL/api/v2/testsuites/{id}/cancel" \
      --header "Authorization: Bearer $TOKEN"
    
  • GET /api/v2/testsuites
    curl --request GET \
      --url "$BASE_URL/api/v2/testsuites" \
      --header "Authorization: Bearer $TOKEN"
    
  • POST /api/v2/testsuites
    curl --request POST \
      --url "$BASE_URL/api/v2/testsuites" \
      --header "Authorization: Bearer $TOKEN" \
      --header 'Content-Type: application/json' \
      --data '{
        "name": "string",
        "description": "string",
        "testCaseIds": [0],
        "testCaseWeights": [0],
        "schedule": {"startTime": "string", "repeating": true, "repeatPeriod": 0, "repeatUnit": "string"},
        "tags": "string",
        "notifyFailureThresholdPercentage": 100,
        "disabled": true,
        "notifEmail": "string",
        "failureNotifEmail": "string",
        "skipInitialization": true
      }'
    

Tokens

  • POST /api/v2/tokens/validate
    curl --request POST \
      --url "$BASE_URL/api/v2/tokens/validate" \
      --header "Authorization: Bearer $TOKEN" \
      --header 'Content-Type: application/json' \
      --data '{ "token": "string" }'
    
  • GET /api/v2/tokens
    curl --request GET \
      --url "$BASE_URL/api/v2/tokens" \
      --header "Authorization: Bearer $TOKEN"
    
  • POST /api/v2/tokens
    curl --request POST \
      --url "$BASE_URL/api/v2/tokens" \
      --header "Authorization: Bearer $TOKEN" \
      --header 'Content-Type: application/json' \
      --data '{ "mobileId": 0, "fullControl": true, "expiryHours": 0 }'
    
  • DELETE /api/v2/tokens/{id}
    curl --request DELETE \
      --url "$BASE_URL/api/v2/tokens/{id}" \
      --header "Authorization: Bearer $TOKEN"
    

Trace Filters

  • GET /api/v2/tracefilters/{id}
    curl --request GET \
      --url "$BASE_URL/api/v2/tracefilters/{id}" \
      --header "Authorization: Bearer $TOKEN"
    
  • PUT /api/v2/tracefilters/{id}
    curl --request PUT \
      --url "$BASE_URL/api/v2/tracefilters/{id}" \
      --header "Authorization: Bearer $TOKEN" \
      --header 'Content-Type: application/json' \
      --data '{ "name": "string", "filter": "string" }'
    
  • DELETE /api/v2/tracefilters/{id}
    curl --request DELETE \
      --url "$BASE_URL/api/v2/tracefilters/{id}" \
      --header "Authorization: Bearer $TOKEN"
    
  • GET /api/v2/tracefilters
    curl --request GET \
      --url "$BASE_URL/api/v2/tracefilters" \
      --header "Authorization: Bearer $TOKEN"
    
  • POST /api/v2/tracefilters
    curl --request POST \
      --url "$BASE_URL/api/v2/tracefilters" \
      --header "Authorization: Bearer $TOKEN" \
      --header 'Content-Type: application/json' \
      --data '{ "name": "string", "filter": "string" }'
    

Users API

  • GET /api/v2/users/{id}
    curl --request GET \
      --url "$BASE_URL/api/v2/users/{id}" \
      --header "Authorization: Bearer $TOKEN"
    
  • PUT /api/v2/users/{id}
    curl --request PUT \
      --url "$BASE_URL/api/v2/users/{id}" \
      --header "Authorization: Bearer $TOKEN" \
      --header 'Content-Type: application/json' \
      --data '{ "role": "ADMIN" }'
    
  • POST /api/v2/users/{id}/delete
    curl --request POST \
      --url "$BASE_URL/api/v2/users/{id}/delete" \
      --header "Authorization: Bearer $TOKEN" \
      --header 'Content-Type: application/json' \
      --data '{ "newUser": 0 }'
    
  • GET /api/v2/users
    curl --request GET \
      --url "$BASE_URL/api/v2/users" \
      --header "Authorization: Bearer $TOKEN"
    
  • POST /api/v2/users
    curl --request POST \
      --url "$BASE_URL/api/v2/users" \
      --header "Authorization: Bearer $TOKEN" \
      --header 'Content-Type: application/json' \
      --data '{ "email": "string", "role": "ADMIN", "tempPassword": "string" }'
    
  • GET /api/v2/users/me
    curl --request GET \
      --url "$BASE_URL/api/v2/users/me" \
      --header "Authorization: Bearer $TOKEN"