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

# Council Documentation

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

# Council Documentation (`query`)

Esta operación permite consultar de forma consolidada todos los elementos documentales, carpetas de intercambio general, puntos del orden del día (`agendas`) y archivos adjuntos cargados o generados durante el transcurso de una cita específica utilizando su identificador único.

### 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 de la cita | SI | Integer |

### Campos de Respuesta (Payload)

La respuesta devuelve un objeto raíz `council` que segrega los recursos digitales en dos grandes categorías (documentos de intercambio libre y documentos estructurados por pasos):

|  | Descripción | Tipo |
| --- | --- | --- |
| council | Objeto raíz que contiene toda la información y adjuntos de la cita solicitada | Objeto |
| council.documents | Listado de documentos asociados a la cita | Array |
| council.documents\[\].id | Identificador único del documento global en el sistema. | Int |
| council.documents\[\].title | Título, descripción o categoría de la documentación intercambiada. | String |
| council.documents\[\].attachments | Archivos adjuntos asociados directamente al bloque de documentos globales. | Array |
| council.agendas | Listado de puntos del orden del día, fases del trámite o acciones realizadas en la sesión. | Array |
| council.agendas\[\].id | Identificador único del punto del orden del día. | Int |
| council.agendas\[\].name | Nombre o etiqueta descriptiva de la acción (ej. "Firma de documentación", "Formulario"). | String |
| council.agendas\[\].attachments | Colección de archivos físicos generados, firmados o subidos en este punto específico. | Array |
| council.agendas\[\].attachments.user | Objeto con los datos de identidad del profesional u operador que gestionó el archivo. | Object |
| council.agendas\[\].attachments.user.id | Identificador único del usuario profesional en la plataforma. | Int |
| council.agendas\[\].attachments.user.name | Nombre del usuario profesional. | String |
| council.agendas\[\].attachments.user.surname | Apellidos del usuario profesional. | String |
| council.agendas\[\].attachments.filename | Nombre original del archivo adjunto junto con su extensión (ej. "Test.pdf") | String |
| council.agendas\[\].attachments.downloadUrl | Enlace URL para proceder a la descarga directa del archivo. | String |
| council.agendas\[\].attachments.filesize | Tamaño total del archivo en disco expresado en bytes. | String |

#### 1\. Documentación Intercambiada (`documents`)

Colección de carpetas y archivos compartidos de forma global en la cita (fuera de los flujos de la agenda).

- **`id`** (`Int`): Identificador único del contenedor de documentos.
    
- **`title`** (`String`): Descripción o etiqueta de la categoría (ej. "Documentación intercambiada").
    
- **`attachments`** (`Array`): Archivos binarios individuales cargados. Cada archivo contiene:
    
    - `filename` (`String`): Nombre original y extensión del archivo.
        
    - `downloadUrl` (`String`): Enlace URL seguro para descargar el archivo.
        
    - `filesize` (`String`): Tamaño total del archivo en bytes.
        
    - `user` (`Object`): Datos del usuario profesional/agente si este subió el archivo (`id`, `name`, `surname`, `email`). Devolverá `null` si lo subió un ciudadano.
        
    - `participant` (`Object`): Datos del ciudadano/asistente si fue quien aportó el documento (`id`, `name`, `surname`, `email`). Devolverá `null` si lo subió un agente.
        

#### 2\. Adjuntos por Puntos de la Agenda (`agendas`)

Historial de archivos físicos generados, firmados o requeridos de manera específica en cada fase del trámite.

- **`id`** (`Int`): Identificador único del punto del orden del día.
    
- **`name`** (`String`): Nombre o etiqueta de la acción o fase (ej. "Firma de documentación", "Escaneo de documentación").
    
- **`attachments`** (`Array`): Colección de archivos adjuntos asociados a este paso concreto. Contiene:
    
    - `filename` (`String`): Nombre del archivo (ej. `"Test.pdf"`).
        
    - `downloadUrl` (`String`): Enlace URL de acceso para la descarga directa del binario.
        
    - `filesize` (`String`): Tamaño del archivo en bytes.
        
    - `user` (`Object`): Identidad del operador profesional que gestionó, cargó o activó este archivo en la sesión (`id`, `name`, `surname`).
        

