> 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.

# Councils_External

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

# Councils (External ID Variant) (`query`)

Este método permite obtener un listado filtrado o paginado de las citas (consejos) correspondientes a una organización a través de su identificador externo (`companyExternalId`). Devuelve la información general y de control de cada registro junto con el recuento total de resultados coincidentes, facilitando la búsqueda por estados, identificadores externos de citas y rangos de fechas sin depender de los IDs internos de la base de datos de la plataforma.

### Autenticación

> **Tipo:** API Key**  
Header:** `x-jwt-token`  
**Ubicación:** Header HTTP_  
Ejemplo:_ `x-jwt-token: eyJhbGciOiJIUzI1NiIsInR5cCI6...` 
  

## Referencia de la API

### Parámetros de Entrada (Variables)

| Parámetro | Descripción | Requerido | Tipo |
| --- | --- | --- | --- |
| companyExternalId | Identificador externo de la organización | SI | String |
| state | lista de estados por los que filtrar las citas:  <br>'`-1`' -> Cancelado  <br>`10` -> Confirmado  <br>`20` -> Sala abierta  <br>`25` -> Pausa  <br>`40` -> Finalizada la sesión de vídeoatención/Gestión  <br>`45` -> Procesando informe  <br>`60` -> Completada  <br>`65` -> Incompleta | SI | Integer |
| fromDate | fecha inicial del rango de búsqueda, formato UTC. | SI | String |
| toDate | fecha final del rango de búsqueda, formato UTC. | SI | String |
| externalId | Identificador externo de la cita | NO | String |
| councilTypes | Filtro de tipo de cita:  <br>`5` -> Videoatención  <br>`6` -> Gestión  <br>`7` -> Presencial | NO | Integer |

> Nota: en el ejemplo de variables de la petición aparece `councilTypes`, pero actualmente **no forma parte de la query enviada** por este request, por lo que no interviene en la ejecución mientras no se añada explícitamente a la consulta. 
  

### Campos de Respuesta (Payload)

La consulta devuelve un objeto raíz `councils` compuesto por las siguientes propiedades:

| Parámetro | Descripción | Tipo |
| --- | --- | --- |
| data | Objeto del conjunto de datos | Object |
| data.councils | Objeto de la cita | Object |
| data.councils.list | Array de las citas obtenidas aplicando el filtro | Object |
| data.councils.list\[\].id | Identificador de la cita | Integer |
| data.councils.list\[\].name | Nombre de la cita | String |
| data.councils.list\[\].observations | Observaciones que se han añadido para la cita | String |
| data.councils.list\[\].state | Estado de la cita | Integer |
| data.councils.list\[\].councilType | Tipo de cita (videoatención \[5\], gestión\[6\] o presencial\[7\]) | Integer |
| data.councils.list\[\].creationDate | Fecha de creación de cita, en formato UTC | String |
| data.councils.list\[\].dateStart | Fecha determinada en la cual se va a realizar el trámite, en formato UTC | String |
| data.councils.list\[\].dateRealEnd | Fecha en la que se ha finalizado oficialmente la cita, en formato UTC | String |
| data.councils.list\[\].dateRealStart | echa en la que se iniciado oficialmente la cita, en formato UTC | String |
| data.councils.list\[\].participants | Array de los participantes | Array |
| data.councils.list\[\].participants\[\].name | Nombre del participante | String |
| data.councils.list\[\].participants\[\].surname | Apellido del participante | String |
| data.councils.total | Recuento del número de citas obtenidas con el filtro aplcado | Integer |

## Ejemplos de Código y Peticiones

### 1\. Consulta GraphQL

``` graphql
query Councils(
    $companyExternalId: String
    $state: [Int]
    $externalId: String
    $options: OptionsInput
    $fromDate: String
    $toDate: String
) {
    councils(
        companyExternalId: $companyExternalId
        state: $state
        externalId: $externalId
        options: $options
        fromDate: $fromDate
        toDate: $toDate
    ) {
        list {
            id
            name
            observations
            state
            councilType
            creationDate
            dateStart
            dateRealEnd
            dateRealStart
            participants {
                name
                surname
            }
        }
        total
    }
}

 ```

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

