> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.datalbus.com.br/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.datalbus.com.br/_mcp/server.

# Perfil de rotação do motor

GET https://datalbus.com.br:8000/api/v2/reports/engine-rotation-profile

Histograma de rotação do motor (RPM) por veículo em um dia (horário de Brasília).

**Resposta 200** (array). Cada item:

| Campo          | Tipo                 | Nulo | Descrição                                                   |
| -------------- | -------------------- | ---- | ----------------------------------------------------------- |
| `date`         | string `DD/MM/YYYY`  | não  | Dia                                                         |
| `license`      | string               | sim  | Prefixo do veículo                                          |
| `group`        | string               | sim  | Grupo / garagem do veículo                                  |
| `model`        | string               | sim  | Modelo                                                      |
| `transmission` | string               | sim  | Fabricante da transmissão                                   |
| `histogram`    | array de 11 integers | não  | Quantidade de amostras de RPM em cada faixa (tabela abaixo) |
| `engine_hours` | number               | sim  | Horas de motor das viagens do dia                           |

Faixas de `histogram` (posição → RPM):

| Posição | RPM         | Posição | RPM         |
| ------- | ----------- | ------- | ----------- |
| 0       | \< 500      | 6       | 3000 a 3499 |
| 1       | 500 a 999   | 7       | 3500 a 3999 |
| 2       | 1000 a 1499 | 8       | 4000 a 4499 |
| 3       | 1500 a 1999 | 9       | 4500 a 4999 |
| 4       | 2000 a 2499 | 10      | ≥ 5000      |
| 5       | 2500 a 2999 |         |             |

**Erros:** `422` para parâmetros ausentes ou inválidos.

Reference: https://docs.datalbus.com.br/datalbus-api-v-2/relatorios/perfil-de-rotacao-do-motor/perfil-de-rotação-do-motor

## Authentication

- `Authorization` header (bearer token, required) — Bearer authentication of the form `Bearer <token>`, where token is your auth token.

## Request

### Query parameters

- `date` (string, optional) — Obrigatório. Dia consultado, formato `DD/MM/YYYY`.
- `groupBy` (string, optional) — Obrigatório. Agrupamento: `assets` (por veículo).

## Response

### 200

OK

- `list of PerfilDeRotacaoDoMotorPerfilDeRotacaoDoMotorResponseItem`

## Errors

### 401 Perfil De Rotacao Do Motor Perfil De Rotacao Do Motor Request Unauthorized Error

Unauthorized

- `message` (string, required)

### 422 Perfil De Rotacao Do Motor Perfil De Rotacao Do Motor Request Unprocessable Entity Error

Unprocessable Content

- `errors` (UnprocessableEntityErrorBodyErrors, required)
- `message` (string, required)

## Types

### PerfilDeRotacaoDoMotorPerfilDeRotacaoDoMotorResponseItem

- `date` (string, required)
- `group` (string, required)
- `model` (string, required)
- `license` (string, required)
- `histogram` (list of integer, required)
- `engine_hours` (double, required)
- `transmission` (string, required)

### UnprocessableEntityErrorBodyErrors

- `date` (list of string, required)
- `groupBy` (list of string, required)

## Examples

**Response**

```json
[
  {
    "date": "06/10/2026",
    "group": "Garagem Norte",
    "model": "O-500U",
    "license": "1020",
    "histogram": [
      1200,
      3400,
      15000,
      22000,
      9000,
      3000,
      400,
      50,
      0,
      0,
      0
    ],
    "engine_hours": 7.532,
    "transmission": "Voith"
  }
]
```

**SDK Code**

```python 200 - Perfil de rotação
import requests

url = "https://datalbus.com.br:8000/api/v2/reports/engine-rotation-profile"

querystring = {"date":"06/10/2026","groupBy":"assets"}

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers, params=querystring)

print(response.json())
```

```javascript 200 - Perfil de rotação
const url = 'https://datalbus.com.br:8000/api/v2/reports/engine-rotation-profile?date=06%2F10%2F2026&groupBy=assets';
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

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

```go 200 - Perfil de rotação
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://datalbus.com.br:8000/api/v2/reports/engine-rotation-profile?date=06%2F10%2F2026&groupBy=assets"

	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(res)
	fmt.Println(string(body))

}
```

```ruby 200 - Perfil de rotação
require 'uri'
require 'net/http'

url = URI("https://datalbus.com.br:8000/api/v2/reports/engine-rotation-profile?date=06%2F10%2F2026&groupBy=assets")

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
```

```java 200 - Perfil de rotação
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://datalbus.com.br:8000/api/v2/reports/engine-rotation-profile?date=06%2F10%2F2026&groupBy=assets")
  .header("Authorization", "Bearer <token>")
  .asString();
```

```php 200 - Perfil de rotação
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://datalbus.com.br:8000/api/v2/reports/engine-rotation-profile?date=06%2F10%2F2026&groupBy=assets', [
  'headers' => [
    'Authorization' => 'Bearer <token>',
  ],
]);

echo $response->getBody();
```

```csharp 200 - Perfil de rotação
using RestSharp;

var client = new RestClient("https://datalbus.com.br:8000/api/v2/reports/engine-rotation-profile?date=06%2F10%2F2026&groupBy=assets");
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "Bearer <token>");
IRestResponse response = client.Execute(request);
```

```swift 200 - Perfil de rotação
import Foundation

let headers = ["Authorization": "Bearer <token>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://datalbus.com.br:8000/api/v2/reports/engine-rotation-profile?date=06%2F10%2F2026&groupBy=assets")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```