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.
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
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