Qualify Validation

Qualify is an award winning, cloud native, file based QC service designed for broadcasters, content creators and distributors who need to meet industry requirements for media delivery. Ideal for media QC checks for inbound content from creators or outbound content delivery to Netflix and Prime or public broadcasters who require strict compliance for:

  • Format (codec, resolution, frame rate)
  • Bitrate and audio channels configuration
  • Video range, black levels, color gamut
  • Specific layout (bars + black + program)
  • Loudness levels (ATSC A/85, EBU R128)
  • Quality levels (blockiness, letterboxing)

Custom Qualify test plan creation is available in the Encoding.com UI and complete API integration documentation is referenced below. Please see the Qualify User Guide for more test plan configuration details and a Complete List of Qualify QC Tests.

🚧

Media Format

Qualify Validation available only for mp4, cablelabs_mpegts, mainconcept_mxf, and mxf_op1a output formats. For qc_check format, You can use all single-bitrate media containers, Mpeg-DASH container, and all video and audio codecs.

❗️

Template name as identifier

Prior to 7.22 release Qualify Template parameter name used as identifier, after 7.22 release template identifier changed to the unique GUID.
Template name still can be used as identifier but it's not recommended because now name parameter isn't unique e.g. it will address the first template with provided name.

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>AddMedia</action>
    <source>[SourceFile|SourcePlaylist]</source><!-- required -->
    <format>
        <output>[mp4|cablelabs_mpegts|mainconcept_mxf|mxf_op1a]</output><!-- required -->
        <qc>
            <qc_qualify_validation>
                <template_id>[TemplateGUID]</template_id><!-- required if template_json not specified -->
                <template>[TemplateName]</template><!-- optional, deprecated -->
                <template_json><![CDATA[
                    {
                        "name": "[TemplateName]",
                        "tests": {
                            [TestsList]
                        },
                        "package_layout": {
                            // package_layout params
                        },
                        "audio_layout": {
                            // audio_layout params
                        }
                    }
                ]]></template_json>
                <sidecar>[SidecarURL_1]</sidecar>
                <sidecar>[SidecarURL_2]</sidecar>
                <!-- ... -->
                <sidecar>[SidecarURL_N]</sidecar>
                <report_destination_pdf>[PdfReportDestinationURL]</report_destination_pdf>
                <report_destination_json>[JsonReportDestinationURL]</report_destination_json>
                <send_pdf>[yes|no]</send_pdf>
            </qc_qualify_validation>
        </qc>
        <!-- format params -->
    </format>
</query>
{
    "query": {
        "userid": "[UserID]", // required
        "userkey": "[UserKey]", // required
        "action": "AddMedia", // required
        "source": "[SourceFile|SourcePlaylist]", // required
        "format": {
            "output": "[mp4|cablelabs_mpegts|mainconcept_mxf|mxf_op1a]", // required
            "qc": {
                "qc_qualify_validation": {
                    "template_id": "[TemplateGUID]", // required if template_json not specified
                    "template": "[TemplateName]", // optional, deprecated
                    "template_json": {
                        "name": "[TemplateName]",
                        "tests": {
                            [TestsList]
                        },
                        "package_layout": {
                            // package_layout params
                        },
                        "audio_layout": {
                            // audio_layout params
                        }
                    },
                    "sidecar": [
                        "SidecarURL_1",
                        "SidecarURL_2",
                        // ...
                        "SidecarURL_N"
                    ],
                    "report_destination_pdf": "[PdfReportDestinationURL]",
                    "report_destination_json": "[JsonReportDestinationURL]",
                    "send_pdf": "[yes|no]"
                }
            }
            // format params
        }
    }
}
<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>AddMedia</action>
    <source>[SourceFile|SourcePlaylist]</source><!-- required -->
    <format>
        <output>qc_check</output><!-- required -->
        <source_options>
            <qc>
                <qc_qualify_validation>
                    <template_id>[TemplateGUID]</template_id><!-- required if template_json not specified -->
                    <template>[TemplateName]</template><!-- optional, deprecated -->
                    <template_json><![CDATA[
                        {
                            "name": "[TemplateName]",
                            "tests": {
                                [TestsList]
                            },
                            "package_layout": {
                                // package_layout params
                            },
                            "audio_layout": {
                                // audio_layout params
                            }
                        }
                    ]]></template_json>
                    <sidecar>[SidecarURL_1]</sidecar>
                    <sidecar>[SidecarURL_2]</sidecar>
                    <!-- ... -->
                    <sidecar>[SidecarURL_N]</sidecar>
                    <report_destination_pdf>[PdfReportDestinationURL]</report_destination_pdf>
                    <report_destination_json>[JsonReportDestinationURL]</report_destination_json>
                    <send_pdf>[yes|no]</send_pdf>
                </qc_qualify_validation>
            </qc>
        </source_options>
    </format>
</query>
{
    "query": {
        "userid": "[UserID]", // required
        "userkey": "[UserKey]", // required
        "action": "AddMedia", // required
        "source": "[SourceFile|SourcePlaylist]", // required
        "format": {
            "output": "qc_check", // required
            "source_options": {
                "qc": {
                    "qc_qualify_validation": {
                        "template_id": "[TemplateGUID]", // required if template_json not specified
                        "template": "[TemplateName]", // optional, deprecated
                        "template_json": {
                            "name": "[TemplateName]",
                            "tests": {
                                [TestsList]
                            },
                            "package_layout": {
                                // package_layout params
                            },
                            "audio_layout": {
                                // audio_layout params
                            }
                        },
                        "sidecar": [
                            "SidecarURL_1",
                            "SidecarURL_2",
                            // ...
                            "SidecarURL_N"
                        ],
                        "report_destination_pdf": "[PdfReportDestinationURL]",
                        "report_destination_json": "[JsonReportDestinationURL]",
                        "send_pdf": "[yes|no]"
                    }
                }
            }
        }
    }
}
ParameterDescriptionAllowed ValuesDefault Value
template_idQualify Template GUID.Stringnone
templateQualify Template name.
Deprected
Stringnone
template_jsonQualify Template JSONValid JSONnone
sidecarTemplate sidecar files arrayValid URLnone
report_destination_pdfQualify PDF report destination URLValid URL
String can contain placeholder $media_id$ that will be replaced with ID of QC media
none
report_destination_jsonQualify JSON report destination URLValid URL
String can contain placeholder $media_id$ that will be replaced with ID of QC media
none
report_destinationAlias for report_destination_jsonSee abovenone
send_pdfAttach a PDF report to the email notification from "qc_notify"yes, nono
🚧

