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

# Listar viagens

GET https://datalbus.com.br:8000/api/v2/trips

Lista as viagens que **iniciaram** no dia informado (dia em UTC), com os trechos por motorista (`subtrips`).

**Envie apenas os parâmetros documentados.**

**Resposta 200** (paginada). Cada item de `data`:

| Campo                                | Tipo                         | Nulo | Descrição                                                                                    |
| ------------------------------------ | ---------------------------- | ---- | -------------------------------------------------------------------------------------------- |
| `id`                                 | integer                      | não  | Id da viagem no Datalbus. Use como `{id}` em `/trips/{id}/events` e `/trips/{id}/locations`. |
| `drive_id`                           | integer                      | sim  | Id da viagem no equipamento de telemetria                                                    |
| `asset_id`                           | integer                      | sim  | Identificador do veículo na telemetria                                                       |
| `engine_hours`                       | number                       | sim  | Horas de motor na viagem                                                                     |
| `date`                               | string `YYYY-MM-DD HH:MM:SS` | sim  | Início da viagem (UTC)                                                                       |
| `end_drive`                          | string `YYYY-MM-DD HH:MM:SS` | sim  | Fim da viagem (UTC)                                                                          |
| `mileage`                            | number                       | sim  | Distância percorrida na viagem (km)                                                          |
| `drive_duration`                     | string                       | sim  | Duração da viagem (`HH:MM:SS`)                                                               |
| `total_mileage`                      | number                       | sim  | Odômetro (km)                                                                                |
| `fuel_used`                          | number                       | sim  | Combustível consumido na viagem (litros)                                                     |
| `start_latitude` / `start_longitude` | string                       | sim  | Posição de início                                                                            |
| `end_latitude` / `end_longitude`     | string                       | sim  | Posição de fim                                                                               |
| `log_gps_processed`                  | boolean                      | sim  | Uso interno                                                                                  |
| `total_engine_hours`                 | number                       | sim  | Horímetro (horas de motor acumuladas)                                                        |
| `trip_start_soc`                     | string                       | sim  | Veículos elétricos: estado de carga da bateria (%) no início                                 |
| `trip_start_range`                   | string                       | sim  | Veículos elétricos: autonomia no início                                                      |
| `end_start_soc`                      | string                       | sim  | Veículos elétricos: estado de carga da bateria (%) no fim                                    |
| `end_start_range`                    | string                       | sim  | Veículos elétricos: autonomia no fim                                                         |
| `recharge_energy`                    | string                       | sim  | Veículos elétricos: energia recarregada                                                      |
| `electric_energy_consumption`        | string                       | sim  | Veículos elétricos: energia consumida                                                        |
| `regeneration_energy`                | string                       | sim  | Veículos elétricos: energia regenerada                                                       |
| `created_at` / `updated_at`          | string (ISO-8601 UTC)        | sim  | Datas do registro                                                                            |
| `license_plate`                      | string                       | sim  | Placa do veículo                                                                             |
| `license_nmbr`                       | string                       | sim  | Prefixo do veículo                                                                           |
| `line_name`                          | string                       | sim  | Linhas operadas na viagem, separadas por vírgula (empresas com integração de linhas)         |
| `subtrips`                           | array                        | não  | Trechos da viagem por motorista identificado (pode ser vazio)                                |

Cada item de `subtrips`:

| Campo           | Tipo                         | Nulo | Descrição                                |
| --------------- | ---------------------------- | ---- | ---------------------------------------- |
| `id`            | integer                      | não  | Id do trecho                             |
| `trip_id`       | integer                      | não  | `drive_id` da viagem                     |
| `asset_id`      | integer                      | sim  | Identificador do veículo na telemetria   |
| `start_drive`   | string `YYYY-MM-DD HH:MM:SS` | não  | Início do trecho (UTC)                   |
| `end_drive`     | string `YYYY-MM-DD HH:MM:SS` | sim  | Fim do trecho (UTC)                      |
| `driver_name`   | string                       | não  | Nome do motorista                        |
| `group_desc`    | string                       | sim  | Grupo do motorista                       |
| `worker_id`     | integer                      | não  | Matrícula do motorista                   |
| `mileage`       | number                       | sim  | Distância do trecho (km)                 |
| `fuel_used`     | number                       | sim  | Combustível do trecho (litros)           |
| `idle_duration` | integer                      | sim  | Tempo parado com motor ligado (segundos) |

