> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.ovac.councilbox.com/llms.txt.
> For full documentation content, see https://docs.ovac.councilbox.com/llms-full.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.ovac.councilbox.com/_mcp/server.

# Languages

POST https://api.ovac.pre.councilbox.com/graphql/languages
Content-Type: application/json

# Languages (`query`)

Esta operación permite consultar el listado de los idiomas soportados en la plataforma OVAC. Su propósito principal es exponer los códigos técnicos normalizados (`columnName`) que los integradores deben capturar y enviar en otras llamadas de la API para establecer el idioma en el cual el ciudadano visualizará su interfaz y recibirá las notificaciones.

### Detalles de la Solicitud

- **Método HTTP:** `POST`
    
- **URL:** `https://api.ovac.pre.councilbox.com/graphql`
    
- **Autenticación:** **No requiere**. Este es un endpoint público de parametrización.
    

### Cabeceras (Headers)

| **Key** | **Value** | **Requerido** | **Descripción** |
| --- | --- | --- | --- |
| **Content-Type** | application/json | Sí | Especifica el formato JSON para el cuerpo de la petición. |

## Referencia de la API

### Parámetros de Entrada (Variables)

Este método **no requiere ningún parámetro** ni bloque de variables de entrada.

### Campos de Respuesta (Payload)

La consulta devuelve un array de objetos dentro del campo `languages`:

| Campo | Tipo | Descripción |
| --- | --- | --- |
| **languages** | Array | Colección con todos los idiomas soportados y configurados en la plataforma. |
| **languages.columnName** | String | Código o identificador técnico del idioma (ej. "es", "en", "gal"). |
| **languages.desc** | String | Nombre legible y descriptivo del idioma (ej. "Español", "English"). |

💡 **Nota de Integración:** El valor recuperado en `columnName` es el identificador exacto que espera recibir la API en variables ulteriores (como `participant.language` en el flujo de **Create Appointment**) para personalizar la experiencia del asistente. Se recomienda validar con el administrador del sistema cuáles de estos idiomas están activos para tu organización antes de desplegarlos en la interfaz.

## Ejemplos de Código y Peticiones

### 1\. Consulta GraphQL

``` graphql
query {
    languages {  
        columnName
        desc
    }
}

 ```

### 2\. Variables de la Petición (JSON Payload)

``` json
{}

 ```

### 3\. Ejemplo de comando cURL

``` bash
curl --location "https://api.ovac.pre.councilbox.com/graphql" \
--header "Content-Type: application/json" \
--data '{"query":"query{\n    languages\n    {  \n        columnName\n        desc\n    }\n}","variables":{}}'

 ```

### 4\. Respuesta Esperada (200 OK)

``` json
{
    "data": {
        "languages": [
            {
                "columnName": "es",
                "desc": "Español"
            },
            {
                "columnName": "en",
                "desc": "English"
            },
            {
                "columnName": "gal",
                "desc": "Galego"
            },
            {
                "columnName": "vl",
                "desc": "Valencià"
            },
            {
                "columnName": "cat",
                "desc": "Català"
            },
            {
                "columnName": "it",
                "desc": "Italiano"
            },
            {
                "columnName": "eu",
                "desc": "Euskera"
            }
        ]
    }
}

 ```

> **Nota OpenAPI/Fern:** esta operación GraphQL se documenta como `/graphql/languages` para que Fern pueda mostrarla como operación independiente. La ruta técnica real de ejecución es `POST /graphql`.


Reference: https://docs.ovac.councilbox.com/metodos-api/ovac/languages

## OpenAPI Specification