## Ejemplos de Código y Peticiones

### 1\. Consulta GraphQL

``` graphql
query CouncilDocumentation($councilId: Int!) {
    council(id: $councilId) {
        documents {
            id
            title
            attachments {
                user {
                    name
                    surname
                    id
                    email
                }
                participant {
                    name
                    surname
                    email
                    id
                }
                filename
                downloadUrl
                filesize
            }
        }
        agendas {
            id
            name
            attachments {
                user {
                    id
                    name
                    surname
                }
                filename
                downloadUrl
                filesize
            }
        }
    }
}

 ```

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

``` json
{
    "councilId": 64817
}

 ```

### 3\. Ejemplo de comando cURL

``` bash
curl --location "https://api.ovac.pre.councilbox.com/graphql" \
--header "Content-Type: application/json" \
--header "x-jwt-token: {{token}}" \
--data '{"query":"query CouncilDocumentation($councilId: Int!){ council(id: $councilId){ documents { id title attachments { user { name surname id email } participant { name surname email id } filename downloadUrl filesize } } agendas { id name attachments { user { id name surname } filename downloadUrl filesize } } } }","variables":{"councilId":64817}}'

 ```

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

``` json
{
    "data": {
        "council": {
            "documents": [
                {
                    "id": 62718,
                    "title": "Documentación intercambiada",
                    "attachments": []
                }
            ],
            "agendas": [
                {
                    "id": 89216,
                    "name": "Escaneo de documentación",
                    "attachments": []
                },
                {
                    "id": 89215,
                    "name": "PDF Interactivo",
                    "attachments": []
                },
                {
                    "id": 89218,
                    "name": "Firma de documentación",
                    "attachments": [
                        {
                            "user": {
                                "id": 3477,
                                "name": "API",
                                "surname": "PROFESIONAL"
                            },
                            "filename": "Test.pdf",
                            "downloadUrl": "https://api.ovac.pre.councilbox.com/agendaAttachment/42620",
                            "filesize": "29909"
                        }
                    ]
                },
                {
                    "id": 89214,
                    "name": "Formulario",
                    "attachments": []
                }
            ]
        }
    }
}

 ```

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

## OpenAPI Specification