``` json
{
    "companyExternalId": "API_TEST",
    "fromDate": "2026-05-17T00:00:00Z",
    "toDate": "2026-05-19T00:00:00Z",
    "state": [60],
    "externalId": ""
}

 ```

### 3\. Ejemplo de comando cURL

``` bash
curl --location --globoff 'https://api.ovac.pre.councilbox.com/graphql' \
--header 'Content-Type: application/json' \
--header 'x-jwt-token: {{token}}' \
--data '{"query":"query Councils($companyExternalId: String, $state: [Int], $externalId: String, $options: OptionsInput, $fromDate: String, $toDate: String) { councils (companyExternalId: $companyExternalId, state: $state, externalId: $externalId, options: $options, fromDate: $fromDate, toDate: $toDate ){ list { id name observations state councilType creationDate dateStart dateRealEnd dateRealStart participants { name surname } } total } }","variables":{"companyExternalId":"API_TEST","fromDate":"2026-05-17T00:00Z","toDate":"2026-05-19T00:00Z","state":[60],"externalId":""}}'

 ```

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

``` json
{
    "data": {
        "councils": {
            "list": [
                {
                    "id": 64767,
                    "name": "test creación cita",
                    "observations": "opcional",
                    "state": 60,
                    "councilType": 5,
                    "creationDate": "2026-04-23T15:16:10.085Z",
                    "dateStart": "2026-05-18T15:00:00.000Z",
                    "dateRealEnd": "2026-05-18T09:48:53.988Z",
                    "dateRealStart": "2026-05-18T09:48:37.215Z",
                    "participants": [
                        {
                            "name": "Name of participant",
                            "surname": "Surname of participant"
                        },
                        {
                            "name": "Name of participant",
                            "surname": "Surname of participant"
                        }
                    ]
                }
            ],
            "total": 1
        }
    }
}

 ```

> **Nota OpenAPI/Fern:** esta operación GraphQL se documenta como `/graphql/councils-2` 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/councils-2

## OpenAPI Specification

