SPOTIO Routes V2 API

API for routes. You can manage routes and calculate route based on stops list. You can also start a new trip based on the route.

OpenAPI Specification

spotio-routesv2-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: v1
  title: Spotio 2.0 Routes V2 API
  description: API for routes. You can manage routes and calculate route based on stops list. You can also start a new trip based on the route.
  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: RoutesV2
  description: API for routes. You can manage routes and calculate route based on stops list. You can also start a new trip based on the route.
paths:
  /api/routes/v2:
    post:
      tags:
      - RoutesV2
      summary: Create new route.
      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.RoutesV2.Create.CreateRouteRequestV2'
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.RoutesV2.Create.CreateRouteRequestV2'
          application/json:
            schema:
              $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.RoutesV2.Create.CreateRouteRequestV2'
          text/json:
            schema:
              $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.RoutesV2.Create.CreateRouteRequestV2'
          application/*+json:
            schema:
              $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.RoutesV2.Create.CreateRouteRequestV2'
      responses:
        '200':
          description: Success
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.RoutesV2.RouteDetailsV2'
            application/json:
              schema:
                $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.RoutesV2.RouteDetailsV2'
            text/json:
              schema:
                $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.RoutesV2.RouteDetailsV2'
        '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/routes/v2/{id}:
    patch:
      tags:
      - RoutesV2
      summary: Update the route.
      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.RoutesV2.Patch.PatchRouteRequestV2'
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/Morcatko.AspNetCore.JsonMergePatch.JsonMergePatchDocument`1[[Spotio.Frontend.ViewModel.Appointment.V2.PatchAppointmentV2, Spotio.Frontend.ViewModel, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]'
          application/json:
            schema:
              $ref: '#/components/schemas/Morcatko.AspNetCore.JsonMergePatch.JsonMergePatchDocument`1[[Spotio.Frontend.ViewModel.Appointment.V2.PatchAppointmentV2, Spotio.Frontend.ViewModel, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]'
          text/json:
            schema:
              $ref: '#/components/schemas/Morcatko.AspNetCore.JsonMergePatch.JsonMergePatchDocument`1[[Spotio.Frontend.ViewModel.Appointment.V2.PatchAppointmentV2, Spotio.Frontend.ViewModel, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]'
          application/*+json:
            schema:
              $ref: '#/components/schemas/Morcatko.AspNetCore.JsonMergePatch.JsonMergePatchDocument`1[[Spotio.Frontend.ViewModel.Appointment.V2.PatchAppointmentV2, Spotio.Frontend.ViewModel, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]'
      responses:
        '200':
          description: Success
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.RoutesV2.RouteDetailsV2'
            application/json:
              schema:
                $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.RoutesV2.RouteDetailsV2'
            text/json:
              schema:
                $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.RoutesV2.RouteDetailsV2'
        '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:
      - RoutesV2
      summary: Get the route by id.
      parameters:
      - name: x-app-version
        in: header
        schema:
          type: string
      - name: filterId
        in: query
        schema:
          type: string
      - name: id
        in: path
        description: Id of the route.
        required: true
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: Success
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.RoutesV2.RouteDetailsV2'
            application/json:
              schema:
                $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.RoutesV2.RouteDetailsV2'
            text/json:
              schema:
                $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.RoutesV2.RouteDetailsV2'
        '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/routes/v2/preview:
    get:
      tags:
      - RoutesV2
      summary: Get a preview of the first route scheduled for today for the calling user, intended for the home screen widget.
      responses:
        '200':
          description: Success
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.RoutesV2.RoutePreview'
            application/json:
              schema:
                $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.RoutesV2.RoutePreview'
            text/json:
              schema:
                $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.RoutesV2.RoutePreview'
        '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/routes/v2/calculate:
    post:
      tags:
      - RoutesV2
      summary: Calculate the route.
      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.RoutesV2.Calculate.CalculateRouteRequestV2'
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.RoutesV2.Calculate.CalculateRouteRequestV2'
          application/json:
            schema:
              $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.RoutesV2.Calculate.CalculateRouteRequestV2'
          text/json:
            schema:
              $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.RoutesV2.Calculate.CalculateRouteRequestV2'
          application/*+json:
            schema:
              $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.RoutesV2.Calculate.CalculateRouteRequestV2'
      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/routes/v2/enhance:
    post:
      tags:
      - RoutesV2
      summary: Enhance the route.
      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.RoutesV2.Enhance.EnhanceRouteRequest'
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.RoutesV2.Enhance.EnhanceRouteRequest'
          application/json:
            schema:
              $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.RoutesV2.Enhance.EnhanceRouteRequest'
          text/json:
            schema:
              $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.RoutesV2.Enhance.EnhanceRouteRequest'
          application/*+json:
            schema:
              $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.RoutesV2.Enhance.EnhanceRouteRequest'
      responses:
        '200':
          description: Success
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.RoutesV2.EnhancedRoute'
            application/json:
              schema:
                $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.RoutesV2.EnhancedRoute'
            text/json:
              schema:
                $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.RoutesV2.EnhancedRoute'
        '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/routes/v2/{id}/start:
    post:
      tags:
      - RoutesV2
      summary: Start the trip based on the route.
      parameters:
      - name: x-app-version
        in: header
        schema:
          type: string
      - name: filterId
        in: query
        schema:
          type: string
      - name: id
        in: path
        description: Id of the route.
        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/routes/v2/recommended-stops:
    post:
      tags:
      - RoutesV2
      summary: Get recommended stops for the route.
      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.RoutesV2.RecommendedStops.GetRecommendedStopsRequest'
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.RoutesV2.RecommendedStops.GetRecommendedStopsRequest'
          application/json:
            schema:
              $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.RoutesV2.RecommendedStops.GetRecommendedStopsRequest'
          text/json:
            schema:
              $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.RoutesV2.RecommendedStops.GetRecommendedStopsRequest'
          application/*+json:
            schema:
              $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.RoutesV2.RecommendedStops.GetRecommendedStopsRequest'
      responses:
        '200':
          description: Success
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.RoutesV2.RecommendedStops.GetRecommendedStopsResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.RoutesV2.RecommendedStops.GetRecommendedStopsResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.RoutesV2.RecommendedStops.GetRecommendedStopsResponse'
        '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
components:
  schemas:
    Spotio.Frontend.ViewModel.RoutesAndTrips.RoutesV2.RecommendedStops.GetRecommendedStopsRequest:
      type: object
      additionalProperties: false
      properties:
        stops:
          type:
          - array
          - 'null'
          description: List of the route stops.
          items:
            $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.RoutingStopV2'
        scheduledDate:
          type:
          - string
          - 'null'
          description: The scheduled date of the route.
          format: date-time
        ownerId:
          type:
          - string
          - 'null'
          description: The id of the route owner.
    Spotio.UserTracking.Client.DTO.Routing.TripStopStatusDto:
      type: string
      enum:
      - NotReachedYet
      - Visited
      - Skipped
    Spotio.Frontend.ViewModel.RoutesAndTrips.RoutesV2.RouteDetailsV2:
      type: object
      additionalProperties: false
      properties:
        id:
          type:
          - string
          - 'null'
          description: The id of the route.
        ownerId:
          type:
          - string
          - 'null'
          description: The id of the route owner.
        notes:
          type:
          - string
          - 'null'
          description: Additional notes about the route.
        name:
          type:
          - string
          - 'null'
          description: The name of the route.
        status:
          $ref: '#/components/schemas/Spotio.UserTracking.Client.DTO.Routing.RouteStatusDto'
        options:
          $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.Options'
        totalDistance:
          type: integer
          description: The total distance of the route in meters.
          format: int64
        totalTimeInSeconds:
          type: integer
          description: The total time of the route in seconds.
          format: int64
        stops:
          type:
          - array
          - 'null'
          description: List of the route stops.
          items:
            $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.RoutesV2.RouteStopDetailsV2'
        overviewPolyline:
          type:
          - string
          - 'null'
          description: The overview polyline of the route.
        permissionsStatus:
          $ref: '#/components/schemas/Spotio.UserTracking.Client.DTO.Routing.RouteStatusDto'
        scheduledDate:
          type:
          - string
          - 'null'
          description: The scheduled date of the route.
          format: date-time
    Spotio.Frontend.ViewModel.RoutesAndTrips.RoutesV2.Patch.PatchRouteRequestV2:
      type: object
      additionalProperties: false
      properties:
        name:
          type:
          - string
          - 'null'
          description: The name of the route.
        ownerId:
          type:
          - string
          - 'null'
          description: The id of the route owner.
        notes:
          type:
          - string
          - 'null'
          description: Additional notes about the route.
        status:
          $ref: '#/components/schemas/Spotio.UserTracking.Client.DTO.Routing.RouteStatusDto'
        options:
          $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.OptionsPatch'
        stops:
          type:
          - array
          - 'null'
          description: List of the route stops.
          items:
            $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.RoutesV2.RouteStopWithOptionalIdV2'
        scheduledDate:
          type:
          - string
          - 'null'
          description: The scheduled date of the route.
          format: date-time
    Spotio.UserTracking.Client.DTO.Routing.TripStatusDto:
      type: string
      enum:
      - Active
      - Finished
    Spotio.Frontend.ViewModel.RoutesAndTrips.TripsV2.ActivityLoggedAtTripStop:
      type: object
      additionalProperties: false
      properties:
        id:
          type:
          - string
          - 'null'
        activityTemplateId:
          type:
          - string
          - 'null'
        resultId:
          type:
          - string
          - 'null'
    Spotio.Frontend.ViewModel.RoutesAndTrips.RoutesV2.RoutePreview:
      type: object
      additionalProperties: false
      properties:
        route:
          $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.RoutesV2.RouteDetailsV2'
        recommendedStops:
          type:
          - array
          - 'null'
          description: Recommended stops to overlay on the route.
          items:
            $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.RoutesV2.RecommendedStop'
        mapCenter:
          $ref: '#/components/schemas/Spotio.Frontend.ViewModel.UserTracking.LastUserPosition'
    Spotio.Frontend.ViewModel.UserTracking.LastUserPosition:
      type: object
      additionalProperties: false
      properties:
        lat:
          type:
          - number
          - 'null'
          description: Latitude of the user's last known position; null when unknown.
          format: double
        lng:
          type:
          - number
          - 'null'
          description: Longitude of the user's last known position; null when unknown.
          format: double
        updatedAt:
          type:
          - string
          - 'null'
          description: When the position was recorded; null when unknown.
          format: date-time
    Spotio.Frontend.ViewModel.RoutesAndTrips.RoutesV2.RouteStopDetailsV2:
      type: object
      additionalProperties: false
      properties:
        stageId:
          type:
          - string
          - 'null'
          description: The stage id of the record associated with the stop.
        distanceToNextStop:
          type: integer
          description: The distance to the next stop in meters.
          format: int64
        timeToNextStopInSeconds:
          type: integer
          description: The time to the next stop in seconds.
          format: int64
        activities:
          type:
          - array
          - 'null'
          description: The list of activities associated with the stop.
          items:
            $ref: '#/components/schemas/Spotio.Frontend.ViewModel.RoutesAndTrips.RoutingActivity'
        status:
          $ref: '#/components/schemas/Spotio.UserTracking.Client.DTO.Routing.StopStatusDto'
        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
        color:
          type:
          - string
          - 'null'
        scoreLabel:
          type:
          - string
          - 'null'
          description: Score label assigned to the object.
        nba:
          type:
          - string
          - 'null'
          description: Next best action assigned to the object.
        id:
          type:
          - string
          - 'null'
          description: The ID of the stop.
        dataObjectTypeId:
          type:
          - string
          - 'null'
          description: The ID of the data object type associated with the stop.
        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.
    Spotio.Frontend.ViewModel.RoutesAndTrips.OptionsPatch:
      type: object
      additionalProperties: false
      properties:
        type:
          $ref: '#/components/schemas/Spotio.UserTracking.Client.DTO.Routing.TravelTypeDto'
        avoidTolls:
          type:
          - boolean
          - 'null'
          description: Whether to avoid tolls when calculating the route.
        avoidHighways:
          type:
          - boolean
          - 'null'
          description: Whether to avoid highways when calculating the route.
        optimization:
          $ref: '#/components/schemas/Spotio.UserTracking.Client.DTO.Routing.OptimizationDto'
    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.
    Spotio.UserTracking.Client.DTO.Routing.OptimizationDto:
      type: string
      enum:
      - Distance
      - Schedule
      - Manually
    Spotio.Frontend.ViewModel.RoutesAndTrips.RoutesV2.RouteStopWithOptionalIdV2:
      type: object
      additionalProperties: false
      properties:
        id:
          type:
          - string
          - 'null'
          description: Identifier of the route stop
        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.
    Spotio.UserTracking.Client.DTO.Routing.TravelTypeDto:
      type: string
      enum:
      - Driving
      - Walking
    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:
          - stri

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