SPOTIO Trips V2 API

The controller is responsible for handling operations on trip objects. Trips are created from routes and record places that user visited during the trip. Some apis are exposed through Trips and some through TripsV2 both can be used interchangeably.

Operations 11

POST /api/trips/v2/start Starts a new trip based on points
DELETE /api/trips/v2/active
POST /api/trips/v2/{id}/stops/polygon Add trip stops from polygon
PATCH /api/trips/v2/{id} Update a trip
GET /api/trips/v2/{id} Retrieve a trip by ID
PATCH /api/trips/v2/{id}/stops/{stopId} Update a stop of a trip
POST /api/trips/v2/{id}/stops/{stopId}/skip Skip a stop of a trip
POST /api/trips/v2/prepare/daily Prepare daily trip
POST /api/trips/v2/prepare/by-date Prepare trip by date
POST /api/trips/v2/prepare/polygon Prepare trip for polygon
GET /api/trips/v2/quickMessageTemplates

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/spotio-tripsv2-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

spotio-tripsv2-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: v1
  title: Spotio 2.0 Trips V2 API
  description: "    The controller is responsible for handling operations on trip objects.\n    Trips are created from routes and record places that user visited during the trip.\n    Some apis are exposed through Trips and some through TripsV2 both can be used interchangeably."
  contact:
    name: Contact us
    url: https://spotio.com/contact/
    email: support@spotio.com
servers:
- url: https://api.spotio2.com
  description: Production
- url: https://app-test.spotio2.com
  description: Test
security:
- Bearer: []
tags:
- name: TripsV2
  description: "    The controller is responsible for handling operations on trip objects.\n    Trips are created from routes and record places that user visited during the trip.\n    Some apis are exposed through Trips and some through TripsV2 both can be used interchangeably."
