curl --request GET \
--url https://clientapi.woku.app/v1/tools \
--header 'Authorization: Bearer <token>'import requests
url = "https://clientapi.woku.app/v1/tools"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://clientapi.woku.app/v1/tools', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://clientapi.woku.app/v1/tools",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://clientapi.woku.app/v1/tools"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://clientapi.woku.app/v1/tools")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://clientapi.woku.app/v1/tools")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_bodyListar y buscar herramientas y carpetas
Lista un nivel de carpeta (folderId, la raíz por defecto) o toda la empresa (scope=company). Una búsqueda (q) abarca toda la empresa y también devuelve las carpetas que coinciden. Los elementos de todos los tipos (woku, nps, csat, ces) vienen en una sola lista paginada por cursor, con conteos por faceta de cada tipo.
curl --request GET \
--url https://clientapi.woku.app/v1/tools \
--header 'Authorization: Bearer <token>'import requests
url = "https://clientapi.woku.app/v1/tools"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://clientapi.woku.app/v1/tools', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://clientapi.woku.app/v1/tools",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://clientapi.woku.app/v1/tools"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://clientapi.woku.app/v1/tools")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://clientapi.woku.app/v1/tools")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_bodyAutorizaciones
Clave API secreta de la empresa.
Parámetros de consulta
level (por defecto) lista un nivel de carpeta; company es una lista plana de todas las herramientas de la empresa.
level, company Tipos de herramienta separados por coma: woku, nps, csat, ces.
Búsqueda en nombres y preguntas, sin distinguir mayúsculas ni acentos. Una búsqueda abarca toda la empresa y también coincide con nombres de carpetas.
100name, -name, created, -created nextCursor opaco de la página anterior.
1 <= x <= 100Carpetas por página ("ver más"). Si se omite, devuelve todas las carpetas del nivel.
1 <= x <= 100foldersNextCursor opaco de una página anterior. Devuelve solo esa página de carpetas, sin herramientas.
Solo herramientas creadas desde esta fecha (ISO 8601).
Solo herramientas creadas hasta esta fecha (ISO 8601).
Chips de trackers como nombre:valor, repetibles (?trackers=TRR:00482&trackers=OC:2024, hasta 10). Una herramienta coincide cuando tiene todos: el nombre del tracker se compara exacto y el valor de forma parcial y sin distinguir mayúsculas (482 también coincide con 00482). Como una búsqueda, abarca toda la empresa y no lista carpetas. Un chip sin nombre o sin valor responde 400.
Carpeta cuyo contenido directo se lista. Omítela para la raíz. Se ignora con scope=company o al buscar.
Respuesta
Carpetas, herramientas y facetas