```yaml
openapi: 3.1.0
info:
  title: ovac
  version: 1.0.0
paths:
  /graphql/councils-2:
    post:
      operationId: councils-2
      summary: Councils_External
      description: >
        # Councils (External ID Variant) (`query`)


        Este método permite obtener un listado filtrado o paginado de las citas
        (consejos) correspondientes a una organización a través de su
        identificador externo (`companyExternalId`). Devuelve la información
        general y de control de cada registro junto con el recuento total de
        resultados coincidentes, facilitando la búsqueda por estados,
        identificadores externos de citas y rangos de fechas sin depender de los
        IDs internos de la base de datos de la plataforma.


        ### Autenticación


        > **Tipo:** API Key**  

        Header:** `x-jwt-token`  

        **Ubicación:** Header HTTP_  

        Ejemplo:_ `x-jwt-token: eyJhbGciOiJIUzI1NiIsInR5cCI6...` 
          

        ## Referencia de la API


        ### Parámetros de Entrada (Variables)


        | Parámetro | Descripción | Requerido | Tipo |

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

        | companyExternalId | Identificador externo de la organización | SI |
        String |

        | state | lista de estados por los que filtrar las citas:  <br>'`-1`' ->
        Cancelado  <br>`10` -> Confirmado  <br>`20` -> Sala abierta  <br>`25` ->
        Pausa  <br>`40` -> Finalizada la sesión de vídeoatención/Gestión 
        <br>`45` -> Procesando informe  <br>`60` -> Completada  <br>`65` ->
        Incompleta | SI | Integer |

        | fromDate | fecha inicial del rango de búsqueda, formato UTC. | SI |
        String |

        | toDate | fecha final del rango de búsqueda, formato UTC. | SI | String
        |

        | externalId | Identificador externo de la cita | NO | String |

        | councilTypes | Filtro de tipo de cita:  <br>`5` -> Videoatención 
        <br>`6` -> Gestión  <br>`7` -> Presencial | NO | Integer |


        > Nota: en el ejemplo de variables de la petición aparece
        `councilTypes`, pero actualmente **no forma parte de la query enviada**
        por este request, por lo que no interviene en la ejecución mientras no
        se añada explícitamente a la consulta. 
          

        ### Campos de Respuesta (Payload)


        La consulta devuelve un objeto raíz `councils` compuesto por las
        siguientes propiedades:


        | Parámetro | Descripción | Tipo |

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

        | data | Objeto del conjunto de datos | Object |

        | data.councils | Objeto de la cita | Object |

        | data.councils.list | Array de las citas obtenidas aplicando el filtro
        | Object |

        | data.councils.list\[\].id | Identificador de la cita | Integer |

        | data.councils.list\[\].name | Nombre de la cita | String |

        | data.councils.list\[\].observations | Observaciones que se han añadido
        para la cita | String |

        | data.councils.list\[\].state | Estado de la cita | Integer |

        | data.councils.list\[\].councilType | Tipo de cita (videoatención
        \[5\], gestión\[6\] o presencial\[7\]) | Integer |

        | data.councils.list\[\].creationDate | Fecha de creación de cita, en
        formato UTC | String |

        | data.councils.list\[\].dateStart | Fecha determinada en la cual se va
        a realizar el trámite, en formato UTC | String |

        | data.councils.list\[\].dateRealEnd | Fecha en la que se ha finalizado
        oficialmente la cita, en formato UTC | String |

        | data.councils.list\[\].dateRealStart | echa en la que se iniciado
        oficialmente la cita, en formato UTC | String |

        | data.councils.list\[\].participants | Array de los participantes |
        Array |

        | data.councils.list\[\].participants\[\].name | Nombre del participante
        | String |

        | data.councils.list\[\].participants\[\].surname | Apellido del
        participante | String |

        | data.councils.total | Recuento del número de citas obtenidas con el
        filtro aplcado | Integer |


        ## Ejemplos de Código y Peticiones


        ### 1\. Consulta GraphQL


        ``` graphql

        query Councils(
            $companyExternalId: String
            $state: [Int]
            $externalId: String
            $options: OptionsInput
            $fromDate: String
            $toDate: String
        ) {
            councils(
                companyExternalId: $companyExternalId
                state: $state
                externalId: $externalId
                options: $options
                fromDate: $fromDate
                toDate: $toDate
            ) {
                list {
                    id
                    name
                    observations
                    state
                    councilType
                    creationDate
                    dateStart
                    dateRealEnd
                    dateRealStart
                    participants {
                        name
                        surname
                    }
                }
                total
            }
        }

         ```

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


        ``` json

        {
            "companyExternalId": "API_TEST",
            "fromDate": "2026-05-17T00:00:00Z",
            "toDate": "2026-05-19T00:00:00Z",
            "state": [60],
            "externalId": ""
        }

         ```

        ### 3\. Ejemplo de comando cURL


        ``` bash

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

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

        --header 'x-jwt-token: {{token}}' \

        --data '{"query":"query Councils($companyExternalId: String, $state:
        [Int], $externalId: String, $options: OptionsInput, $fromDate: String,
        $toDate: String) { councils (companyExternalId: $companyExternalId,
        state: $state, externalId: $externalId, options: $options, fromDate:
        $fromDate, toDate: $toDate ){ list { id name observations state
        councilType creationDate dateStart dateRealEnd dateRealStart
        participants { name surname } } total }
        }","variables":{"companyExternalId":"API_TEST","fromDate":"2026-05-17T00:00Z","toDate":"2026-05-19T00:00Z","state":[60],"externalId":""}}'

         ```

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


        ``` json

        {
            "data": {
                "councils": {
                    "list": [
                        {
                            "id": 64767,
                            "name": "test creación cita",
                            "observations": "opcional",
                            "state": 60,
                            "councilType": 5,
                            "creationDate": "2026-04-23T15:16:10.085Z",
                            "dateStart": "2026-05-18T15:00:00.000Z",
                            "dateRealEnd": "2026-05-18T09:48:53.988Z",
                            "dateRealStart": "2026-05-18T09:48:37.215Z",
                            "participants": [
                                {
                                    "name": "Name of participant",
                                    "surname": "Surname of participant"
                                },
                                {
                                    "name": "Name of participant",
                                    "surname": "Surname of participant"
                                }
                            ]
                        }
                    ],
                    "total": 1
                }
            }
        }

         ```

        > **Nota OpenAPI/Fern:** esta operación GraphQL se documenta como
        `/graphql/councils-2` para que Fern pueda mostrarla como operación
        independiente. La ruta técnica real de ejecución es `POST /graphql`.
      tags:
        - subpackage_ovac
      parameters:
        - name: x-jwt-token
          in: header
          description: JWT token obtained from Login.
          required: true
          schema:
            type: string
      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_councils_2_Response_200'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                query:
                  type: string
                  description: GraphQL operation
                variables:
                  $ref: >-
                    #/components/schemas/GraphqlCouncils2PostRequestBodyContentApplicationJsonSchemaVariables
                  description: GraphQL variables
              required:
                - query
servers:
  - url: https://api.ovac.pre.councilbox.com
  - url: https://api.ovac.councilbox.com
components:
  schemas:
    GraphqlCouncils2PostRequestBodyContentApplicationJsonSchemaVariables:
      type: object
      properties: {}
      description: GraphQL variables
      title: GraphqlCouncils2PostRequestBodyContentApplicationJsonSchemaVariables
    OVAC_councils_2_Response_200:
      type: object
      properties: {}
      title: OVAC_councils_2_Response_200
  securitySchemes:
    JwtToken:
      type: apiKey
      in: header
      name: x-jwt-token
      description: JWT token obtained from Login.

```

