curl --request GET \
--url https://api.olie.ai/api/management/project-executions \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.olie.ai/api/management/project-executions"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.olie.ai/api/management/project-executions', 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://api.olie.ai/api/management/project-executions",
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://api.olie.ai/api/management/project-executions"
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://api.olie.ai/api/management/project-executions")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.olie.ai/api/management/project-executions")
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{
"response": true,
"meta": {
"current_page": 1,
"from": 1,
"last_page": 1,
"per_page": 30,
"to": 2,
"total": 2
},
"project_executions": [
{
"id": "a1f0c3d2-5b6e-4f70-8a91-b2c3d4e5f607",
"project_id": "019e0edb-aa7c-70c4-9d2d-3a2f175b5ddf",
"user_id": "019c1e87-63f4-71dd-a4e3-6eaea0619c2f",
"funnel_step_id": 181,
"started_at": "2026-10-30T12:00:00.000000Z",
"finished_at": null,
"hourly_rate": 85,
"finished_reason": null,
"started_at_real": null,
"finished_at_real": null,
"duration": 2700,
"project": {
"id": "019e0edb-aa7c-70c4-9d2d-3a2f175b5ddf",
"code": "SC-1",
"name": "Shopping Center",
"is_template": false,
"deleted_at": null,
"customer": {
"id": "019d2a41-7c3e-7b10-8f6e-1a2b3c4d5e6f",
"name": "Cliente Exemplo Ltda"
}
},
"user": {
"id": "019c1e87-63f4-71dd-a4e3-6eaea0619c2f",
"name": "Nome do usuário",
"avatar_url": null
},
"funnel_step": {
"id": 181,
"name": "Execução",
"project_funnel_id": 36,
"funnel": {
"id": 36,
"name": "Obras"
}
}
},
{
"id": "a14afcbd-38b1-4b97-8950-02c09547611a",
"project_id": "019e0edb-aa7c-70c4-9d2d-3a2f175b5ddf",
"user_id": "019c1e87-63f4-71dd-a4e3-6eaea0619c2f",
"funnel_step_id": 181,
"started_at": "2026-08-19T13:05:00.000000Z",
"finished_at": "2026-08-19T14:47:12.000000Z",
"hourly_rate": 85,
"finished_reason": "self_stop",
"started_at_real": null,
"finished_at_real": null,
"duration": 6132,
"project": {
"id": "019e0edb-aa7c-70c4-9d2d-3a2f175b5ddf",
"code": "SC-1",
"name": "Shopping Center",
"is_template": false,
"deleted_at": null,
"customer": {
"id": "019d2a41-7c3e-7b10-8f6e-1a2b3c4d5e6f",
"name": "Cliente Exemplo Ltda"
}
},
"user": {
"id": "019c1e87-63f4-71dd-a4e3-6eaea0619c2f",
"name": "Nome do usuário",
"avatar_url": null
},
"funnel_step": {
"id": 181,
"name": "Execução",
"project_funnel_id": 36,
"funnel": {
"id": 36,
"name": "Obras"
}
}
}
]
}{
"response": false,
"message": "permission_required",
"error": "This action is unauthorized.",
"permission": "projects_executions.see_timers"
}Listar execuções da empresa
Lista as execuções (registros de tempo) de toda a empresa, com paginação, filtros e ordenação. Só entram execuções de projetos que você pode ver. Sem permissão para ver os timers de outras pessoas, a lista traz apenas as suas, e filtrar por outro usuário retorna 403.
Veja Paginação e Filtros básicos.
curl --request GET \
--url https://api.olie.ai/api/management/project-executions \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.olie.ai/api/management/project-executions"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.olie.ai/api/management/project-executions', 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://api.olie.ai/api/management/project-executions",
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://api.olie.ai/api/management/project-executions"
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://api.olie.ai/api/management/project-executions")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.olie.ai/api/management/project-executions")
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{
"response": true,
"meta": {
"current_page": 1,
"from": 1,
"last_page": 1,
"per_page": 30,
"to": 2,
"total": 2
},
"project_executions": [
{
"id": "a1f0c3d2-5b6e-4f70-8a91-b2c3d4e5f607",
"project_id": "019e0edb-aa7c-70c4-9d2d-3a2f175b5ddf",
"user_id": "019c1e87-63f4-71dd-a4e3-6eaea0619c2f",
"funnel_step_id": 181,
"started_at": "2026-10-30T12:00:00.000000Z",
"finished_at": null,
"hourly_rate": 85,
"finished_reason": null,
"started_at_real": null,
"finished_at_real": null,
"duration": 2700,
"project": {
"id": "019e0edb-aa7c-70c4-9d2d-3a2f175b5ddf",
"code": "SC-1",
"name": "Shopping Center",
"is_template": false,
"deleted_at": null,
"customer": {
"id": "019d2a41-7c3e-7b10-8f6e-1a2b3c4d5e6f",
"name": "Cliente Exemplo Ltda"
}
},
"user": {
"id": "019c1e87-63f4-71dd-a4e3-6eaea0619c2f",
"name": "Nome do usuário",
"avatar_url": null
},
"funnel_step": {
"id": 181,
"name": "Execução",
"project_funnel_id": 36,
"funnel": {
"id": 36,
"name": "Obras"
}
}
},
{
"id": "a14afcbd-38b1-4b97-8950-02c09547611a",
"project_id": "019e0edb-aa7c-70c4-9d2d-3a2f175b5ddf",
"user_id": "019c1e87-63f4-71dd-a4e3-6eaea0619c2f",
"funnel_step_id": 181,
"started_at": "2026-08-19T13:05:00.000000Z",
"finished_at": "2026-08-19T14:47:12.000000Z",
"hourly_rate": 85,
"finished_reason": "self_stop",
"started_at_real": null,
"finished_at_real": null,
"duration": 6132,
"project": {
"id": "019e0edb-aa7c-70c4-9d2d-3a2f175b5ddf",
"code": "SC-1",
"name": "Shopping Center",
"is_template": false,
"deleted_at": null,
"customer": {
"id": "019d2a41-7c3e-7b10-8f6e-1a2b3c4d5e6f",
"name": "Cliente Exemplo Ltda"
}
},
"user": {
"id": "019c1e87-63f4-71dd-a4e3-6eaea0619c2f",
"name": "Nome do usuário",
"avatar_url": null
},
"funnel_step": {
"id": 181,
"name": "Execução",
"project_funnel_id": 36,
"funnel": {
"id": 36,
"name": "Obras"
}
}
}
]
}{
"response": false,
"message": "permission_required",
"error": "This action is unauthorized.",
"permission": "projects_executions.see_timers"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Query Parameters
Página desejada. Padrão 1.
Itens por página. Padrão 30, máximo 100.
ID (UUID) da pessoa dona das execuções. Aceita vários separados por vírgula. Outra pessoa que não você exige permissão para ver os timers dos outros.
ID (UUID) do projeto. Aceita vários separados por vírgula.
ID da etapa do funil em que a execução ocorreu.
ID do funil da etapa. Aceita vários separados por vírgula.
Retorna execuções iniciadas nesta data ou depois dela.
Retorna execuções encerradas nesta data ou antes dela.
true retorna apenas as execuções em andamento; false, apenas as encerradas.
Início e fim separados por vírgula. Retorna execuções que ocupam algum tempo nesse intervalo, inclusive as que começaram antes e ainda estavam abertas.
Ordenação por started_at ou finished_at. Use - antes do campo para ordem decrescente.
Was this page helpful?