> 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 AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.ovac.councilbox.com/_mcp/server.

# Get available appointment agendas

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

# Get available appointment agendas (`query`)

Esta operación permite obtener el desglose estructurado de todos los pasos (`agendas`) vinculados a una cita o gestión específica. Es el método idóneo para recuperar de forma masiva la configuración interactiva de una sesión junto con el histórico completo de respuestas (`votings`) recopiladas.

### 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 |
| --- | --- | --- | --- |
| councilId | Identificador numérico único de la cita o gestión que se desea consultar. | SI | Int |

### Campos de respuesta (Payload)

La consulta devuelve un árbol jerárquico bajo el campo raíz de datos `council`:

| Parámetro | Descripción | Tipo |
| --- | --- | --- |
| council | Objeto contenedor con las propiedades de la cita localizada. | Object |
| council.**agendas\[\]** | Array o lista que recopila cada uno de los pasos configurados para la cita/gestión. | Array |
| council.agendas\[\].**id** | Identificador interno único del paso. | Integer |
| council.agendas\[\].**name** | Descripción pública del paso dentro de la cita/gestión (ej. "TEST API"). | String |
| council.agendas\[\].**votings\[\]** | Colección de registros con las interacciones y respuestas emitidas por los participantes. | Array |
| council.agendas\[\].votings\[\].**id** | Identificador único del registro de la interacción. | Integer |
| council.agendas\[\].votings\[\].**vote** | Código numérico que representa el sentido o estado de la respuesta.  <br>Para los pasos de tipo consentimiento de aceptación/rechazo:  <br>`-1` -> Sin respuesta  <br>`0` -> Rechazado  <br>`1` -> Aceptado | Integer |

## Ejemplos de código y peticiones

### 1\. Consulta GraphQL

``` graphql
query Council($councilId: Int!){
    council(id: $councilId){
        agendas {
            id
            name
            votings {
                id
                vote
            }
        }
    }
}

 ```

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

``` json
{
    "councilId": 65181
}

 ```

### 3\. Ejemplo de comando cURL

``` bash
curl --location 'https://api.ovac.pre.councilbox.com/graphql' \
--header 'Content-Type: application/json' \
--header 'x-jwt-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJiNmQxOTY3ZS04MDY3LTRiMDUtYjQ0MS0zZmFhYWVlN2M3ZDUiLCJ1c2VyX2lkIjozNDc2LCJ0b2tlbl90eXBlIjoidXNlciIsImlhdCI6MTc4MTA3NjAyMH0.aXYLM7tX0xYjzi4m7gGNUlZ4Dj15cG-iIakmzGwhDTs' \
--data '{"query":"query Council($councilId: Int!){ council(id: $councilId){ agendas { id name votings { id vote } } } }","variables":{"councilId":65167}}'

 ```

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

``` json
{
    "data": {
        "council": {
            "agendas": [
                {
                    "id": 91079,
                    "name": "La dirección proporcionada es Calle Nueva, número 7 en Teo, A Coruña CP 15883",
                    "votings": [
                        {
                            "id": 40291,
                            "vote": -1
                        }
                    ]
                },
                {
                    "id": 91080,
                    "name": "Nueva dirección",
                    "votings": [
                        {
                            "id": 40292,
                            "vote": 0
                        }
                    ]
                },
                {
                    "id": 91081,
                    "name": "",
                    "votings": [
                        {
                            "id": 40293,
                            "vote": 1
                        }
                    ]
                }
            ]
        }
    }
}

 ```

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

## OpenAPI Specification

