> For the complete documentation index, see [llms.txt](https://docs.vntranslator.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.vntranslator.com/advanced/custom-mt/v1-and-v2-archive.md).

# V1 & V2 (Archive)

{% hint style="info" %}
Old configuration for version 0.7.x and <= 0.8.6-alpha
{% endhint %}

**Pro Version**&#x20;

* Settings ➜ Translation ➜ MT Engines ➜ Custom ➜ Configure ➜ Switch Editor to Code

**Public Version**

* Settings ➜ Machine Translation ➜ Translators ➜ Custom ➜ Configure ➜ Switch Editor to Code

***

## Web Scraping Method

* lang: `object`
  * source: `array[]`
  * target: `array[]`
* config: `object`
  * method: `string`
  * initialURL: `string`
  * scrapeURL: `string`
  * encodeURI: `boolean`
  * encodeURIComponent: `boolean`
  * querySelector: `string`
  * querySelectorAll: `string`
  * queryProperty: `string`
  * evaluateInterval: `number`
  * evaluateTimeOut: `number`
  * waitingTimeOut: `boolean` \**Deprecated*
  * evaluateRepeated: `boolean` \**Deprecated*

```json
{
  "lang": {
    "source": [
        { "name": "Japanese", "value": "japanese"}
    ],
    "target": [
        {"name": "English", "value": "english"}
    ]
  },
  "config": {
    "method": "scrape",
    "scrapeURL": "http://localhost:8080/?source=$SOURCE_LANG&target=$TARGET_LANG&text=$ORIGINAL_TEXT",
    "encodeURI": false,
    "encodeURIComponent": true,
    "querySelector": "body",               
    "queryProperty": "innerText",
    "evaluateInterval": 50,
    "evaluateTimeOut": 7000
  }
}
```

***

## HTTP GET

* lang: `object`
  * source: `array[]`
  * target: `array[]`
* config: `object`
  * method: `string`
  * getURL: `string`
  * getOptions: `object`
  * encodeURI: `boolean`
  * encodeURIComponent: `boolean`
  * responseParse: `boolean`
  * responseType: `string`
  * responseQuery: `string`

```json
{
  "lang": {
    "source": [
        { "name": "Japanese", "value": "japanese"}
    ],
    "target": [
        {"name": "English", "value": "english"}
    ]
  },
  "config": {
    "method": "get",
    "getURL": "https://api.deepl.com/v2/translate?auth_key=$API_KEY&source_lang=$SOURCE_LANG&target_lang=$TARGET_LANG&text=$ORIGINAL_TEXT",
    "getOptions": {},
    "encodeURI": false,
    "encodeURIComponent": true,
    "responseParse": true,
    "responseType": "json",
    "responseQuery": "translations[0].text",
  }
}
```

***

## HTTP POST

* lang: `object`
  * source: `array[]`
  * target: `array[]`
* config: `object`
  * method: `string`
  * postURL: `string`
  * postOptions: `object`
  * postData: `object`
  * encodeURI: `boolean`
  * encodeURIComponent: `boolean`
  * responseParse: `boolean`
  * responseType: `string`
  * responseQuery: `string`

```json
{
  "lang": {
    "source": [
        { "name": "Japanese", "value": "japanese"}
    ],
    "target": [
        {"name": "English", "value": "english"}
    ]
  },
  "config": {
    "method": "post",
    "postURL": "https://api.openai.com/v1/chat/completions",
    "postData": {
      "messages": [
        "role": "user",
        "content": "Translate the following $SOURCE_LANG text to $TARGET_LANG: $ORIGINAL_TEXT"
      ]
    },
    "postOptions": {
      "headers": {
        "Authorization": "Bearer *****",
        "Content-Type": "application/json"
      }
    },
    "encodeURI": false,
    "encodeURIComponent": false,
    "responseParse": true,
    "responseType": "json",
    "responseQuery": "choices[0].message.content"
  }
}
```