```yaml
openapi: 3.1.0
info:
  title: ovac
  version: 1.0.0
paths:
  /graphql/councildocumentation:
    post:
      operationId: council-documentation
      summary: Council Documentation
      description: >
        # Council Documentation (`query`)


        Esta operación permite consultar de forma consolidada todos los
        elementos documentales, carpetas de intercambio general, puntos del
        orden del día (`agendas`) y archivos adjuntos cargados o generados
        durante el transcurso de una cita específica utilizando su identificador
        único.


        ### 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 de la cita | SI | Integer |


        ### Campos de Respuesta (Payload)


        La respuesta devuelve un objeto raíz `council` que segrega los recursos
        digitales en dos grandes categorías (documentos de intercambio libre y
        documentos estructurados por pasos):


        |  | Descripción | Tipo |

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

        | council | Objeto raíz que contiene toda la información y adjuntos de
        la cita solicitada | Objeto |

        | council.documents | Listado de documentos asociados a la cita | Array
        |

        | council.documents\[\].id | Identificador único del documento global en
        el sistema. | Int |

        | council.documents\[\].title | Título, descripción o categoría de la
        documentación intercambiada. | String |

        | council.documents\[\].attachments | Archivos adjuntos asociados
        directamente al bloque de documentos globales. | Array |

        | council.agendas | Listado de puntos del orden del día, fases del
        trámite o acciones realizadas en la sesión. | Array |

        | council.agendas\[\].id | Identificador único del punto del orden del
        día. | Int |

        | council.agendas\[\].name | Nombre o etiqueta descriptiva de la acción
        (ej. "Firma de documentación", "Formulario"). | String |

        | council.agendas\[\].attachments | Colección de archivos físicos
        generados, firmados o subidos en este punto específico. | Array |

        | council.agendas\[\].attachments.user | Objeto con los datos de
        identidad del profesional u operador que gestionó el archivo. | Object |

        | council.agendas\[\].attachments.user.id | Identificador único del
        usuario profesional en la plataforma. | Int |

        | council.agendas\[\].attachments.user.name | Nombre del usuario
        profesional. | String |

        | council.agendas\[\].attachments.user.surname | Apellidos del usuario
        profesional. | String |

        | council.agendas\[\].attachments.filename | Nombre original del archivo
        adjunto junto con su extensión (ej. "Test.pdf") | String |

        | council.agendas\[\].attachments.downloadUrl | Enlace URL para proceder
        a la descarga directa del archivo. | String |

        | council.agendas\[\].attachments.filesize | Tamaño total del archivo en
        disco expresado en bytes. | String |


        #### 1\. Documentación Intercambiada (`documents`)


        Colección de carpetas y archivos compartidos de forma global en la cita
        (fuera de los flujos de la agenda).


        - **`id`** (`Int`): Identificador único del contenedor de documentos.
            
        - **`title`** (`String`): Descripción o etiqueta de la categoría (ej.
        "Documentación intercambiada").
            
        - **`attachments`** (`Array`): Archivos binarios individuales cargados.
        Cada archivo contiene:
            
            - `filename` (`String`): Nombre original y extensión del archivo.
                
            - `downloadUrl` (`String`): Enlace URL seguro para descargar el archivo.
                
            - `filesize` (`String`): Tamaño total del archivo en bytes.
                
            - `user` (`Object`): Datos del usuario profesional/agente si este subió el archivo (`id`, `name`, `surname`, `email`). Devolverá `null` si lo subió un ciudadano.
                
            - `participant` (`Object`): Datos del ciudadano/asistente si fue quien aportó el documento (`id`, `name`, `surname`, `email`). Devolverá `null` si lo subió un agente.
                

        #### 2\. Adjuntos por Puntos de la Agenda (`agendas`)


        Historial de archivos físicos generados, firmados o requeridos de manera
        específica en cada fase del trámite.


        - **`id`** (`Int`): Identificador único del punto del orden del día.
            
        - **`name`** (`String`): Nombre o etiqueta de la acción o fase (ej.
        "Firma de documentación", "Escaneo de documentación").
            
        - **`attachments`** (`Array`): Colección de archivos adjuntos asociados
        a este paso concreto. Contiene:
            
            - `filename` (`String`): Nombre del archivo (ej. `"Test.pdf"`).
                
            - `downloadUrl` (`String`): Enlace URL de acceso para la descarga directa del binario.
                
            - `filesize` (`String`): Tamaño del archivo en bytes.
                
            - `user` (`Object`): Identidad del operador profesional que gestionó, cargó o activó este archivo en la sesión (`id`, `name`, `surname`).
                

        ## Ejemplos de Código y Peticiones


        ### 1\. Consulta GraphQL


        ``` graphql

        query CouncilDocumentation($councilId: Int!) {
            council(id: $councilId) {
                documents {
                    id
                    title
                    attachments {
                        user {
                            name
                            surname
                            id
                            email
                        }
                        participant {
                            name
                            surname
                            email
                            id
                        }
                        filename
                        downloadUrl
                        filesize
                    }
                }
                agendas {
                    id
                    name
                    attachments {
                        user {
                            id
                            name
                            surname
                        }
                        filename
                        downloadUrl
                        filesize
                    }
                }
            }
        }

         ```

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


        ``` json

        {
            "councilId": 64817
        }

         ```

        ### 3\. Ejemplo de comando cURL


        ``` bash

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

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

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

        --data '{"query":"query CouncilDocumentation($councilId: Int!){
        council(id: $councilId){ documents { id title attachments { user { name
        surname id email } participant { name surname email id } filename
        downloadUrl filesize } } agendas { id name attachments { user { id name
        surname } filename downloadUrl filesize } } }
        }","variables":{"councilId":64817}}'

         ```

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


        ``` json

        {
            "data": {
                "council": {
                    "documents": [
                        {
                            "id": 62718,
                            "title": "Documentación intercambiada",
                            "attachments": []
                        }
                    ],
                    "agendas": [
                        {
                            "id": 89216,
                            "name": "Escaneo de documentación",
                            "attachments": []
                        },
                        {
                            "id": 89215,
                            "name": "PDF Interactivo",
                            "attachments": []
                        },
                        {
                            "id": 89218,
                            "name": "Firma de documentación",
                            "attachments": [
                                {
                                    "user": {
                                        "id": 3477,
                                        "name": "API",
                                        "surname": "PROFESIONAL"
                                    },
                                    "filename": "Test.pdf",
                                    "downloadUrl": "https://api.ovac.pre.councilbox.com/agendaAttachment/42620",
                                    "filesize": "29909"
                                }
                            ]
                        },
                        {
                            "id": 89214,
                            "name": "Formulario",
                            "attachments": []
                        }
                    ]
                }
            }
        }

         ```

        > **Nota OpenAPI/Fern:** esta operación GraphQL se documenta como
        `/graphql/councildocumentation` 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_councilDocumentation_Response_200'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                query:
                  type: string
                  description: GraphQL operation
                variables:
                  $ref: >-
                    #/components/schemas/GraphqlCouncildocumentationPostRequestBodyContentApplicationJsonSchemaVariables
                  description: GraphQL variables
              required:
                - query
servers:
  - url: https://api.ovac.pre.councilbox.com
  - url: https://api.ovac.councilbox.com
components:
  schemas:
    GraphqlCouncildocumentationPostRequestBodyContentApplicationJsonSchemaVariables:
      type: object
      properties: {}
      description: GraphQL variables
      title: >-
        GraphqlCouncildocumentationPostRequestBodyContentApplicationJsonSchemaVariables
    OVAC_councilDocumentation_Response_200:
      type: object
      properties: {}
      title: OVAC_councilDocumentation_Response_200
  securitySchemes:
    JwtToken:
      type: apiKey
      in: header
      name: x-jwt-token
      description: JWT token obtained from Login.

```