## SDK Code Examples

```python Councils_External
import requests

url = "https://api.ovac.pre.councilbox.com/graphql/councils-2"

payload = {
    "query": "query Councils(
    $companyExternalId: String!
	$state: [Int]
    $externalId: String
	$options: OptionsInput
	$fromDate: String,
    $toDate: String
) {
    councils (
            companyExternalId: $companyExternalId
            state: $state
            externalId: $externalId
            options: $options
            fromDate: $fromDate,
            toDate: $toDate
    ){
        list {
            id
            name
            observations
            state
            councilType
            creationDate
            dateStart
            dateRealEnd
            dateRealStart
            participants {
                name
                surname
            }
        }
        total
    }
}",
    "variables": {
        "companyExternalId": "abcd",
        "fromDate": "2026-05-17T00:00Z",
        "toDate": "2026-05-19T00:00Z",
        "state": [60],
        "externalId": "",
        "councilTypes": [5, 6, 7]
    }
}
headers = {
    "x-jwt-token": "<apiKey>",
    "Content-Type": "application/json"
}

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

print(response.json())
```

```javascript Councils_External
const url = 'https://api.ovac.pre.councilbox.com/graphql/councils-2';
const options = {
  method: 'POST',
  headers: {'x-jwt-token': '<apiKey>', 'Content-Type': 'application/json'},
  body: '{"query":"query Councils(\r\n    $companyExternalId: String!\r\n\t$state: [Int]\r\n    $externalId: String\r\n\t$options: OptionsInput\r\n\t$fromDate: String,\r\n    $toDate: String\r\n) {\r\n    councils (\r\n            companyExternalId: $companyExternalId\r\n            state: $state\r\n            externalId: $externalId\r\n            options: $options\r\n            fromDate: $fromDate,\r\n            toDate: $toDate\r\n    ){\r\n        list {\r\n            id\r\n            name\r\n            observations\r\n            state\r\n            councilType\r\n            creationDate\r\n            dateStart\r\n            dateRealEnd\r\n            dateRealStart\r\n            participants {\r\n                name\r\n                surname\r\n            }\r\n        }\r\n        total\r\n    }\r\n}","variables":{"companyExternalId":"abcd","fromDate":"2026-05-17T00:00Z","toDate":"2026-05-19T00:00Z","state":[60],"externalId":"","councilTypes":[5,6,7]}}'
};

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

```go Councils_External
package main

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

