Roadsync unauthenticated API
Unauthenticated operations not otherwise functionally categorized
Unauthenticated operations not otherwise functionally categorized
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/roadsync-unauthenticated-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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: 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