```yaml
openapi: 3.1.0
info:
  title: ovac
  version: 1.0.0
paths:
  /graphql/council:
    post:
      operationId: council
      summary: Get available appointment agendas
      description: >
        # Get available appointment agendas (`query`)


        Esta operación permite obtener el desglose estructurado de todos los
        pasos (`agendas`) vinculados a una cita o gestión específica. Es el
        método idóneo para recuperar de forma masiva la configuración
        interactiva de una sesión junto con el histórico completo de respuestas
        (`votings`) recopiladas.


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

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

        | councilId | Identificador numérico único de la cita o gestión que se
        desea consultar. | SI | Int |


        ### Campos de respuesta (Payload)


        La consulta devuelve un árbol jerárquico bajo el campo raíz de datos
        `council`:


        | Parámetro | Descripción | Tipo |

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

        | council | Objeto contenedor con las propiedades de la cita localizada.
        | Object |

        | council.**agendas\[\]** | Array o lista que recopila cada uno de los
        pasos configurados para la cita/gestión. | Array |

        | council.agendas\[\].**id** | Identificador interno único del paso. |
        Integer |

        | council.agendas\[\].**name** | Descripción pública del paso dentro de
        la cita/gestión (ej. "TEST API"). | String |

        | council.agendas\[\].**votings\[\]** | Colección de registros con las
        interacciones y respuestas emitidas por los participantes. | Array |

        | council.agendas\[\].votings\[\].**id** | Identificador único del
        registro de la interacción. | Integer |

        | council.agendas\[\].votings\[\].**vote** | Código numérico que
        representa el sentido o estado de la respuesta.  <br>Para los pasos de
        tipo consentimiento de aceptación/rechazo:  <br>`-1` -> Sin respuesta 
        <br>`0` -> Rechazado  <br>`1` -> Aceptado | Integer |


        ## Ejemplos de código y peticiones


        ### 1\. Consulta GraphQL


        ``` graphql

        query Council($councilId: Int!){
            council(id: $councilId){
                agendas {
                    id
                    name
                    votings {
                        id
                        vote
                    }
                }
            }
        }

         ```

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


        ``` json

        {
            "councilId": 65181
        }

         ```

        ### 3\. Ejemplo de comando cURL


        ``` bash

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

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

        --header 'x-jwt-token:
        eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJiNmQxOTY3ZS04MDY3LTRiMDUtYjQ0MS0zZmFhYWVlN2M3ZDUiLCJ1c2VyX2lkIjozNDc2LCJ0b2tlbl90eXBlIjoidXNlciIsImlhdCI6MTc4MTA3NjAyMH0.aXYLM7tX0xYjzi4m7gGNUlZ4Dj15cG-iIakmzGwhDTs'
        \

        --data '{"query":"query Council($councilId: Int!){ council(id:
        $councilId){ agendas { id name votings { id vote } } }
        }","variables":{"councilId":65167}}'

         ```

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


        ``` json

        {
            "data": {
                "council": {
                    "agendas": [
                        {
                            "id": 91079,
                            "name": "La dirección proporcionada es Calle Nueva, número 7 en Teo, A Coruña CP 15883",
                            "votings": [
                                {
                                    "id": 40291,
                                    "vote": -1
                                }
                            ]
                        },
                        {
                            "id": 91080,
                            "name": "Nueva dirección",
                            "votings": [
                                {
                                    "id": 40292,
                                    "vote": 0
                                }
                            ]
                        },
                        {
                            "id": 91081,
                            "name": "",
                            "votings": [
                                {
                                    "id": 40293,
                                    "vote": 1
                                }
                            ]
                        }
                    ]
                }
            }
        }

         ```

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

```

## Examples



**Request**

```json
{
  "query": "query Council($councilId: Int!){\r\n    council(id: $councilId){\r\n        agendas {\r\n            id\r\n            name\r\n            votings {\r\n                id\r\n                vote\r\n            }\r\n        }\r\n    }\r\n}",
  "variables": {
    "councilId": 65167
  }
}
```

**Response**

```json
{
  "data": {
    "council": {
      "agendas": [
        {
          "id": 91051,
          "name": "TEST API",
          "votings": [
            {
              "id": 40290,
              "vote": -1
            }
          ]
        }
      ]
    }
  }
}
```

**SDK Code**