For template_json parameter

  • If parameter <template_json /> specified then <template_id /> and <template> parameters will be ignored.
  • It's not possible to refer to saved audio and package layouts by <id> parameter.
  • Template specified in <template_json /> parameter not saved in database.

Full Template Schema - Engine Version 2026.2.1

{
    "$schema": "http://json-schema.org/schema#",
    "title": "Templates Schema",
    "type": "object",
    "description": "Represents a Qualify job template",
    "definitions": {
        "audio_program": {
            "type": "array",
            "items": {
                "type": "integer",
                "enum": [
                    0, 1, 2 ,3, 4, 5, 6, 7, 8, 9, 10, 11,
                    12, 13, 14, 15, 16, 17, 18, 19, 20,
                    65, 66, 68, 69, 70,
                    33, 34, 35
                ],
                "titleMap":
                [
                  {
                    "value": 0,
                    "name": "Unknown (U)"
                  },
                  {
                    "value": 1,
                    "name": "Left (L)"
                  },
                  {
                    "value": 2,
                    "name": "Right (R)"
                  },
                  {
                    "value": 3,
                    "name": "Center (C)"
                  },
                  {
                    "value": 4,
                    "name": "LFE (LFE)"
                  },
                  {
                    "value": 5,
                    "name": "Left Surround (Ls)"
                  },
                  {
                    "value": 6,
                    "name": "Right Surround (Rs)"
                  },
                  {
                    "value": 7,
                    "name": "Left Center (Lc)"
                  },
                  {
                    "value": 8,
                    "name": "Right Center (Rc)"
                  },
                  {
                    "value": 9,
                    "name": "Center Surround (Cs)"
                  },
                  {
                    "value": 10,
                    "name": "Left Side (Lsd)"
                  },
                  {
                    "value": 11,
                    "name": "Right Side (Rsd)"
                  },
                  {
                    "value": 12,
                    "name": "Top Center (Tcs)"
                  },
                  {
                    "value": 13,
                    "name": "Top Front Left (Tfl)"
                  },
                  {
                    "value": 14,
                    "name": "Top Front Center (Tfc)"
                  },
                  {
                    "value": 15,
                    "name": "Top Front Right (Tfr)"
                  },
                  {
                    "value": 16,
                    "name": "Top Back Left (Tbl)"
                  },
                  {
                    "value": 17,
                    "name": "Top Back Center (Tbc)"
                  },
                  {
                    "value": 18,
                    "name": "Top Back Right (Tbr)"
                  },
                  {
                    "value": 19,
                    "name": "Top Side Left (Tsl)"
                  },
                  {
                    "value": 20,
                    "name": "Top Side Right (Tsr)"
                  },
                  {
                    "value": 65,
                    "name": "Left Wide (Lw)"
                  },
                  {
                    "value": 66,
                    "name": "Right Wide (Rw)"
                  },
                  {
                    "value": 68,
                    "name": "LFE2 (LFE2)"
                  },
                  {
                    "value": 69,
                    "name": "Left Rear Surround (Lrs)"
                  },
                  {
                    "value": 70,
                    "name": "Right Rear Surround (Rrs)"
                  },
                  {
                    "value": 33,
                    "name": "Left Total (Lt)"
                  },
                  {
                    "value": 34,
                    "name": "Right Total (Rt)"
                  },
                  {
                    "value": 35,
                    "name": "Mono (M)"
                  }
                ]
            }
        },
        "audio_mapping": {
            "type": "array",
            "items": {
                "$ref": "#/definitions/audio_program"
            }
        },
        "audio_layout": {
            "type": ["object", "null"],
            "properties": {
                "name": {
                    "type": "string"
                },
                "layout": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/audio_mapping"
                    }
                }
            },
            "required": [
                "name",
                "layout"
            ]
        },
        "package_layout": {
            "type": ["object", "null"],
            "properties": {
                "name": {
                    "type": "string"
                },
                "video_index": {
                    "description": "Index of video track from ABR manifest file that will be used in checks\n",
                    "type": "integer",
                    "minimum": 1
                },
                "audio_indexes": {
                    "description": "Index of audio track from ABR manifest file that will be  used in checks\n",
                    "type": "array",
                    "items": {
                        "type": "integer",
                        "minimum": 1
                    }
                },
                "subtitle_indexes": {
                    "description": "Index of subtitle track from ABR manifest file that will be used in check\n",
                    "type": "array",
                    "items": {
                        "type": "integer",
                        "minimum": 1
                    }
                }
            },
            "required": [
                "name",
                "video_index",
                "audio_indexes",
                "subtitle_indexes"
            ]
        },
        "media_layout": {
            "type": "object",
            "required": [ "units" ],
            "properties": {
                "start": {
                    "title": "Start",
                    "$ref": "definitions.json#/definitions/range_limit"
                },
                "end": {
                    "title": "End",
                    "$ref": "definitions.json#/definitions/range_limit"
                },
                "start_timecode": {
                    "title": "Start Timecode",
                    "$ref": "definitions.json#/definitions/timecode"
                },
                "end_timecode": {
                    "title": "End Timecode",
                    "$ref": "definitions.json#/definitions/timecode"
                },
                "use_start_timecode_for_media_layout": {
                    "title": "Use Start Timecode For Media Layout",
                    "description": "Whether to use the start timecode of the media for the media layout.",
                    "type": ["boolean", "null"],
                    "nullable": true,
                    "default": false
                },
                "units": {
                    "title": "Layout boundary units",
                    "$ref": "definitions.json#/definitions/time_units_extended"
                }
            },
            "if": {
              "properties": { "units": {  "const": 2 } }
            },
            "then":
            {
              "required": ["start_timecode", "end_timecode"]
            },
            "else":
            {
              "required": ["start", "end"]
            }
        },
        "upgrade_note":
        {
           "type": "object",
           "title": "Upgrade Note",
           "description": "Upgrade Note(s).",
           "additonalProperties": false,
            "required": ["version", "notes"],
            "properties":
             {
               "version":
               {
                 "type": "string",
                 "title": "Upgrade Version",
                 "description": "The engine version that the template has been upgraded to.",
                 "minLength": 1
               },
               "notes":
               {
                 "type": "array",
 		             "items":
 		             {
			             "type": "string"
                 }
               }
            }
        }
    },
    "properties": {
        "name": {
            "description": "User given name of a template",
            "type": "string",
            "nullable": false
        },
        "id": {
            "description": "Cloud ID",
            "type": ["string", "null"],
            "nullable": true
        },
        "created_at":
        {
            "description": "Cloud Created at",
            "type": ["string", "null"],
            "regex": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
            "nullable": true
        },
        "updated_at":
        {
            "description": "Cloud Updated at",
            "type": ["string", "null"],
            "regex": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
            "nullable": true
        },
        "aggregate_alerts_limit": {
            "description" : "Option to aggregate alerts of the same ID",
            "type": ["integer", "null"],
            "nullable": true
        },
        "use_starttimecode": {
            "description" : "Option to use the video's timecode for alert start & end times",
            "type": ["boolean", "null"],
            "default": false,
            "nullable": true
        },
        "audio_layout": {
            "description": "Audio layout to use",
            "$ref": "#/definitions/audio_layout"
        },
        "audio_layout_id": {
            "description": "Id of audio layout to use",
            "type": ["string", "null"],
            "nullable": true
        },
        "package_layout": {
            "description": "Package layout to use",
            "$ref": "#/definitions/package_layout"
        },
        "package_layout_id": {
            "description": "Id of package layout to use",
            "type": ["string", "null"],
            "nullable": true
        },
        "engine_version": {
            "description": "Engine version",
            "type": "string",
            "regex":"^[0-9]{4}.[0-9]{1,2}.[1-9]{1,2}$"
        },
        "user_notes": {
            "title": "User Notes",
            "description": "User notes - this can contain any extra information.",
            "type": ["string", "null"],
            "nullable": true,
            "default": ""
        },
        "upgrade_notes":
        {
            "title": "Upgrade Notes",
            "description": "Upgrade notes.",
            "type": ["array", "null"],
 		        "items":
 		        {
			        "$ref": "#/definitions/upgrade_note"
            },
            "nullable": true
        },
        "treat_warnings_as": {
          "title": "Treat Warnings as",
          "description": "Treat Warnings As.",
          "type": [
                "integer",
                "null"
            ],
          "enum": [
            0,
            1,
            2,
            4
          ],
          "titleMap": [
            {
              "value": 0,
              "name": "Info"
            },
            {
              "value": 1,
              "name": "Warning"
            },
            {
              "value": 2,
              "name": "Error"
            },
            {
              "value": 4,
              "name": "Critical"
            }
          ],
          "default": 1,
          "nullable": true
        },
        "treat_missing_media_as": {
            "description" : "What type of alerts missing media should generate, e.g. Info, Warning, Error",
            "type": [
                "integer",
                "null"
            ],
            "enum": [ 0, 1, 2 ],
            "titleMap":
            [
              {
                "value": 0,
                "name": "Info"
              },
              {
                "value": 1,
                "name": "Warning"
              },
              {
                "value": 2,
                "name": "Error"
              }
            ],
            "default": 1,
            "nullable" : true
        },
        "tests": {
            "description": "List of tests to run",
            "type": "object",
            "additionalProperties": {
                "type": ["object", "string"]
            }
        },
        "media_layouts": {
            "description": "Media Layouts",
            "type": ["object", "null"],
            "properties": {
                "global_layout": {
                    "title": "Global layout",
                    "$ref": "#/definitions/media_layout"
                },
                "user_layout": {
                    "title": "User layout",
                    "$ref": "#/definitions/media_layout"
                }
            },
            "required": ["global_layout", "user_layout"],
            "nullable" : true
        },
        "pdf_include_images": {
            "description": "Option to include alert thumbnail images in the generated PDF report.",
            "type": [
                "boolean",
                "null"
            ],
            "default": false,
            "nullable": true
        },
        "pdf_enable_legacy_report": {
            "description": "Option to revert to the legacy design in the generated PDF report.",
            "type": [
                "boolean",
                "null"
            ],
            "default": false,
            "nullable": true
        }
    },
    "additionalProperties": false,
    "required": [
        "name",
        "tests",
        "engine_version"
    ]
}

