Pular para o conteúdo
TakeFlowAPI Pública
TakeFlow API Pública

Comece aqui

Exemplos de integração

Exemplos em cURL, Node.js, Python e Power BI.

Troque tf_live_SUA_CHAVE pela chave gerada no painel. Nunca publique a chave em repositório ou em código que roda no navegador.

curl "https://api.takeflow.com.br/public/v1/reports/overview?initialDate=2026-09-01&finalDate=2026-09-30" \
-H "x-api-key: tf_live_SUA_CHAVE"

Node.js 18+ (todas as páginas do relatório detalhado)

Seção intitulada “Node.js 18+ (todas as páginas do relatório detalhado)”
const API_KEY = process.env.TAKEFLOW_API_KEY;
const BASE_URL = "https://api.takeflow.com.br/public/v1";
async function listarTickets(initialDate, finalDate) {
const tickets = [];
let page = 1;
let totalPages = 1;
do {
const url = new URL(`${BASE_URL}/reports/tickets/detailed`);
url.search = new URLSearchParams({ initialDate, finalDate, limit: "200", page: String(page) });
const response = await fetch(url, { headers: { "x-api-key": API_KEY } });
if (response.status === 429) {
const wait = Number(response.headers.get("retry-after") ?? 60);
await new Promise((resolve) => setTimeout(resolve, wait * 1000));
continue;
}
if (!response.ok) {
const error = await response.json();
throw new Error(`${response.status} ${error.code}: ${error.message}`);
}
const body = await response.json();
tickets.push(...body.tickets);
totalPages = body.totalPages;
page += 1;
} while (page <= totalPages);
return tickets;
}
listarTickets("2026-09-01", "2026-09-30").then((tickets) =>
console.log(`${tickets.length} tickets`),
);
import json
import os
import urllib.parse
import urllib.request
API_KEY = os.environ["TAKEFLOW_API_KEY"]
BASE_URL = "https://api.takeflow.com.br/public/v1"
params = urllib.parse.urlencode({"initialDate": "2026-09-01", "finalDate": "2026-09-30"})
request = urllib.request.Request(
f"{BASE_URL}/reports/agents?{params}",
headers={"x-api-key": API_KEY},
)
with urllib.request.urlopen(request) as response:
for agent in json.load(response):
print(agent["userName"], agent["tickets"], agent["avgSupportTimeMinutes"])

Em Obter dados > Consulta em branco > Editor avançado:

let
Chave = "tf_live_SUA_CHAVE",
Pagina = (numero as number) =>
Json.Document(
Web.Contents(
"https://api.takeflow.com.br",
[
RelativePath = "public/v1/reports/tickets/detailed",
Headers = [#"x-api-key" = Chave],
Query = [
initialDate = "2026-09-01",
finalDate = "2026-09-30",
limit = "200",
page = Number.ToText(numero)
]
]
)
),
Primeira = Pagina(1),
Paginas = List.Transform({1..Primeira[totalPages]}, each if _ = 1 then Primeira else Pagina(_)),
Tickets = List.Combine(List.Transform(Paginas, each _[tickets])),
Tabela = Table.FromRecords(Tickets)
in
Tabela

Use RelativePath e Query como acima: com a URL completa montada à mão, o Power BI Service não consegue agendar a atualização.