func main() {

	url := "https://api.ovac.pre.councilbox.com/graphql/councils-2"

	payload := strings.NewReader("{\n  \"query\": \"query Councils(\\r\\n    $companyExternalId: String!\\r\\n\\t$state: [Int]\\r\\n    $externalId: String\\r\\n\\t$options: OptionsInput\\r\\n\\t$fromDate: String,\\r\\n    $toDate: String\\r\\n) {\\r\\n    councils (\\r\\n            companyExternalId: $companyExternalId\\r\\n            state: $state\\r\\n            externalId: $externalId\\r\\n            options: $options\\r\\n            fromDate: $fromDate,\\r\\n            toDate: $toDate\\r\\n    ){\\r\\n        list {\\r\\n            id\\r\\n            name\\r\\n            observations\\r\\n            state\\r\\n            councilType\\r\\n            creationDate\\r\\n            dateStart\\r\\n            dateRealEnd\\r\\n            dateRealStart\\r\\n            participants {\\r\\n                name\\r\\n                surname\\r\\n            }\\r\\n        }\\r\\n        total\\r\\n    }\\r\\n}\",\n  \"variables\": {\n    \"companyExternalId\": \"abcd\",\n    \"fromDate\": \"2026-05-17T00:00Z\",\n    \"toDate\": \"2026-05-19T00:00Z\",\n    \"state\": [\n      60\n    ],\n    \"externalId\": \"\",\n    \"councilTypes\": [\n      5,\n      6,\n      7\n    ]\n  }\n}")

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

	req.Header.Add("x-jwt-token", "<apiKey>")
	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 Councils_External
require 'uri'
require 'net/http'

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

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

request = Net::HTTP::Post.new(url)
request["x-jwt-token"] = '<apiKey>'
request["Content-Type"] = 'application/json'
request.body = "{\n  \"query\": \"query Councils(\\r\\n    $companyExternalId: String!\\r\\n\\t$state: [Int]\\r\\n    $externalId: String\\r\\n\\t$options: OptionsInput\\r\\n\\t$fromDate: String,\\r\\n    $toDate: String\\r\\n) {\\r\\n    councils (\\r\\n            companyExternalId: $companyExternalId\\r\\n            state: $state\\r\\n            externalId: $externalId\\r\\n            options: $options\\r\\n            fromDate: $fromDate,\\r\\n            toDate: $toDate\\r\\n    ){\\r\\n        list {\\r\\n            id\\r\\n            name\\r\\n            observations\\r\\n            state\\r\\n            councilType\\r\\n            creationDate\\r\\n            dateStart\\r\\n            dateRealEnd\\r\\n            dateRealStart\\r\\n            participants {\\r\\n                name\\r\\n                surname\\r\\n            }\\r\\n        }\\r\\n        total\\r\\n    }\\r\\n}\",\n  \"variables\": {\n    \"companyExternalId\": \"abcd\",\n    \"fromDate\": \"2026-05-17T00:00Z\",\n    \"toDate\": \"2026-05-19T00:00Z\",\n    \"state\": [\n      60\n    ],\n    \"externalId\": \"\",\n    \"councilTypes\": [\n      5,\n      6,\n      7\n    ]\n  }\n}"

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

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

HttpResponse<String> response = Unirest.post("https://api.ovac.pre.councilbox.com/graphql/councils-2")
  .header("x-jwt-token", "<apiKey>")
  .header("Content-Type", "application/json")
  .body("{\n  \"query\": \"query Councils(\\r\\n    $companyExternalId: String!\\r\\n\\t$state: [Int]\\r\\n    $externalId: String\\r\\n\\t$options: OptionsInput\\r\\n\\t$fromDate: String,\\r\\n    $toDate: String\\r\\n) {\\r\\n    councils (\\r\\n            companyExternalId: $companyExternalId\\r\\n            state: $state\\r\\n            externalId: $externalId\\r\\n            options: $options\\r\\n            fromDate: $fromDate,\\r\\n            toDate: $toDate\\r\\n    ){\\r\\n        list {\\r\\n            id\\r\\n            name\\r\\n            observations\\r\\n            state\\r\\n            councilType\\r\\n            creationDate\\r\\n            dateStart\\r\\n            dateRealEnd\\r\\n            dateRealStart\\r\\n            participants {\\r\\n                name\\r\\n                surname\\r\\n            }\\r\\n        }\\r\\n        total\\r\\n    }\\r\\n}\",\n  \"variables\": {\n    \"companyExternalId\": \"abcd\",\n    \"fromDate\": \"2026-05-17T00:00Z\",\n    \"toDate\": \"2026-05-19T00:00Z\",\n    \"state\": [\n      60\n    ],\n    \"externalId\": \"\",\n    \"councilTypes\": [\n      5,\n      6,\n      7\n    ]\n  }\n}")
  .asString();
```

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

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://api.ovac.pre.councilbox.com/graphql/councils-2', [
  'body' => '{
  "query": "query Councils(\\r\\n    $companyExternalId: String!\\r\\n\\t$state: [Int]\\r\\n    $externalId: String\\r\\n\\t$options: OptionsInput\\r\\n\\t$fromDate: String,\\r\\n    $toDate: String\\r\\n) {\\r\\n    councils (\\r\\n            companyExternalId: $companyExternalId\\r\\n            state: $state\\r\\n            externalId: $externalId\\r\\n            options: $options\\r\\n            fromDate: $fromDate,\\r\\n            toDate: $toDate\\r\\n    ){\\r\\n        list {\\r\\n            id\\r\\n            name\\r\\n            observations\\r\\n            state\\r\\n            councilType\\r\\n            creationDate\\r\\n            dateStart\\r\\n            dateRealEnd\\r\\n            dateRealStart\\r\\n            participants {\\r\\n                name\\r\\n                surname\\r\\n            }\\r\\n        }\\r\\n        total\\r\\n    }\\r\\n}",
  "variables": {
    "companyExternalId": "abcd",
    "fromDate": "2026-05-17T00:00Z",
    "toDate": "2026-05-19T00:00Z",
    "state": [
      60
    ],
    "externalId": "",
    "councilTypes": [
      5,
      6,
      7
    ]
  }
}',
  'headers' => [
    'Content-Type' => 'application/json',
    'x-jwt-token' => '<apiKey>',
  ],
]);

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

```csharp Councils_External
using RestSharp;

var client = new RestClient("https://api.ovac.pre.councilbox.com/graphql/councils-2");
var request = new RestRequest(Method.POST);
request.AddHeader("x-jwt-token", "<apiKey>");
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\n  \"query\": \"query Councils(\\r\\n    $companyExternalId: String!\\r\\n\\t$state: [Int]\\r\\n    $externalId: String\\r\\n\\t$options: OptionsInput\\r\\n\\t$fromDate: String,\\r\\n    $toDate: String\\r\\n) {\\r\\n    councils (\\r\\n            companyExternalId: $companyExternalId\\r\\n            state: $state\\r\\n            externalId: $externalId\\r\\n            options: $options\\r\\n            fromDate: $fromDate,\\r\\n            toDate: $toDate\\r\\n    ){\\r\\n        list {\\r\\n            id\\r\\n            name\\r\\n            observations\\r\\n            state\\r\\n            councilType\\r\\n            creationDate\\r\\n            dateStart\\r\\n            dateRealEnd\\r\\n            dateRealStart\\r\\n            participants {\\r\\n                name\\r\\n                surname\\r\\n            }\\r\\n        }\\r\\n        total\\r\\n    }\\r\\n}\",\n  \"variables\": {\n    \"companyExternalId\": \"abcd\",\n    \"fromDate\": \"2026-05-17T00:00Z\",\n    \"toDate\": \"2026-05-19T00:00Z\",\n    \"state\": [\n      60\n    ],\n    \"externalId\": \"\",\n    \"councilTypes\": [\n      5,\n      6,\n      7\n    ]\n  }\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift Councils_External
import Foundation

let headers = [
  "x-jwt-token": "<apiKey>",
  "Content-Type": "application/json"
]
let parameters = [
  "query": "query Councils(
    $companyExternalId: String!
	$state: [Int]
    $externalId: String
	$options: OptionsInput
	$fromDate: String,
    $toDate: String
) {
    councils (
            companyExternalId: $companyExternalId
            state: $state
            externalId: $externalId
            options: $options
            fromDate: $fromDate,
            toDate: $toDate
    ){
        list {
            id
            name
            observations
            state
            councilType
            creationDate
            dateStart
            dateRealEnd
            dateRealStart
            participants {
                name
                surname
            }
        }
        total
    }
}",
  "variables": [
    "companyExternalId": "abcd",
    "fromDate": "2026-05-17T00:00Z",
    "toDate": "2026-05-19T00:00Z",
    "state": [60],
    "externalId": "",
    "councilTypes": [5, 6, 7]
  ]
] as [String : Any]

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

let request = NSMutableURLRequest(url: NSURL(string: "https://api.ovac.pre.councilbox.com/graphql/councils-2")! 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()
```