Full Output Report Schema Engine 2026.2.1

{
    "$schema": "http://json-schema.org/schema#",
    "title": "Report Schema",
    "type": "object",
    "description": "Represents a Qualify report",
    "definitions": {

    },
    "properties": {
        "alerts": {
            "type": "array",
            "items": {
                "$ref": "result.schema.json#/definitions/alert"
            }
        },
        "alerts_summary":
        {
            "type": "object",
            "description": "Summary of all alerts raised",
            "properties": {
                "infos": {
                    "type": "integer",
                    "default": 0,
                    "minimum": 0
                },
                "warnings": {
                    "type": "integer",
                    "default": 0,
                    "minimum": 0
                },
                "errors": {
                    "type": "integer",
                    "default": 0,
                    "minimum": 0
                },
                "fatals": {
                    "type": "integer",
                    "default": 0,
                    "minimum": 0
                },
                "criticals": {
                    "type": "integer",
                    "default": 0,
                    "minimum": 0
                }
            }
        },        
        "file_info": {
            "description": "File information for the input file. Appears once per job (deprecated)",
            "type": ["string", "null"]
        },
        "file_information": {
            "description": "File information for the input file. Appears once per job",
            "$ref": "file_info.schema.json",
            "nullable": true
        },
        "filepath":{
            "description": "Path to input media file",
            "type": "string",
            "nullable": false
        },
        "source_media_url":{
            "description": "Original path to input media file",
            "type": "string",
            "nullable": false
        },
        "id":{
            "description": "Job GUID identifier",
            "type": "string",
            "pattern": "^[a-fA-F\\d]{4}(?:[a-fA-F\\d]{4}-?){4}[a-fA-F\\d]{12}$",
            "nullable": false
        },
        "progress": {
            "type": "number",
            "description": "Percentage of job completed",
            "default": 0,
            "minimum": 0,
            "maximum": 100
        },
        "state": {
            "description": "Job state",
            "$ref": "result.schema.json#/definitions/level"
        },
        "status": {
            "type": "string",
            "description": "Job Status",
            "enum": [
                "Failed",
                "Succeeded"
            ]
        },
        "template":{
            "description": "Job Template",
            "$ref": "template.schema.json",
            "nullable": false
        },
        "template_id": {
            "description": "Template GUID identifier",
            "type": ["string", "null"],
            "pattern": "^[a-fA-F\\d]{4}(?:[a-fA-F\\d]{4}-?){4}[a-fA-F\\d]{12}$",
            "nullable": true
        },
        "template_name": {
            "type": "string",
            "description": "Template Name"
        },
        "created_at":
        {
            "description": "Job creation date",
            "type": ["string", "null"],
            "regex": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
            "nullable": true
        },
        "completed_at":
        {
            "description": "Job completion date",
            "type": ["string", "null"],
            "regex": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
            "nullable": true
        }
    }
}