## SDK Code Examples

```python Council Documentation
import requests

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

payload = {
    "query": "query CouncilDocumentation($councilId: Int!){
    council(id: $councilId){
        documents {
            id
            title
            attachments {
                user {
                    name
                    surname
                    id
                    email
                }
                participant {
                    name
                    surname
                    email
                    id
                }
                filename
                downloadUrl
                filesize
            }
        }
        agendas {
            id
            name
            attachments {
                user {
                    id
                    name
                    surname
                }
                filename
                downloadUrl
                filesize
            }
        }
    }
}",
    "variables": { "councilId": 12345 }
}
headers = {
    "x-jwt-token": "<apiKey>",
    "Content-Type": "application/json"
}

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

print(response.json())
```

```javascript Council Documentation
const url = 'https://api.ovac.pre.councilbox.com/graphql/councildocumentation';
const options = {
  method: 'POST',
  headers: {'x-jwt-token': '<apiKey>', 'Content-Type': 'application/json'},
  body: '{"query":"query CouncilDocumentation($councilId: Int!){\n    council(id: $councilId){\n        documents {\n            id\n            title\n            attachments {\n                user {\n                    name\n                    surname\n                    id\n                    email\n                }\n                participant {\n                    name\n                    surname\n                    email\n                    id\n                }\n                filename\n                downloadUrl\n                filesize\n            }\n        }\n        agendas {\n            id\n            name\n            attachments {\n                user {\n                    id\n                    name\n                    surname\n                }\n                filename\n                downloadUrl\n                filesize\n            }\n        }\n    }\n}","variables":{"councilId":12345}}'
};

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

```go Council Documentation
package main

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

