Consultar uma execução
Quando a automação roda em segundo plano — ou quando ela passou do orçamento de esperar o resultado —, a chamada devolve um exec_uuid e a execução continua. Esta rota é como você acompanha e pega o resultado depois.
GET https://mwm.datallog.com/api/v4/execution/<exec_uuid>/status
Authorization: Token <SEU_TOKEN>
X-Api-Key: <SUA_X_API_KEY>A resposta
{
"exec_uuid": "0199c2f1-7a3b-7e41-9f0a-3c5d2b8e6a11",
"finished": true,
"error": false,
"stopped": false,
"container_error": false,
"result_url": "https://…",
"logs_url": "https://…"
}| Campo | O que diz |
|---|---|
finished | a execução terminou (com ou sem erro) |
error | a automação levantou erro |
stopped | alguém parou a execução pelo painel |
container_error | o container caiu antes de a automação responder |
result_url | link para baixar o resultado, ou null |
logs_url | link para baixar o log, ou null |
Os dois links valem 1 minuto
result_url e logs_url são endereços assinados, com validade de 60 segundos, e só aparecem depois que finished é true — e só quando a automação está configurada para guardar resultado e log. Baixe assim que receber; para pegar de novo, consulte a rota outra vez.
Consultando até terminar
import time, requests
CAB = {"Authorization": f"Token {TOKEN}", "X-Api-Key": CHAVE}
url = f"https://mwm.datallog.com/api/v4/execution/{exec_uuid}/status"
while True:
estado = requests.get(url, headers=CAB).json()
if estado["finished"]:
break
time.sleep(5)
if estado["error"] or estado["container_error"]:
print("deu errado; o log está em", estado["logs_url"])
else:
print(requests.get(estado["result_url"]).json())Espere entre uma consulta e outra. A execução que você está acompanhando não anda mais rápido por ser perguntada com mais frequência, e cada consulta é uma chamada à API como qualquer outra.
Execução que não existe, ou que é de outra conta, responde 404 com {"error": "Execution not found"} — a mesma resposta nos dois casos, de propósito.