**Erros:** `400` para `date` ausente ou inválido e para `per_page` acima de 1000.
**Paginação:** resposta no envelope paginado padrão (veja a Introdução). Navegue incrementando `page` até `current_page` = `last_page`.

Reference: https://docs.datalbus.com.br/datalbus-api-v-2/viagens/listar-viagens

## 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 de início das viagens, em UTC, no formato `YYYY-MM-DD`.
- `per_page` (integer, optional) — Itens por página (1 a 1000, padrão 10).

## Response

### 200

OK

- `to` (integer, required)
- `data` (list of ListarViagensViagensResponseDataItem, required)
- `from` (integer, required)
- `path` (string, required)
- `links` (list of ListarViagensViagensResponseLinksItem, required)
- `total` (integer, required)
- `per_page` (integer, required)
- `last_page` (integer, required)
- `current_page` (integer, required)
- `last_page_url` (string, required)
- `first_page_url` (string, required)
- `next_page_url` (any, optional, nullable)
- `prev_page_url` (any, optional, nullable)

## Errors

### 400 Listar Viagens Viagens Request Bad Request Error

Bad Request

- `message` (BadRequestErrorBodyMessage, required)

### 401 Listar Viagens Viagens Request Unauthorized Error

Unauthorized

- `message` (string, required)

## Types

### ListarViagensViagensResponseDataItem

- `id` (integer, required)
- `date` (string, required)
- `mileage` (double, required)
- `asset_id` (integer, required)
- `drive_id` (integer, required)
- `subtrips` (list of ListarViagensViagensResponseDataItemSubtripsItem, required)
- `end_drive` (string, required)
- `fuel_used` (double, required)
- `line_name` (string, required)
- `created_at` (datetime, required)
- `updated_at` (datetime, required)
- `end_latitude` (string, required)
- `engine_hours` (double, required)
- `license_nmbr` (string, required)
- `end_longitude` (string, required)
- `license_plate` (string, required)
- `total_mileage` (double, required)
- `drive_duration` (string, required)
- `start_latitude` (string, required)
- `start_longitude` (string, required)
- `log_gps_processed` (boolean, required)
- `total_engine_hours` (double, required)
- `end_start_soc` (any, optional, nullable)
- `trip_start_soc` (any, optional, nullable)
- `end_start_range` (any, optional, nullable)
- `recharge_energy` (any, optional, nullable)
- `trip_start_range` (any, optional, nullable)
- `regeneration_energy` (any, optional, nullable)
- `electric_energy_consumption` (any, optional, nullable)

### ListarViagensViagensResponseLinksItem

- `label` (string, required)
- `active` (boolean, required)
- `url` (any, optional, nullable)

### BadRequestErrorBodyMessage

- `date` (list of string, required)

### ListarViagensViagensResponseDataItemSubtripsItem

- `id` (integer, required)
- `mileage` (double, required)
- `trip_id` (integer, required)
- `asset_id` (integer, required)
- `end_drive` (string, required)
- `fuel_used` (double, required)
- `worker_id` (integer, required)
- `group_desc` (string, required)
- `driver_name` (string, required)
- `start_drive` (string, required)
- `idle_duration` (integer, required)

## Examples

**Response**

