Roadsync Location API

Company location operations

Operations 5

GET /location/list Retrieve a list of company locations #
OPTIONS /location/list Location list options #
GET /location Get a Location list #
GET /location/{location_id} Get a Location #
GET /location/{location_id}/product Get a Product list #

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/roadsync-location-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

roadsync-location-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Roadsync Location API
  x-refined-note:
  - x-api-id differs across the merged source definitions and was not carried
  - x-audience differs across the merged source definitions and was not carried
  version: '1.0'
  description: 'Operations tagged location across 2 of this provider''s published API definitions: roadsync-client-api-openapi.json, roadsync-company-openapi.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://client-api.staging.roadsync.com/{basePath}
  variables:
    Product:
      default: ClientApi
    basePath:
      default: v1
- url: https://test.api.roadsync.app/company/v1
  description: Sandbox/Test Company API
- url: https://api.roadsync.app/company/v1
  description: Production Company API
- url: '{server}'
  description: Development
  variables:
    server:
      default: https://dev.api.roadsync.app/company/v1
tags:
- description: Company location operations
  name: Location
paths:
  /location/list:
    get:
      description: 'Retrieve a list of company locations. If no CompanyId is provided the user''s companyId is used (if set).

        If the user''s company Id is also not set and error will be returned.'
      operationId: location_list_get
      parameters:
      - explode: true
        in: query
        name: companyId
        required: false
        schema:
          $ref: '#/components/schemas/HashedId'
        style: form
      responses:
        '200':
          $ref: '#/components/responses/LocationListResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '404':
          $ref: '#/components/responses/NotFound404'
        '429':
          $ref: '#/components/responses/TooManyRequests429'
        '500':
          $ref: '#/components/responses/ServiceError500'
        default:
          $ref: '#/components/responses/UnexpectedError'
      security:
      - api_key: []
      - session_token: []
      summary: Retrieve a list of company locations
      tags:
      - Location
    options:
      operationId: location_list_options
      responses:
        '200':
          $ref: '#/components/responses/Options200'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '404':
          $ref: '#/components/responses/NotFound404'
        '429':
          $ref: '#/components/responses/TooManyRequests429'
        '500':
          $ref: '#/components/responses/ServiceError500'
        default:
          $ref: '#/components/responses/UnexpectedError'
      security: []
      tags:
      - Location
      summary: Location list options
      x-summary-source: derived
    servers:
    - url: https://client-api.staging.roadsync.com/{basePath}
      variables:
        Product:
          default: ClientApi
        basePath:
          default: v1
  /location:
    get:
      summary: Get a Location list
      description: Get a Location list.
      tags:
      - Location
      operationId: get-location-list
      security: []
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/LocationList'
                  errors:
                    $ref: '#/components/schemas/Errors'
              examples:
                success:
                  $ref: '#/components/examples/LocationListResponseExample'
                error:
                  $ref: '#/components/examples/ErrorResponseExample'
    servers:
    - url: https://test.api.roadsync.app/company/v1
      description: Sandbox/Test Company API
    - url: https://api.roadsync.app/company/v1
      description: Production Company API
    - url: '{server}'
      description: Development
      variables:
        server:
          default: https://dev.api.roadsync.app/company/v1
  /location/{location_id}:
    parameters:
    - name: location_id
      in: path
      schema:
        type: string
      required: true
      description: The id of the location.
    get:
      summary: Get a Location
      description: Get a Location.
      tags:
      - Location
      operationId: get-location
      security: []
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/Location_2'
                  errors:
                    $ref: '#/components/schemas/Errors'
              examples:
                success:
                  $ref: '#/components/examples/LocationResponseExample'
                error:
                  $ref: '#/components/examples/ErrorResponseExample'
    servers:
    - url: https://test.api.roadsync.app/company/v1
      description: Sandbox/Test Company API
    - url: https://api.roadsync.app/company/v1
      description: Production Company API
    - url: '{server}'
      description: Development
      variables:
        server:
          default: https://dev.api.roadsync.app/company/v1
  /location/{location_id}/product:
    parameters:
    - name: location_id
      in: path
      schema:
        type: string
      required: true
      description: The id of the location.
    get:
      summary: Get a Product list
      description: Get a Product list.
      tags:
      - Location
      operationId: get-location-product-list
      security: []
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/ProductList'
                  errors:
                    $ref: '#/components/schemas/Errors'
              examples:
                success:
                  $ref: '#/components/examples/ProductListResponseExample'
                error:
                  $ref: '#/components/examples/ErrorResponseExample'
    servers:
    - url: https://test.api.roadsync.app/company/v1
      description: Sandbox/Test Company API
    - url: https://api.roadsync.app/company/v1
      description: Production Company API
    - url: '{server}'
      description: Development
      variables:
        server:
          default: https://dev.api.roadsync.app/company/v1