```python Get available appointment agendas
import requests

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

payload = {
    "query": "query Council($councilId: Int!){
    council(id: $councilId){
        agendas {
            id
            name
            votings {
                id
                vote
            }
        }
    }
}",
    "variables": { "councilId": 65167 }
}
headers = {
    "x-jwt-token": "<apiKey>",
    "Content-Type": "application/json"
}

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

print(response.json())
```

```javascript Get available appointment agendas
const url = 'https://api.ovac.pre.councilbox.com/graphql/council';
const options = {
  method: 'POST',
  headers: {'x-jwt-token': '<apiKey>', 'Content-Type': 'application/json'},
  body: '{"query":"query Council($councilId: Int!){\r\n    council(id: $councilId){\r\n        agendas {\r\n            id\r\n            name\r\n            votings {\r\n                id\r\n                vote\r\n            }\r\n        }\r\n    }\r\n}","variables":{"councilId":65167}}'
};

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

```go Get available appointment agendas
package main

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

func main() {

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

	payload := strings.NewReader("{\n  \"query\": \"query Council($councilId: Int!){\\r\\n    council(id: $councilId){\\r\\n        agendas {\\r\\n            id\\r\\n            name\\r\\n            votings {\\r\\n                id\\r\\n                vote\\r\\n            }\\r\\n        }\\r\\n    }\\r\\n}\",\n  \"variables\": {\n    \"councilId\": 65167\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 Get available appointment agendas
require 'uri'
require 'net/http'

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

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 Council($councilId: Int!){\\r\\n    council(id: $councilId){\\r\\n        agendas {\\r\\n            id\\r\\n            name\\r\\n            votings {\\r\\n                id\\r\\n                vote\\r\\n            }\\r\\n        }\\r\\n    }\\r\\n}\",\n  \"variables\": {\n    \"councilId\": 65167\n  }\n}"

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

```java Get available appointment agendas
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://api.ovac.pre.councilbox.com/graphql/council")
  .header("x-jwt-token", "<apiKey>")
  .header("Content-Type", "application/json")
  .body("{\n  \"query\": \"query Council($councilId: Int!){\\r\\n    council(id: $councilId){\\r\\n        agendas {\\r\\n            id\\r\\n            name\\r\\n            votings {\\r\\n                id\\r\\n                vote\\r\\n            }\\r\\n        }\\r\\n    }\\r\\n}\",\n  \"variables\": {\n    \"councilId\": 65167\n  }\n}")
  .asString();
```

```php Get available appointment agendas
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://api.ovac.pre.councilbox.com/graphql/council', [
  'body' => '{
  "query": "query Council($councilId: Int!){\\r\\n    council(id: $councilId){\\r\\n        agendas {\\r\\n            id\\r\\n            name\\r\\n            votings {\\r\\n                id\\r\\n                vote\\r\\n            }\\r\\n        }\\r\\n    }\\r\\n}",
  "variables": {
    "councilId": 65167
  }
}',
  'headers' => [
    'Content-Type' => 'application/json',
    'x-jwt-token' => '<apiKey>',
  ],
]);

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

```csharp Get available appointment agendas
using RestSharp;

var client = new RestClient("https://api.ovac.pre.councilbox.com/graphql/council");
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 Council($councilId: Int!){\\r\\n    council(id: $councilId){\\r\\n        agendas {\\r\\n            id\\r\\n            name\\r\\n            votings {\\r\\n                id\\r\\n                vote\\r\\n            }\\r\\n        }\\r\\n    }\\r\\n}\",\n  \"variables\": {\n    \"councilId\": 65167\n  }\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift Get available appointment agendas
import Foundation

let headers = [
  "x-jwt-token": "<apiKey>",
  "Content-Type": "application/json"
]
let parameters = [
  "query": "query Council($councilId: Int!){
    council(id: $councilId){
        agendas {
            id
            name
            votings {
                id
                vote
            }
        }
    }
}",
  "variables": ["councilId": 65167]
] as [String : Any]

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

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