paths:
  /api/trips/v2/start:
    post:
      tags:
      - TripsV2
      summary: Starts a new trip based on points
      parameters:
      - name: x-app-version
        in: header
        schema:
          type: string
      - name: filterId
        in: query
        schema:
          type: string
      requestBody:
        content:
          application/merge-patch+json:
            schema:
              $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.TripsV2.StartPoints.StartTripBasedOnPointsRequestV2'
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.TripsV2.StartPoints.StartTripBasedOnPointsRequestV2'
          application/json:
            schema:
              $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.TripsV2.StartPoints.StartTripBasedOnPointsRequestV2'
          text/json:
            schema:
              $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.TripsV2.StartPoints.StartTripBasedOnPointsRequestV2'
          application/*+json:
            schema:
              $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.TripsV2.StartPoints.StartTripBasedOnPointsRequestV2'
      responses:
        '200':
          description: Success
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.TripsV2.TripV2'
            application/json:
              schema:
                $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.TripsV2.TripV2'
            text/json:
              schema:
                $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.TripsV2.TripV2'
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ResultType.Results.Error'
            application/json:
              schema:
                $ref: '#/components/schemas/ResultType.Results.Error'
            text/json:
              schema:
                $ref: '#/components/schemas/ResultType.Results.Error'
        '401':
          description: Unauthorized
      security:
      - Bearer: []
      servers:
      - url: https://api.spotio2.com
        description: Production
      - url: https://app-test.spotio2.com
        description: Test
  /api/trips/v2/active:
    delete:
      tags:
      - TripsV2
      responses:
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ResultType.Results.Error'
            application/json:
              schema:
                $ref: '#/components/schemas/ResultType.Results.Error'
            text/json:
              schema:
                $ref: '#/components/schemas/ResultType.Results.Error'
        '401':
          description: Unauthorized
      security:
      - Bearer: []
      servers:
      - url: https://api.spotio2.com
        description: Production
      - url: https://app-test.spotio2.com
        description: Test
  /api/trips/v2/{id}/stops/polygon:
    post:
      tags:
      - TripsV2
      summary: Add trip stops from polygon
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int32
      requestBody:
        content:
          application/merge-patch+json:
            schema:
              $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.TripsV2.AddTripStopsFromPolygonRequest'
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.TripsV2.AddTripStopsFromPolygonRequest'
          application/json:
            schema:
              $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.TripsV2.AddTripStopsFromPolygonRequest'
          text/json:
            schema:
              $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.TripsV2.AddTripStopsFromPolygonRequest'
          application/*+json:
            schema:
              $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.TripsV2.AddTripStopsFromPolygonRequest'
      responses:
        '200':
          description: Success
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.TripsV2.TripV2'
            application/json:
              schema:
                $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.TripsV2.TripV2'
            text/json:
              schema:
                $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.TripsV2.TripV2'
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ResultType.Results.Error'
            application/json:
              schema:
                $ref: '#/components/schemas/ResultType.Results.Error'
            text/json:
              schema:
                $ref: '#/components/schemas/ResultType.Results.Error'
        '401':
          description: Unauthorized
      security:
      - Bearer: []
      servers:
      - url: https://api.spotio2.com
        description: Production
      - url: https://app-test.spotio2.com
        description: Test
  /api/trips/v2/{id}:
    patch:
      tags:
      - TripsV2
      summary: Update a trip
      parameters:
      - name: x-app-version
        in: header
        schema:
          type: string
      - name: filterId
        in: query
        schema:
          type: string
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int32
      requestBody:
        content:
          application/merge-patch+json:
            schema:
              $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.TripsV2.Patch.PatchTripRequestV2'
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.TripsV2.Patch.PatchTripRequestV2'
          application/json:
            schema:
              $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.TripsV2.Patch.PatchTripRequestV2'
          text/json:
            schema:
              $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.TripsV2.Patch.PatchTripRequestV2'
          application/*+json:
            schema:
              $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.TripsV2.Patch.PatchTripRequestV2'
      responses:
        '200':
          description: Success
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.TripsV2.TripV2'
            application/json:
              schema:
                $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.TripsV2.TripV2'
            text/json:
              schema:
                $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.TripsV2.TripV2'
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ResultType.Results.Error'
            application/json:
              schema:
                $ref: '#/components/schemas/ResultType.Results.Error'
            text/json:
              schema:
                $ref: '#/components/schemas/ResultType.Results.Error'
        '401':
          description: Unauthorized
      security:
      - Bearer: []
      servers:
      - url: https://api.spotio2.com
        description: Production
      - url: https://app-test.spotio2.com
        description: Test
    get:
      tags:
      - TripsV2
      summary: Retrieve a trip by ID
      description: Retrieves details of a trip identified by its ID.
      parameters:
      - name: x-app-version
        in: header
        schema:
          type: string
      - name: filterId
        in: query
        schema:
          type: string
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: Success
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.TripsV2.TripV2'
            application/json:
              schema:
                $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.TripsV2.TripV2'
            text/json:
              schema:
                $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.TripsV2.TripV2'
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ResultType.Results.Error'
            application/json:
              schema:
                $ref: '#/components/schemas/ResultType.Results.Error'
            text/json:
              schema:
                $ref: '#/components/schemas/ResultType.Results.Error'
        '401':
          description: Unauthorized
      security:
      - Bearer: []
      servers:
      - url: https://api.spotio2.com
        description: Production
      - url: https://app-test.spotio2.com
        description: Test
  /api/trips/v2/{id}/stops/{stopId}:
    patch:
      tags:
      - TripsV2
      summary: Update a stop of a trip
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int32
      - name: stopId
        in: path
        required: true
        schema:
          type: integer
          format: int32
      requestBody:
        content:
          application/merge-patch+json:
            schema:
              $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.Trips.Patch.PatchStopRequest'
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.Trips.Patch.PatchStopRequest'
          application/json:
            schema:
              $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.Trips.Patch.PatchStopRequest'
          text/json:
            schema:
              $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.Trips.Patch.PatchStopRequest'
          application/*+json:
            schema:
              $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.Trips.Patch.PatchStopRequest'
      responses:
        '200':
          description: Success
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.TripsV2.TripStopDetailsV2'
            application/json:
              schema:
                $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.TripsV2.TripStopDetailsV2'
            text/json:
              schema:
                $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.TripsV2.TripStopDetailsV2'
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ResultType.Results.Error'
            application/json:
              schema:
                $ref: '#/components/schemas/ResultType.Results.Error'
            text/json:
              schema:
                $ref: '#/components/schemas/ResultType.Results.Error'
        '401':
          description: Unauthorized
      security:
      - Bearer: []
      servers:
      - url: https://api.spotio2.com
        description: Production
      - url: https://app-test.spotio2.com
        description: Test
  /api/trips/v2/{id}/stops/{stopId}/skip:
    post:
      tags:
      - TripsV2
      summary: Skip a stop of a trip
      description: Skip stop of a trip, coordinates indicate place where the skip was stopped
      parameters:
      - name: x-app-version
        in: header
        schema:
          type: string
      - name: filterId
        in: query
        schema:
          type: string
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int32
      - name: stopId
        in: path
        required: true
        schema:
          type: integer
          format: int32
      requestBody:
        content:
          application/merge-patch+json:
            schema:
              $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.Coordinate'
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.Coordinate'
          application/json:
            schema:
              $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.Coordinate'
          text/json:
            schema:
              $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.Coordinate'
          application/*+json:
            schema:
              $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.Coordinate'
      responses:
        '200':
          description: Success
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.TripsV2.TripV2'
            application/json:
              schema:
                $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.TripsV2.TripV2'
            text/json:
              schema:
                $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.TripsV2.TripV2'
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ResultType.Results.Error'
            application/json:
              schema:
                $ref: '#/components/schemas/ResultType.Results.Error'
            text/json:
              schema:
                $ref: '#/components/schemas/ResultType.Results.Error'
        '401':
          description: Unauthorized
      security:
      - Bearer: []
      servers:
      - url: https://api.spotio2.com
        description: Production
      - url: https://app-test.spotio2.com
        description: Test
  /api/trips/v2/prepare/daily:
    post:
      tags:
      - TripsV2
      summary: Prepare daily trip
      parameters:
      - name: x-app-version
        in: header
        schema:
          type: string
      requestBody:
        content:
          application/merge-patch+json:
            schema:
              $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.Trips.Prepare.PrepareDailyTripRequest'
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.Trips.Prepare.PrepareDailyTripRequest'
          application/json:
            schema:
              $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.Trips.Prepare.PrepareDailyTripRequest'
          text/json:
            schema:
              $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.Trips.Prepare.PrepareDailyTripRequest'
          application/*+json:
            schema:
              $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.Trips.Prepare.PrepareDailyTripRequest'
      responses:
        '200':
          description: Success
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.RoutesV2.CalculatedRouteV2'
            application/json:
              schema:
                $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.RoutesV2.CalculatedRouteV2'
            text/json:
              schema:
                $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.RoutesV2.CalculatedRouteV2'
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ResultType.Results.Error'
            application/json:
              schema:
                $ref: '#/components/schemas/ResultType.Results.Error'
            text/json:
              schema:
                $ref: '#/components/schemas/ResultType.Results.Error'
        '401':
          description: Unauthorized
      security:
      - Bearer: []
      servers:
      - url: https://api.spotio2.com
        description: Production
      - url: https://app-test.spotio2.com
        description: Test
  /api/trips/v2/prepare/by-date:
    post:
      tags:
      - TripsV2
      summary: Prepare trip by date
      parameters:
      - name: x-app-version
        in: header
        schema:
          type: string
      requestBody:
        content:
          application/merge-patch+json:
            schema:
              $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.Trips.Prepare.PrepareTripByDateRequest'
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.Trips.Prepare.PrepareTripByDateRequest'
          application/json:
            schema:
              $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.Trips.Prepare.PrepareTripByDateRequest'
          text/json:
            schema:
              $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.Trips.Prepare.PrepareTripByDateRequest'
          application/*+json:
            schema:
              $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.Trips.Prepare.PrepareTripByDateRequest'
      responses:
        '200':
          description: Success
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.RoutesV2.CalculatedRouteV2'
            application/json:
              schema:
                $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.RoutesV2.CalculatedRouteV2'
            text/json:
              schema:
                $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.RoutesV2.CalculatedRouteV2'
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ResultType.Results.Error'
            application/json:
              schema:
                $ref: '#/components/schemas/ResultType.Results.Error'
            text/json:
              schema:
                $ref: '#/components/schemas/ResultType.Results.Error'
        '401':
          description: Unauthorized
      security:
      - Bearer: []
      servers:
      - url: https://api.spotio2.com
        description: Production
      - url: https://app-test.spotio2.com
        description: Test
  /api/trips/v2/prepare/polygon:
    post:
      tags:
      - TripsV2
      summary: Prepare trip for polygon
      description: Prepares a trip based on a polygon request.
      parameters:
      - name: x-app-version
        in: header
        schema:
          type: string
      requestBody:
        content:
          application/merge-patch+json:
            schema:
              $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.Trips.Prepare.PrepareTripForPolygonRequest'
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.Trips.Prepare.PrepareTripForPolygonRequest'
          application/json:
            schema:
              $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.Trips.Prepare.PrepareTripForPolygonRequest'
          text/json:
            schema:
              $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.Trips.Prepare.PrepareTripForPolygonRequest'
          application/*+json:
            schema:
              $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.Trips.Prepare.PrepareTripForPolygonRequest'
      responses:
        '200':
          description: Success
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.RoutesV2.CalculatedRouteV2'
            application/json:
              schema:
                $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.RoutesV2.CalculatedRouteV2'
            text/json:
              schema:
                $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.RoutesV2.CalculatedRouteV2'
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ResultType.Results.Error'
            application/json:
              schema:
                $ref: '#/components/schemas/ResultType.Results.Error'
            text/json:
              schema:
                $ref: '#/components/schemas/ResultType.Results.Error'
        '401':
          description: Unauthorized
      security:
      - Bearer: []
      servers:
      - url: https://api.spotio2.com
        description: Production
      - url: https://app-test.spotio2.com
        description: Test
  /api/trips/v2/quickMessageTemplates:
    get:
      tags:
      - TripsV2
      responses:
        '200':
          description: Success
      security:
      - Bearer: []
      servers:
      - url: https://api.spotio2.com
        description: Production
      - url: https://app-test.spotio2.com
        description: Test
components:
  schemas:
    Spotio.Frontend.ViewModel.RoutesAndTrips.TripsV2.ActivityLoggedAtTripStop:
      type: object
      additionalProperties: false
      properties:
        id:
          type:
          - string
          - 'null'
        activityTemplateId:
          type:
          - string
          - 'null'
        resultId:
          type:
          - string
          - 'null'
    Spotio.UserTracking.Client.DTO.Routing.TravelTypeDto:
      type: string
      enum:
      - Driving
      - Walking
    Spotio.Frontend.ViewModel.RoutesAndTrips.Trips.Prepare.PrepareDailyTripRequest:
      type: object
      additionalProperties: false
      properties:
        options:
          $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.Options'
        filterId:
          type:
          - string
          - 'null'
    Spotio.Frontend.ViewModel.RoutesAndTrips.Trips.Prepare.PrepareTripByDateRequest:
      type: object
      additionalProperties: false
      properties:
        options:
          $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.NullableOptions'
        filterId:
          type:
          - string
          - 'null'
        scheduledDate:
          type: string
          format: date-time
    Spotio.UserTracking.Client.DTO.Routing.OptimizationDto:
      type: string
      enum:
      - Distance
      - Schedule
      - Manually
    Spotio.Frontend.ViewModel.RoutesAndTrips.TripsV2.StartPoints.StartTripBasedOnPointsRequestV2:
      type: object
      additionalProperties: false
      properties:
        options:
          $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.Options'
        stops:
          type:
          - array
          - 'null'
          description: List of routing stops for the trip
          items:
            $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.RoutingStopV2'
        scheduledDate:
          type:
          - string
          - 'null'
          format: date-time
    Spotio.Frontend.ViewModel.RoutesAndTrips.RoutingStopV2:
      type: object
      additionalProperties: false
      properties:
        dataObjectId:
          type:
          - string
          - 'null'
          description: The ID of the data object associated with the stop.
        lat:
          type: number
          description: The latitude of the stop.
          format: double
        lng:
          type: number
          description: The longitude of the stop.
          format: double
        address:
          type:
          - string
          - 'null'
          description: The address of the stop.
        placeId:
          type:
          - string
          - 'null'
          description: The google place id of the stop.
        type:
          $ref: '#/components/schemas/Spotio.UserTracking.Client.DTO.Routing.StopTypeDto'
        name:
          type:
          - string
          - 'null'
          description: The stop name.
        enhanced:
          type: boolean
          description: Whether the stop was added by route enhancement.
    ResultType.Results.IError:
      type: object
      additionalProperties: false
      properties:
        message:
          type:
          - string
          - 'null'
          readOnly: true
        memberName:
          type:
          - string
          - 'null'
          readOnly: true
        filePath:
          type:
          - string
          - 'null'
          readOnly: true
        line:
          type: integer
          format: int32
          readOnly: true
    Spotio.Frontend.ViewModel.RoutesAndTrips.TripsV2.AddTripStopsFromPolygonRequest:
      type: object
      additionalProperties: false
      properties:
        polygon:
          type:
          - array
          - 'null'
          description: A list of coordinates that define the polygon to search for stops within
          items:
            $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.Coordinate'
        filterId:
          type:
          - string
          - 'null'
          description: An optional filter ID to limit the results to data objects matching the specified filter, refer to FiltersController for more details
    Spotio.UserTracking.Client.DTO.Routing.TripStopDataObjectAccessDto:
      type: string
      enum:
      - Visible
      - NotVisible
    Spotio.Frontend.ViewModel.RoutesAndTrips.TripsV2.TripStopDetailsV2:
      type: object
      additionalProperties: false
      properties:
        id:
          type:
          - string
          - 'null'
          description: The id of the stop.
        status:
          $ref: '#/components/schemas/Spotio.UserTracking.Client.DTO.Routing.TripStopStatusDto'
        visitDurationInSeconds:
          type:
          - integer
          - 'null'
          description: The visit duration in seconds associated with the stop.
          format: int32
        loggedActivity:
          $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.TripsV2.ActivityLoggedAtTripStop'
        addressUnit:
          type:
          - string
          - 'null'
          description: The address unit of the record associated with the stop.
        phones:
          type:
          - array
          - 'null'
          description: The list of phone numbers of the record associated with the stop.
          items:
            type: string
        dataObjectAccess:
          $ref: '#/components/schemas/Spotio.UserTracking.Client.DTO.Routing.TripStopDataObjectAccessDto'
        dataObjectId:
          type:
          - string
          - 'null'
          description: The ID of the data object associated with the stop.
        address:
          type:
          - string
          - 'null'
          description: The address of the stop.
        pinId:
          type:
          - string
          - 'null'
          description: The pin id of the stop.
        lat:
          type: number
          description: The latitude of the stop.
          format: double
        lng:
          type: number
          description: The longitude of the stop.
          format: double
        stageId:
          type:
          - string
          - 'null'
          description: The stage id of the record associated with the stop.
        timeToNextStopInSeconds:
          type: integer
          description: The time to the next stop in seconds.
          format: int64
        distanceToNextStop:
          type: integer
          description: The distance to the next stop in meters.
          format: int64
        activities:
          type:
          - array
          - 'null'
          description: The list of activities associated with the stop.
          items:
            $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.RoutingActivity'
        placeId:
          type:
          - string
          - 'null'
          description: The google place id of the stop.
        type:
          $ref: '#/components/schemas/Spotio.UserTracking.Client.DTO.Routing.StopTypeDto'
        dataObjectTypeId:
          type:
          - string
          - 'null'
          description: The ID of the data object type associated with the stop.
        name:
          type:
          - string
          - 'null'
          description: The stop name.
        color:
          type:
          - string
          - 'null'
          description: Color of the stop.
        scoreLabel:
          type:
          - string
          - 'null'
          description: Score label assigned to the object.
        nba:
          type:
          - string
          - 'null'
          description: Next best action assigned to the object.
        enhanced:
          type:
          - boolean
          - 'null'
          description: Whether the stop was added by route enhancement.
    Spotio.Frontend.ViewModel.RoutesAndTrips.TripsV2.TripV2:
      type: object
      additionalProperties: false
      properties:
        id:
          type:
          - string
          - 'null'
          description: The id of the trip.
        name:
          type:
          - string
          - 'null'
          description: The name of the trip.
        ownerId:
          type:
          - string
          - 'null'
          description: The id of the route owner.
        routeId:
          type:
          - string
          - 'null'
          description: The id of the route associated with the trip.
        status:
          $ref: '#/components/schemas/Spotio.UserTracking.Client.DTO.Routing.TripStatusDto'
        totalDistance:
          type: integer
          description: The total distance of the trip in meters.
          format: int64
        totalTimeInSeconds:
          type: integer
          description: The total time of the trip in seconds.
          format: int64
        options:
          $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.Options'
        stops:
          type:
          - array
          - 'null'
          description: List of the trip stops.
          items:
            $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.TripsV2.TripStopDetailsV2'
        numberOfStops:
          type: integer
          description: Number of stops in the trip
          format: int32
        overviewPolyline:
          type:
          - string
          - 'null'
          description: The overview polyline of the trip.
        activityTimeInSeconds:
          type: integer
          description: Sum of activities time of the trip
          format: int64
        totalTimeAndActivityTimeInSeconds:
          type: integer
          description: Sum of activities time plus rout

# --- truncated at 32 KB (42 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/spotio/refs/heads/main/openapi/spotio-tripsv2-api-openapi.yml