```yaml
openapi: 3.1.0
info:
  title: ovac
  version: 1.0.0
paths:
  /graphql/languages:
    post:
      operationId: languages
      summary: Languages
      description: >
        # Languages (`query`)


        Esta operación permite consultar el listado de los idiomas soportados en
        la plataforma OVAC. Su propósito principal es exponer los códigos
        técnicos normalizados (`columnName`) que los integradores deben capturar
        y enviar en otras llamadas de la API para establecer el idioma en el
        cual el ciudadano visualizará su interfaz y recibirá las notificaciones.


        ### Detalles de la Solicitud


        - **Método HTTP:** `POST`
            
        - **URL:** `https://api.ovac.pre.councilbox.com/graphql`
            
        - **Autenticación:** **No requiere**. Este es un endpoint público de
        parametrización.
            

        ### Cabeceras (Headers)


        | **Key** | **Value** | **Requerido** | **Descripción** |

        | --- | --- | --- | --- |

        | **Content-Type** | application/json | Sí | Especifica el formato JSON
        para el cuerpo de la petición. |


        ## Referencia de la API


        ### Parámetros de Entrada (Variables)


        Este método **no requiere ningún parámetro** ni bloque de variables de
        entrada.


        ### Campos de Respuesta (Payload)


        La consulta devuelve un array de objetos dentro del campo `languages`:


        | Campo | Tipo | Descripción |

        | --- | --- | --- |

        | **languages** | Array | Colección con todos los idiomas soportados y
        configurados en la plataforma. |

        | **languages.columnName** | String | Código o identificador técnico del
        idioma (ej. "es", "en", "gal"). |

        | **languages.desc** | String | Nombre legible y descriptivo del idioma
        (ej. "Español", "English"). |


        💡 **Nota de Integración:** El valor recuperado en `columnName` es el
        identificador exacto que espera recibir la API en variables ulteriores
        (como `participant.language` en el flujo de **Create Appointment**) para
        personalizar la experiencia del asistente. Se recomienda validar con el
        administrador del sistema cuáles de estos idiomas están activos para tu
        organización antes de desplegarlos en la interfaz.


        ## Ejemplos de Código y Peticiones


        ### 1\. Consulta GraphQL


        ``` graphql

        query {
            languages {  
                columnName
                desc
            }
        }

         ```

        ### 2\. Variables de la Petición (JSON Payload)


        ``` json

        {}

         ```

        ### 3\. Ejemplo de comando cURL


        ``` bash

        curl --location "https://api.ovac.pre.councilbox.com/graphql" \

        --header "Content-Type: application/json" \

        --data '{"query":"query{\n    languages\n    {  \n       
        columnName\n        desc\n    }\n}","variables":{}}'

         ```

        ### 4\. Respuesta Esperada (200 OK)


        ``` json

        {
            "data": {
                "languages": [
                    {
                        "columnName": "es",
                        "desc": "Español"
                    },
                    {
                        "columnName": "en",
                        "desc": "English"
                    },
                    {
                        "columnName": "gal",
                        "desc": "Galego"
                    },
                    {
                        "columnName": "vl",
                        "desc": "Valencià"
                    },
                    {
                        "columnName": "cat",
                        "desc": "Català"
                    },
                    {
                        "columnName": "it",
                        "desc": "Italiano"
                    },
                    {
                        "columnName": "eu",
                        "desc": "Euskera"
                    }
                ]
            }
        }

         ```

        > **Nota OpenAPI/Fern:** esta operación GraphQL se documenta como
        `/graphql/languages` para que Fern pueda mostrarla como operación
        independiente. La ruta técnica real de ejecución es `POST /graphql`.
      tags:
        - subpackage_ovac
      responses:
        '200':
          description: >-
            Successful response. GraphQL business errors may be returned inside
            the JSON `errors` field while transport status remains HTTP 200.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OVAC_languages_Response_200'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                query:
                  type: string
                  description: GraphQL operation
                variables:
                  $ref: >-
                    #/components/schemas/GraphqlLanguagesPostRequestBodyContentApplicationJsonSchemaVariables
                  description: GraphQL variables
              required:
                - query
servers:
  - url: https://api.ovac.pre.councilbox.com
  - url: https://api.ovac.councilbox.com
components:
  schemas:
    GraphqlLanguagesPostRequestBodyContentApplicationJsonSchemaVariables:
      type: object
      properties: {}
      description: GraphQL variables
      title: GraphqlLanguagesPostRequestBodyContentApplicationJsonSchemaVariables
    OVAC_languages_Response_200:
      type: object
      properties: {}
      title: OVAC_languages_Response_200

```

## SDK Code Examples

```python Languages
import requests

url = "https://api.ovac.pre.councilbox.com/graphql/languages"

payload = { "query": "query{
    languages
    {  
        columnName
        desc
    }
}" }
headers = {"Content-Type": "application/json"}

response = requests.post(url, json=payload, headers=headers)

print(response.json())
```

```javascript Languages
const url = 'https://api.ovac.pre.councilbox.com/graphql/languages';
const options = {
  method: 'POST',
  headers: {'Content-Type': 'application/json'},
  body: '{"query":"query{\r\n    languages\r\n    {  \r\n        columnName\r\n        desc\r\n    }\r\n}"}'
};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Languages
package main

import (
	"fmt"
	"strings"
	"net/http"
	"io"
)

func main() {

	url := "https://api.ovac.pre.councilbox.com/graphql/languages"

	payload := strings.NewReader("{\n  \"query\": \"query{\\r\\n    languages\\r\\n    {  \\r\\n        columnName\\r\\n        desc\\r\\n    }\\r\\n}\"\n}")

	req, _ := http.NewRequest("POST", url, payload)

	req.Header.Add("Content-Type", "application/json")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Languages
require 'uri'
require 'net/http'

url = URI("https://api.ovac.pre.councilbox.com/graphql/languages")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n  \"query\": \"query{\\r\\n    languages\\r\\n    {  \\r\\n        columnName\\r\\n        desc\\r\\n    }\\r\\n}\"\n}"

response = http.request(request)
puts response.read_body
```

```java Languages
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://api.ovac.pre.councilbox.com/graphql/languages")
  .header("Content-Type", "application/json")
  .body("{\n  \"query\": \"query{\\r\\n    languages\\r\\n    {  \\r\\n        columnName\\r\\n        desc\\r\\n    }\\r\\n}\"\n}")
  .asString();
```

```php Languages
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://api.ovac.pre.councilbox.com/graphql/languages', [
  'body' => '{
  "query": "query{\\r\\n    languages\\r\\n    {  \\r\\n        columnName\\r\\n        desc\\r\\n    }\\r\\n}"
}',
  'headers' => [
    'Content-Type' => 'application/json',
  ],
]);

echo $response->getBody();
```

```csharp Languages
using RestSharp;

var client = new RestClient("https://api.ovac.pre.councilbox.com/graphql/languages");
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\n  \"query\": \"query{\\r\\n    languages\\r\\n    {  \\r\\n        columnName\\r\\n        desc\\r\\n    }\\r\\n}\"\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift Languages
import Foundation

let headers = ["Content-Type": "application/json"]
let parameters = ["query": "query{
    languages
    {  
        columnName
        desc
    }
}"] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "https://api.ovac.pre.councilbox.com/graphql/languages")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```