Qualify Report

Link to Qualify Reports can be found in GetStatus response or with direct API call

GetStatus response

<?xml version="1.0"?>
<report>
    <mediaID>[MediaID]</mediaID>
    <status>[QCStatus]</status>
    <externalReports>
        <externalReport>
            <testName>qc_qualify_validation</testName>
            <fileName>[FileName]</fileName>
            <reportLinkJSON>[QualifyJSONReportURL]</reportLinkJSON>
            <reportLinkPDF>[QualifyPDFReportURL]</reportLinkPDF>
            <result>[Success|Failure]</result>
        </externalReport>
    </externalReports>
    <!-- report fields -->
</report>
{
    "report": {
        "mediaID": "[MediaID]",
        "status": "[QCStatus]",
        "externalReports": {
            "externalReport": [
                {
                    "testName": "qc_qualify_validation",
                    "fileName": "[FileName]",
                    "reportLinkJSON": "[QualifyJSONReportURL]",
                    "reportLinkPDF": "[QualifyPDFReportURL]",
                    "result": "[Success|Failure]"
                }
            ]
        }
        // report fields
    }
}

GetQualifyReport API Call

Request

<?xml version="1.0" encoding="UTF-8"?>
<query>
    <userid>[UserID]</userid> <!-- required -->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>GetQualifyReport</action> <!-- required-->
    <mediaid>[MediaID]</mediaid> <!-- required-->
    <report_format>[pdf|json]</report_format>
    <return_url>[yes|no]</return_url>
</query>
{
    "query": {
        "userid": "[UserID]", // required
        "userkey": "[UserKey]", // required
        "action": "GetQualifyReport", // required
        "mediaid": "[MediaID]", // required
        "report_format": "[pdf|json]",
        "return_url": "[yes|no]"
    }
}
ParameterDescriptionAllowed ValuesDefault Value
mediaidID of Qualify QC MediaPositive integer numbernone
report_formatReport formatjson, pdfjson
return_urlReturn URL of the qualify reportyes, nono

Response if the return_url parameter is 'yes'

<?xml version="1.0" encoding="UTF-8"?>
<response>
    <action>getqualifyreport</action>
    <status>Success</status>
    <report_format>[pdf|json]</report_format>
    <return_url>[ReportURL]</return_url>
</response>
{
    "response": {
        "action": "getqualifyreport",
        "status": "Success",
        "report_format": "[pdf|json]",
        "return_url": "[ReportURL]"
    }
}
📘

Response if the return_url parameter is 'no'

In response for GetQualifyReport we will send empty body and add Location HTTP header with link to the report.

Qualify Progress

Qualify engine progress can be fetched from GetStatus response if <add_qualify_progress /> added

Request

<?xml version="1.0" encoding="UTF-8"?>
<query>
    <userid>[UserID]</userid> <!-- required -->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>GetStatus</action> <!-- required-->
    <mediaid>[MediaID]</mediaid> <!-- required-->
    <add_qualify_progress>yes</add_qualify_progress>
</query>
{
    "query": {
        "userid": "[UserID]", // required
        "userkey": "[UserKey]", // required
        "action": "GetStatus", // required
        "mediaid": "[MediaID]", // required
        "add_qualify_progress": "yes"
    }
}

Response

<?xml version="1.0"?>
<response>
    <id>[MediaID]</id> <!-- Equals to qc_child_media_id in parent media GetStatus response -->
    <userid>[UserID]</userid>
    <!-- media status -->
    <status>[MediaStatus]</status>
    <progress_qualify>[QualifyEngineProgress]</progress_qualify>
    <!-- status fields -->
</response>
{
    "response": {
        "id": "[MediaID]", // Equals to qc_child_media_id in parent media GetStatus response
        "userid": "[UserID]",
        // media status
        "status": "[MediaStatus]",
        "progress_qualify": "[QualifyEngineProgress]"
        // status fields
    }
}
🚧

Note

Qualify Progress only available for the child QC media

Qualify Templates Management

Validate Template

Request:
<?xml version="1.0" encoding="UTF-8"?>
<query>
    <userid>[UserID]</userid> <!-- required -->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>ValidateQualifyTemplate</action> <!-- required-->
    <template><![CDATA[
        {
            "id": "[TemplateGUID]", // optional
            "created_at": "[TemplateCreatedDate]",
            "updated_at": "[TemplateUpdatedDate]",
            "name": "[TemplateName]",
            "tests": {
                [TestsList]
            },
            "package_layout": {
                "id": "[LayoutID]" // optional, new layout will be added if not provided
                // package_layout params
            },
            "audio_layout": {
                "id": "[LayoutID]" // optional, new layout will be added if not provided
                // audio_layout params
            }
        }
    ]]></template> <!-- required-->
</query>
{
    "query": {
        "userid": "[UserID]", // required
        "userkey": "[UserKey]", // required
        "action": "ValidateQualifyTemplate", // required
        "template": {
            "id": "[TemplateGUID]", // optional
            "created_at": "[TemplateCreatedDate]",
            "updated_at": "[TemplateUpdatedDate]",
            "name": "[TemplateName]",
            "tests": {
                [TestsList]
            },
            "package_layout": {
                "id": "[LayoutID]" // optional, new layout will be added if not provided
                // package_layout params
            },
            "audio_layout": {
                "id": "[LayoutID]" // optional, new layout will be added if not provided
                // audio_layout params
            }
        } // required
    }
}
ParameterDescriptionAllowed ValuesDefault Value
templateQualify templateJSON string for XML request and JSON object for JSON request.
For XML request it should be wrapped in <![CDATA[]]> tage.
none
Response:
<?xml version="1.0" encoding="UTF-8"?>
<response>
    <action>validatequalifytemplate</action>
    <status>Success</status>