func main() {

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

	payload := strings.NewReader("{\n  \"query\": \"query CouncilDocumentation($councilId: Int!){\\n    council(id: $councilId){\\n        documents {\\n            id\\n            title\\n            attachments {\\n                user {\\n                    name\\n                    surname\\n                    id\\n                    email\\n                }\\n                participant {\\n                    name\\n                    surname\\n                    email\\n                    id\\n                }\\n                filename\\n                downloadUrl\\n                filesize\\n            }\\n        }\\n        agendas {\\n            id\\n            name\\n            attachments {\\n                user {\\n                    id\\n                    name\\n                    surname\\n                }\\n                filename\\n                downloadUrl\\n                filesize\\n            }\\n        }\\n    }\\n}\",\n  \"variables\": {\n    \"councilId\": 12345\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 Council Documentation
require 'uri'
require 'net/http'

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

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 CouncilDocumentation($councilId: Int!){\\n    council(id: $councilId){\\n        documents {\\n            id\\n            title\\n            attachments {\\n                user {\\n                    name\\n                    surname\\n                    id\\n                    email\\n                }\\n                participant {\\n                    name\\n                    surname\\n                    email\\n                    id\\n                }\\n                filename\\n                downloadUrl\\n                filesize\\n            }\\n        }\\n        agendas {\\n            id\\n            name\\n            attachments {\\n                user {\\n                    id\\n                    name\\n                    surname\\n                }\\n                filename\\n                downloadUrl\\n                filesize\\n            }\\n        }\\n    }\\n}\",\n  \"variables\": {\n    \"councilId\": 12345\n  }\n}"

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

```java Council Documentation
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://api.ovac.pre.councilbox.com/graphql/councildocumentation")
  .header("x-jwt-token", "<apiKey>")
  .header("Content-Type", "application/json")
  .body("{\n  \"query\": \"query CouncilDocumentation($councilId: Int!){\\n    council(id: $councilId){\\n        documents {\\n            id\\n            title\\n            attachments {\\n                user {\\n                    name\\n                    surname\\n                    id\\n                    email\\n                }\\n                participant {\\n                    name\\n                    surname\\n                    email\\n                    id\\n                }\\n                filename\\n                downloadUrl\\n                filesize\\n            }\\n        }\\n        agendas {\\n            id\\n            name\\n            attachments {\\n                user {\\n                    id\\n                    name\\n                    surname\\n                }\\n                filename\\n                downloadUrl\\n                filesize\\n            }\\n        }\\n    }\\n}\",\n  \"variables\": {\n    \"councilId\": 12345\n  }\n}")
  .asString();
```

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

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://api.ovac.pre.councilbox.com/graphql/councildocumentation', [
  'body' => '{
  "query": "query CouncilDocumentation($councilId: Int!){\\n    council(id: $councilId){\\n        documents {\\n            id\\n            title\\n            attachments {\\n                user {\\n                    name\\n                    surname\\n                    id\\n                    email\\n                }\\n                participant {\\n                    name\\n                    surname\\n                    email\\n                    id\\n                }\\n                filename\\n                downloadUrl\\n                filesize\\n            }\\n        }\\n        agendas {\\n            id\\n            name\\n            attachments {\\n                user {\\n                    id\\n                    name\\n                    surname\\n                }\\n                filename\\n                downloadUrl\\n                filesize\\n            }\\n        }\\n    }\\n}",
  "variables": {
    "councilId": 12345
  }
}',
  'headers' => [
    'Content-Type' => 'application/json',
    'x-jwt-token' => '<apiKey>',
  ],
]);

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

```csharp Council Documentation
using RestSharp;

var client = new RestClient("https://api.ovac.pre.councilbox.com/graphql/councildocumentation");
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 CouncilDocumentation($councilId: Int!){\\n    council(id: $councilId){\\n        documents {\\n            id\\n            title\\n            attachments {\\n                user {\\n                    name\\n                    surname\\n                    id\\n                    email\\n                }\\n                participant {\\n                    name\\n                    surname\\n                    email\\n                    id\\n                }\\n                filename\\n                downloadUrl\\n                filesize\\n            }\\n        }\\n        agendas {\\n            id\\n            name\\n            attachments {\\n                user {\\n                    id\\n                    name\\n                    surname\\n                }\\n                filename\\n                downloadUrl\\n                filesize\\n            }\\n        }\\n    }\\n}\",\n  \"variables\": {\n    \"councilId\": 12345\n  }\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift Council Documentation
import Foundation

let headers = [
  "x-jwt-token": "<apiKey>",
  "Content-Type": "application/json"
]
let parameters = [
  "query": "query CouncilDocumentation($councilId: Int!){
    council(id: $councilId){
        documents {
            id
            title
            attachments {
                user {
                    name
                    surname
                    id
                    email
                }
                participant {
                    name
                    surname
                    email
                    id
                }
                filename
                downloadUrl
                filesize
            }
        }
        agendas {
            id
            name
            attachments {
                user {
                    id
                    name
                    surname
                }
                filename
                downloadUrl
                filesize
            }
        }
    }
}",
  "variables": ["councilId": 12345]
] as [String : Any]

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

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