Roadsync unauthenticated API

Unauthenticated operations not otherwise functionally categorized

Operations 4

OPTIONS /login #
POST /login Accepts user credentials for validation, create a session and returns a session token #
GET /ping Does roundtrip with the backend API #
OPTIONS /ping #

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-unauthenticated-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-unauthenticated-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  contact:
    email: christo.delange@roadsync.com
  description: This API allows the Roadsync clients to manage aspects of the RoadSync service via an API.
  license:
    name: Copyright (c) 2020, RoadSync Inc.
  title: Client API v1.8 authenticated Unauthenticated API
  version: 1.8.45
  x-api-id: 3ea39084-d8df-11ea-ad77-0017b600647f
  x-audience: external-partner
servers:
- url: https://client-api.staging.roadsync.com/{basePath}
  variables:
    Product:
      default: ClientApi
    basePath:
      default: v1
security:
- api_key: []
- session_token: []
tags:
- description: Unauthenticated operations not otherwise functionally categorized
  name: unauthenticated
paths:
  /login:
    options:
      operationId: login_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:
      - unauthenticated
    post:
      description: Validate credentials and establish session
      operationId: login_post
      requestBody:
        $ref: '#/components/requestBodies/LoginRequest'
      responses:
        '200':
          $ref: '#/components/responses/LoginResponse'
        '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: []
      summary: Accepts user credentials for validation, create a session and returns a session token
      tags:
      - unauthenticated
  /ping:
    get:
      description: Test backend connectivity
      operationId: ping_get
      parameters:
      - explode: true
        in: query
        name: pong
        required: false
        schema:
          maxLength: 2048
          pattern: /^.*$/
          type: string
        style: form
      responses:
        '200':
          $ref: '#/components/responses/PingResponse'
        '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: []
      summary: Does roundtrip with the backend API
      tags:
      - unauthenticated
    options:
      operationId: ping_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:
      - unauthenticated
components:
  requestBodies:
    LoginRequest:
      content:
        application/json:
          examples:
            userlogin:
              summary: API user login example
              value:
                Password: password
                Username: user
          schema:
            $ref: '#/components/schemas/UsernamePassword'
      description: Perform user authentication against the API
      required: true
  responses:
    ServiceError500:
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
      description: Service Error
    NotFound404:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Problem'
      description: 404 Not found
    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
    TooManyRequests429:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Problem'
      description: 429 too many requests response
    UnexpectedError:
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
      description: unexpected error response
    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
    PingResponse:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PingResponse'
      description: A backend test response
    LoginResponse:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/LoginResponse'
      description: A login 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
  schemas:
    PhoneNumberInternational:
      maxLength: 128
      pattern: /^(?:(?:\(?(?:00|\+)([1-4]\d\d|[1-9]\d?)\)?)?[\-\.\ \\\/]?)?((?:\(?\d{1,}\)?[\-\.\ \\\/]?){0,})(?:[\-\.\ \\\/]?(?:#|ext\.?|extension|x)[\-\.\ \\\/]?(\d+))?$/
      type: string
    UserInfo:
      additionalProperties: false
      properties:
        avatarUrl:
          maxLength: 2048
          pattern: /^.*$/
          type: string
        companyId:
          $ref: '#/components/schemas/HashedId'
        createdAt:
          $ref: '#/components/schemas/DateTime'
        email:
          $ref: '#/components/schemas/EmailAddress'
        fileId:
          $ref: '#/components/schemas/HashedId'
        first:
          maxLength: 256
          pattern: /^.*$/
          type: string
        firstPasswordReset:
          type: boolean
        freshchatRestoreId:
          maxLength: 256
          pattern: /^.*$/
          type: string
        id:
          $ref: '#/components/schemas/HashedId'
        isLocked:
          type: boolean
        isVerified:
          type: boolean
        last:
          maxLength: 256
          pattern: /^.*$/
          type: string
        lastLogin:
          $ref: '#/components/schemas/DateTime'
        locationIds:
          items:
            $ref: '#/components/schemas/HashedId'
          maxItems: 64
          type: array
        lockedAt:
          $ref: '#/components/schemas/DateTime'
        phone:
          $ref: '#/components/schemas/PhoneNumberInternational'
        roles:
          items:
            $ref: '#/components/schemas/Role'
          maxItems: 64
          type: array
        tfaEnabled:
          type: boolean
        updatedAt:
          $ref: '#/components/schemas/DateTime'
        username:
          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
    UsernamePassword:
      additionalProperties: false
      description: User credentials object
      properties:
        Password:
          maxLength: 128
          pattern: /^.*$/
          type: string
        Username:
          maxLength: 64
          pattern: /^.*$/
          type: string
      type: object
    PingResponse:
      additionalProperties: false
      allOf:
      - $ref: '#/components/schemas/CodeMessage'
      - $ref: '#/components/schemas/Pong'
      type: object
    Message:
      maxLength: 2048
      pattern: /^[a-zA-Z0-9 ]*$/
      type: string
    CodeEnum:
      default: Success
      enum:
      - Success
      - Error
      - Exception
      type: string
    LoginResponse:
      allOf:
      - $ref: '#/components/schemas/CodeMessage'
      - additionalProperties: false
        properties:
          SessionToken:
            $ref: '#/components/schemas/SessionToken'
          UserInfo:
            $ref: '#/components/schemas/UserInfo'
        type: object
      description: Session token / identifier
      type: object
    Pong:
      additionalProperties: false
      description: A ping response which also has API version
      example:
        pong: pong
        version: 1.8.45
      properties:
        pong:
          maxLength: 2048
          pattern: /^.*$/
          type: string
        timestamp:
          $ref: '#/components/schemas/DateTime'
        version:
          maxLength: 64
          pattern: ^[a-zA-Z0-9]*$
          type: string
      required:
      - version
      type: object
    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
    SessionToken:
      description: Session token / identifier
      format: password
      maxLength: 2048
      pattern: /^.*$/
      type: string
    HashedId:
      maxLength: 128
      pattern: /^\w+$/
      type: string
    Role:
      enum:
      - ''
      - superadmin
      - companyadmin
      - accountant
      - employee
      - warehouseworker
      - rsemployee
      - shiftmanager
      - clientsupport
      - implementation
      - wexsettlementservice
      type: string
    EmailAddress:
      maxLength: 256
      pattern: /^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,5})$/
      type: string
    DateTime:
      description: A timestamp of last modification of the entry.
      example: '2020-07-21 17:32:28Z'
      format: date-time
      type: string
  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