</response>
{
    "response": {
        "action": "validatequalifytemplate",
        "status": "Success"
    }
}
<?xml version="1.0" encoding="UTF-8"?>
<response>
    <action>validatequalifytemplate</action>
    <status>Error</status>
    <errors>
        <error>Template is invalid</error>
        <error>[ErrorMessage1]</error>
        <error>[ErrorMessage2]</error>
        <!-- ... -->
        <error>[ErrorMessageN]</error>
    </errors>
</response>
{
    "response": {
        "status": "Error",
        "errors": {
            "error": [
                "Template is invalid",
                "[ErrorMessage1]",
                "[ErrorMessage2]",
                // ...
                "[ErrorMessageN]"
            ]
        }
    }
}

Create Template

Request:
<?xml version="1.0" encoding="UTF-8"?>
<query>
    <userid>[UserID]</userid> <!-- required -->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>SetQualifyTemplate</action> <!-- required-->
    <template><![CDATA[
        {
            "id": "[TemplateGUID]", // optional
            "created_at": "[TemplateCreatedDate]",
            "updated_at": "[TemplateUpdatedDate]",
            "name": "[TemplateName]",
            "tests": {
                [TestsList]
            },
            "package_layout": {
                "id": "[LayoutID]" // optional, new layout will be added if not provided
                // package_layout params
            },
            "audio_layout": {
                "id": "[LayoutID]" // optional, new layout will be added if not provided
                // audio_layout params
            }
        }
    ]]></template> <!-- required-->
    <project>[TemplateProject]</project>
</query>
{
    "query": {
        "userid": "[UserID]", // required
        "userkey": "[UserKey]", // required
        "action": "SetQualifyTemplate", // required
        "template": {
            "id": "[TemplateGUID]", // optional
            "created_at": "[TemplateCreatedDate]",
            "updated_at": "[TemplateUpdatedDate]",
            "name": "[TemplateName]",
            "tests": {
                [TestsList]
            },
            "package_layout": {
                "id": "[LayoutID]" // optional, new layout will be added if not provided
                // package_layout params
            },
            "audio_layout": {
                "id": "[LayoutID]" // optional, new layout will be added if not provided
                // audio_layout params
            }
        }, // required
        "project": "[TemplateProject]"
    }
}
ParameterDescriptionAllowed ValuesDefault Value
templateQualify templateJSON string for XML request and JSON object for JSON request.
For XML request it should be wrapped in <![CDATA[]]> tage.
none
projectProject name (e.g category)Stringnone
Response:
<?xml version="1.0" encoding="UTF-8"?>
<response>
    <action>setqualifytemplate</action>
    <status>Success</status>
    <id>[TemplateGUID]</id>
    <name>[TemplateName]</name>
    <template>added</template>
</response>
{
    "response": {
        "action": "setqualifytemplate",
        "status": "Success",
        "id": "[TemplateGUID]",
        "name": "[TemplateName]",
        "template": "added"
    }
}

List added templates

Request:
<?xml version="1.0" encoding="UTF-8"?>
<query>
    <userid>[UserID]</userid> <!-- required -->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>ListQualifyTemplates</action> <!-- required-->
</query>
{
    "query": {
        "userid": "[UserID]", // required
        "userkey": "[UserKey]", // required
        "action": "ListQualifyTemplates" // required
    }
}
Response:
<?xml version="1.0" encoding="UTF-8"?>
<response>
    <action>listqualifytemplates</action>
    <status>Success</status>
    <result>
        <user_id>[UserID]</user_id>
        <templates>
            <template>
                <id>[TemplateGUID_1]</id>
                <name>[TemplateName_1]</name>
            </template>
            <template>
                <id>[TemplateGUID_2]</id>
                <name>[TemplateName_2]</name>
            </template>
            <!-- ... -->
            <template>
                <id>[TemplateGUID_N]</id>
                <name>[TemplateName_N]</name>
            </template>
        </templates>
    </result>
</response>
{
    "response": {
        "action": "listqualifytemplates",
        "status": "Success",
        "result": {
            "user_id": "[UserID]",
            "templates": [
                "template": [
                    {
                        "id": "[TemplateGUID_1]",
                        "name": "[TemplateName_1]"
                    },
                    {
                        "id": "[TemplateGUID_2]",
                        "name": "[TemplateName_2]"
                    },
                    // ...
                    {
                        "id": "[TemplateGUID_N]",
                        "name": "[TemplateName_N]"
                    },
                ]
            ]
        }
    }
}

View added template

Request:
<?xml version="1.0" encoding="UTF-8"?>
<query>
    <userid>[UserID]</userid> <!-- required -->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>GetQualifyTemplate</action> <!-- required-->
    <template_id>[TemplateGUID]</template_id> <!-- required-->
    <template_name>[TemplateName]</template_name> <!-- optional, deprecated-->
</query>
{
    "query": {
        "userid": "[UserID]", // required
        "userkey": "[UserKey]", // required
        "action": "GetQualifyTemplate", // required
        "template_id": "[TemplateGUID]", // required
        "template_name": "[TemplateName]" // optional, deprecated
    }
}
Response:
<?xml version="1.0" encoding="UTF-8"?>
<response>
    <action>getqualifytemplate</action>
    <status>Success</status>
    <id>[TemplateGUID]</id>
    <name>[TemplateName]</name>
    <template>found</template>
    <content><![CDATA[
        {
            "id": "[TemplateGUID]",
            "name": "[TemplateName]",
            "tests": {
                [TestsList]
            }
            // template params
        }
    ]]></content>
</response>
{
    "response": {
        "action": "getqualifytemplate",
        "status": "Success",
        "id": "[TemplateGUID]",
        "name": "[TemplateName]",
        "template": "found",
        "content": {
            "id": "[TemplateGUID]",
            "name": "[TemplateName]",
            "tests": {
                [TestsList]
            }
            // template params
        }
    }
}

Update Template

