Skip to main content
GET
/
base
/
{baseId}
/
workflow
/
{workflowId}
/
run
/
summary
cURL
curl --request GET \
  --url https://app.teable.ai/api/base/%7BbaseId%7D/workflow/%7BworkflowId%7D/run/summary \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
const url = 'https://app.teable.ai/api/base/%7BbaseId%7D/workflow/%7BworkflowId%7D/run/summary';
const options = {method: 'GET', headers: {Authorization: 'Bearer REPLACE_BEARER_TOKEN'}};

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

const options = {
method: 'GET',
hostname: 'app.teable.ai',
port: null,
path: '/api/base/%7BbaseId%7D/workflow/%7BworkflowId%7D/run/summary',
headers: {
Authorization: 'Bearer REPLACE_BEARER_TOKEN'
}
};

const req = http.request(options, function (res) {
const chunks = [];

res.on('data', function (chunk) {
chunks.push(chunk);
});

res.on('end', function () {
const body = Buffer.concat(chunks);
console.log(body.toString());
});
});

req.end();
import http.client

conn = http.client.HTTPSConnection("app.teable.ai")

headers = { 'Authorization': "Bearer REPLACE_BEARER_TOKEN" }

conn.request("GET", "/api/base/%7BbaseId%7D/workflow/%7BworkflowId%7D/run/summary", headers=headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "https://app.teable.ai/api/base/{baseId}/workflow/{workflowId}/run/summary",
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://app.teable.ai/api/base/{baseId}/workflow/{workflowId}/run/summary"

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://app.teable.ai/api/base/{baseId}/workflow/{workflowId}/run/summary")
.header("Authorization", "Bearer <token>")
.asString();
require 'uri'
require 'net/http'

url = URI("https://app.teable.ai/api/base/{baseId}/workflow/{workflowId}/run/summary")

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_body
{
  "totalCount": 123,
  "statusStats": {
    "success": 123,
    "failed": 123,
    "running": 123,
    "pending": 123,
    "canceled": 123
  },
  "avgSpent": 123
}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Path Parameters

baseId
string
required
workflowId
string
required

Response

200 - application/json

Successful response

totalCount
number
required

total number of runs

statusStats
object
required

count of runs by status

avgSpent
number
required

average runtime in milliseconds

Last modified on March 5, 2026