curl --request POST \
--url https://api.olie.ai/api/management/get-step-data \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"steps": [
{
"id": null,
"offset": 0,
"limit": 20,
"sorting": {
"field": "",
"direction": "desc"
}
}
],
"is_counting": false,
"filters": [],
"date_range": {
"init": null,
"end": null
}
}
'import requests
url = "https://api.olie.ai/api/management/get-step-data"
payload = {
"steps": [
{
"id": None,
"offset": 0,
"limit": 20,
"sorting": {
"field": "",
"direction": "desc"
}
}
],
"is_counting": False,
"filters": [],
"date_range": {
"init": None,
"end": None
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
steps: [{id: null, offset: 0, limit: 20, sorting: {field: '', direction: 'desc'}}],
is_counting: false,
filters: [],
date_range: {init: null, end: null}
})
};
fetch('https://api.olie.ai/api/management/get-step-data', 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/get-step-data",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'steps' => [
[
'id' => null,
'offset' => 0,
'limit' => 20,
'sorting' => [
'field' => '',
'direction' => 'desc'
]
]
],
'is_counting' => false,
'filters' => [
],
'date_range' => [
'init' => null,
'end' => null
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.olie.ai/api/management/get-step-data"
payload := strings.NewReader("{\n \"steps\": [\n {\n \"id\": null,\n \"offset\": 0,\n \"limit\": 20,\n \"sorting\": {\n \"field\": \"\",\n \"direction\": \"desc\"\n }\n }\n ],\n \"is_counting\": false,\n \"filters\": [],\n \"date_range\": {\n \"init\": null,\n \"end\": null\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.olie.ai/api/management/get-step-data")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"steps\": [\n {\n \"id\": null,\n \"offset\": 0,\n \"limit\": 20,\n \"sorting\": {\n \"field\": \"\",\n \"direction\": \"desc\"\n }\n }\n ],\n \"is_counting\": false,\n \"filters\": [],\n \"date_range\": {\n \"init\": null,\n \"end\": null\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.olie.ai/api/management/get-step-data")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"steps\": [\n {\n \"id\": null,\n \"offset\": 0,\n \"limit\": 20,\n \"sorting\": {\n \"field\": \"\",\n \"direction\": \"desc\"\n }\n }\n ],\n \"is_counting\": false,\n \"filters\": [],\n \"date_range\": {\n \"init\": null,\n \"end\": null\n }\n}"
response = http.request(request)
puts response.read_body{
"response": true,
"steps": [
{
"id": 128,
"project_funnel_id": 12,
"sort_config": null,
"projects": [
{
"id": "9c2f1a44-3b2e-4a0f-9b7a-1c4c5f7e8d90",
"parent_id": null,
"code": "COM-83",
"name": "Implantação Laboratório Hawkins",
"description": "Migração do parque de energia",
"budget": 18500,
"impact": 1,
"frame_id": "019aeaa3-2778-73ec-8f8d-59d06cc59dca",
"children_count": 0,
"customer": {
"id": "019b277f-e453-733d-a00e-6d26d444008b",
"name": "Hawkins Energia"
},
"contact": null,
"tags": [
{
"id": 45,
"name": "Urgente",
"color": "#E53935"
}
],
"funnel_steps": [
{
"id": 128,
"name": "Qualificação"
}
],
"created_at": "2026-08-02T13:04:11.000000Z",
"updated_at": "2026-08-14T09:22:47.000000Z"
}
],
"projects_count": 37
}
]
}Obter dados da etapa
Carrega o conteúdo das colunas do quadro: para cada etapa informada, devolve os projetos visíveis ao usuário autenticado, já recortados por offset/limit, e o total de projetos da etapa. Com is_counting a resposta traz apenas os totalizadores da etapa — contagem e soma de orçamento — sem a lista de projetos, que é o modo usado para montar os cabeçalhos das colunas. O quadro está descrito em Configuração do quadro e o formato de filters segue Busca avançada.
curl --request POST \
--url https://api.olie.ai/api/management/get-step-data \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"steps": [
{
"id": null,
"offset": 0,
"limit": 20,
"sorting": {
"field": "",
"direction": "desc"
}
}
],
"is_counting": false,
"filters": [],
"date_range": {
"init": null,
"end": null
}
}
'import requests
url = "https://api.olie.ai/api/management/get-step-data"
payload = {
"steps": [
{
"id": None,
"offset": 0,
"limit": 20,
"sorting": {
"field": "",
"direction": "desc"
}
}
],
"is_counting": False,
"filters": [],
"date_range": {
"init": None,
"end": None
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
steps: [{id: null, offset: 0, limit: 20, sorting: {field: '', direction: 'desc'}}],
is_counting: false,
filters: [],
date_range: {init: null, end: null}
})
};
fetch('https://api.olie.ai/api/management/get-step-data', 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/get-step-data",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'steps' => [
[
'id' => null,
'offset' => 0,
'limit' => 20,
'sorting' => [
'field' => '',
'direction' => 'desc'
]
]
],
'is_counting' => false,
'filters' => [
],
'date_range' => [
'init' => null,
'end' => null
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.olie.ai/api/management/get-step-data"
payload := strings.NewReader("{\n \"steps\": [\n {\n \"id\": null,\n \"offset\": 0,\n \"limit\": 20,\n \"sorting\": {\n \"field\": \"\",\n \"direction\": \"desc\"\n }\n }\n ],\n \"is_counting\": false,\n \"filters\": [],\n \"date_range\": {\n \"init\": null,\n \"end\": null\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.olie.ai/api/management/get-step-data")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"steps\": [\n {\n \"id\": null,\n \"offset\": 0,\n \"limit\": 20,\n \"sorting\": {\n \"field\": \"\",\n \"direction\": \"desc\"\n }\n }\n ],\n \"is_counting\": false,\n \"filters\": [],\n \"date_range\": {\n \"init\": null,\n \"end\": null\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.olie.ai/api/management/get-step-data")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"steps\": [\n {\n \"id\": null,\n \"offset\": 0,\n \"limit\": 20,\n \"sorting\": {\n \"field\": \"\",\n \"direction\": \"desc\"\n }\n }\n ],\n \"is_counting\": false,\n \"filters\": [],\n \"date_range\": {\n \"init\": null,\n \"end\": null\n }\n}"
response = http.request(request)
puts response.read_body{
"response": true,
"steps": [
{
"id": 128,
"project_funnel_id": 12,
"sort_config": null,
"projects": [
{
"id": "9c2f1a44-3b2e-4a0f-9b7a-1c4c5f7e8d90",
"parent_id": null,
"code": "COM-83",
"name": "Implantação Laboratório Hawkins",
"description": "Migração do parque de energia",
"budget": 18500,
"impact": 1,
"frame_id": "019aeaa3-2778-73ec-8f8d-59d06cc59dca",
"children_count": 0,
"customer": {
"id": "019b277f-e453-733d-a00e-6d26d444008b",
"name": "Hawkins Energia"
},
"contact": null,
"tags": [
{
"id": 45,
"name": "Urgente",
"color": "#E53935"
}
],
"funnel_steps": [
{
"id": 128,
"name": "Qualificação"
}
],
"created_at": "2026-08-02T13:04:11.000000Z",
"updated_at": "2026-08-14T09:22:47.000000Z"
}
],
"projects_count": 37
}
]
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
Etapas a carregar. O id não pode se repetir.
Show child attributes
Show child attributes
Quando true, retorna apenas os totalizadores da etapa, sem a lista de projetos.
Filtros aplicados aos projetos de todas as etapas informadas.
Recorte pela data de entrada do projeto na etapa.
Show child attributes
Show child attributes
Was this page helpful?