Skip to main content
GET
/
api
/
route-calls
List Route Calls
curl --request GET \
  --url https://api.example.com/api/route-calls
{
  "success": true,
  "data": [
    {
      "id": "<string>",
      "routeId": {},
      "organizerId": "<string>",
      "title": "<string>",
      "description": {},
      "image": "<string>",
      "dateRoute": "<string>",
      "pace": "<string>",
      "status": "<string>",
      "createdAt": "<string>",
      "updatedAt": "<string>",
      "route": {
        "id": "<string>",
        "name": "<string>",
        "slug": "<string>",
        "image": "<string>",
        "approximateDistance": "<string>",
        "level": [
          {}
        ]
      },
      "organizer": {
        "id": "<string>",
        "name": {},
        "imageUrl": {}
      },
      "meetingPoints": [
        {
          "id": "<string>",
          "type": "<string>",
          "name": "<string>",
          "customName": {},
          "location": {},
          "time": {},
          "createdAt": "<string>"
        }
      ],
      "_count": {
        "attendances": 123
      }
    }
  ],
  "pagination": {
    "page": 123,
    "limit": 123,
    "totalCount": 123,
    "totalPages": 123,
    "hasNextPage": true,
    "hasPreviousPage": true
  }
}

Overview

Retrieve a paginated list of route calls with support for filtering by status, organizer, route, and date. This is a public endpoint that does not require authentication.

Query Parameters

status
string
Filter by route call status. Must be one of:
  • SCHEDULED - Route call is scheduled for the future
  • ONGOING - Route call is currently in progress
  • COMPLETED - Route call has been completed
  • CANCELLED - Route call has been cancelled
organizerId
string
Filter by organizer’s user ID (Clerk user ID format, e.g., user_2abc123def456)
upcoming
string
Filter by date. Use "true" for upcoming route calls or "false" for past route calls.
routeId
string
Filter by predefined route UUID
page
string
default:"1"
Page number for pagination (must be >= 1)
limit
string
default:"20"
Number of items per page (must be between 1 and 100)

Response

success
boolean
Indicates if the request was successful
data
array
Array of route call objects
pagination
object
Pagination metadata

Example Request

curl -X GET "https://api.losinmaduros.com/api/route-calls?status=SCHEDULED&upcoming=true&page=1&limit=20"

Example Response

{
  "success": true,
  "data": [
    {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "routeId": "987e6543-e21b-12d3-a456-426614174000",
      "organizerId": "user_2abc123def456",
      "title": "Ruta Casa de Campo - Domingo",
      "description": "Ruta tranquila por el parque...",
      "image": "https://example.com/route-call.jpg",
      "dateRoute": "2026-02-15T10:00:00Z",
      "pace": "MARIPOSA",
      "status": "SCHEDULED",
      "createdAt": "2026-02-10T10:00:00Z",
      "updatedAt": "2026-02-10T10:00:00Z",
      "route": {
        "id": "987e6543-e21b-12d3-a456-426614174000",
        "name": "Casa de Campo",
        "slug": "casa-de-campo",
        "image": "https://example.com/route.jpg",
        "approximateDistance": "15 km",
        "level": ["INTERMEDIATE"]
      },
      "organizer": {
        "id": "user_2abc123def456",
        "name": "John",
        "imageUrl": "https://example.com/avatar.jpg"
      },
      "meetingPoints": [
        {
          "id": "abc12345-e89b-12d3-a456-426614174000",
          "type": "PRIMARY",
          "name": "Explanada",
          "customName": null,
          "location": "https://maps.app.goo.gl/gCJfpLSoy3D454Y19",
          "time": null,
          "createdAt": "2026-02-10T10:00:00Z"
        }
      ],
      "_count": {
        "attendances": 12
      }
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 20,
    "totalCount": 45,
    "totalPages": 3,
    "hasNextPage": true,
    "hasPreviousPage": false
  }
}

Build docs developers (and LLMs) love