```json
{
  "to": 2,
  "data": [
    {
      "id": 98765432,
      "date": "2026-10-25 09:02:11",
      "mileage": 38.4,
      "asset_id": 1234567,
      "drive_id": 5551234,
      "subtrips": [
        {
          "id": 334455,
          "mileage": 38.4,
          "trip_id": 5551234,
          "asset_id": 1234567,
          "end_drive": "2026-10-25 10:23:40",
          "fuel_used": 17.2,
          "worker_id": 12345,
          "group_desc": "MOTORISTA - GP1",
          "driver_name": "JOAO DA SILVA",
          "start_drive": "2026-10-25 09:02:11",
          "idle_duration": 420
        }
      ],
      "end_drive": "2026-10-25 10:23:40",
      "fuel_used": 17.2,
      "line_name": "100 - Centro",
      "created_at": "2026-10-25T10:24:02Z",
      "updated_at": "2026-10-25T10:30:00Z",
      "end_latitude": "-25.441",
      "engine_hours": 1.35,
      "license_nmbr": "1020",
      "end_longitude": "-49.29",
      "license_plate": "ABC1D23",
      "total_mileage": 412345.7,
      "drive_duration": "01:21:29",
      "start_latitude": "-25.4284",
      "start_longitude": "-49.2733",
      "log_gps_processed": true,
      "total_engine_hours": 15234.5
    },
    {
      "id": 98765433,
      "date": "2026-10-25 11:00:05",
      "mileage": 61.2,
      "asset_id": 1234999,
      "drive_id": 5551301,
      "subtrips": [
        {
          "id": 1,
          "mileage": 1.1,
          "trip_id": 1,
          "asset_id": 1,
          "end_drive": "end_drive",
          "fuel_used": 1.1,
          "worker_id": 1,
          "group_desc": "group_desc",
          "driver_name": "driver_name",
          "start_drive": "start_drive",
          "idle_duration": 1
        }
      ],
      "end_drive": "2026-10-25 13:05:40",
      "fuel_used": 0,
      "line_name": "100 - Centro",
      "created_at": "2026-10-25T10:24:02Z",
      "updated_at": "2026-10-25T10:30:00Z",
      "end_latitude": "-25.441",
      "engine_hours": 2.1,
      "license_nmbr": "5130",
      "end_longitude": "-49.29",
      "license_plate": "EVB2C34",
      "total_mileage": 98012.3,
      "drive_duration": "02:05:35",
      "start_latitude": "-25.4284",
      "start_longitude": "-49.2733",
      "log_gps_processed": true,
      "total_engine_hours": 15234.5,
      "end_start_soc": "71",
      "trip_start_soc": "92",
      "end_start_range": "185",
      "recharge_energy": "0",
      "trip_start_range": "240",
      "regeneration_energy": "18.2",
      "electric_energy_consumption": "74.5"
    }
  ],
  "from": 1,
  "path": "https://datalbus.com.br:8000/api/v2/trips",
  "links": [
    {
      "label": "« Previous",
      "active": false
    },
    {
      "label": "1",
      "active": true,
      "url": "https://datalbus.com.br:8000/api/v2/trips?page=1"
    },
    {
      "label": "Next »",
      "active": false
    }
  ],
  "total": 2,
  "per_page": 100,
  "last_page": 1,
  "current_page": 1,
  "last_page_url": "https://datalbus.com.br:8000/api/v2/trips?page=1",
  "first_page_url": "https://datalbus.com.br:8000/api/v2/trips?page=1"
}
```

**SDK Code**

```python 200 - Lista de viagens
import requests

url = "https://datalbus.com.br:8000/api/v2/trips"

querystring = {"date":"2026-10-25"}

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

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

print(response.json())
```

```javascript 200 - Lista de viagens
const url = 'https://datalbus.com.br:8000/api/v2/trips?date=2026-10-25';
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 - Lista de viagens
package main

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

func main() {

	url := "https://datalbus.com.br:8000/api/v2/trips?date=2026-10-25"

	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 - Lista de viagens
require 'uri'
require 'net/http'

url = URI("https://datalbus.com.br:8000/api/v2/trips?date=2026-10-25")

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 - Lista de viagens
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://datalbus.com.br:8000/api/v2/trips?date=2026-10-25")
  .header("Authorization", "Bearer <token>")
  .asString();
```

```php 200 - Lista de viagens
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://datalbus.com.br:8000/api/v2/trips?date=2026-10-25', [
  'headers' => [
    'Authorization' => 'Bearer <token>',
  ],
]);

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

```csharp 200 - Lista de viagens
using RestSharp;

var client = new RestClient("https://datalbus.com.br:8000/api/v2/trips?date=2026-10-25");
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "Bearer <token>");
IRestResponse response = client.Execute(request);
```

```swift 200 - Lista de viagens
import Foundation

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

let request = NSMutableURLRequest(url: NSURL(string: "https://datalbus.com.br:8000/api/v2/trips?date=2026-10-25")! 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()
```