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:
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):
Tip: You can export these variables in your shell and paste commands as-is.Agent Config¶
- GET /api/v2/agentconfig
API Clients¶
- GET /api/v2/apiclients/{id}
- 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}
- GET /api/v2/apiclients
- 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
Function Params¶
- GET /api/v2/functionparams
Mobile Devices¶
- GET /api/v2/mobiledevices/{id}
- 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}
- POST /api/v2/mobiledevices/{id}/action
- GET /api/v2/mobiledevices
- 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
- GET /api/v2/mobiledevices/{id}/status
Projects¶
- GET /api/v2/projects/{id}
- PUT /api/v2/projects/{id}
- DELETE /api/v2/projects/{id}
- POST /api/v2/projects/listAssignments
- POST /api/v2/projects/assignments
- GET /api/v2/projects
- POST /api/v2/projects
Test Cases¶
- GET /api/v2/testcases/{id}
- 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}
- POST /api/v2/testcases/import
- POST /api/v2/testcases/export
- GET /api/v2/testcases
- 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
Test Executions¶
- POST /api/v2/testexecutions/{id}/rerun
- GET /api/v2/testexecutions/{id}
- DELETE /api/v2/testexecutions/{id}
- GET /api/v2/testexecutions
Test Nodes¶
- GET /api/v2/testnodes/{id}
- PUT /api/v2/testnodes/{id}
- POST /api/v2/testnodes/{id}/action
- GET /api/v2/testnodes
- POST /api/v2/testnodes
- GET /api/v2/testnodes/{id}/status
- GET /api/v2/testnodes/info
Test Suites¶
- GET /api/v2/testsuites/{id}
- 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}
- POST /api/v2/testsuites/{id}/execute
- POST /api/v2/testsuites/{id}/cancel
- GET /api/v2/testsuites
- 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
- GET /api/v2/tokens
- POST /api/v2/tokens
- DELETE /api/v2/tokens/{id}
Trace Filters¶
- GET /api/v2/tracefilters/{id}
- PUT /api/v2/tracefilters/{id}
- DELETE /api/v2/tracefilters/{id}
- GET /api/v2/tracefilters
- POST /api/v2/tracefilters
Users API¶
- GET /api/v2/users/{id}
- PUT /api/v2/users/{id}
- POST /api/v2/users/{id}/delete
- GET /api/v2/users
- POST /api/v2/users
- GET /api/v2/users/me