Under Armour Routes API

Manage running, cycling, and other fitness routes

OpenAPI Specification

under-armour-routes-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: MapMyFitness Devices Routes API
  description: The MapMyFitness API (Under Armour Connected Fitness API) provides RESTful access to fitness data including workouts, routes, user profiles, heart rate zones, fitness devices, and webhooks. The platform powers MapMyFitness, MapMyRun, MapMyRide, and MapMyWalk and supports over 400 partner apps and devices. Authentication uses OAuth 2.0.
  version: 7.1.0
  contact:
    name: Under Armour Developer Support
    url: https://developer.mapmyfitness.com/
  termsOfService: https://developer.mapmyfitness.com/Terms_Of_Service/
servers:
- url: https://api.ua.com
  description: Under Armour Connected Fitness API
tags:
- name: Routes
  description: Manage running, cycling, and other fitness routes
paths:
  /v7.1/route/:
    get:
      operationId: listRoutes
      summary: List Routes
      description: Retrieves routes for a user or near a geographic location. Supports filtering by distance, privacy, and location.
      tags:
      - Routes
      parameters:
      - name: user
        in: query
        required: false
        description: User resource href or ID (required if close_to_location not specified)
        schema:
          type: string
      - name: close_to_location
        in: query
        required: false
        description: Lat,lng coordinate pair to find nearby routes (required if user not specified)
        schema:
          type: string
      - name: search_radius
        in: query
        required: false
        description: Search radius in meters (0-50000, default 5000). Used with close_to_location.
        schema:
          type: integer
      - name: minimum_distance
        in: query
        required: false
        description: Minimum route distance in meters
        schema:
          type: number
      - name: maximum_distance
        in: query
        required: false
        description: Maximum route distance in meters
        schema:
          type: number
      - name: text_search
        in: query
        required: false
        description: Search routes by name or description
        schema:
          type: string
      - name: order_by
        in: query
        required: false
        description: Sort field
        schema:
          type: string
          enum:
          - distance
          - distance_from_point
          - date_created
          - date_updated
          - text_match
      - name: field_set
        in: query
        required: false
        description: Field set level — default or detailed (includes GPS points and elevation)
        schema:
          type: string
          enum:
          - default
          - detailed
      responses:
        '200':
          description: Paginated list of routes
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RouteCollection'
        '401':
          description: Authentication required
      security:
      - oauth2:
        - read
    post:
      operationId: createRoute
      summary: Create Route
      description: Creates a new route.
      tags:
      - Routes
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RouteCreate'
      responses:
        '201':
          description: Route created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Route'
        '400':
          description: Invalid request body
        '401':
          description: Authentication required
      security:
      - oauth2:
        - write
  /v7.1/route/{id}/:
    get:
      operationId: getRoute
      summary: Get Route
      description: Retrieves a single route by ID. Use field_set=detailed to include GPS points and elevation data.
      tags:
      - Routes
      parameters:
      - name: id
        in: path
        required: true
        description: Route ID
        schema:
          type: string
      - name: field_set
        in: query
        required: false
        description: Field set — default or detailed
        schema:
          type: string
          enum:
          - default
          - detailed
      responses:
        '200':
          description: Route details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Route'
        '401':
          description: Authentication required
        '404':
          description: Route not found
      security:
      - oauth2:
        - read
    put:
      operationId: updateRoute
      summary: Update Route
      description: Updates an existing route.
      tags:
      - Routes
      parameters:
      - name: id
        in: path
        required: true
        description: Route ID
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RouteCreate'
      responses:
        '200':
          description: Route updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Route'
        '401':
          description: Authentication required
        '404':
          description: Route not found
      security:
      - oauth2:
        - write
    delete:
      operationId: deleteRoute
      summary: Delete Route
      description: Deletes a route.
      tags:
      - Routes
      parameters:
      - name: id
        in: path
        required: true
        description: Route ID
        schema:
          type: string
      responses:
        '204':
          description: Route deleted successfully
        '401':
          description: Authentication required
        '404':
          description: Route not found
      security:
      - oauth2:
        - write
components:
  schemas:
    Route:
      type: object
      properties:
        name:
          type: string
          description: Route name
        description:
          type: string
          description: Route description
        distance:
          type: number
          description: Route distance in meters
        city:
          type: string
        state:
          type: string
        country:
          type: string
        postal_code:
          type: string
        starting_location:
          type: object
          description: Starting GPS coordinates
        created_datetime:
          type: string
          format: date-time
        updated_datetime:
          type: string
          format: date-time
        total_ascent:
          type: number
          description: Total elevation gain in meters (detailed field set)
        total_descent:
          type: number
          description: Total elevation loss in meters (detailed field set)
        min_elevation:
          type: number
          description: Minimum elevation in meters (detailed field set)
        max_elevation:
          type: number
          description: Maximum elevation in meters (detailed field set)
    RouteCollection:
      type: object
      properties:
        total_count:
          type: integer
        _embedded:
          type: object
          properties:
            routes:
              type: array
              items:
                $ref: '#/components/schemas/Route'
        _links:
          type: object
    RouteCreate:
      type: object
      required:
      - name
      - distance
      properties:
        name:
          type: string
          description: Route name
        description:
          type: string
          description: Route description
        distance:
          type: number
          description: Route distance in meters
        points:
          type: array
          description: GPS waypoints as [lng, lat, elevation] arrays
          items:
            type: array
            items:
              type: number
  securitySchemes:
    oauth2:
      type: oauth2
      description: OAuth 2.0 authentication
      flows:
        authorizationCode:
          authorizationUrl: https://www.mapmyfitness.com/v7.1/oauth2/authorize/
          tokenUrl: https://api.ua.com/v7.1/oauth2/access_token/
          scopes:
            read: Read access to fitness data
            write: Write access to fitness data
externalDocs:
  description: MapMyFitness API Documentation
  url: https://developer.mapmyfitness.com/docs/