# Language Interpretation error 400

**URL:** <https://devforum.zoom.us/t/language-interpretation-error-400/55790>\
**Category:** API and Webhooks\
**Created:** [August 14, 2021, 7:49am UTC](https://devforum.zoom.us/t/language-interpretation-error-400/55790 "2021-08-14T07:49:04Z")\
**Posts on this page:** 15\
**Page:** 1

<div class="post-metadata">

**Author:** ![matt\_b](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/matt_b/32/36692_2.png) [@matt\_b](https://devforum.zoom.us/u/matt_b)\
**Post date:** [August 14, 2021, 7:49am UTC](https://devforum.zoom.us/t/language-interpretation-error-400/55790/1 "2021-08-14T07:49:04Z")

</div>

**Description**  
Following [https://marketplace.zoom.us/docs/api-reference/zoom-api/meetings/meetingcreate](https://marketplace.zoom.us/docs/api-reference/zoom-api/meetings/meetingcreate) I can create a meeting with Language Interpretation enabled using the following data in the request body (snippet provided):

```auto
[settings] => Array
        (
            [language_interpretation] => Array
                (
                    [enable] => 1
                )
        )

```

I am using a Business license with Interpretation enabled and this works fine. In the meeting as Host I can then add interpreters and languages.

I want to add these via the API so I can cut out a manual process. If I use:

```auto
[settings] => Array
        (
                (
                    [enable] => 1
                    [interpreters] => Array
                        (
                            [email] => email@example.com
                            [languages] => en,de
                        )

                )

        )

```

I get a HTTP Status Code 400, with no Error Code.

The email address is a real email address of a zoom user. I’ve tried the languages in upper and lower case.

**Error**  
I’m calling the API via PHP. Here is the exception response data:

```auto
GuzzleHttp\Psr7\Response Object
(
    [reasonPhrase:GuzzleHttp\Psr7\Response:private] => Bad Request
    [statusCode:GuzzleHttp\Psr7\Response:private] => 400
    [headers:GuzzleHttp\Psr7\Response:private] => Array
        (
            [Date] => Array
                (
                    [0] => Sat, 14 Aug 2021 07:38:30 GMT
                )

            [Content-Type] => Array
                (
                    [0] => application/xml;charset=UTF-8
                )

            [Content-Length] => Array
                (
                    [0] => 148
                )

            [Connection] => Array
                (
                    [0] => keep-alive
                )

            [x-zm-trackingid] => Array
                (
                    [0] => v=2.0;clid=aw1;rid=WEB_e14bda6806450848716821a57f0aeb27
                )

            [X-Content-Type-Options] => Array
                (
                    [0] => nosniff
                )

            [Cache-Control] => Array
                (
                    [0] => no-cache, no-store, must-revalidate, no-transform
                )

            [Pragma] => Array
                (
                    [0] => no-cache
                )

            [Expires] => Array
                (
                    [0] => Thu, 01 Jan 1970 00:00:00 GMT
                )

            [Set-Cookie] => Array
                (
                    [0] => zm_aid=""; Domain=.zoom.us; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Path=/; Secure; HttpOnly
                    [1] => zm_haid=""; Domain=.zoom.us; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Path=/; Secure; HttpOnly
                    [2] => web_zak=""; Domain=.zoom.us; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Path=/; Secure; HttpOnly
                    [3] => cred=7B79D84C6D278D4A1B34A5A35792378C; Path=/; Secure; HttpOnly
                    [4] => _zm_ctaid=""; Domain=.zoom.us; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Path=/; Secure; HttpOnly
                    [5] => _zm_chtaid=""; Domain=.zoom.us; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Path=/; Secure; HttpOnly
                )

            [Vary] => Array
                (
                    [0] => Origin
                    [1] => Access-Control-Request-Method
                    [2] => Access-Control-Request-Headers
                )

            [X-RateLimit-Category] => Array
                (
                    [0] => Light
                )

        )

    [headerNames:GuzzleHttp\Psr7\Response:private] => Array
        (
            [date] => Date
            [content-type] => Content-Type
            [content-length] => Content-Length
            [connection] => Connection
            [x-zm-trackingid] => x-zm-trackingid
            [x-content-type-options] => X-Content-Type-Options
            [cache-control] => Cache-Control
            [pragma] => Pragma
            [expires] => Expires
            [set-cookie] => Set-Cookie
            [vary] => Vary
            [x-ratelimit-category] => X-RateLimit-Category
        )

    [protocol:GuzzleHttp\Psr7\Response:private] => 1.1
    [stream:GuzzleHttp\Psr7\Response:private] => GuzzleHttp\Psr7\Stream Object
        (
            [stream:GuzzleHttp\Psr7\Stream:private] => Resource id #11
            [size:GuzzleHttp\Psr7\Stream:private] => 148
            [seekable:GuzzleHttp\Psr7\Stream:private] => 1
            [readable:GuzzleHttp\Psr7\Stream:private] => 1
            [writable:GuzzleHttp\Psr7\Stream:private] => 1
            [uri:GuzzleHttp\Psr7\Stream:private] => php://temp
            [customMetadata:GuzzleHttp\Psr7\Stream:private] => Array
                (
                )

        )

)

```

**Which App Type (OAuth / Chatbot / JWT / Webhook)?**  
JWT

**Which Endpoint/s?**

> **[Create a meeting - Meetings - Zoom API - API Reference](https://marketplace.zoom.us/docs/api-reference/zoom-api/meetings/meetingcreate)**
>
> Create a meeting for a user. For user-level apps, pass the me value instead of the userId parameter.
> 
> This API has a daily rate limit of 100 requests pe...

---

<div class="post-metadata">

**Author:** ![MaxM](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/maxm/32/42303_2.png) [@MaxM](https://devforum.zoom.us/u/MaxM)\
**Post date:** [August 18, 2021, 1:58am UTC](https://devforum.zoom.us/t/language-interpretation-error-400/55790/2 "2021-08-18T01:58:20Z")

</div>

Hey @matt_b,

Thank you for reaching out to the Zoom Developer Forum. First, I would make sure that you are sending that data in the request body as JSON. If that’s the case, please share the JSON body that you are sending with this request and I’ll check for any issues there.

From what I can tell here, it seems to be formatted correctly.

Thanks,  
Max

---

<div class="post-metadata">

**Author:** ![matt\_b](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/matt_b/32/36692_2.png) [@matt\_b](https://devforum.zoom.us/u/matt_b)\
**Post date:** [August 18, 2021, 4:54am UTC](https://devforum.zoom.us/t/language-interpretation-error-400/55790/3 "2021-08-18T04:54:13Z")

</div>

Hi Max

Thanks for getting back to me. So I’m doing this in PHP using Guzzle, which automatically converts PHP arrays (as per my previous post) to json. However I inserted a line to encode the array in JSON to output it in this format, which will be the same used in the guzzle request:

```auto
{
   "topic":"Test Zoom Integration",
   "agenda":"This is a test Zoom Meeting using language interpretation",
   "start_time":"2021-08-18T05:48:24Z",
   "duration":1439,
   "type":2,
   "password":"GxI1dM7tOF",
   "settings":{
      "host_video":true,
      "participant_video":true,
      "auto_recording":"disabled",
      "mute_upon_entry":false,
      "audio":"both",
      "approval_type":2,
      "waiting_room":false,
      "language_interpretation":{
         "enable":true,
         "interpreters":{
            "email":"email@example.com",
            "languages":"en,de"
         }
      }
   }
}

```

Posting this without the “interpreters” entry works fine.

---

<div class="post-metadata">

**Author:** ![matt\_b](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/matt_b/32/36692_2.png) [@matt\_b](https://devforum.zoom.us/u/matt_b)\
**Post date:** [August 19, 2021, 4:53am UTC](https://devforum.zoom.us/t/language-interpretation-error-400/55790/4 "2021-08-19T04:53:22Z")

</div>

@MaxM any updates on this please? Any issues with the JSON I’m using?

---

<div class="post-metadata">

**Author:** ![matt\_b](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/matt_b/32/36692_2.png) [@matt\_b](https://devforum.zoom.us/u/matt_b)\
**Post date:** [August 22, 2021, 6:48am UTC](https://devforum.zoom.us/t/language-interpretation-error-400/55790/5 "2021-08-22T06:48:57Z")

</div>

> [@matt\_b](#):
>
> ```auto
> {
> "topic":"Test Zoom Integration",
> "agenda":"This is a test Zoom Meeting using language interpretation",
> "start_time":"2021-08-18T05:48:24Z",
> "duration":1439,
> "type":2,
> "password":"GxI1dM7tOF",
> "settings":{
> "host_video":true,
> "participant_video":true,
> "auto_recording":"disabled",
> "mute_upon_entry":false,
> "audio":"both",
> "approval_type":2,
> "waiting_room":false,
> "language_interpretation":{
> "enable":true,
> "interpreters":{
> "email":"email@example.com",
> "languages":"en,de"
> }
> }
> }
> }
> 
> ```

So I replicated this in Postman. I get the following returned:

```auto
<error>
    <code>300</code>
    <message>Request Body should be a valid JSON object.</message>
</error>

```

However if I put the JSON through three different online JSON validators and they area all confirming it is valid JSON. Please tell me where the typo is because I just cannot see it.

---

<div class="post-metadata">

**Author:** ![MaxM](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/maxm/32/42303_2.png) [@MaxM](https://devforum.zoom.us/u/MaxM)\
**Post date:** [August 22, 2021, 10:09pm UTC](https://devforum.zoom.us/t/language-interpretation-error-400/55790/7 "2021-08-22T22:09:51Z")

</div>

@matt_b Sorry for the delay here. I noticed that you are using the country code “EN” which doesn’t exist in [list of country codes](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#countries). Try using “US” or “GB” for English.

 ![image](https://us1.discourse-cdn.com/flex016/uploads/zoomdeveloper/original/3X/6/9/6981100db5559b120acf95270ded9332935c1d72.png)

@getforfashion Please share the request you are using when you see this issue.

Max

---

<div class="post-metadata">

**Author:** ![matt\_b](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/matt_b/32/36692_2.png) [@matt\_b](https://devforum.zoom.us/u/matt_b)\
**Post date:** [August 23, 2021, 5:37am UTC](https://devforum.zoom.us/t/language-interpretation-error-400/55790/8 "2021-08-23T05:37:35Z")

</div>

Thanks @MaxM

I still get the same error both in PHP and Postman. 300 “Request should be a valid JSON object.”

_This is off topic but why are country IDs being used for languages? In the Unitied Kingdom of Great Britain and Northern Ireland we have 14 indiginous languages - see [Languages of the United Kingdom - Wikipedia](https://en.wikipedia.org/wiki/Languages_of_the_United_Kingdom). So which of those languages is being specified by the country code “GB”? My organisation has been working with Iranian refugees who speak Farsi. We use Zoom for translation with professional Farsi translators. Why is Iran not in the list of countries specified by Zoom? Why is Farsi not in the list of languages? These places and languages do all exist… Zoom should use the ISO standard lists not imposing their own (see [ISO 3166-1 - Wikipedia](https://en.wikipedia.org/wiki/ISO_3166-1) and [List of ISO 639-1 codes - Wikipedia](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes). And just for fun please also include Klingon, Bocce and Pirate 😃._

On the UI you can specify anything as a language - it is not restricted to those lists so I’ve specified Farsi and Welsh as default languages to choose from.

 ![Screenshot 2021-08-23 062239](https://us1.discourse-cdn.com/flex016/uploads/zoomdeveloper/original/3X/c/f/cfa858c9c91aaa0d5f66e63caf2911be0381729c.png)

I’d assumed it didn’t matter what was in the string as long as it was separated by a comma?

Either way, the Zoom API is still throwing a JSON validation error on valid JSON.

---

<div class="post-metadata">

**Author:** ![matt\_b](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/matt_b/32/36692_2.png) [@matt\_b](https://devforum.zoom.us/u/matt_b)\
**Post date:** [August 23, 2021, 5:43am UTC](https://devforum.zoom.us/t/language-interpretation-error-400/55790/9 "2021-08-23T05:43:14Z")

</div>

Same error with “US,CN” as we well.

---

<div class="post-metadata">

**Author:** ![MaxM](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/maxm/32/42303_2.png) [@MaxM](https://devforum.zoom.us/u/MaxM)\
**Post date:** [August 23, 2021, 10:33pm UTC](https://devforum.zoom.us/t/language-interpretation-error-400/55790/10 "2021-08-23T22:33:20Z")

</div>

Hey @matt_b,

Thank you for your feedback on using the Country Codes, I agree. If you would like to see this changed, I recommend submitting a topic in our #feature-requests category. I’ll talk with our team tomorrow too.

When it comes to your request, I’m really not seeing any issue. As you’re seeing an XML response I’m wondering if you are using a Content-Type that isn’t application/json?

If that’s not the case, please send an email to [developersupport@zoom.us](mailto:developersupport@zoom.us) with a link to this thread. In that email, please include the app name and app owner email where this is happening. I’ll work to reproduce the issue and engage our engineering team.

Thanks,  
Max

---

<div class="post-metadata">

**Author:** ![matt\_b](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/matt_b/32/36692_2.png) [@matt\_b](https://devforum.zoom.us/u/matt_b)\
**Post date:** [August 24, 2021, 4:41am UTC](https://devforum.zoom.us/t/language-interpretation-error-400/55790/11 "2021-08-24T04:41:27Z")

</div>

Thanks @MaxM

I’ll look into a feature-request for my aside on Country Codes, but my priority is to get this working first.

I am using ‘application/json’ as the Content-Type - if I remove the ‘interpreters’ value from the JSON I can create a meeting as expected (with Language Interpretation enabled, just no intepreters added to the meeting).

I’ll email developersupport.

kind regards  
Matt

---

<div class="post-metadata">

**Author:** ![matt\_b](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/matt_b/32/36692_2.png) [@matt\_b](https://devforum.zoom.us/u/matt_b)\
**Post date:** [August 24, 2021, 8:14pm UTC](https://devforum.zoom.us/t/language-interpretation-error-400/55790/12 "2021-08-24T20:14:38Z")

</div>

Just to follow up, the issue was I was sending the interpreters as an object when​ it should be an array of objects.

Should be:

```auto
"language_interpretation" : {
  "enable" : true,
  "interpreters" : [
    {
      "email" : "email@example.com",
      "languages" : "US, CN"
    }
  ]
}

```

---

<div class="post-metadata">

**Author:** ![MaxM](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/maxm/32/42303_2.png) [@MaxM](https://devforum.zoom.us/u/MaxM)\
**Post date:** [August 25, 2021, 1:17am UTC](https://devforum.zoom.us/t/language-interpretation-error-400/55790/13 "2021-08-25T01:17:37Z")

</div>

Hey @matt_b,

Good catch, my apologies for not noticing that earlier. I talked with my team about the Country Codes and I think a feature request detailing your issues would be a good next step. Please link it here if you do create one.

Thanks,  
Max

---

<div class="post-metadata">

**Author:** ![matt\_b](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/matt_b/32/36692_2.png) [@matt\_b](https://devforum.zoom.us/u/matt_b)\
**Post date:** [August 25, 2021, 5:26am UTC](https://devforum.zoom.us/t/language-interpretation-error-400/55790/14 "2021-08-25T05:26:01Z")

</div>

I didn’t spot it either, it was so obvious! Feature request: [/users/{userId}/meetings - use languages for language interpretation](https://devforum.zoom.us/t/users-userid-meetings-use-languages-for-language-interpretation/56395)

---

<div class="post-metadata">

**Author:** ![MaxM](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/maxm/32/42303_2.png) [@MaxM](https://devforum.zoom.us/u/MaxM)\
**Post date:** [August 26, 2021, 1:02am UTC](https://devforum.zoom.us/t/language-interpretation-error-400/55790/15 "2021-08-26T01:02:50Z")

</div>

Hey @matt_b,

Thank you for submitting your request!

Thanks,  
Max

---

<div class="post-metadata">

**Author:** ![MaxM](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/maxm/32/42303_2.png) [@MaxM](https://devforum.zoom.us/u/MaxM)\
**Post date:** [August 26, 2021, 1:02am UTC](https://devforum.zoom.us/t/language-interpretation-error-400/55790/16 "2021-08-26T01:02:54Z")

</div>

Closed on August 26, 2021, 1:02am UTC


