Administration Services
The Administration Services of Mobile Utility Server provide functionality for managing applications, certificates, versions, and text resources.
Possible Error Codes
| HTTP Status Code | Error Code | Description |
|---|---|---|
400 |
APP_EXCEPTION |
Indicates an error occurring during app operations like creating an already existing app. |
400 |
ERROR_REQUEST |
Request did not pass a structural validation (mandatory field is null, invalid field type, etc.). |
400 |
UNKNOWN_ERROR |
An error occurred when processing the request. Problems with request binding |
401 |
ERROR_AUTHENTICATION |
Unauthorized access attempt. This occurs when invalid credentials are provided. |
404 |
APP_NOT_FOUND |
Indicates that the app with the provided ID was not found. |
500 |
INTERNAL_ERROR |
An internal server error occurred, potentially due to misconfiguration. |
Services
post /admin/apps Create Application
Create a new application with specified name.
Request
Request Body
{
"name": "mobile-app",
"displayName": "Mobile App"
}
| Attribute | Type | Description |
|---|---|---|
name* |
String |
Name of the application. |
displayName* |
String |
Display name of the application. |
Response
{
"name": "Application Name",
"displayName": "Display name of the Application",
"publicKey": "pk1",
"domains": [
{
"name": "name1",
"certificates": [
{
"pem": "pem1",
"fingerprint": "fingerprint1",
"expires": 100,
"depth": 1
}
]
}
]
}
| Attribute | Type | Description |
|---|---|---|
name |
String |
Name of the application. |
displayName |
String |
Display name of the application. |
publicKey |
String |
Public key of the application. |
domains |
Object[] |
List of domain configurations for the application. |
domains[].name |
String |
Name of the domain. |
domains[].certificates |
Object[] |
List of certificates for the domain. |
domains[].certificates[].pem |
String |
PEM-encoded certificate. |
domains[].certificates[].fingerprint |
String |
Fingerprint of the certificate. |
domains[].certificates[].expires |
Long |
Expiration time of the certificate in epoch seconds. |
domains[].certificates[].depth |
Integer |
Depth of the certificate in the certificate chain (0 being leaf). |
Application creation failed due to invalid input or missing required fields.
{
"status": "ERROR",
"responseObject": {
"code": "ERROR_REQUEST",
"message": "Required fields are missing"
}
}
Application creation failed due to already used app name or error while generating cryptographic keys.
{
"status": "ERROR",
"responseObject": {
"code": "APP_EXCEPTION",
"message": "Application with name already exists: XY / Error while generating cryptographic keys"
}
}
Possible Error states are:
ERROR_REQUEST- Request did not pass a structural validation (mandatory field is null, invalid field type, etc.).APP_EXCEPTION- Application with name already exists: XY or Error while generating cryptographic keys.
Invalid username or password was provided while calling the service.
{
"status": "ERROR",
"responseObject": {
"code": "ERROR_AUTHENTICATION",
"message": "Unauthorized"
}
}
get /admin/apps List Applications
Retrieve a list of all registered applications.
Response
{
"applications": [
{
"name": "mobile-app-1",
"displayName": "Mobile App 1"
},
{
"name": "mobile-app-2",
"displayName": "Mobile App 2"
}
]
}
| Attribute | Type | Description |
|---|---|---|
applications |
Object[] |
List of registered applications. |
applications[].name |
String |
Name of the application. |
applications[].displayName |
String |
Display name of the application. |
Invalid username or password was provided while calling the service.
{
"status": "ERROR",
"responseObject": {
"code": "ERROR_AUTHENTICATION",
"message": "Unauthorized"
}
}
get /admin/apps/{name} Application Detail
Retrieve detailed information about a specific application by its name. This endpoint provides complete details including configuration settings.
Request
Path Params
| Param | Type | Description |
|---|---|---|
name* |
String |
Name of the application to retrieve details for. |
Response
{
"name": "Application Name",
"displayName": "Display name of the Application",
"publicKey": "pk1",
"domains": [
{
"name": "name1",
"certificates": [
{
"pem": "pem1",
"fingerprint": "fingerprint1",
"expires": 100,
"depth": 1
}
]
}
]
}
| Attribute | Type | Description |
|---|---|---|
name |
String |
Name of the application. |
displayName |
String |
Display name of the application. |
publicKey |
String |
Public key of the application. |
domains |
Object[] |
List of domain configurations for the application. |
domains[].name |
String |
Name of the domain. |
domains[].certificates |
Object[] |
List of certificates for the domain. |
domains[].certificates[].pem |
String |
PEM-encoded certificate. |
domains[].certificates[].fingerprint |
String |
Fingerprint of the certificate. |
domains[].certificates[].expires |
Long |
Expiration time of the certificate in epoch seconds. |
domains[].certificates[].depth |
Integer |
Depth of the certificate in the certificate chain (0 being leaf). |
Invalid username or password was provided while calling the service.
{
"status": "ERROR",
"responseObject": {
"code": "ERROR_AUTHENTICATION",
"message": "Unauthorized"
}
}
put /admin/apps/{name}/pinning-bypass-domains Disable SSL Pinning for Domains
Disable SSL pinning for the listed domains. The supplied list must contain all domains for which the SSL pinning should be disabled. If the endpoint is called and an existing domain is not listed, SSL pinning will be enabled for it (regardless of whether it was previously disabled). If a non-existent domain is listed, it will be ignored.
Request
Path Params
| Param | Type | Description |
|---|---|---|
name* |
String |
Name of the application for whose domains the SSL pinning shall be disabled. |
Request Body
[
"domain1"
]
Response
{
"domains": [
{
"name": "domain1",
"sslPinningRequired": false
},
{
"name": "domain2",
"sslPinningRequired": true
}
]
}
| Attribute | Type | Description |
|---|---|---|
domains |
Object[] |
List of all configured domains for given mobile application. |
domain[].name |
String |
Domain name. |
domain[].sslPinningRequired |
Boolean |
Flag indicating whether SSL pinning is enabled for the domain. |
Failed to configure SSL pinning for domains due to invalid input.
{
"status": "ERROR",
"responseObject": {
"code": "ERROR_REQUEST",
"message": "Required fields are missing"
}
}
Invalid username or password was provided while calling the service.
{
"status": "ERROR",
"responseObject": {
"code": "ERROR_AUTHENTICATION",
"message": "Unauthorized"
}
}
Failed to configure SSL pinning for domains because the requested app was not found.
{
"status": "ERROR",
"responseObject": {
"code": "APP_NOT_FOUND",
"message": "App with a provided ID was not found."
}
}
Error occurred during app execution.
{
"timestamp": "TIMESTAMP",
"status": 500,
"error": "Internal Server Error",
"path": "/admin/apps/mobile-app22/pinning-bypass-domains"
}
post /admin/apps/{name}/certificates/auto Create Automatic Application Certificate
Automatically generate and associate a certificate with a specified application. This endpoint handles the creation and registration of a new certificate using server-defined parameters.
Request
Path Params
| Param | Type | Description |
|---|---|---|
name* |
String |
Name of the application for which the certificate will be created. |
Request Body
{
"domain": "domain1"
}
| Attribute | Type | Description |
|---|---|---|
domain* |
String |
The domain from which to fetch the certificate. |
Response
{
"name": "Domain Name",
"pem": "pem1",
"fingerprint": "fingerprint1",
"expires": 100,
"depth": 0
}
| Attribute | Type | Description |
|---|---|---|
name* |
String |
Name of the domain. |
pem* |
String |
PEM format of the certificate. |
fingerprint* |
String |
Fingerprint of the certificate.. |
expires* |
Long |
Timestamp when the certificate will expire. |
depth |
Integer |
Depth of the certificate in the certificate chain - always 0 (leaf) in this case. |
Certificate creation failed due to invalid input or missing required fields.
{
"status": "ERROR",
"responseObject": {
"code": "ERROR_REQUEST",
"message": "Required fields are missing"
}
}
Invalid username or password was provided while calling the service.
{
"status": "ERROR",
"responseObject": {
"code": "ERROR_AUTHENTICATION",
"message": "Unauthorized"
}
}
Failed to create the certificate because the requested app was not found.
{
"status": "ERROR",
"responseObject": {
"code": "APP_NOT_FOUND",
"message": "App with a provided ID was not found."
}
}
Error occurred during app execution.
{
"timestamp": "TIMESTAMP",
"status": 500,
"error": "Internal Server Error",
"path": "/admin/apps/mobile-app22/certificates/auto"
}
post /admin/apps/{name}/certificates/pem Create PEM Application Certificate
Manually add a PEM format certificate to a specified application. This endpoint accepts a PEM-encoded certificate and associates it with the application.
Request
Path Params
| Param | Type | Description |
|---|---|---|
name* |
String |
Name of the application to which the certificate will be attached. |
Request Body
{
"pem": "pem1",
"domain": "domain1",
"depth": 1
}
| Attribute | Type | Description |
|---|---|---|
pem* |
String |
PEM encoded certificate string. |
domain* |
String |
Domain this certificate belongs to. In case the depth is 0, it must match the hostname of the certificate in pem. |
depth |
Integer |
Depth of the certificate in the certificate chain (0 being leaf). If missing, the value 0 is used. |
Response
{
"name": "Domain Name",
"pem": "pem1",
"fingerprint": "fingerprint1",
"expires": 100,
"depth": 1
}
| Attribute | Type | Description |
|---|---|---|
name* |
String |
Name of the domain. |
pem* |
String |
PEM format of the certificate. |
fingerprint* |
String |
Fingerprint of the certificate.. |
expires* |
Long |
Timestamp when the certificate will expire. |
depth |
Integer |
Depth of the certificate in the certificate chain (0 being leaf). |
Certificate creation failed due to invalid input or missing required fields.
{
"status": "ERROR",
"responseObject": {
"code": "ERROR_REQUEST",
"message": "Required fields are missing"
}
}
Invalid username or password was provided while calling the service.
{
"status": "ERROR",
"responseObject": {
"code": "ERROR_AUTHENTICATION",
"message": "Unauthorized"
}
}
Failed to create the certificate because the requested app was not found.
{
"status": "ERROR",
"responseObject": {
"code": "APP_NOT_FOUND",
"message": "App with a provided ID was not found."
}
}
Error occurred during app execution.
{
"timestamp": "TIMESTAMP",
"status": 500,
"error": "Internal Server Error",
"path": "/admin/apps/mobile-app22/certificates/auto"
}
delete /admin/apps/{name}/certificates Delete Certificate
Delete a certificate associated with a specific application based on domain and fingerprint criteria.
Request
Path Params
| Param | Type | Description |
|---|---|---|
name* |
String |
Name of the application from which certificates will be deleted. |
Query Parameters
| Parameter | Type | Description |
|---|---|---|
domain* |
String |
Domain associated with the certificate. |
fingerprint* |
String |
Fingerprint of the certificate to specifically target for deletion. |
Response
{
"status": "OK"
}
Invalid username or password was provided while calling the service.
{
"status": "ERROR",
"responseObject": {
"code": "ERROR_AUTHENTICATION",
"message": "Unauthorized"
}
}
delete /admin/apps/{name}/domains Delete Domain
Delete a domain associated with a specific application.
Request
Path Params
| Param | Type | Description |
|---|---|---|
name* |
String |
Name of the application from which the domain will be deleted. |
Query Parameters
| Parameter | Type | Description |
|---|---|---|
domain* |
String |
Domain to be deleted from the application. |
Response
Indicates that the domain was successfully deleted.
{
"status": "OK"
}
Invalid username or password was provided while calling the service.
{
"status": "ERROR",
"responseObject": {
"code": "ERROR_AUTHENTICATION",
"message": "Unauthorized"
}
}
delete /admin/certificates/expired Delete Expired Certificates
Remove all expired certificates from the system. This endpoint provides a cleanup mechanism for old or no longer valid certificates.
Response
Indicates that all expired certificates were successfully removed.
{
"status": "OK"
}
Invalid username or password was provided while calling the service.
{
"status": "ERROR",
"responseObject": {
"code": "ERROR_AUTHENTICATION",
"message": "Unauthorized"
}
}
get /admin/apps/{name}/versions List Application Versions
Retrieve a list of all versions for a specific application. This endpoint provides details about each version, including version number and status.
Request
Path Parameters
| Param | Type | Description |
|---|---|---|
name* |
String |
Name of the application for which versions are being listed. |
Response
{
"applicationVersions": [
{
"id": 1,
"platform": "ANDROID",
"majorOsVersion": 12,
"suggestedVersion": "3.1.2",
"requiredVersion": "3.1.2",
"messageKey": "update_required"
}
]
}
| Attribute | Type | Description |
|---|---|---|
applicationVersions |
Object[] |
List of app versions. |
applicationVersions[].id* |
Long |
Unique identifier of the application version. |
applicationVersions[].platform* |
Enum |
Platform of the application (e.g., ANDROID, IOS). |
applicationVersions[].majorOsVersion |
Integer |
Major OS version for the application, may be null to match all. |
applicationVersions[].suggestedVersion |
String |
Suggested version of the application in SemVer 2.0 format. |
applicationVersions[].requiredVersion |
String |
Required version of the application in SemVer 2.0 format. |
applicationVersions[].messageKey* |
String |
Key for the message related to the version (e.g., for localization purposes). |
Invalid username or password was provided while calling the service.
{
"status": "ERROR",
"responseObject": {
"code": "ERROR_AUTHENTICATION",
"message": "Unauthorized"
}
}
get /admin/apps/{name}/versions/{id} Application Version Detail
Retrieve detailed information about a specific version of an application.
Request
Path Parameters
| Param | Type | Description |
|---|---|---|
name* |
String |
Name of the application. |
id * |
Long |
Identifier of the version to retrieve details for. |
Response
{
"id": 1,
"platform": "ANDROID",
"majorOsVersion": 12,
"suggestedVersion": "3.1.2",
"requiredVersion": "3.1.2",
"messageKey": "update_required"
}
| Attribute | Type | Description |
|---|---|---|
id* |
Long |
Unique identifier of the application version. |
platform* |
Enum |
Platform of the application (e.g., ANDROID, IOS). |
majorOsVersion |
Integer |
Major OS version for the application, may be null to match all. |
suggestedVersion |
String |
Suggested version of the application in SemVer 2.0 format. |
requiredVersion |
String |
Required version of the application in SemVer 2.0 format. |
messageKey* |
String |
Key for the message related to the version (e.g., for localization purposes). |
Invalid username or password was provided while calling the service.
{
"status": "ERROR",
"responseObject": {
"code": "ERROR_AUTHENTICATION",
"message": "Unauthorized"
}
}
post /admin/apps/{name}/versions Create Application Version
Add a new version to a specific application.
Request
Path Parameters
| Param | Type | Description |
|---|---|---|
name* |
String |
Name of the application to add the version to. |
Request Body
{
"platform": "ANDROID",
"majorOsVersion": 12,
"suggestedVersion": "3.1.2",
"requiredVersion": "3.1.2",
"messageKey": "update_required"
}
| Attribute | Type | Description |
|---|---|---|
platform* |
Enum |
Platform of the application (e.g., ANDROID, IOS). |
majorOsVersion |
Integer |
Major OS version for the application, may be null to match all. |
suggestedVersion* |
String |
Suggested version of the application in SemVer 2.0 format. |
requiredVersion* |
String |
Required version of the application in SemVer 2.0 format. |
messageKey |
String |
Key for the message related to the version (e.g., for localization purposes). |
Response
{
"id": 1,
"platform": "ANDROID",
"majorOsVersion": 12,
"suggestedVersion": "3.1.2",
"requiredVersion": "3.1.2",
"messageKey": "update_required"
}
| Attribute | Type | Description |
|---|---|---|
id* |
Long |
Unique identifier of the application version. |
platform* |
Enum |
Platform of the application (e.g., ANDROID, IOS). |
majorOsVersion |
Integer |
Major OS version for the application, may be null to match all. |
suggestedVersion |
String |
Suggested version of the application in SemVer 2.0 format. |
requiredVersion |
String |
Required version of the application in SemVer 2.0 format. |
messageKey* |
String |
Key for the message related to the version (e.g., for localization purposes). |
Certificate creation failed due to invalid input or missing required fields.
{
"status": "ERROR",
"responseObject": {
"code": "ERROR_REQUEST",
"message": "Required fields are missing"
}
}
Invalid username or password was provided while calling the service.
{
"status": "ERROR",
"responseObject": {
"code": "ERROR_AUTHENTICATION",
"message": "Unauthorized"
}
}
delete /admin/apps/{name}/versions/{id} Delete Application Version
Remove a specific version from an application. This action is irreversible and should be used with caution to ensure that no critical information is lost.
Request
Path Parameters
| Param | Type | Description |
|---|---|---|
name* |
String |
Name of the application. |
id* |
String |
Identifier of the version to delete. |
Response
Indicates that the version was successfully deleted.
{
"status": "OK"
}
get /admin/texts List Texts
Retrieve a list of all text entries managed within the system.
Response
{
"texts": [
{
"messageKey": "welcome_message",
"language": "en",
"text": "Welcome to our application!"
},
{
"messageKey": "farewell_message",
"language": "es",
"text": "Gracias por visitar nuestra aplicación."
}
]
}
| Attribute | Type | Description |
|---|---|---|
texts* |
Object[] |
List of texts. |
texts[].messageKey* |
String |
Unique key identifier for the text. |
texts[].language* |
String |
ISO 639-1 two-letter language code. |
texts[].text* |
String |
The content of the text. |
Invalid username or password was provided while calling the service.
{
"status": "ERROR",
"responseObject": {
"code": "ERROR_AUTHENTICATION",
"message": "Unauthorized"
}
}
get /admin/texts/{key}/{language} Text Detail
Retrieve detailed information about a specific text identified by its key and language. This endpoint provides the content and the last update timestamp.
Request
Path Parameters
| Param | Type | Description |
|---|---|---|
key* |
String |
The key identifier for the text. |
language* |
String |
The language code for the text. |
Response
{
"messageKey": "welcome_message",
"language": "en",
"text": "Welcome to our application!"
}
| Attribute | Type | Description |
|---|---|---|
messageKey* |
String |
Unique key identifier for the text. |
language* |
String |
ISO 639-1 two-letter language code. |
text* |
String |
The content of the text. |
Invalid username or password was provided while calling the service.
{
"status": "ERROR",
"responseObject": {
"code": "ERROR_AUTHENTICATION",
"message": "Unauthorized"
}
}
post /admin/texts Create Text
Add a new text entry to the system.
Request
Request Body
{
"messageKey": "new_message",
"language": "fr",
"text": "Bienvenue dans notre application!"
}
| Attribute | Type | Description |
|---|---|---|
messageKey* |
String |
Unique key identifier for the text. |
language* |
String |
ISO 639-1 two-letter language code. |
text* |
String |
The content of the text. |
Response
{
"messageKey": "new_message",
"language": "fr",
"text": "Bienvenue dans notre application!"
}
| Attribute | Type | Description |
|---|---|---|
messageKey* |
String |
Unique key identifier for the text. |
language* |
String |
ISO 639-1 two-letter language code. |
text* |
String |
The content of the text. |
{
"status": "ERROR",
"responseObject": {
"code": "ERROR_REQUEST",
"message": "Required fields are missing"
}
}
delete /admin/texts/{key}/{language} Delete Text
Remove a specific text entry from the system identified by its key and language.
Request
Path Parameters
| Param | Type | Description |
|---|---|---|
key* |
String |
The key identifier for the text. |
language* |
String |
The language code for the text. |
Response
{
"status": "OK"
}