Request:
<?xml version="1.0" encoding="UTF-8"?>
<query>
    <userid>[UserID]</userid> <!-- required -->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>UpdateQualifyTemplate</action> <!-- required-->
    <template><![CDATA[
        {
            "id": "[TemplateGUID]", // optional
            "created_at": "[TemplateCreatedDate]",
            "updated_at": "[TemplateUpdatedDate]",
            "name": "[TemplateName]",
            "tests": {
                [TestsList]
            },
            "package_layout": {
                "id": "[LayoutID]" // optional, new layout will be added if not provided
                // package_layout params
            },
            "audio_layout": {
                "id": "[LayoutID]" // optional, new layout will be added if not provided
                // audio_layout params
            }
        }
    ]]></template> <!-- required-->
    <project>[TemplateProject]</project>
</query>
{
    "query": {
        "userid": "[UserID]", // required
        "userkey": "[UserKey]", // required
        "action": "UpdateQualifyTemplate", // required
        "template": {
            "id": "[TemplateGUID]", // required
            "created_at": "[TemplateCreatedDate]",
            "updated_at": "[TemplateUpdatedDate]",
            "name": "[TemplateName]",
            "tests": {
                [TestsList]
            },
            "package_layout": {
                "id": "[LayoutID]" // optional, new layout will be added if not provided
                // package_layout params
            },
            "audio_layout": {
                "id": "[LayoutID]" // optional, new layout will be added if not provided
                // audio_layout params
            }
        }, // required
        "project": "[TemplateProject]"
    }
}
ParameterDescriptionAllowed ValuesDefault Value
templateQualify templateJSON string for XML request and JSON object for JSON request.
For XML request it should be wrapped in <![CDATA[]]> tage.
none
projectProject name (e.g category)Stringnone
Response:
<?xml version="1.0" encoding="UTF-8"?>
<response>
    <action>updatequalifytemplate</action>
    <status>Success</status>
    <id>[TemplateGUID]</id>
    <name>[TemplateName]</name>
    <template>updated</template>
</response>
{
    "response": {
        "action": "updatequalifytemplate",
        "status": "Success",
        "id": "[TemplateGUID]",
        "name": "[TemplateName]",
        "template": "updated"
    }
}

Updgrade Template

Request:
<?xml version="1.0" encoding="UTF-8"?>
<query>
    <userid>[UserID]</userid> <!-- required -->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>UpgradeQualifyTemplate</action> <!-- required-->
    <version_to>[version]</version_to>
    <template><![CDATA[
        {
            "id": "[TemplateGUID]", // optional
            "created_at": "[TemplateCreatedDate]",
            "updated_at": "[TemplateUpdatedDate]",
            "name": "[TemplateName]",
            "tests": {
                [TestsList]
            },
            "package_layout": {
                "id": "[LayoutID]" // optional, new layout will be added if not provided
                // package_layout params
            },
            "audio_layout": {
                "id": "[LayoutID]" // optional, new layout will be added if not provided
                // audio_layout params
            }
        }
    ]]></template> <!-- required-->
</query>
{
    "query": {
        "userid": "[UserID]", // required
        "userkey": "[UserKey]", // required
        "action": "UpgradeQualifyTemplate", // required
        "version_to": "[version]",
        "template": {
            "id": "[TemplateGUID]", // required
            "created_at": "[TemplateCreatedDate]",
            "updated_at": "[TemplateUpdatedDate]",
            "name": "[TemplateName]",
            "tests": {
                [TestsList]
            },
            "package_layout": {
                "id": "[LayoutID]" // optional, new layout will be added if not provided
                // package_layout params
            },
            "audio_layout": {
                "id": "[LayoutID]" // optional, new layout will be added if not provided
                // audio_layout params
            }
        } // required
    }
}
ParameterDescriptionAllowed ValuesDefault Value
templateQualify templateJSON string for XML request and JSON object for JSON request.
For XML request it should be wrapped in <![CDATA[]]> tage.
none
version_toDesired version to upgrade toStringCurrent Qualify version
Response:
<?xml version="1.0" encoding="UTF-8"?>
<response>
    <action>upgradequalifytemplate</action>
    <status>Success</status>
    <upgraded_template><![CDATA[ [Template JSON] ]]></upgraded_template>
</response>
{
    "response": {
        "action": "upgradequalifytemplate",
        "status": "Success",
        "upgraded_template": { [Template JSON] }
    }
}

Remove Template

Request:
<?xml version="1.0" encoding="UTF-8"?>
<query>
    <userid>[UserID]</userid> <!-- required -->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>RemoveQualifyTemplate</action> <!-- required-->
    <template_id>[TemplateGUID]</template_id> <!-- required-->
    <template_name>[TemplateName]</template_name> <!-- optional, deprecated-->
</query>
{
    "query": {
        "userid": "[UserID]", // required
        "userkey": "[UserKey]", // required
        "action": "RemoveQualifyTemplate", // required
        "template_id": "[TemplateGUID]", // required
        "template_name": "[TemplateName]" // optional, deprecated
    }
}
ParameterDescriptionAllowed ValuesDefault Value
template_idTemplate GUIDStringnone
template_nameTemplate Name
Deprecated
Stringnone
Response:
<?xml version="1.0" encoding="UTF-8"?>
<response>
    <action>removequalifytemplate</action>
    <id>[TemplateGUID]</id>
    <name>[TemplateName]</name>
    <template>removed</template>
</response>
{
    "response": {
        "action": "removequalifytemplate",
        "status": "Success",
        "id": "[TemplateGUID]",
        "name": "[TemplateName]",
        "template": "removed"
    }
}

Qualify Package Layouts Management

Create Package Layout

Request:
<?xml version="1.0" encoding="UTF-8"?>
<query>
    <userid>[UserID]</userid> <!-- required -->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>SetQualifyPackageLayout</action> <!-- required-->
    <package_layout><![CDATA[
{
    "id": "[PackageLayoutGUID]", // optional
    "created_at": "[PackageLayoutCreatedDate]",
    "updated_at": "[PackageLayoutUpdatedDate]",
    "name": "[PackageLayoutName]"
    // layout params
}
]]></package_layout> <!-- required-->
</query>
{
    "query": {
        "userid": "[UserID]", // required
        "userkey": "[UserKey]", // required
        "action": "SetQualifyPackageLayout", // required
        "package_layout": {
            "id": "[PackageLayoutGUID]", // optional
            "created_at": "[PackageLayoutCreatedDate]",
            "updated_at": "[PackageLayoutUpdatedDate]",
            "name": "[PackageLayoutName]"
            // layout params
        } // required
    }
}
ParameterDescriptionAllowed ValuesDefault Value
package_layoutQualify package layoutJSON string for XML request and JSON object for JSON request.
For XML request it should be wrapped in <![CDATA[]]> tage.
none
Response:
<?xml version="1.0" encoding="UTF-8"?>
<response>
    <action>setqualifypackagelayout</action>
    <status>Success</status>
    <id>[PackageLayoutGUID]</id>
    <name>[PackageLayoutName]</name>
    <package_layout>added</package_layout>