components:
  responses:
    ServiceError500:
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
      description: Service Error
    ForbiddenError:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CodeMessage'
      description: Request is completely forbidden. API not provided or method and or endpoint not supported
      headers:
        WWW_Authenticate:
          explode: false
          schema:
            maxLength: 2048
            pattern: /^.*$/
            type: string
          style: simple
    NotFound404:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Problem'
      description: 404 Not found
    TooManyRequests429:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Problem'
      description: 429 too many requests response
    UnauthorizedError:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CodeMessage'
      description: API key is missing or invalid
      headers:
        WWW_Authenticate:
          explode: false
          schema:
            maxLength: 2048
            pattern: /^.*$/
            type: string
          style: simple
    Options200:
      content:
        application/json:
          schema:
            additionalProperties: false
            type: object
      description: 200 response
      headers:
        Access-Control-Allow-Credentials:
          explode: false
          schema:
            type: boolean
          style: simple
        Access-Control-Allow-Headers:
          explode: false
          schema:
            maxLength: 256
            pattern: ^[a-zA-Z0-9 ,]*$
            type: string
          style: simple
        Access-Control-Allow-Methods:
          explode: false
          schema:
            maxLength: 256
            pattern: ^[a-zA-Z0-9 ,]*$
            type: string
          style: simple
        Access-Control-Allow-Origin:
          explode: false
          schema:
            maxLength: 256
            pattern: /^.*$/
            type: string
          style: simple
        Cache-Control:
          explode: false
          schema:
            maxLength: 256
            pattern: ^[a-zA-Z0-9 ,\-]*$
            type: string
          style: simple
        Expires:
          explode: false
          schema:
            maxLength: 256
            pattern: ^[a-zA-Z0-9 \-]*$
            type: string
          style: simple
        Pragma:
          explode: false
          schema:
            maxLength: 256
            pattern: ^[a-zA-Z0-9 ,]*$
            type: string
          style: simple
    UnexpectedError:
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
      description: unexpected error response
    LocationListResponse:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/LocationListResponse'
      description: A location list response
  schemas:
    CodeEnum:
      default: Success
      enum:
      - Success
      - Error
      - Exception
      type: string
    StateCode:
      enum:
      - AL
      - AK
      - AZ
      - AR
      - CA
      - CO
      - CT
      - DE
      - DC
      - FL
      - GA
      - HI
      - ID
      - IL
      - IN
      - IA
      - KS
      - KY
      - LA
      - ME
      - MD
      - MA
      - MI
      - MN
      - MS
      - MO
      - MT
      - NE
      - NV
      - NH
      - NJ
      - NM
      - NY
      - NC
      - ND
      - OH
      - OK
      - OR
      - PA
      - RI
      - SC
      - SD
      - TN
      - TX
      - UT
      - VT
      - VA
      - WA
      - WV
      - WI
      - WY
      - MEX
      - CAN
      type: string
    CodeMessage:
      additionalProperties: false
      description: A generic error object generally used for 500 responses
      properties:
        code:
          $ref: '#/components/schemas/CodeEnum'
        message:
          $ref: '#/components/schemas/Message'
      required:
      - code
      - message
    LocationListResponse:
      allOf:
      - $ref: '#/components/schemas/CodeMessage'
      - properties:
          location_list:
            description: A list of locations
            items:
              $ref: '#/components/schemas/Location'
            maxItems: 128
            type: array
        type: object
    Shift:
      additionalProperties: false
      properties:
        id:
          $ref: '#/components/schemas/HashedId'
        locationId:
          $ref: '#/components/schemas/HashedId'
        name:
          maxLength: 256
          pattern: /^.*$/
          type: string
      type: object
    Problem:
      additionalProperties: false
      properties:
        detail:
          description: 'A human readable explanation specific to this occurrence of the

            problem.

            '
          example: Connection to database timed out
          maxLength: 2048
          pattern: /^.*$/
          type: string
        instance:
          description: 'An absolute URI that identifies the specific occurrence of the problem.

            It may or may not yield further information if dereferenced.

            '
          format: uri
          maxLength: 2048
          pattern: /^.*$/
          type: string
        status:
          description: 'The HTTP status code generated by the origin server for this occurrence

            of the problem.

            '
          example: 503
          format: int32
          minimum: 100
          type: integer
          exclusiveMaximum: 600
        title:
          description: 'A short, summary of the problem type. Written in english and readable

            for engineers (usually not suited for non technical stakeholders and

            not localized); example: Service Unavailable

            '
          maxLength: 256
          pattern: /^.*$/
          type: string
        type:
          default: about:blank
          description: 'An absolute URI that identifies the problem type.  When dereferenced,

            it SHOULD provide human-readable documentation for the problem type

            (e.g., using HTML).

            '
          example: https://problems.roadsync.com/problem/unspecified-error
          format: uri
          maxLength: 2048
          pattern: /^.*$/
          type: string
      type: object
    TimeZone:
      enum:
      - US/Hawaii
      - US/Alaska
      - US/Pacific
      - US/Mountain
      - US/Central
      - US/Eastern
      - ''
      type: string
    HashedId:
      maxLength: 128
      pattern: /^\w+$/
      type: string
    CustomFieldType:
      enum:
      - ''
      - unknown
      - input
      - phone
      - email
      - select
      - numeric
      type: string
    CustomField:
      additionalProperties: false
      properties:
        deletedAt:
          $ref: '#/components/schemas/DateTime'
        id:
          $ref: '#/components/schemas/HashedId'
        isRequired:
          type: boolean
        isShownInList:
          type: boolean
        name:
          maxLength: 256
          pattern: /^.*$/
          type: string
        options:
          additionalProperties: false
          type: object
        title:
          maxLength: 2048
          pattern: /^.*$/
          type: string
        type:
          $ref: '#/components/schemas/CustomFieldType'
      type: object
    Message:
      maxLength: 2048
      pattern: /^[a-zA-Z0-9 ]*$/
      type: string
    Department:
      additionalProperties: false
      properties:
        id:
          $ref: '#/components/schemas/HashedId'
        locationId:
          $ref: '#/components/schemas/HashedId'
        name:
          maxLength: 2048
          pattern: /^.*$/
          type: string
      type: object
    Location:
      additionalProperties: false
      properties:
        city:
          maxLength: 256
          pattern: /^.*$/
          type: string
        companyId:
          $ref: '#/components/schemas/HashedId'
        createdAt:
          $ref: '#/components/schemas/DateTime'
        customFields:
          items:
            $ref: '#/components/schemas/CustomField'
          maxItems: 64
          type: array
        departments:
          items:
            $ref: '#/components/schemas/Department'
          maxItems: 64
          type: array
        id:
          $ref: '#/components/schemas/HashedId'
        locationReference:
          maxLength: 2048
          pattern: /^.*$/
          type: string
        name:
          maxLength: 256
          pattern: /^.*$/
          type: string
        shifts:
          items:
            $ref: '#/components/schemas/Shift'
          maxItems: 128
          type: array
        state:
          $ref: '#/components/schemas/StateCode'
        street:
          maxLength: 2048
          pattern: /^.*$/
          type: string
        street2:
          maxLength: 2048
          pattern: /^.*$/
          type: string
        timezone:
          $ref: '#/components/schemas/TimeZone'
        updatedAt:
          $ref: '#/components/schemas/DateTime'
        zip:
          maxLength: 10
          pattern: ^[0-9]{5}(|-[0-9]{4})$
          type: string
      type: object
    DateTime:
      description: A timestamp of last modification of the entry.
      example: '2020-07-21 17:32:28Z'
      format: date-time
      type: string
    CustomField_2:
      type: array
      properties:
        name:
          type: string
          description: custom field name
        title:
          type: string
          description: custom field title
        type:
          type: string
          description: custom field type
        isRequired:
          type: boolean
          description: is this required
        options:
          type: array
          description: custom field options
        isShownInList:
          type: boolean
          description: is this custom field shown in the list
        isEditable:
          type: boolean
          description: can custom field be edited
    LocationList:
      type: array
      items:
        $ref: '#/components/schemas/Location_2'
    Location_2:
      type: object
      additionalProperties: false
      properties:
        id:
          type: string
          description: The location id
        name:
          type: string
          description: The location name
        customFields:
          type: array
          description: List of arrays that describe each custom field
          items:
            $ref: '#/components/schemas/CustomField_2'
    ProductList:
      type: array
      items:
        $ref: '#/components/schemas/Product'
    Errors:
      type: array
      description: A list of errors that occurred during processing
      items:
        $ref: '#/components/schemas/Error'
    Error:
      type: object
      properties:
        code:
          type: string
    Product:
      type: object
      additionalProperties: false
      properties:
        id:
          type: string
          description: The product id
        name:
          type: string
          description: The product name
  examples:
    ErrorResponseExample:
      value:
        errors:
        - code: processing_error
    ProductListResponseExample:
      value:
        data:
        - id: jX52DZVG8A0MB1b1bgrkoqwWlJpY6m
          name: Product 1
        - id: HgTjnbkjbuyo786590KJBKjtfdGgjy
          name: Product 2
        - id: awefawef3wfaw3fh445hhsdrrsUHuy
          name: Product 3
    LocationListResponseExample:
      value:
        data:
        - id: jX52DZVG8A0MB1b1bgrkoqwWlJpY6m
          name: Location 1
        - id: HgTjnbkjbuyo786590KJBKjtfdGgjy
          name: Location 2
        - id: awefawef3wfaw3fh445hhsdrrsUHuy
          name: Location 3
    LocationResponseExample:
      value:
        data:
          id: jX52DZVG8A0MB1b1bgrkoqwWlJpY6m
          name: Location 1
          custom_fields:
          - name: customField2
            title: customField2
            type: input
            isRequired: false
            options: {}
            isShownInList: false
            isEditable: true
          - name: customField1
            title: customFields1
            type: input
            isRequired: false
            options: {}
            isShownInList: false
            isEditable: true
  securitySchemes:
    api_key:
      in: header
      name: x-api-key
      type: apiKey
      x-apikeyInfoFunc: client_api_server.controllers.authorization_controller.check_api_key
    session_token:
      bearerFormat: JWT
      scheme: bearer
      type: http
      x-apikeyInfoFunc: client_api_server.controllers.authorization_controller.check_session_token
    ApiKey:
      type: apiKey
      name: x-api-key
      in: header
x-refined-from:
- roadsync-client-api-openapi.json
- roadsync-company-openapi.json