Quadified APIs
Use this page as a compact endpoint reference for the Quadified API. For runnable examples with copy buttons, open cURL Commands.
API credentials are unique per customer and environment. If you need a clientId and clientSecret, contact support@quadified.com with your customer/project name, target environment, requester email, and intended API usage.
Authentication
Every request needs a bearer token. Exchange your API client's clientId and clientSecret for a token, then send it in the Authorization header:
Authorization: Bearer <accessToken>
The token is valid for expiresIn seconds (one hour). When it expires, requests return 401; request a new token.
Get an access token
Role: No token needed.
clientId and clientSecret are required. scope is optional; leave it out unless Quadified gave you one.
Request body *
{
"clientId": "string",
"clientSecret": "string",
"scope": "string"
}
Responses
| Code |
Description |
| 201 |
The access token.
Media type: application/json
Example Value:
{
"accessToken": "eyJraWQiOi...",
"tokenType": "Bearer",
"expiresIn": 3600
}
|
| 400 |
The request was refused, for example because of an unknown scope or a missing field.
|
| 401 |
The client credentials are wrong.
|
| 500 |
The token service could not be reached. Try again later.
|
Errors
Errors are returned as RFC 7807 problem details with the media type application/problem+json. The response body of an error is never the object the endpoint returns on success.
{
"type": "support@quadified.com/problem-with-message",
"title": "Not Found",
"status": 404,
"detail": "Test Suite not found",
"path": "/api/v2/testsuites/123",
"message": "error.http.404"
}
A request body that fails validation returns 400 with the fields that are wrong:
{
"type": "support@quadified.com/constraint-violation",
"title": "Method argument not valid",
"status": 400,
"path": "/api/v2/testsuites",
"message": "error.validation",
"fieldErrors": [
{
"objectName": "testSuiteCreate",
"field": "name",
"message": "Size"
}
]
}
| Code |
Meaning |
| 400 |
The request is invalid: a required field is missing, a value is out of range, or a value is not allowed. |
| 401 |
No token, or the token has expired. Request a new token. |
| 403 |
Your role does not allow this endpoint (see Roles). |
| 404 |
The item does not exist. |
| 409 |
The request conflicts with the current state, for example a duplicate name or an item that is in use or running. |
| 429 |
Too many requests. When the response has a Retry-After header, wait that many seconds before retrying. |
| 500 |
An unexpected server error. |
| 503 |
A service the endpoint depends on is not available on this environment. |
Roles
Every user and API client has one of three roles. Each role includes the ones below it:
- Guest: read access.
- Standard: Guest, plus creating, running and changing test assets.
- Admin: Standard, plus managing users, tokens and test nodes, and changing or deleting items that other users created.
A token from POST /api/v2/connect/token acts with the role of your API client, which is Standard. Items created through the API belong to the API client. "Admin, or the user who created it" means that a Standard user or API client can change or delete only the items it created itself.
A call without the required role returns 403. Endpoints marked (preview) exist only where their feature is enabled for your environment; elsewhere they return 404.
| Endpoint |
Method |
Role |
/api/v2/agentconfig |
GET |
Standard |
/api/v2/requirements |
GET |
Guest |
/api/v2/requirements |
POST |
Standard |
/api/v2/requirements |
DELETE |
Standard |
/api/v2/requirements/{id} |
GET |
Guest |
/api/v2/requirements/{id} |
PUT |
Standard |
/api/v2/requirements/{id} |
DELETE |
Standard |
/api/v2/requirements/{id}/done |
POST |
Standard |
/api/v2/requirements/{id}/feedback |
GET |
Guest |
/api/v2/requirements/{id}/reopen |
POST |
Standard |
/api/v2/requirements/{id}/suggestions |
GET |
Guest |
/api/v2/requirements/{id}/suggestions |
POST |
Standard |
/api/v2/requirements/{id}/suggestions |
DELETE |
Standard |
/api/v2/requirements/{id}/suggestions/{suggestionId} |
DELETE |
Standard |
/api/v2/requirements/{id}/suggestions/{suggestionId}/approve |
POST |
Standard |
/api/v2/requirements/{id}/suggestions/{suggestionId}/discard |
POST |
Standard |
/api/v2/apiclients |
GET |
Guest |
/api/v2/apiclients |
POST |
Standard |
/api/v2/apiclients/{id} |
GET |
Guest |
/api/v2/apiclients/{id} |
PUT |
Admin, or the user who created it |
/api/v2/apiclients/{id} |
DELETE |
Admin, or the user who created it |
/api/v2/at-command-suggestions (preview) |
POST |
Standard |
/api/v2/at-command-suggestions/{id} (preview) |
GET |
Standard |
/api/v2/changelogs |
GET |
Guest |
/api/v2/deletelogs |
GET |
Guest |
/api/v2/deviceJobs |
GET |
Standard |
/api/v2/deviceJobs |
POST |
Standard |
/api/v2/deviceJobs/{id} |
GET |
Standard |
/api/v2/devicemodels |
GET |
Guest |
/api/v2/functionparams |
GET |
Guest |
/api/v2/connect/token |
POST |
No token |
/api/v2/mcp/connectors (preview) |
GET |
Standard |
/api/v2/mcp/connectors (preview) |
POST |
Standard |
/api/v2/mcp/connectors/{id} (preview) |
DELETE |
Standard |
/api/v2/mcp/connectors/{id}/rotate (preview) |
POST |
Standard |
/api/v2/mobiledevices |
GET |
Guest |
/api/v2/mobiledevices |
POST |
Standard |
/api/v2/mobiledevices/uptime |
GET |
Guest |
/api/v2/mobiledevices/{id} |
GET |
Guest |
/api/v2/mobiledevices/{id} |
PUT |
Admin, or the user who created it |
/api/v2/mobiledevices/{id} |
DELETE |
Admin, or the user who created it |
/api/v2/mobiledevices/{id}/action |
POST |
Standard |
/api/v2/mobiledevices/{id}/status |
GET |
Standard |
/api/v2/mobiledevices/{id}/testcases |
GET |
Guest |
/api/v2/mobiledevices/{id}/uptime |
GET |
Guest |
/api/v2/projects |
GET |
Guest |
/api/v2/projects |
POST |
Standard |
/api/v2/projects/assignments |
POST |
Standard |
/api/v2/projects/listAssignments |
POST |
Guest |
/api/v2/projects/{id} |
GET |
Guest |
/api/v2/projects/{id} |
PUT |
Admin, or the user who created it |
/api/v2/projects/{id} |
DELETE |
Admin, or the user who created it |
/api/v2/tags |
GET |
Guest |
/api/v2/testcases |
GET |
Guest |
/api/v2/testcases |
POST |
Standard |
/api/v2/testcases/bulk-status |
PUT |
Admin |
/api/v2/testcases/export |
POST |
Standard |
/api/v2/testcases/import |
POST |
Standard |
/api/v2/testcases/validate |
POST |
Standard |
/api/v2/testcases/{id} |
GET |
Guest |
/api/v2/testcases/{id} |
PUT |
Admin, or the user who created it |
/api/v2/testcases/{id} |
DELETE |
Admin, or the user who created it |
/api/v2/testcases/{id}/result/latest |
GET |
Guest |
/api/v2/testcases/{id}/results |
GET |
Guest |
/api/v2/testcases/{id}/run |
POST |
Standard |
/api/v2/testcases/{id}/testsuites |
GET |
Guest |
/api/v2/testexecutions |
GET |
Guest |
/api/v2/testexecutions/{id} |
GET |
Guest |
/api/v2/testexecutions/{id} |
DELETE |
Admin, or the user who created it |
/api/v2/testexecutions/{id}/analysis |
GET |
Guest |
/api/v2/testexecutions/{id}/analysis |
DELETE |
Admin |
/api/v2/testexecutions/{id}/analyze |
POST |
Standard |
/api/v2/testexecutions/{id}/rerun |
POST |
Standard |
/api/v2/testnodes |
GET |
Guest |
/api/v2/testnodes |
POST |
Admin |
/api/v2/testnodes/info |
GET |
Guest |
/api/v2/testnodes/uptime |
GET |
Guest |
/api/v2/testnodes/{id} |
GET |
Guest |
/api/v2/testnodes/{id} |
PUT |
Admin, or the user who created it |
/api/v2/testnodes/{id} |
DELETE |
Admin |
/api/v2/testnodes/{id}/action |
POST |
Admin |
/api/v2/testnodes/{id}/mobiledevices |
GET |
Guest |
/api/v2/testnodes/{id}/status |
GET |
Guest |
/api/v2/testnodes/{id}/uptime |
GET |
Guest |
/api/v2/testsuites |
GET |
Guest |
/api/v2/testsuites |
POST |
Standard |
/api/v2/testsuites/upcoming |
GET |
Guest |
/api/v2/testsuites/{id} |
GET |
Guest |
/api/v2/testsuites/{id} |
PUT |
Admin, or the user who created it |
/api/v2/testsuites/{id} |
DELETE |
Admin, or the user who created it |
/api/v2/testsuites/{id}/cancel |
POST |
Admin, or the user who created it |
/api/v2/testsuites/{id}/execute |
POST |
Standard |
/api/v2/tokens |
GET |
Admin |
/api/v2/tokens |
POST |
Admin |
/api/v2/tokens/validate |
POST |
No token |
/api/v2/tokens/{id} |
DELETE |
Admin |
/api/v2/tracefilters |
GET |
Guest |
/api/v2/tracefilters |
POST |
Standard |
/api/v2/tracefilters/{id} |
GET |
Guest |
/api/v2/tracefilters/{id} |
PUT |
Admin, or the user who created it |
/api/v2/tracefilters/{id} |
DELETE |
Admin, or the user who created it |
/api/v2/tracefilters/{id}/testcases |
GET |
Guest |
/api/v2/users |
GET |
Admin |
/api/v2/users |
POST |
Admin |
/api/v2/users/me |
GET |
Guest |
/api/v2/users/{id} |
GET |
Admin |
/api/v2/users/{id} |
PUT |
Admin |
/api/v2/users/{id}/delete |
POST |
Admin |
Paging
List endpoints that take page and size return a page object. The items are in content; totalElements, totalPages, number (the current page) and size describe the paging.
page: zero-based page number (integer, default 0).
size: page size (integer, default 20).
sort: optional, <field>,asc or <field>,desc.