</response>
{
    "response": {
        "action": "setqualifypackagelayout",
        "status": "Success",
        "id": "[PackageLayoutGUID]",
        "name": "[PackageLayoutName]",
        "package_layout": "added"
    }
}

List added package layouts

Request:
<?xml version="1.0" encoding="UTF-8"?>
<query>
    <userid>[UserID]</userid> <!-- required -->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>ListQualifyPackageLayouts</action> <!-- required-->
</query>
{
    "query": {
        "userid": "[UserID]", // required
        "userkey": "[UserKey]", // required
        "action": "ListQualifyPackageLayouts" // required
    }
}
Response:
<?xml version="1.0" encoding="UTF-8"?>
<response>
    <action>listqualifypackagelayouts</action>
    <status>Success</status>
    <result>
        <user_id>[UserID]</user_id>
        <package_layouts>
            <package_layout>
                <id>[PackageLayoutGUID_1]</id>
                <name>[PackageLayoutName_1]</name>
            </package_layout>
            <package_layout>
                <id>[PackageLayoutGUID_2]</id>
                <name>[PackageLayoutName_2]</name>
            </package_layout>
            <!-- ... -->
            <package_layout>
                <id>[PackageLayoutGUID_N]</id>
                <name>[PackageLayoutName_N]</name>
            </package_layout>
        </package_layouts>
    </result>
</response>
{
    "response": {
        "action": "listqualifypackagelayouts",
        "status": "Success",
        "result": {
            "user_id": "[UserID]",
            "package_layouts": [
                "package_layout": [
                    {
                        "id": "[PackageLayoutGUID_1]",
                        "name": "[PackageLayoutName_1]"
                    },
                    {
                        "id": "[PackageLayoutGUID_2]",
                        "name": "[PackageLayoutName_2]"
                    },
                    // ...
                    {
                        "id": "[PackageLayoutGUID_N]",
                        "name": "[PackageLayoutName_N]"
                    },
                ]
            ]
        }
    }
}

Update Package Layout

Request:
<?xml version="1.0" encoding="UTF-8"?>
<query>
    <userid>[UserID]</userid> <!-- required -->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>UpdateQualifyPackageLayout</action> <!-- required-->
    <package_layout><![CDATA[
{
    "id": "[PackageLayoutGUID]",  // required
    "created_at": "[PackageLayoutCreatedDate]",
    "updated_at": "[PackageLayoutUpdatedDate]",
    "name": "[PackageLayoutName]",
    // layout params
}
]]></package_layout> <!-- required-->
</query>
{
    "query": {
        "userid": "[UserID]", // required
        "userkey": "[UserKey]", // required
        "action": "UpdateQualifyPackageLayout", // required
        "package_layout": {
            "id": "[PackageLayoutGUID]", // required
            "created_at": "[PackageLayoutCreatedDate]",
            "updated_at": "[PackageLayoutUpdatedDate]",
            "name": "[PackageLayoutName]",
            // layout params
        } // required
    }
}
ParameterDescriptionAllowed ValuesDefault Value
package_layoutQualify package layoutJSON string for XML request and JSON object for JSON request.
For XML request it should be wrapped in <![CDATA[]]> tage.
none
Response:
<?xml version="1.0" encoding="UTF-8"?>
<response>
    <action>updatequalifypackagelayout</action>
    <status>Success</status>
    <id>[PackageLayoutGUID]</id>
    <name>[PackageLayoutName]</name>
    <package_layout>updated</package_layout>
</response>
{
    "response": {
        "action": "updatequalifypackagelayout",
        "status": "Success",
        "id": "[PackageLayoutGUID]",
        "name": "[PackageLayoutName]",
        "package_layout": "updated"
    }
}

Remove Package Layout

Request:
<?xml version="1.0" encoding="UTF-8"?>
<query>
    <userid>[UserID]</userid> <!-- required -->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>RemoveQualifyPackageLayout</action> <!-- required-->
    <package_layout_id>[PackageLayoutGUID]</package_layout_id> <!-- required-->
    <package_layout_name>[PackageLayoutName]</package_layout_name> <!-- optional, deprecated-->
</query>
{
    "query": {
        "userid": "[UserID]", // required
        "userkey": "[UserKey]", // required
        "action": "RemoveQualifyPackageLayout", // required
        "package_layout_id": "[PackageLayoutGUID]", // required
        "package_layout_name": "[PackageLayoutName]" // optional, deprecated
    }
}
ParameterDescriptionAllowed ValuesDefault Value
package_layout_idPackage Layout GUIDStringnone
package_layout_namePackage Layout Name
Deprecated
Stringnone
Response:
<?xml version="1.0" encoding="UTF-8"?>
<response>
    <action>removequalifypackagelayout</action>
    <id>[PackageLayoutGUID]</id>
    <name>[PackageLayoutName]</name>
    <package_layout>removed</package_layout>
</response>
{
    "response": {
        "action": "removequalifypackagelayout",
        "status": "Success",
        "id": "[PackageLayoutGUID]",
        "name": "[PackageLayoutName]",
        "package_layout": "removed"
    }
}

Qualify Audio Layouts Management

Create Audio Layout

