{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"c49f0dd0-5034-486f-94ed-4015ba622009","name":"Api Catalog | Visma Latam","description":"### **Introducción**\n\nVISMA Latinoamérica para su línea de productos de administración de personal: Visma People & Payroll, ofrece un conjunto de integraciones que llamamos “WEB API” que se disponibiliza sin costo para todos nuestros clientes y que el objetivo principal es facilitar el acceso en tiempo real, de forma sincrónica, a su información en nuestra nube.\n\nSu propósito principal es brindar una interfaz amigable y segura para ser utilizada por cualquier programador experimentado y con la cual sea fácil integrar nuestra solución cloud a sus sistemas legados existentes, utilizando una arquitectura muy probada y ampliamente difundida hoy en día como ser [API REST](https://es.wikipedia.org/wiki/Transferencia_de_Estado_Representacional).\n\nPara ello la WEB API ofrece un conjunto de servicios típicos, por ejemplo: Crear un nuevo empleado, Obtener datos de un empleado, Obtener direcciones, Obtener familiares, etc.\n\n#### Documentación Técnica\n\nToda la documentación técnica que un desarrollador necesita para poder consumir los servicios está publicada en las URLs listadas arriba.  \nEsta documentación es auto-generada cada vez que se despliega una nueva versión de la documentación en POSTMAN, por lo que se garantiza que la información allí provista siempre estará al día y consistente.  \nEsto es una herramienta que permite documentar y probar las APIs. Es así como no sólo se puede explorar la lista de servicios y su correspondiente información (cabecera de los mensajes, parámetros, estructura de las respuestas, etc.) sino que también se pueden probar los servicios a través del navegador mismo, sin necesidad de escribir código de programación.\n\n<img src=\"https://content.pstmn.io/6d7d2708-e19c-4672-98fb-c43b32f6cf03/aW1hZ2UucG5n\" width=\"493\" height=\"347\">\n\n#### Nota\n\nTodas las llamadas a las apis debe incluir un encabezado (Header) obligatorio, el cual en esta collección se encuentra agregado por codigo.\n\n| **Parámetro** | **Valor** |\n| --- | --- |\n| Ocp-Apim-Subscription-Key | 9c1427b7ee214ab8b824ff7f6f5f6072 |\n\n#### **Login**\n\nEl primer paso a entender es que la WEB API (así como casi cualquier otra aplicación de negocios) requiere que el usuario que desee usarla realice un Login, previo al posterior consumo de los servicios. Esto se debe a que al proveer las credenciales (usuario y clave) la WEB API determina los roles y permisos del usuario y así permitirá o denegará las peticiones a ciertos servicios, en función de si el usuario tiene suficientes permisos.\n\nPor lo tanto, el primer servicio a consumir es el del Login. No obstante, una vez hecho esto satisfactoriamente, la WEB API devuelve un Token (in [Base64](https://en.wikipedia.org/wiki/Base64) format), el cual sirve de “vale” para el acceso al resto de los demás servicios.\n\n#### Autenticación con Token\n\nEste tipo de autenticación es un [esquema de autenticación HTTP](https://developer.mozilla.org/en-US/docs/Web/HTTP/Authentication) que cuenta con tokens de seguridad llamados “bearer” (portador), ya que para identificarse/autenticarse frente al sistema hay que ser portador de un token. El token es una cadena de caracteres encriptada, que una vez recibida tras realizar un Login exitoso, el cliente debe enviarla siempre en todas las peticiones que haga a la WEB API, en función de poder validar y conceder su permiso para dichas acciones.\n\n#### Autorización\n\nUna vez autenticado, ya se tiene un Token de acceso y por lo tal se pueden consumir el resto de los servicios, pero esto no significa necesariamente que se tenga permisos para todos. Cada servicio tiene sus propias restricciones de seguridad, establecida según “roles”, de modo tal que si el usuario con el que se realizó el Login no tiene los roles que un servicio requiere, la petición fallará, acusando una denegación en la respuesta justamente debido a esto.\n\n#### Relación entre Usuario, Token y Tenants\n\nPara entender mejor la relación entre Usuario, Token y Tenants creemos conveniente reforzar los siguientes conceptos:\n\n- Las credenciales (usuario & clave) son las que se utilizarán únicamente para generar un token de acceso.\n    \n- Este token será un parámetro requerido en todos los demás servicios de la WEB API, ya que mediante el token la WEB API realiza la autenticación y autorización a los distintos servicios.\n    \n- El tenant es la instancia de la aplicación asignada al cliente a la cual se conectará cada vez que se consuma un servicio, indicando así con qué fuente de datos trabajar.\n    \n\n#### Autenticación\n\nIlustrado en el siguiente diagrama de flujo, se describe la secuencia de pasos a seguir para autenticarse frente al sistema:\n\n<img src=\"https://lh7-qw.googleusercontent.com/docsz/AD_4nXcs_OyyW7g36O8BI_v0wQHS1dS1X1MCrkDWoHn0cjjLySfm6HXeQjC3MLyNmG_34VkhJaFMrMhaNkFgDadfBgA_Fil5oORt9SYQRzHGb_n61bo9HB5cYP0nhp6x0l15wnepGcFZj6486AUyHs1Nm0jnwMI?key=QyBRla3yulof9K4u1g78YQ\">\n\n##### 1 - Primer paso - Servicio \"/authentication/login\"\n\nRealizar una petición al servicio \"/authentication/login\" para loguearse, enviando las credenciales (usuario y password). Si la respuesta es exitosa, se obtiene el Token de acceso.\n\n**Importante:** no es necesario consumir este servicio previamente cada vez que se vaya a consumir un servicio de la WEB API, basta con hacerlo sólo una vez. Eventualmente, sí se deberá volver a realizar nuevamente el Login, y así obtener un nuevo Token, debido a alguna de las siguientes dos circunstancias:  \n\\- Se consumió el servicio \"/authentication/logout\"  \n\\- O bien se expiró el tiempo de validez del Token.\n\nComo toda sesión de usuario, tiene un período que caduca tras determinado tiempo, y cuando esto sucede, el Token también caduca y deja de ser válido.\n\n<img src=\"https://lh7-qw.googleusercontent.com/docsz/AD_4nXe-4TcqWPLJZJ9Nq56fKeIlSHkrpDT4ZZO344a9XQAg2ZRbXOSFW9rjlR3yip1N4Q1mm888bZgayLPeL8Vx2S7Je_1chEk9tLqzmNN4QSccrG-9vdsawntwcmeY8vmQcayaF1O_CS0ixgLQLDWU2vEGGlM?key=QyBRla3yulof9K4u1g78YQ\">\n\nNota: el parámetro “grant_type” es un valor fijo: “password”.  \nLa respuesta será similar a la siguiente\n\n<img src=\"https://lh7-qw.googleusercontent.com/docsz/AD_4nXch5jdouQeI0zDzPiCxJLvSW5YUXgkA_CvncvqArGGuug1AslJjFXEVsBEzcdk3LftbbSV8Ghxel6Arp5MHau92xbTKIUmEq-EOtqThUqMpIWvgwjvHygqY_eN9eqErX12y4o1Uh9-wcuG81x5CfcSbzHE?key=QyBRla3yulof9K4u1g78YQ\">\n\nAllí principalmente interesan los valores de:\n\n• “expires_in”, que representa el tiempo (expresado en segundos) que el Token será válido hasta ser considerado como caducado. En este ejemplo, el valor 43.199 (segs) significa que el Token se podrá utilizar durante 12 horas, y habiendo transcurrido ese lapso de tiempo, el mismo quedará inutilizado.\n\n• “access_token”, que es lo que se deberá enviar como parámetro al consumir otros endpoints.\n\n##### 2 - Segundo paso - Servicio \"/account/tenants\"\n\nRealizar una petición al servicio \"/accounts/tenants\" para obtener información de a qué bases de datos (“tenants”) se tiene concedido el permiso para poder trabajar con ellas. A este servicio - y cualquier otro - se debe presentar el Token.  \nAclaración: el Identificador del Tenant o Base de Datos nunca cambiará, por lo que en realidad basta con consultar este servicio una única vez para obtener este dato.  \nUtilizar en la pestaña “Authorization” el token obtenido, seleccionando el type “Bearer”:\n\n<img src=\"https://lh7-qw.googleusercontent.com/docsz/AD_4nXdCBN3xBWvnz1eelQIgBARuHyyMDJ6SikHIZChuAclpU7MZXt-uH-njnJUQ7Fb9YvykP-V1RGWlSzxR1JR6SwM8FDHDN5BAw1L__MxLJ0MmRmkOYXM2LtWZucKB9UKVEq0bi7XbcPIsit1DRAqo7FYEc0k?key=QyBRla3yulof9K4u1g78YQ\">\n\nLa respuesta será similar a la siguiente:  \n• “Id”, que es el identificador de la Base de Datos.  \n• “TenantName”, que es el nombre de la Base de Datos.  \n• “WebApiEnabled”, que indica si la Base de Datos está habilitada para consumir vía Web API.\n\n##### 3 - Tercer paso - Otros Servicios\n\nUna vez que ya se cuenta con un Token y un Tenant, se puede comenzar a consumir todo el resto de los servicios disponibles, en donde siempre – sin excepción – se deberá informar el ID del Tenant en el parámetro “X-RAET-Tenant-Id” y el Token en el parámetro “Authorization”.\n\nEjemplo, Servicio employee:\n\n<img src=\"https://lh7-qw.googleusercontent.com/docsz/AD_4nXcbLpnyTgIKsO7j-jhha0URex_EyykKufW2RC1hw-mwqIgNMNqjAvG_JAKR6WV4HhDLGVQ914EdLaj_ASKFZYXFyRWcEa1yKzCJ2FNxjuGRqv6LsVqTjO3rVAwwIyFCF97TZFNb-uBW4Ua8hkPvcFXDsVYV?key=QyBRla3yulof9K4u1g78YQ\">\n\n#### Códigos de Respuesta\n\n- 2xx Success\n    \n- 4xx Client Error\n    \n- 5xx Client Error\n    \n\nCabe mencionar que la lista completa de código de estado/respuesta HTTP es más extensa, pero aquí sólo nos acotamos a los que la WEB API considera. Para mayor información, ver [Lista completa de códigos de estado HTTP](https://es.wikipedia.org/wiki/Anexo:C%C3%B3digos_de_estado_HTTP)\n\n##### 2xx Success\n\nLos códigos que comienzan con un 2 reflejan que el servidor ha podido resolver exitosamente la petición del cliente.\n\n| **Código** | **Nombre** | **Significado** |\n| --- | --- | --- |\n| 200 | OK | La petición ha sido resuelta exitosamente en el servidor. |\n| 204 | No Content | La petición ha sido resuelta exitosamente en el servidor, y no hay contenido a enviar en la misma hacia el cliente. |\n\n##### 4xx Client Error\n\nLos códigos que comienzan con 4 reflejan que el servidor identificó que hay algo “incorrecto” en la solicitud del cliente, y por eso la rechaza/niega. Esto puede ser o un error concreto en cómo se formuló la petición (400) o bien aún ésta estando bien, se intenta acceder a un servicio inexistente (404), a un servicio al cual no tenemos acceso (403), o bien directamente la solicitud no está autenticada (401).\n\n| Código | Nombre | Significado |\n| --- | --- | --- |\n| 400 | Bad Request | La petición presenta problemas o bien en su conformación, y no es exactamente lo que está esperando el servidor. Esto se puede deber a algún parámetro faltante, o bien valores incorrectos (por ejemplo, una fecha no válida). |\n| 401 | Unauthorized | La petición ha sido denegada porque no se han presentado credenciales o token de acceso válidos (el usuario no está autenticado). |\n| 403 | Forbidden | La petición ha sido denegada debido a que el usuario con el que se está autenticado no posee permisos para acceder al servicio en cuestión. |\n| 404 | Not Found | La petición no ha encontrado ningún servicio/recurso en la dirección URL provista. |\n| 429 | Quota exceeded | Se ha superado el limite de servicios definido en la cuota de servicios. |\n\n5xx Server Error\n\nLos códigos que comienzan con 5 reflejan que el servidor ha encontrado un problema y ocurrió un error. En este caso, el cliente está haciendo lo debido y es el código del servidor el que presenta fallas.\n\n| Código | Nombre | Significado |\n| --- | --- | --- |\n| 500 | Internal Server Error | La petición no ha sido resuelta exitosamente debido a un error de procesamiento en el servidor. |\n\n#### IDs (Internos & Externos)\n\nUn identificador (comúnmente referido sencillamente como “ID”) es una propiedad unívoca para identificar a un recurso, por el cual siempre se podrá ubicar/encontrar al mismo. Esto implica que el ID debe ser inmutable. En el contexto de una base de datos, esto es típicamente la “PK” (Primary Key o Clave Primaria) de una tabla, y este concepto es virtualmente el mismo aplicado al contexto de la WEB API.\n\n**IDs en la WEB API**\n\nHay 2 tipos de IDs: Internos y Externos:\n\n- Los IDs internos son valores estrictamente relacionados con los IDs en el repositorio de datos, los cuales el usuario puede o no conocer de antemano. Por esta razón, existe el segundo tipo de ID.\n    \n- Los IDs externos son valores con los que el usuario está más familiarizado, por lo que en muchos casos le será más fácil usar éstos en vez de los IDs internos. Para ilustrar esto con un ejemplo, pensar en un libro. Probablemente no se conozca el ID interno del registro en una base de datos donde se listen libros (eso sería la Primary Key), pero sí es más accesible el código ISBN (está impreso en todos los libros del mundo), el cual no es un valor determinado arbitrariamente por la base de datos sino un estándar mundial para identificar libros.\n    \n\nUn escenario similar se puede aplicar a la WEB API de VISMA: al buscar por datos de un empleado, el usuario puede consumir un servicio que requiere se indique su ID para saber de qué empleado se devolverá la información. Ahora bien, la WEB API tiene a disposición del usuario la posibilidad de utilizar el servicio enviando el ID interno del empleado o bien su legajo (el ID externo, en este caso) para obtener exactamente la misma respuesta.\n\n- A continuación, se ve un ejemplo de cómo se ven las rutas URL en ambos casos:\n    \n    - Usando el ID externo (legajo del empleado): [https://apim.vismalatam.com/webapi/employees/10941307](https://apim.vismalatam.com/webapi/employees/10941307)\n        \n    - Usando el ID interno (id de la tabla de empleados en la base de datos) [https://apim.vismalatam.com/webapi/employees/rh-22008](https://apim.vismalatam.com/webapi/employees/rh-22008)\n        \n\nEn resumen, los IDs internos son identificadores que la WEB API utiliza para poder encontrar la información en la base de datos. Los ID externos son un medio más “amigable” provisto especialmente para que los usuarios puedan consumir los servicios con mayor facilidad. De todos modos, como se ha mencionado anteriormente, el uso ambos dos es totalmente intercambiables y la respuesta no será alterada; el resultado es el mismo.\n\n#### Política de uso aceptable de la WEB API\n\nPara ofrecer la máxima disponibilidad y fiabilidad de los recursos compartidos de nuestra plataforma cloud, todos los clientes que acceden a la WEB API están sujetos a unos determinados límites y cuotas definidos por cada instancia de la aplicación.  \nCuando se detecten consumos mayores a lo permitido del servicio se interrumpirá de forma automática retornando un error de sobrepaso del límite de cuota permitida.  \nSi se supera la cuota de solicitud a la WEB API, ésta devolverá el código de error 429 y un mensaje indicando que la instancia ha superado la cuota permitida.  \nLos límites de cuota son diarios, en caso de sobrepaso deberá esperar hasta el día siguiente.\n\n##### Límites de cuotas para la WEB API\n\nSe define como límite de cuota de uso las siguientes restricciones:\n\n- Hasta 10.000 solicitudes por minuto por IP, si se supera este valor de bloquea el acceso por 1 minuto.","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"37531081","team":6359275,"collectionId":"c49f0dd0-5034-486f-94ed-4015ba622009","publishedId":"2sAYBSiYLJ","public":true,"publicUrl":"https://developer.vismalatam.com","privateUrl":"https://go.postman.co/documentation/37531081-c49f0dd0-5034-486f-94ed-4015ba622009","customColor":{"top-bar":"FFFFFF","right-sidebar":"333333","highlight":"0089d9"},"documentationLayout":"classic-double-column","customisation":{"metaTags":[{"name":"description","value":""},{"name":"title","value":""}],"appearance":{"default":"light","themes":[{"name":"dark","logo":"https://content.pstmn.io/21b2c3e8-6dc5-43c5-be4b-439c7f9bfb2b/dmlzbWF3aGl0ZS5wbmc=","colors":{"top-bar":"212121","right-sidebar":"303030","highlight":"0089d9"}},{"name":"light","logo":"https://content.pstmn.io/110e9020-b0be-4352-a4df-bcfa309a5a65/VmlzbWEucG5n","colors":{"top-bar":"FFFFFF","right-sidebar":"333333","highlight":"0089d9"}}]}},"version":"8.10.0","publishDate":"2026-02-20T13:47:04.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{"title":"","description":""},"logos":{"logoLight":"https://content.pstmn.io/110e9020-b0be-4352-a4df-bcfa309a5a65/VmlzbWEucG5n","logoDark":"https://content.pstmn.io/21b2c3e8-6dc5-43c5-be4b-439c7f9bfb2b/dmlzbWF3aGl0ZS5wbmc="}},"statusCode":200},"environments":[],"user":{"authenticated":false,"permissions":{"publish":false}},"run":{"button":{"js":"https://run.pstmn.io/button.js","css":"https://run.pstmn.io/button.css"}},"web":"https://www.getpostman.com/","team":{"logo":"https://res.cloudinary.com/postman/image/upload/t_team_logo_pubdoc/v1/team/57216aea036bf44db21a8bab0b7fbc8ac8d474623ff09bc12f4dc99867af4261","favicon":"https://vismalatam.com/favicon.ico"},"isEnvFetchError":false,"languages":"[{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"HttpClient\"},{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"RestSharp\"},{\"key\":\"curl\",\"label\":\"cURL\",\"variant\":\"cURL\"},{\"key\":\"dart\",\"label\":\"Dart\",\"variant\":\"http\"},{\"key\":\"go\",\"label\":\"Go\",\"variant\":\"Native\"},{\"key\":\"http\",\"label\":\"HTTP\",\"variant\":\"HTTP\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"OkHttp\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"Unirest\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"Fetch\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"jQuery\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"XHR\"},{\"key\":\"c\",\"label\":\"C\",\"variant\":\"libcurl\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Axios\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Native\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Request\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Unirest\"},{\"key\":\"objective-c\",\"label\":\"Objective-C\",\"variant\":\"NSURLSession\"},{\"key\":\"ocaml\",\"label\":\"OCaml\",\"variant\":\"Cohttp\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"cURL\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"Guzzle\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"HTTP_Request2\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"pecl_http\"},{\"key\":\"powershell\",\"label\":\"PowerShell\",\"variant\":\"RestMethod\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"http.client\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"Requests\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"httr\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"RCurl\"},{\"key\":\"ruby\",\"label\":\"Ruby\",\"variant\":\"Net::HTTP\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"Httpie\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"wget\"},{\"key\":\"swift\",\"label\":\"Swift\",\"variant\":\"URLSession\"}]","languageSettings":[{"key":"csharp","label":"C#","variant":"HttpClient"},{"key":"csharp","label":"C#","variant":"RestSharp"},{"key":"curl","label":"cURL","variant":"cURL"},{"key":"dart","label":"Dart","variant":"http"},{"key":"go","label":"Go","variant":"Native"},{"key":"http","label":"HTTP","variant":"HTTP"},{"key":"java","label":"Java","variant":"OkHttp"},{"key":"java","label":"Java","variant":"Unirest"},{"key":"javascript","label":"JavaScript","variant":"Fetch"},{"key":"javascript","label":"JavaScript","variant":"jQuery"},{"key":"javascript","label":"JavaScript","variant":"XHR"},{"key":"c","label":"C","variant":"libcurl"},{"key":"nodejs","label":"NodeJs","variant":"Axios"},{"key":"nodejs","label":"NodeJs","variant":"Native"},{"key":"nodejs","label":"NodeJs","variant":"Request"},{"key":"nodejs","label":"NodeJs","variant":"Unirest"},{"key":"objective-c","label":"Objective-C","variant":"NSURLSession"},{"key":"ocaml","label":"OCaml","variant":"Cohttp"},{"key":"php","label":"PHP","variant":"cURL"},{"key":"php","label":"PHP","variant":"Guzzle"},{"key":"php","label":"PHP","variant":"HTTP_Request2"},{"key":"php","label":"PHP","variant":"pecl_http"},{"key":"powershell","label":"PowerShell","variant":"RestMethod"},{"key":"python","label":"Python","variant":"http.client"},{"key":"python","label":"Python","variant":"Requests"},{"key":"r","label":"R","variant":"httr"},{"key":"r","label":"R","variant":"RCurl"},{"key":"ruby","label":"Ruby","variant":"Net::HTTP"},{"key":"shell","label":"Shell","variant":"Httpie"},{"key":"shell","label":"Shell","variant":"wget"},{"key":"swift","label":"Swift","variant":"URLSession"}],"languageOptions":[{"label":"C# - HttpClient","value":"csharp - HttpClient - C#"},{"label":"C# - RestSharp","value":"csharp - RestSharp - C#"},{"label":"cURL - cURL","value":"curl - cURL - cURL"},{"label":"Dart - http","value":"dart - http - Dart"},{"label":"Go - Native","value":"go - Native - Go"},{"label":"HTTP - HTTP","value":"http - HTTP - HTTP"},{"label":"Java - OkHttp","value":"java - OkHttp - Java"},{"label":"Java - Unirest","value":"java - Unirest - Java"},{"label":"JavaScript - Fetch","value":"javascript - Fetch - JavaScript"},{"label":"JavaScript - jQuery","value":"javascript - jQuery - JavaScript"},{"label":"JavaScript - XHR","value":"javascript - XHR - JavaScript"},{"label":"C - libcurl","value":"c - libcurl - C"},{"label":"NodeJs - Axios","value":"nodejs - Axios - NodeJs"},{"label":"NodeJs - Native","value":"nodejs - Native - NodeJs"},{"label":"NodeJs - Request","value":"nodejs - Request - NodeJs"},{"label":"NodeJs - Unirest","value":"nodejs - Unirest - NodeJs"},{"label":"Objective-C - NSURLSession","value":"objective-c - NSURLSession - Objective-C"},{"label":"OCaml - Cohttp","value":"ocaml - Cohttp - OCaml"},{"label":"PHP - cURL","value":"php - cURL - PHP"},{"label":"PHP - Guzzle","value":"php - Guzzle - PHP"},{"label":"PHP - HTTP_Request2","value":"php - HTTP_Request2 - PHP"},{"label":"PHP - pecl_http","value":"php - pecl_http - PHP"},{"label":"PowerShell - RestMethod","value":"powershell - RestMethod - PowerShell"},{"label":"Python - http.client","value":"python - http.client - Python"},{"label":"Python - Requests","value":"python - Requests - Python"},{"label":"R - httr","value":"r - httr - R"},{"label":"R - RCurl","value":"r - RCurl - R"},{"label":"Ruby - Net::HTTP","value":"ruby - Net::HTTP - Ruby"},{"label":"Shell - Httpie","value":"shell - Httpie - Shell"},{"label":"Shell - wget","value":"shell - wget - Shell"},{"label":"Swift - URLSession","value":"swift - URLSession - Swift"}],"layoutOptions":[{"value":"classic-single-column","label":"Single Column"},{"value":"classic-double-column","label":"Double Column"}],"versionOptions":[],"environmentOptions":[{"value":"0","label":"No Environment"}],"canonicalUrl":"https://developer.vismalatam.com/view/metadata/2sAYBSiYLJ"}