{
  "openapi": "3.1.0",
  "info": {
    "title": "AVANSER Web API reference",
    "version": "202610"
  },
  "servers": [
    {
      "url": "https://api.avanser.com/",
      "description": "Avanser Production"
    }
  ],
  "tags": [
    {
      "name": "Authentication",
      "description": "The AVANSER Web API supports HTTP Basic Authentication, as well as token-based authentication.\n\n### HTTP Basic Authentication\n\nTo use HTTP Basic Authentication, simply include an **Authorization** header in the request. The header value should be your AVANSER login credentials in Base64-encoded format.\n\nFor example: **Authorization: Basic ZXhhbXBsZUBhdmFuc2VyLmNvbS5hdTpleGFtcGxl**.\n\n### Token-Based Authentication\n\nA typical token-based session will occur over 3 phases:\n\n+ Phase 1: Request a Token Key\n+ Phase 2: Sign Token Key and request a Session Token\n+ Phase 3: Use Session Token to request Call data or to download audio files\n\nBy default, session token expires in 24 hours.\nExpiry dates/times are fully flexible based on client’s prearranged agreement with AVANSER.\nThe token expiry period depends on account configuration, refer to our Support service to change it.\n\nAVANSER provides the following parameters:\n\n| Parameter  | Description        |\n|:-----------|--------------------|\n| account_id | API Username       |\n| api_key    | Client Public Key  |\n| secret     | Client Private Key |\n"
    },
    {
      "name": "Request Data",
      "description": "*Action and Server respons is fully customisable per Client or per Key Set, Examples are provided here for clarification*"
    }
  ],
  "paths": {
    "/JSON?action=getTokenKey": {
      "get": {
        "tags": [
          "Authentication"
        ],
        "summary": "Phase 1 - Request a Token Key",
        "operationId": "requestTokenKey",
        "description": "Returns the token key that is required in Phase 2.\n",
        "x-apiary-uri-template": "/JSON?action=getTokenKey&account_id={account_id}&api_key={api_key}",
        "parameters": [
          {
            "name": "account_id",
            "in": "query",
            "required": true,
            "description": "Provided by AVANSER.",
            "schema": {
              "type": "string"
            },
            "example": "example.user"
          },
          {
            "name": "api_key",
            "in": "query",
            "required": true,
            "description": "Provided by AVANSER.",
            "schema": {
              "type": "string"
            },
            "example": "gwEwmEJbgaN6QQA"
          }
        ],
        "responses": {
          "200": {
            "description": "Returns the token key that is required in Phase 2.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TokenKeyResponse"
                },
                "examples": {
                  "tokenKey": {
                    "summary": "getTokenKey",
                    "value": {
                      "tokenKey": "8OjmnMvJI83lwcc3KPMv3H3Xx86uwkGs"
                    }
                  }
                }
              }
            }
          }
        },
        "security": []
      }
    },
    "/JSON?action=signIn": {
      "get": {
        "tags": [
          "Authentication"
        ],
        "summary": "Phase 2 - Sign in and Request a Session Token",
        "operationId": "requestSessionToken",
        "description": "Returns a session token to use in other API calls. The signature parameter is an MD5 hash of: Your secret key, and the token key retrieved in Phase 1.\n",
        "x-apiary-uri-template": "/JSON?action=signIn&account_id={account_id}&signature={signature}",
        "parameters": [
          {
            "name": "account_id",
            "in": "query",
            "required": true,
            "description": "Provided by AVANSER.",
            "schema": {
              "type": "string"
            },
            "example": "example.user"
          },
          {
            "name": "signature",
            "in": "query",
            "required": true,
            "description": "MD5 [(secret received by SMS) (tokenKey received from Phase 1)]",
            "schema": {
              "type": "string"
            },
            "example": "098f6bcd4621d373cade4e832627b4f6"
          }
        ],
        "responses": {
          "200": {
            "description": "Returns a session token to use in other API calls.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SessionTokenResponse"
                },
                "examples": {
                  "sessionToken": {
                    "summary": "signIn",
                    "value": {
                      "token": "bzNDGPOMUu4pmGZZ0yyzvTlQZZNPnQPP"
                    }
                  }
                }
              }
            }
          }
        },
        "security": []
      }
    },
    "/JSON?action=getCDR": {
      "get": {
        "tags": [
          "Request Data"
        ],
        "summary": "Request CDR",
        "operationId": "requestCdr",
        "description": "Retrieve a list of call detail records.\n\n+ Returns 1000 entries by default and a maximum of 10,000 entries.\n+ Default for date from and date to is today.\n+ Features could be any additional routing configured on the backend. Could be call outcome, IVR, call survey, selected Post Code for PCP...etc.\n+ If any of the additional parameters are ommitted from the call, the default value is considered.\n+ `stt` feature requires your Account to be enabled for Speech To Text, Please contact AVANSER Support for more informations about speech to text.\n+ `subclient` feature requires your Account to be enabled for Divisions & SubClients access, Please contact AVANSER Support for more informations about Division Configuration.\n+ `sentiment` feature displays the sentiment analysis.\n\n#### Server Response\n\n| Key                   | Description                                                                                                                        |\n|:----------------------|------------------------------------------------------------------------------------------------------------------------------------|\n| id                    | Unique call identification number (integer 11 digits).                                                                             |\n| date                  | YYYY-MM-DD HH:MM:SS (AEST/AEDT).                                                                                                   |\n| duration              | Call duration in seconds (integer).                                                                                                |\n| answer_number         | Answer Point Number in international format (Integer 8-15 digits).                                                                 |\n| answer_name           | Answer Point Name (50 alphanumeric).                                                                                               |\n| answer_folder         | A unique identifier for the answerpoint.                                                                                           |\n| target_number         | Call Tracking Number (integer 8-15 digits).                                                                                        |\n| target_name           | Ad Source Name (50 alphanumeric).                                                                                                  |\n| caller_number         | Originating Caller ID in international format (integer 8-15 digits).                                                               |\n| country               | Country code of the originating caller (2 characters).                                                                             |\n| state                 | Originating caller state/territory (5 alphanumeric).                                                                               |\n| location              | Location of originating caller (50 alphanumeric).                                                                                  |\n| status_code           | 2 digits (see <a href=\"#introduction/call-completion-codes\">Call Completion Codes</a> table).                                      |\n| status_name           | 20 alphanumeric (see <a href=\"#introduction/call-completion-codes\">Call Completion Codes</a> table).                               |\n| audio                 | Message/Recording – audio file type.                                                                                               |\n| audioURL              | URL to the audio file.                                                                                                             |\n| spooler_id            | Unique ID for extra referrer parameters that can be obtained by calling the <a href=\"#reference/0/request-data/obtain-extra-referrer-data\">getC2C</a> method (set to 0 if no extra parameters exist). |\n| evaluation_xx         | Answers to the evaluation question, XX is the ID of the evaluation question (refer to action <a href=\"#reference/0/request-data/get-call-evaluation-details\">Evaluation Details</a> for more details). |\n| feature01 - feature09 | Features as configured.                                                                                                            |\n| feature10             | AVANSER reserved field.                                                                                                            |\n| audioUrl              | url of call recording.                                                                                                             |\n| webReferrer           | Referring website URL.                                                                                                             |\n| webURL                | Client website URL.                                                                                                                |\n| webLanding            | Landing page URL on client website.                                                                                                |\n| webConversion         | Online ad campaign where call was generated.                                                                                       |\n| webKeyword            | Keywords(s) typed in by user to find campaign.                                                                                     |\n| webMedium             | Medium through which user landed.                                                                                                  |\n| webSource             | Source used to find client website.                                                                                                |\n| IP                    | IP address of the user.                                                                                                            |\n| IPlocation            | IP location of the user.                                                                                                           |\n| connection_time       | YYYY-MM-DD HH:MM:SS (AEST Time).                                                                                                   |\n| connection_duration   | Seconds passed between call landing and call connection.                                                                           |\n| date_stop             | Call stop date and time.                                                                                                           |\n| wpcid                 | AdSource's wpcid.                                                                                                                  |\n| masterId              | AdSource's masterId.                                                                                                               |\n| call_notes            | Array containing all call notes.                                                                                                   |\n| cdr_label             | Label associated with the CDR                                                                                                      |\n| cdr_tag               | Tag associated with the CDR                                                                                                        |\n| custom_id             | Customers can set this field on a tracking number for their internal system reference (only provided when show_custom = 'yes')     |\n| custom_group          | Customers can set this field on a tracking number for their internal tracking (only provided when show_custom = 'yes')             |\n| memo                  | Customers can set this field on a tracking number for their own notes (only provided when show_custom = 'yes')                     |\n| dealerCode            | Dealer Code associated with the CDR, for ARTIC calls this is going to be the Agent Code                                            |\n| subclient             | Can be either a subclient available in your Division or keyword `all` to fetch all configured subclients.                          |\n| stt                   | Speech To Text is set to 'yes' fetches transcribed data, if available.                                                             |\n| sentiment_score       | Overall score for the call.                                                                                                        |\n| sentiment_agent       | Single sentiment score for the the agent.                                                                                          |\n| sentiment_caller      | Single sentiment score for the caller.                                                                                             |\n| sentiment_talkmost    | `agent`, `caller`, `balanced` based on who spoke the most.                                                                         |\n| sentiment_communication | Quality of communication.                                                                                                        |\n| sentiment_conduct     | Agent conduct.                                                                                                                     |\n| sentiment_politeness  | Assesses the politeness of the agent. The agent is scored based on their use of phrases associated with politeness.                |\n| sentiment_highrisk    | Flags if the call was High Risk.                                                                                                   |\n| sentiment_badattitude | Assesses the attitude of the agent. The agent is scored based on their use of phrases that either indicate an unwillingness to help or intention to insult the caller. |\n| sentiment_slang       | Assesses whether the agent used colloquial language in the call. The agent is scored based on their use of slang phrases.          |\n| sentiment_profanity   | Assesses whether the agent used profanities in the call. The agent is scored based on their use of profane phrases.                |\n",
        "x-apiary-uri-template": "/JSON?action=getCDR&account_id={account_id}&token={token}&date_from={date_from}&date_to={date_to}&last_id={last_id}&limit={limit}&bnum={bnum}&evaluations={evaluations}&features={features}&wav={wav}&web={web}&detailed={detailed}&localtime={localtime}&cdr_label={cdr_label}&cdr_tag={cdr_tag}&dealerCode={dealerCode}&stt={stt}&subclient={subclient}&sentiment={sentiment}&call_status={call_status}&adtag={adtag}&order={order}&client_id={client_id}&show_custom={show_custom}",
        "parameters": [
          {
            "name": "account_id",
            "in": "query",
            "required": true,
            "description": "Provided by AVANSER. Required only for token-based authentication.",
            "schema": {
              "type": "string"
            },
            "example": "example.user"
          },
          {
            "name": "token",
            "in": "query",
            "required": true,
            "description": "Token received from Phase 2 of Authentication. Required only for token-based authentication.",
            "schema": {
              "type": "string"
            },
            "example": "bzNDGPOMUu4pmGZZ0yyzvTlQZZNPnQPP"
          },
          {
            "name": "date_from",
            "in": "query",
            "required": false,
            "description": "Start Date.",
            "schema": {
              "type": "string"
            },
            "example": "2017-10-27",
            "x-apiary-default": "*(today's date)*"
          },
          {
            "name": "date_to",
            "in": "query",
            "required": false,
            "description": "End Date.",
            "schema": {
              "type": "string"
            },
            "example": "2017-10-28",
            "x-apiary-default": "*(today's date)*"
          },
          {
            "name": "last_id",
            "in": "query",
            "required": false,
            "description": "Call ID of the last CDR result – Sends records for call IDs higher than the one specified.",
            "schema": {
              "type": "string"
            },
            "example": "34560626"
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Maximum number of CDRs in reply (max 10,000).",
            "schema": {
              "type": "number",
              "default": 1000
            }
          },
          {
            "name": "bnum",
            "in": "query",
            "required": false,
            "description": "If provided, will restrict response to calls to that specific number. Number to be provided in the following format: +CC-NNNNNNNN where CC is country code (e.g. 61, 64, 65 etc), -NNNNNNNN is telephone number including area code.",
            "schema": {
              "type": "string"
            },
            "example": "+61-0290081234 (Australia landline) | +65-66641234 (Singapore landline)"
          },
          {
            "name": "evaluations",
            "in": "query",
            "required": false,
            "description": "Include the answers to the call evaluations.",
            "schema": {
              "type": "string",
              "enum": [
                "yes",
                "no"
              ],
              "default": "no"
            }
          },
          {
            "name": "features",
            "in": "query",
            "required": false,
            "description": "Include additional routing feature values. Please note that feature configurations vary from client to client. Contact Support for more information.",
            "schema": {
              "type": "string",
              "enum": [
                "yes",
                "no"
              ],
              "default": "no"
            }
          },
          {
            "name": "wav",
            "in": "query",
            "required": false,
            "description": "Returns the url of the call recording.",
            "schema": {
              "type": "string",
              "enum": [
                "yes",
                "no"
              ],
              "default": "no"
            }
          },
          {
            "name": "web",
            "in": "query",
            "required": false,
            "description": "Returns extra web log details.",
            "schema": {
              "type": "string",
              "enum": [
                "yes",
                "no"
              ],
              "default": "no"
            }
          },
          {
            "name": "detailed",
            "in": "query",
            "required": false,
            "description": "Returns all call details, without needing to specify the parameters: **features**, **wav**, **web**, **stt**, **localtime**, and **sentiment**.",
            "schema": {
              "type": "string",
              "enum": [
                "yes",
                "no"
              ],
              "default": "no"
            }
          },
          {
            "name": "localtime",
            "in": "query",
            "required": false,
            "description": "Returns all dates and times as Answer Point time zone is configured on the system.",
            "schema": {
              "type": "string",
              "enum": [
                "yes",
                "no"
              ],
              "default": "no"
            }
          },
          {
            "name": "cdr_label",
            "in": "query",
            "required": false,
            "description": "If provided, will restrict response to calls to that specific label",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cdr_tag",
            "in": "query",
            "required": false,
            "description": "If provided, will restrict response to calls to that specific tag",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "dealerCode",
            "in": "query",
            "required": false,
            "description": "If provided, will restrict response to calls to that specific dealerCode",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "stt",
            "in": "query",
            "required": false,
            "description": "If set, returns call transcribed. When this feature is enabled json response will include additional speech to text results.",
            "schema": {
              "type": "string",
              "enum": [
                "yes",
                "no"
              ],
              "default": "no"
            }
          },
          {
            "name": "subclient",
            "in": "query",
            "required": false,
            "description": "If provided, will fetch records for all your subclients. When this feature is enabled json response will include additional fields \"subclient_name\" and \"subclient_id\"",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sentiment",
            "in": "query",
            "required": false,
            "description": "If set, returns call sentiment. When this feature is enabled json response will include additional sentiment results. Using ***only*** flag will display calls that only have a sentiment analysis.",
            "schema": {
              "type": "string",
              "enum": [
                "yes",
                "only",
                "no"
              ],
              "default": "no"
            }
          },
          {
            "name": "call_status",
            "in": "query",
            "required": false,
            "description": "If provided, will restrict calls to that specific status.",
            "schema": {
              "type": "number",
              "enum": [
                0,
                1,
                2,
                3,
                4,
                5,
                6
              ]
            }
          },
          {
            "name": "adtag",
            "in": "query",
            "required": false,
            "description": "If provided, will restrict calls to adsources with that specific tag",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "order",
            "in": "query",
            "required": false,
            "description": "If set, reverses the sorting of the records",
            "schema": {
              "type": "string",
              "enum": [
                "first",
                "last"
              ],
              "default": "first"
            }
          },
          {
            "name": "client_id",
            "in": "query",
            "required": false,
            "description": "When using Http Basic Authentication over SSL this parameter allows the user to select what client the request is for.",
            "schema": {
              "type": "number"
            },
            "x-apiary-default": "User's Default Client ID"
          },
          {
            "name": "show_custom",
            "in": "query",
            "required": false,
            "description": "If provided, will return the additional customer defined fields. This includes `custom id`, `custom group` and `memo` fields.",
            "schema": {
              "type": "string",
              "enum": [
                "yes",
                "no"
              ],
              "default": "no"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Retrieve a list of call detail records.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CdrResponse"
                },
                "examples": {
                  "callRecords": {
                    "summary": "getCDR",
                    "value": {
                      "results": 1,
                      "calls": [
                        {
                          "id": "34568015",
                          "date": "2017-10-27 00:04:59",
                          "duration": "17",
                          "answer_number": "61434140999",
                          "answer_name": "Example Service",
                          "answer_folder": "5995001175066105",
                          "target_number": "611300859838",
                          "target_name": "Example Target",
                          "caller_number": "61350233328",
                          "country": "AU",
                          "state": "NSW",
                          "location": "Sydney",
                          "audioUrl": "http://portal.avanser.com/audio/5995/599513/in/msg.5995-2017-10-237-122634-528118.wav",
                          "status_code": "1",
                          "spooler_id": "0",
                          "label": "",
                          "webReferrer": null,
                          "webUrl": null,
                          "webLandning": null,
                          "webConversion": null,
                          "webCampagin": null,
                          "webKeyword": null,
                          "webMedium": null,
                          "webSource": null,
                          "IP": null,
                          "IPlocation": "",
                          "feature01": "0",
                          "feature02": "0",
                          "feature03": "0",
                          "feature04": "0",
                          "feature05": "0",
                          "feature06": "0",
                          "feature07": "0",
                          "feature08": "",
                          "feature09": "",
                          "feature10": "",
                          "connection_time": "2017-10-27 00:05:00",
                          "connection_duration": "1",
                          "date_stop": "2017-10-27 00:05:16",
                          "wpcId": "0",
                          "masterId": "0",
                          "branch_name": "Example Branch",
                          "eval_627": null,
                          "eval_711": null,
                          "eval_636": null,
                          "eval_635": null,
                          "eval_634": null,
                          "eval_633": null,
                          "eval_632": null,
                          "eval_631": null,
                          "eval_630": null,
                          "eval_629": null,
                          "eval_628": null,
                          "eval_713": null,
                          "audio": "message",
                          "type": "inbound",
                          "status_name": "Answered",
                          "cdr_label": "CDR Label",
                          "cdr_tag": "CDR tag",
                          "dealerCode": "Delaer Code",
                          "call_notes": []
                        }
                      ]
                    }
                  },
                  "callRecordsWithSubclient": {
                    "summary": "getCDR with subclient data",
                    "value": {
                      "results": 1,
                      "calls": [
                        {
                          "id": "34568015",
                          "subclient_id": "0000",
                          "subclient_name": "Your SubClient",
                          "date": "2017-10-27 00:04:59",
                          "duration": "17",
                          "answer_number": "61434140999",
                          "answer_name": "Example Service",
                          "answer_folder": "5995001175066105",
                          "target_number": "611300859838",
                          "target_name": "Example Target",
                          "caller_number": "61350233328",
                          "country": "AU",
                          "state": "NSW",
                          "location": "Sydney",
                          "audioUrl": "http://portal.avanser.com/audio/5995/599513/in/msg.5995-2017-10-237-122634-528118.wav",
                          "status_code": "1",
                          "spooler_id": "0",
                          "label": "",
                          "webReferrer": null,
                          "webUrl": null,
                          "webLandning": null,
                          "webConversion": null,
                          "webCampagin": null,
                          "webKeyword": null,
                          "webMedium": null,
                          "webSource": null,
                          "IP": null,
                          "IPlocation": "",
                          "feature01": "0",
                          "feature02": "0",
                          "feature03": "0",
                          "feature04": "0",
                          "feature05": "0",
                          "feature06": "0",
                          "feature07": "0",
                          "feature08": "",
                          "feature09": "",
                          "feature10": "",
                          "connection_time": "2017-10-27 00:05:00",
                          "connection_duration": "1",
                          "date_stop": "2017-10-27 00:05:16",
                          "wpcId": "0",
                          "masterId": "0",
                          "branch_name": "Example Branch",
                          "eval_627": null,
                          "eval_711": null,
                          "eval_636": null,
                          "eval_635": null,
                          "eval_634": null,
                          "eval_633": null,
                          "eval_632": null,
                          "eval_631": null,
                          "eval_630": null,
                          "eval_629": null,
                          "eval_628": null,
                          "eval_713": null,
                          "audio": "message",
                          "type": "inbound",
                          "status_name": "Answered",
                          "cdr_label": "CDR Label",
                          "cdr_tag": "CDR tag",
                          "dealerCode": "Dealer Code",
                          "call_notes": []
                        }
                      ]
                    }
                  },
                  "callRecordsWithSpeechToText": {
                    "summary": "getCDR with speech-to-text data",
                    "value": {
                      "results": 1,
                      "calls": [
                        {
                          "id": "34568015",
                          "date": "2017-10-27 00:04:59",
                          "duration": "17",
                          "answer_number": "61434140999",
                          "answer_name": "Example Service",
                          "answer_folder": "5995001175066105",
                          "target_number": "611300859838",
                          "target_name": "Example Target",
                          "caller_number": "61350233328",
                          "country": "AU",
                          "state": "NSW",
                          "location": "Sydney",
                          "audioUrl": "http://portal.avanser.com/audio/5995/599513/in/msg.5995-2017-10-237-122634-528118.wav",
                          "status_code": "1",
                          "spooler_id": "0",
                          "label": "",
                          "webReferrer": null,
                          "webUrl": null,
                          "webLandning": null,
                          "webConversion": null,
                          "webCampagin": null,
                          "webKeyword": null,
                          "webMedium": null,
                          "webSource": null,
                          "IP": null,
                          "IPlocation": "",
                          "feature01": "0",
                          "feature02": "0",
                          "feature03": "0",
                          "feature04": "0",
                          "feature05": "0",
                          "feature06": "0",
                          "feature07": "0",
                          "feature08": "",
                          "feature09": "",
                          "feature10": "",
                          "connection_time": "2017-10-27 00:05:00",
                          "connection_duration": "1",
                          "date_stop": "2017-10-27 00:05:16",
                          "wpcId": "0",
                          "masterId": "0",
                          "branch_name": "Example Branch",
                          "eval_627": null,
                          "eval_711": null,
                          "eval_636": null,
                          "eval_635": null,
                          "eval_634": null,
                          "eval_633": null,
                          "eval_632": null,
                          "eval_631": null,
                          "eval_630": null,
                          "eval_629": null,
                          "eval_628": null,
                          "eval_713": null,
                          "audio": "message",
                          "type": "inbound",
                          "status_name": "Answered",
                          "cdr_label": "CDR Label",
                          "cdr_tag": "CDR tag",
                          "dealerCode": "Dealer Code",
                          "call_notes": [],
                          "stt": {
                            "channel-out": {
                              "transcript": "Greetings from Company X my name is Karen how can I help you?",
                              "keywords": [
                                "company",
                                "help"
                              ]
                            },
                            "channel-in": {
                              "transcript": "Hi Karen I would like to buy your product XYZ",
                              "keywords": [
                                "product",
                                "XYZ"
                              ]
                            }
                          }
                        }
                      ]
                    }
                  },
                  "callRecordsWithSentiment": {
                    "summary": "getCDR with sentiment data",
                    "value": {
                      "results": 1,
                      "calls": [
                        {
                          "id": "34568015",
                          "date": "2017-10-27 00:04:59",
                          "duration": "17",
                          "answer_number": "61434140999",
                          "answer_name": "Example Service",
                          "target_number": "611300859838",
                          "target_name": "Example Target",
                          "caller_number": "61350233328",
                          "country": "AU",
                          "state": "NSW",
                          "location": "Sydney",
                          "audioUrl": "http://portal.avanser.com/audio/5995/599513/in/msg.5995-2017-10-237-122634-528118.wav",
                          "status_code": "1",
                          "spooler_id": "0",
                          "label": "",
                          "webReferrer": null,
                          "webUrl": null,
                          "webLandning": null,
                          "webConversion": null,
                          "webCampagin": null,
                          "webKeyword": null,
                          "webMedium": null,
                          "webSource": null,
                          "IP": null,
                          "IPlocation": "",
                          "feature01": "0",
                          "feature02": "0",
                          "feature03": "0",
                          "feature04": "0",
                          "feature05": "0",
                          "feature06": "0",
                          "feature07": "0",
                          "feature08": "",
                          "feature09": "",
                          "feature10": "",
                          "connection_time": "2017-10-27 00:05:00",
                          "connection_duration": "1",
                          "date_stop": "2017-10-27 00:05:16",
                          "wpcId": "0",
                          "masterId": "0",
                          "branch_name": "Example Branch",
                          "eval_627": null,
                          "eval_711": null,
                          "eval_636": null,
                          "eval_635": null,
                          "eval_634": null,
                          "eval_633": null,
                          "eval_632": null,
                          "eval_631": null,
                          "eval_630": null,
                          "eval_629": null,
                          "eval_628": null,
                          "eval_713": null,
                          "audio": "message",
                          "type": "inbound",
                          "status_name": "Answered",
                          "cdr_label": "CDR Label",
                          "cdr_tag": "CDR tag",
                          "dealerCode": "Dealer Code",
                          "call_notes": [],
                          "sentiment_score": "neutral",
                          "sentiment_agent": "neutral",
                          "sentiment_caller": "neutral",
                          "sentiment_talkmost": "caller",
                          "sentiment_communication": "neutral",
                          "sentiment_conduct": "good",
                          "sentiment_politeness": "bad",
                          "sentiment_highrisk": "yes",
                          "sentiment_badattitude": "yes",
                          "sentiment_slang": "yes",
                          "sentiment_profanity": "yes"
                        }
                      ]
                    }
                  }
                }
              },
              "application/xml": {
                "schema": {}
              }
            }
          }
        },
        "security": [
          {
            "HTTP_BASIC": []
          },
          {
            "sessionToken": []
          }
        ]
      }
    },
    "/JSON?action=getAudio": {
      "get": {
        "tags": [
          "Request Data"
        ],
        "summary": "Download Audio File",
        "operationId": "downloadAudioFile",
        "description": "Download the audio file associated with a call, formatted as an mp3. If there is no recording associated with a call, the response code will be `404`.\n",
        "x-apiary-uri-template": "/JSON?action=getAudio&account_id={account_id}&token={token}&call_id={call_id}",
        "parameters": [
          {
            "name": "account_id",
            "in": "query",
            "required": true,
            "description": "Provided by AVANSER. Required only for token-based authentication.",
            "schema": {
              "type": "string"
            },
            "example": "example.user"
          },
          {
            "name": "token",
            "in": "query",
            "required": true,
            "description": "Token received from Phase 2 of Authentication. Required only for token-based authentication.",
            "schema": {
              "type": "string"
            },
            "example": "bzNDGPOMUu4pmGZZ0yyzvTlQZZNPnQPP"
          },
          {
            "name": "call_id",
            "in": "query",
            "required": true,
            "description": "AVANSER unique call identification.",
            "schema": {
              "type": "string"
            },
            "examples": {
              "audio": {
                "value": "34560626"
              },
              "analysis": {
                "value": "123456789"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "(mp3 audio file content)",
            "content": {
              "audio/mpeg": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                },
                "example": "(mp3 audio file content)"
              }
            }
          }
        },
        "security": [
          {
            "HTTP_BASIC": []
          },
          {
            "sessionToken": []
          }
        ]
      }
    },
    "/JSON?action=getC2C": {
      "get": {
        "tags": [
          "Request Data"
        ],
        "summary": "Obtain Extra Referrer Data",
        "operationId": "obtainExtraReferrerData",
        "description": "If you have an AVANSER C2C (Click-to-Connect) button, this call requests information on the button click.\n\n#### Server Response\n\n| Key           | Description                                                                                                                                                    |\n|:--------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| c2c_id        | Unique c2c identification.                                                                                                                                     |\n| c2c_spoolerid | Corresponds to getCDR spooler_id field.                                                                                                                        |\n| call          | valid / invalid – If an invalid phone number is entered or a request is made to a non-existent branch. Invalid calls will have a 0 in the c2c_spoolerId field. |\n| user_ip       | IP Address of caller.                                                                                                                                          |\n| user_browser  | Web user agent (browser information).                                                                                                                          |\n| referrer      | Web user referrer.                                                                                                                                             |\n| date          | YYYY-MM-DD HH:MM:SS (AEST Time).                                                                                                                               |\n",
        "x-apiary-uri-template": "/JSON?action=getC2C&account_id={account_id}&token={token}&date_from={date_from}&date_to={date_to}&last_id={last_id}&limit={limit}",
        "parameters": [
          {
            "name": "account_id",
            "in": "query",
            "required": true,
            "description": "Provided by AVANSER. Required only for token-based authentication.",
            "schema": {
              "type": "string"
            },
            "example": "example.user"
          },
          {
            "name": "token",
            "in": "query",
            "required": true,
            "description": "Token received from Phase 2 of Authentication. Required only for token-based authentication.",
            "schema": {
              "type": "string"
            },
            "example": "bzNDGPOMUu4pmGZZ0yyzvTlQZZNPnQPP"
          },
          {
            "name": "date_from",
            "in": "query",
            "required": true,
            "description": "Start Date.",
            "schema": {
              "type": "string"
            },
            "example": "2017-10-27"
          },
          {
            "name": "date_to",
            "in": "query",
            "required": true,
            "description": "End Date.",
            "schema": {
              "type": "string"
            },
            "example": "2017-10-28"
          },
          {
            "name": "last_id",
            "in": "query",
            "required": false,
            "description": "ID of the last CDR result.",
            "schema": {
              "type": "string"
            },
            "example": "34560626"
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Maximum number of CDRs in reply.",
            "schema": {
              "type": "number",
              "default": 1000
            }
          }
        ],
        "responses": {
          "200": {
            "description": "If you have an AVANSER C2C (Click-to-Connect) button, this call requests information on the button click.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/C2cResponse"
                },
                "examples": {
                  "clickToConnect": {
                    "summary": "getC2C",
                    "value": {
                      "results": 1,
                      "calls": [
                        {
                          "c2c_id": "2544856",
                          "spooler_id": "638965",
                          "call": "valid",
                          "user_ip": "1.136.96.11",
                          "user_browser": "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:51.0) Gecko/20100101 Firefox/51.0",
                          "referrer": "http://www.avanser.com.au/c2cdemo.php",
                          "date": "2017-03-16 16:10:10"
                        }
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTP_BASIC": []
          },
          {
            "sessionToken": []
          }
        ]
      }
    },
    "/JSON?action=evaluationDetails": {
      "get": {
        "tags": [
          "Request Data"
        ],
        "summary": "Get Call Evaluation Details",
        "operationId": "getCallEvaluationDetails",
        "description": "If you are using Call Evaluation, this call returns information on the list of questions that make up the evaluation, in the order that they are presented to the evaluating user.\n\n#### Server Response\n\n| Key           | Description                                                                                                                                                    |\n|:--------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| id            | Unique evaluation question id number.                                                                                                                          |\n| title         | The title of the evaluation question.                                                                                                                          |\n| text          | The textual description of the question displayed in the body. For email alerts this is the email subject.                                                     |\n| type          | The type of question (One of `TEXT`,`ENUM`,`SCALE`,`SELECT`,`LABEL`,`EMAIL_ALERT`, or `EMAIL_ALERT_ALL`)                                                           |\n",
        "x-apiary-uri-template": "/JSON?action=evaluationDetails&account_id={account_id}&token={token}",
        "parameters": [
          {
            "name": "account_id",
            "in": "query",
            "required": true,
            "description": "Provided by AVANSER. Required only for token-based authentication.",
            "schema": {
              "type": "string"
            },
            "example": "example.user"
          },
          {
            "name": "token",
            "in": "query",
            "required": true,
            "description": "Token received from Phase 2 of Authentication. Required only for token-based authentication.",
            "schema": {
              "type": "string"
            },
            "example": "bzNDGPOMUu4pmGZZ0yyzvTlQZZNPnQPP"
          }
        ],
        "responses": {
          "200": {
            "description": "If you are using Call Evaluation, this call returns information on the list of questions that make up the evaluation, in the order that they are presented to the evaluating user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EvaluationDetailsResponse"
                },
                "examples": {
                  "evaluationDetails": {
                    "summary": "evaluationDetails",
                    "value": {
                      "questions": [
                        {
                          "id": "19",
                          "title": "Example Questions",
                          "text": "This is a label describing a group of questions.",
                          "type": "LABEL"
                        },
                        {
                          "id": "20",
                          "title": "Satisfaction",
                          "text": "How satisfied was the customer with the call. 0 being very unsatisfied, 5 being very satisfied.",
                          "type": "SCALE"
                        },
                        {
                          "id": "21",
                          "title": "Notes",
                          "text": "Was there any extra information about the customer?",
                          "type": "TEXT"
                        },
                        {
                          "id": "22",
                          "title": "Review Call",
                          "text": "Call Alert",
                          "type": "EMAIL_ALERT_ALL"
                        }
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTP_BASIC": []
          },
          {
            "sessionToken": []
          }
        ]
      }
    },
    "/JSON?action=callAnalysis": {
      "get": {
        "tags": [
          "Request Data"
        ],
        "summary": "Get Call Analysis",
        "operationId": "getCallAnalysis",
        "description": "This call returns information about a single call record, including transcription details if it is enabled.\n\n#### Server Response\n\n| Key           | Description                                                                                                                                                    |\n|:--------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| wait_time     | Wait duration before answering in seconds (integer).                                                                                                                          |\n| talk_time     | Talk duration in seconds (integer).                                                                                                                      |\n| webMedium     | Medium through which user landed.                                                                                                  |\n| webSource     | Source used to find client website.                                                                                                |\n| first_time_caller          | Whether this call was the first time the inbound caller had initiated a call to this bnum |\n| outbound          | How many outbound calls have previously been made to this number from this bnum |\n| inbound          | How many inbound calls have previously been made from this number to this bnum |\n| transcription     | A grouping of transcription details if the bnum has it enabled and the transcription is complete |\n| status          | The status of the transcription (one of `wait`, `pending`, `transcribing`, `done`, `error`)  |\n| summary          | Information about the whole call, including an outline, keywords and an overview |\n| action_items          | A short list of predicted actions that should be taken as a result of the call |\n| sentences          | The individual section of the transcription, split by speaker with details about timing and sentiment |\n",
        "x-apiary-uri-template": "/JSON?action=callAnalysis&call_id={call_id}&token={token}",
        "parameters": [
          {
            "name": "call_id",
            "in": "query",
            "required": true,
            "description": "The ID of the CDR to fetch details about.",
            "schema": {
              "type": "string"
            },
            "examples": {
              "audio": {
                "value": "34560626"
              },
              "analysis": {
                "value": "123456789"
              }
            }
          },
          {
            "name": "token",
            "in": "query",
            "required": true,
            "description": "Token received from Phase 2 of Authentication. Required only for token-based authentication.",
            "schema": {
              "type": "string"
            },
            "example": "bzNDGPOMUu4pmGZZ0yyzvTlQZZNPnQPP"
          }
        ],
        "responses": {
          "200": {
            "description": "This call returns information about a single call record, including transcription details if it is enabled.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CallAnalysisResponse"
                },
                "examples": {
                  "callAnalysis": {
                    "summary": "callAnalysis",
                    "value": {
                      "wait_time": "6",
                      "talk_time": "207",
                      "web_medium": "cpc",
                      "web_source": "google",
                      "first_time_caller": "Yes",
                      "outbound": "0",
                      "inbound": "0",
                      "transcription": {
                        "status": "done",
                        "summary": {
                          "outline": "### Outline of Transcript\n\n#### Chapter 1: Introduction\n- **00:01 - 00:13**: Alice initiates the conversation and transfers Bruce.\n\n#### Chapter 2: Discussion on Payment Process\n- **00:33 - 01:02**: Bruce inquires about the payment process and its timeline.\n- **01:12 - 01:17**: Confirmation that everything is in place for the party.\n\n#### Chapter 3: Scheduling Dates\n- **01:45 - 03:10**: Confirmation of party  dates and adjustments to the schedule.\n\n#### Chapter 5: Conclusion\n- **03:11 - 03:23**: Closing remarks and expressions of gratitude.",
                          "keywords": [
                            "Alice",
                            "Bruce",
                            "Carl",
                            "party",
                            "payment",
                            "scheduling"
                          ],
                          "overview": "The meeting involved a conversation between a customer and a representative from Garden Parties regarding the details of an upcoming event. The customer confirmed that they had made a full payment, which would be processed by the company's accounts in Sydney. The representative assured the customer that all necessary documentation, was in order for the event scheduled for the following week. They discussed specific dates for the cleanup and the transport, ensuring that everything was aligned for a smooth process. The representative encouraged the customer to reach out if any further questions arose.",
                          "action_items": "### Action Items\n\n#### Responsible Person: Carl\n- Confirm that the payment clears and is applied to the move. (Timestamp: 01:59)\n- Ensure the transport bus is scheduled for the 5th. (Timestamp: 02:43)\n\n#### Responsible Person: Bruce\n- Follow up with Garden Parties if any additional questions arise. (Timestamp: 03:12)\n\n#### Responsible Person: Unassigned\n- Monitor the status of the payment from NAB to ensure it clears as expected. (Timestamp: 00:47)",
                          "shorthand_bullet": "📅 **Payment Confirmation (00:38 - 01:12)**\n- **Bruce confirmed full payment was made into the bank account at 07:00 this morning.**\n- Payment will clear today if with NAB, allowing the party to proceed.\n\n📦 **Party Details (01:12 - 02:06)**\n- All necessary forms have been received.\n- **Full steam ahead for the party once payment clears.**\n\n🚚 **Scheduled Dates (02:14 - 03:10)**\n- **Bus is scheduled for Tuesday, November 5.**\n- Carl confirmed both dates are correct and noted in his records.\n\n📞 **Follow-Up (03:12 - 03:24)**\n- Bruce was advised to call if any further questions arise.\n- Carl assured that assistance is always available.",
                          "overall_sentiment": "positive"
                        },
                        "action_items": null,
                        "sentences": [
                          {
                            "text": "Garden Parties.",
                            "index": 0,
                            "end_time": 1.55,
                            "raw_text": "Garden Parties.",
                            "ai_filters": {
                              "task": null,
                              "metric": null,
                              "pricing": null,
                              "question": null,
                              "sentiment": "positive",
                              "text_cleanup": "Garden Parties.",
                              "date_and_time": null
                            },
                            "speaker_id": 0,
                            "start_time": 0.84,
                            "speaker_name": null
                          },
                          {
                            "text": "How are you?",
                            "index": 1,
                            "end_time": 2.85,
                            "raw_text": "How are you?",
                            "ai_filters": {
                              "task": null,
                              "metric": null,
                              "pricing": null,
                              "question": "How are you?",
                              "sentiment": "positive",
                              "text_cleanup": "How are you?",
                              "date_and_time": null
                            },
                            "speaker_id": 0,
                            "start_time": 1.55,
                            "speaker_name": null
                          },
                          {
                            "text": "Yeah, hi, Alice, it's Bruce here.",
                            "index": 2,
                            "end_time": 5.836,
                            "raw_text": "Yeah, hi, Alice, it's Bruce here.",
                            "ai_filters": {
                              "task": null,
                              "metric": null,
                              "pricing": null,
                              "question": null,
                              "sentiment": "neutral",
                              "text_cleanup": "Yeah, hi, Alice, it's Bruce here.",
                              "date_and_time": null
                            },
                            "speaker_id": 1,
                            "start_time": 3.42,
                            "speaker_name": null
                          },
                          "...",
                          {
                            "text": "Thank you for calling us, please reach out if you have more questions or concerns, we'd love to help.",
                            "index": 15,
                            "end_time": 41.72,
                            "raw_text": "Thank you for calling us, please reach out if you have more questions or concerns, we'd love to help.",
                            "ai_filters": {
                              "task": null,
                              "metric": null,
                              "pricing": null,
                              "question": null,
                              "sentiment": "positive",
                              "text_cleanup": "Thank you for calling us, please reach out if you have more questions or concerns, we'd love to help.",
                              "date_and_time": null
                            },
                            "speaker_id": 1,
                            "start_time": 33.868,
                            "speaker_name": null
                          }
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTP_BASIC": []
          },
          {
            "sessionToken": []
          }
        ]
      }
    }
  },
  "components": {
    "securitySchemes": {
      "HTTP_BASIC": {
        "type": "http",
        "scheme": "basic",
        "description": "To use HTTP Basic Authentication, simply include an **Authorization** header in the request. The header value should be your AVANSER login credentials in Base64-encoded format."
      },
      "sessionToken": {
        "type": "apiKey",
        "in": "query",
        "name": "token",
        "description": "Returns a session token to use in other API calls."
      }
    },
    "schemas": {
      "TokenKeyResponse": {
        "type": "object",
        "required": [
          "tokenKey"
        ],
        "properties": {
          "tokenKey": {
            "type": "string",
            "example": "8OjmnMvJI83lwcc3KPMv3H3Xx86uwkGs"
          }
        }
      },
      "SessionTokenResponse": {
        "type": "object",
        "required": [
          "token"
        ],
        "properties": {
          "token": {
            "type": "string",
            "example": "bzNDGPOMUu4pmGZZ0yyzvTlQZZNPnQPP"
          }
        }
      },
      "CdrResponse": {
        "type": "object",
        "properties": {
          "results": {
            "type": "integer",
            "example": 1
          },
          "calls": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CallDetailRecord"
            }
          }
        }
      },
      "CallDetailRecord": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "date": {
            "type": "string"
          },
          "duration": {
            "type": "string"
          },
          "answer_number": {
            "type": "string"
          },
          "answer_name": {
            "type": "string"
          },
          "answer_folder": {
            "type": "string"
          },
          "target_number": {
            "type": "string"
          },
          "target_name": {
            "type": "string"
          },
          "caller_number": {
            "type": "string"
          },
          "country": {
            "type": "string"
          },
          "state": {
            "type": "string"
          },
          "location": {
            "type": "string"
          },
          "status_code": {
            "type": "string"
          },
          "status_name": {
            "type": "string"
          },
          "audio": {
            "type": "string"
          },
          "audioURL": {
            "type": "string"
          },
          "audioUrl": {
            "type": "string"
          },
          "spooler_id": {
            "type": "string"
          },
          "evaluation_xx": {},
          "feature01": {},
          "feature02": {},
          "feature03": {},
          "feature04": {},
          "feature05": {},
          "feature06": {},
          "feature07": {},
          "feature08": {},
          "feature09": {},
          "feature10": {},
          "webReferrer": {
            "type": [
              "string",
              "null"
            ]
          },
          "webURL": {
            "type": [
              "string",
              "null"
            ]
          },
          "webUrl": {
            "type": [
              "string",
              "null"
            ]
          },
          "webLanding": {
            "type": [
              "string",
              "null"
            ]
          },
          "webLandning": {
            "type": [
              "string",
              "null"
            ]
          },
          "webConversion": {
            "type": [
              "string",
              "null"
            ]
          },
          "webCampagin": {
            "type": [
              "string",
              "null"
            ]
          },
          "webKeyword": {
            "type": [
              "string",
              "null"
            ]
          },
          "webMedium": {
            "type": [
              "string",
              "null"
            ]
          },
          "webSource": {
            "type": [
              "string",
              "null"
            ]
          },
          "IP": {
            "type": [
              "string",
              "null"
            ]
          },
          "IPlocation": {
            "type": "string"
          },
          "connection_time": {
            "type": "string"
          },
          "connection_duration": {
            "type": "string"
          },
          "date_stop": {
            "type": "string"
          },
          "wpcid": {},
          "wpcId": {},
          "masterId": {},
          "call_notes": {
            "type": "array",
            "items": {}
          },
          "cdr_label": {
            "type": "string"
          },
          "cdr_tag": {
            "type": "string"
          },
          "custom_id": {},
          "custom_group": {},
          "memo": {},
          "dealerCode": {
            "type": "string"
          },
          "subclient": {},
          "subclient_id": {},
          "subclient_name": {
            "type": "string"
          },
          "stt": {
            "$ref": "#/components/schemas/SpeechToText"
          },
          "sentiment_score": {
            "type": "string"
          },
          "sentiment_agent": {
            "type": "string"
          },
          "sentiment_caller": {
            "type": "string"
          },
          "sentiment_talkmost": {
            "type": "string",
            "enum": [
              "agent",
              "caller",
              "balanced"
            ]
          },
          "sentiment_communication": {
            "type": "string"
          },
          "sentiment_conduct": {
            "type": "string"
          },
          "sentiment_politeness": {
            "type": "string"
          },
          "sentiment_highrisk": {
            "type": "string"
          },
          "sentiment_badattitude": {
            "type": "string"
          },
          "sentiment_slang": {
            "type": "string"
          },
          "sentiment_profanity": {
            "type": "string"
          }
        },
        "additionalProperties": true
      },
      "SpeechToText": {
        "type": "object",
        "properties": {
          "channel-out": {
            "$ref": "#/components/schemas/TranscriptChannel"
          },
          "channel-in": {
            "$ref": "#/components/schemas/TranscriptChannel"
          }
        }
      },
      "TranscriptChannel": {
        "type": "object",
        "properties": {
          "transcript": {
            "type": "string"
          },
          "keywords": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "C2cResponse": {
        "type": "object",
        "properties": {
          "results": {
            "type": "integer"
          },
          "calls": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "c2c_id": {
                  "type": "string"
                },
                "c2c_spoolerid": {
                  "type": "string"
                },
                "spooler_id": {
                  "type": "string"
                },
                "call": {
                  "type": "string",
                  "enum": [
                    "valid",
                    "invalid"
                  ]
                },
                "user_ip": {
                  "type": "string"
                },
                "user_browser": {
                  "type": "string"
                },
                "referrer": {
                  "type": "string"
                },
                "date": {
                  "type": "string"
                }
              }
            }
          }
        }
      },
      "EvaluationDetailsResponse": {
        "type": "object",
        "properties": {
          "questions": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "title": {
                  "type": "string"
                },
                "text": {
                  "type": "string"
                },
                "type": {
                  "type": "string",
                  "enum": [
                    "TEXT",
                    "ENUM",
                    "SCALE",
                    "SELECT",
                    "LABEL",
                    "EMAIL_ALERT",
                    "EMAIL_ALERT_ALL"
                  ]
                }
              }
            }
          }
        }
      },
      "CallAnalysisResponse": {
        "type": "object",
        "properties": {
          "wait_time": {
            "type": "string"
          },
          "talk_time": {
            "type": "string"
          },
          "webMedium": {},
          "webSource": {},
          "web_medium": {
            "type": "string"
          },
          "web_source": {
            "type": "string"
          },
          "first_time_caller": {
            "type": "string"
          },
          "outbound": {
            "type": "string"
          },
          "inbound": {
            "type": "string"
          },
          "transcription": {
            "$ref": "#/components/schemas/Transcription"
          }
        }
      },
      "Transcription": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "wait",
              "pending",
              "transcribing",
              "done",
              "error"
            ]
          },
          "summary": {
            "type": "object",
            "description": "Information about the whole call, including an outline, keywords and an overview",
            "additionalProperties": true
          },
          "action_items": {
            "type": [
              "string",
              "null"
            ]
          },
          "sentences": {
            "type": "array",
            "description": "The individual section of the transcription, split by speaker with details about timing and sentiment",
            "items": {
              "type": "object",
              "additionalProperties": true
            }
          }
        }
      }
    }
  }
}