Request:
<?xml version="1.0" encoding="UTF-8"?>
<query>
    <userid>[UserID]</userid> <!-- required -->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>SetQualifyAudioLayout</action> <!-- required-->
    <audio_layout><![CDATA[
{
    "id": "[AudioLayoutGUID]", // optional
    "created_at": "[AudioLayoutCreatedDate]",
    "updated_at": "[AudioLayoutUpdatedDate]",
    "name": "[AudioLayoutName]"
    "layout": [
        // layout params
    ]
}
]]></audio_layout> <!-- required-->
</query>
{
    "query": {
        "userid": "[UserID]", // required
        "userkey": "[UserKey]", // required
        "action": "SetQualifyAudioLayout", // required
        "audio_layout": {
            "id": "[AudioLayoutGUID]", // optional
            "created_at": "[AudioLayoutCreatedDate]",
            "updated_at": "[AudioLayoutUpdatedDate]",
            "name": "[AudioLayoutName]"
            "layout": [
                // layout params
            ]
        } // required
    }
}
ParameterDescriptionAllowed ValuesDefault Value
audio_layoutQualify audio layoutJSON string for XML request and JSON object for JSON request.
For XML request it should be wrapped in <![CDATA[]]> tage.
none
Response:
<?xml version="1.0" encoding="UTF-8"?>
<response>
    <action>setqualifyaudiolayout</action>
    <status>Success</status>
    <id>[AudioLayoutGUID]</id>
    <name>[AudioLayoutName]</name>
    <audio_layout>added</audio_layout>
</response>
{
    "response": {
        "action": "setqualifyaudiolayout",
        "status": "Success",
        "id": "[AudioLayoutGUID]",
        "name": "[AudioLayoutName]",
        "audio_layout": "added"
    }
}

List added audio layouts

Request:
<?xml version="1.0" encoding="UTF-8"?>
<query>
    <userid>[UserID]</userid> <!-- required -->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>ListQualifyAudioLayouts</action> <!-- required-->
</query>
{
    "query": {
        "userid": "[UserID]", // required
        "userkey": "[UserKey]", // required
        "action": "ListQualifyAudioLayouts" // required
    }
}
Response:
<?xml version="1.0" encoding="UTF-8"?>
<response>
    <action>listqualifyaudiolayouts</action>
    <status>Success</status>
    <result>
        <user_id>[UserID]</user_id>
        <audio_layouts>
            <audio_layout>
                <id>[AudioLayoutGUID_1]</id>
                <name>[AudioLayoutName_1]</name>
            </audio_layout>
            <audio_layout>
                <id>[AudioLayoutGUID_2]</id>
                <name>[AudioLayoutName_2]</name>
            </audio_layout>
            <!-- ... -->
            <audio_layout>
                <id>[AudioLayoutGUID_N]</id>
                <name>[AudioLayoutName_N]</name>
            </audio_layout>
        </audio_layouts>
    </result>
</response>
{
    "response": {
        "action": "listqualifyaudiolayouts",
        "status": "Success",
        "result": {
            "user_id": "[UserID]",
            "audio_layouts": [
                "audio_layout": [
                    {
                        "id": "[AudioLayoutGUID_1]",
                        "name": "[AudioLayoutName_1]"
                    },
                    {
                        "id": "[AudioLayoutGUID_2]",
                        "name": "[AudioLayoutName_2]"
                    },
                    // ...
                    {
                        "id": "[AudioLayoutGUID_N]",
                        "name": "[AudioLayoutName_N]"
                    },
                ]
            ]
        }
    }
}

Update Audio Layout

Request:
<?xml version="1.0" encoding="UTF-8"?>
<query>
    <userid>[UserID]</userid> <!-- required -->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>UpdateQualifyAudioLayout</action> <!-- required-->
    <audio_layout><![CDATA[
{
    "id": "[AudioLayoutGUID]",  // required
    "created_at": "[AudioLayoutCreatedDate]",
    "updated_at": "[AudioLayoutUpdatedDate]",
    "name": "[AudioLayoutName]",
    "layout": [
        // layout params
    ]
}
]]></audio_layout> <!-- required-->
</query>
{
    "query": {
        "userid": "[UserID]", // required
        "userkey": "[UserKey]", // required
        "action": "UpdateQualifyAudioLayout", // required
        "audio_layout": {
            "id": "[AudioLayoutGUID]", // required
            "created_at": "[AudioLayoutCreatedDate]",
            "updated_at": "[AudioLayoutUpdatedDate]",
            "name": "[AudioLayoutName]",
            "layout": [
                // layout params
            ]
        } // required
    }
}
ParameterDescriptionAllowed ValuesDefault Value
audio_layoutQualify audio layoutJSON string for XML request and JSON object for JSON request.
For XML request it should be wrapped in <![CDATA[]]> tage.
none
Response:
<?xml version="1.0" encoding="UTF-8"?>
<response>
    <action>updatequalifyaudiolayout</action>
    <status>Success</status>
    <id>[AudioLayoutGUID]</id>
    <name>[AudioLayoutName]</name>
    <audio_layout>updated</audio_layout>
</response>
{
    "response": {
        "action": "updatequalifyaudiolayout",
        "status": "Success",
        "id": "[AudioLayoutGUID]",
        "name": "[AudioLayoutName]",
        "audio_layout": "updated"
    }
}

Remove Audio Layout

Request:
<?xml version="1.0" encoding="UTF-8"?>
<query>
    <userid>[UserID]</userid> <!-- required -->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>RemoveQualifyAudioLayout</action> <!-- required-->
    <audio_layout_id>[AudioLayoutGUID]</audio_layout_id> <!-- required-->
    <audio_layout_name>[AudioLayoutName]</audio_layout_name> <!-- optional, deprecated-->
</query>
{
    "query": {
        "userid": "[UserID]", // required
        "userkey": "[UserKey]", // required
        "action": "RemoveQualifyAudioLayout", // required
        "audio_layout_id": "[AudioLayoutGUID]", // required
        "audio_layout_name": "[AudioLayoutName]" // optional, deprecated
    }
}
ParameterDescriptionAllowed ValuesDefault Value
audio_layout_idAudio Layout GUIDStringnone
audio_layout_nameAudio Layout Name
Deprecated
Stringnone
Response:
<?xml version="1.0" encoding="UTF-8"?>
<response>
    <action>removequalifyaudiolayout</action>
    <id>[AudioLayoutGUID]</id>
    <name>[AudioLayoutName]</name>
    <audio_layout>removed</audio_layout>
</response>
{
    "response": {
        "action": "removequalifyaudiolayout",
        "status": "Success",
        "id": "[AudioLayoutGUID]",
        "name": "[AudioLayoutName]",
        "audio_layout": "removed"
    }
}