ServiceChannel ServiceRequest API
The ServiceRequest API from ServiceChannel — 10 operation(s) for servicerequest.
The ServiceRequest API from ServiceChannel — 10 operation(s) for servicerequest.
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/servicechannel-servicerequest-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:
version: bearer.v1
title: Fixxbook.Bearer.Api.V1 AfterHours Service Request API
isOdataApi: false
relativePath: ''
discoveryPath: docs/bearer.v1
_isAuthorizedAccess: true
servers:
- url: https://sb2fixxbook.servicechannel.com:443/api
security:
- oauth2: []
tags:
- name: ServiceRequest
paths:
/servicerequest/providers:
get:
tags:
- ServiceRequest
summary: Get list of providers per service request
description: "Returns providers for specified location and trade or equipment. If no location, trade specified in request equipment values are used.\n <br /><br />Available for provider and subscriber usage."
operationId: GETv3_servicerequest_providers?locationId={locationId}&tradeId={tradeId}&trade={trade}&equipmentType={equipmentType}&providerRank={providerRank}&equipmentId={equipmentId}
parameters:
- name: locationId
in: query
description: Location Id
required: false
schema:
type: integer
format: int32
- name: tradeId
in: query
description: Trade Id
required: false
schema:
type: integer
format: int32
- name: trade
in: query
description: Trade
required: false
schema:
type: string
- name: equipmentType
in: query
description: Equipment type
required: false
schema:
type: string
- name: providerRank
in: query
description: Sets default provider with specified rank
required: false
schema:
type: integer
format: int32
- name: equipmentId
in: query
description: Sets default provider for specified equipment id
required: false
schema:
type: integer
format: int32
responses:
'200':
description: Request succeeded and the requested information is in the response.
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceChannel.Services.Messaging.Providers.GetServiceRequestProvidersResponse'
text/json:
schema:
$ref: '#/components/schemas/ServiceChannel.Services.Messaging.Providers.GetServiceRequestProvidersResponse'
'400':
description: Bad Request - the request could not be understood or was missing required parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
text/json:
schema:
$ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
deprecated: false
x-access: Any
/subscribers/current/servicerequest/info:
get:
tags:
- ServiceRequest
summary: Get Service Request Info
description: "Retrieves supporting info for \"Create Work Order\" operation.\n <br /><br />This method can only be used for subscriber's users that have assigned dashboard."
operationId: GETv3_subscribers_current_servicerequest_info?AreaName={AreaName}&ProblemType={ProblemType}&EquipmentType={EquipmentType}&ProblemCode={ProblemCode}&LocationId={LocationId}&SetupId={SetupId}&CallDate={CallDate}&Version={Version}
parameters:
- name: areaName
in: query
description: Name of the area
required: false
schema:
type: string
- name: problemType
in: query
description: Problem type
required: false
schema:
type: string
- name: equipmentType
in: query
description: Equipment type
required: false
schema:
type: string
- name: problemCode
in: query
description: Problem name
required: false
schema:
type: string
- name: locationId
in: query
description: ID of a location
required: false
schema:
type: integer
format: int32
- name: setupId
in: query
description: SetupId
required: false
schema:
type: integer
format: int32
- name: callDate
in: query
description: Call Date
required: false
schema:
type: string
format: date-time
- name: version
in: query
required: false
schema:
type: string
enum:
- Undefined
- V1
- V2
responses:
'200':
description: Request succeeded and the requested information is in the response.
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceChannel.Services.Messaging.Workorders.GetServiceRequestInfoResponse'
text/json:
schema:
$ref: '#/components/schemas/ServiceChannel.Services.Messaging.Workorders.GetServiceRequestInfoResponse'
'400':
description: "Bad Request - the request could not be understood or was missing required parameters.\n <br/>Error codes:\n <br/> 917 - Invalid work order identifier. Returned if workorderId is <= 0;"
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
text/json:
schema:
$ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
'401':
description: "Unauthorized indicates that the requested resource requires authentication.\n <br/>Error codes:\n <br/> 504 - API call rejected by security permissions;"
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
text/json:
schema:
$ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
deprecated: false
x-access: Subscribers
/subscribers/current/servicerequest/info/nosettings:
get:
tags:
- ServiceRequest
summary: Get Service Request Info Without Dashboard Settings
description: "Retrieves supporting info for \"Create Work Order\" operation.\n <br /><br />This method can only be used for subscriber's users that have assigned dashboard."
operationId: GETv3_subscribers_current_servicerequest_info_nosettings?AreaName={AreaName}&ProblemType={ProblemType}&EquipmentType={EquipmentType}&ProblemCode={ProblemCode}&LocationId={LocationId}&SetupId={SetupId}&CallDate={CallDate}&Version={Version}
parameters:
- name: areaName
in: query
description: Name of the area
required: false
schema:
type: string
- name: problemType
in: query
description: Problem type
required: false
schema:
type: string
- name: equipmentType
in: query
description: Equipment type
required: false
schema:
type: string
- name: problemCode
in: query
description: Problem name
required: false
schema:
type: string
- name: locationId
in: query
description: ID of a location
required: false
schema:
type: integer
format: int32
- name: setupId
in: query
description: SetupId
required: false
schema:
type: integer
format: int32
- name: callDate
in: query
description: Call Date
required: false
schema:
type: string
format: date-time
- name: version
in: query
required: false
schema:
type: string
enum:
- Undefined
- V1
- V2
responses:
'200':
description: Request succeeded and the requested information is in the response.
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceChannel.Services.Messaging.Workorders.GetServiceRequestInfoResponse'
text/json:
schema:
$ref: '#/components/schemas/ServiceChannel.Services.Messaging.Workorders.GetServiceRequestInfoResponse'
'400':
description: "Bad Request - the request could not be understood or was missing required parameters.\n <br/>Error codes:\n <br/> 917 - Invalid work order identifier. Returned if workorderId is <= 0;"
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
text/json:
schema:
$ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
'401':
description: "Unauthorized indicates that the requested resource requires authentication.\n <br/>Error codes:\n <br/> 504 - API call rejected by security permissions;"
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
text/json:
schema:
$ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
deprecated: false
x-access: Subscribers
/subscribers/current/servicerequest/addresses:
get:
tags:
- ServiceRequest
summary: ''
operationId: GETv3_subscribers_current_servicerequest_addresses?SubscriberId={SubscriberId}&SetupId={SetupId}&LocationId={LocationId}&ProviderId={ProviderId}&Trade={Trade}&TradeId={TradeId}
parameters:
- name: subscriberId
in: query
required: true
schema:
type: integer
format: int32
- name: setupId
in: query
required: true
schema:
type: integer
format: int32
- name: locationId
in: query
required: true
schema:
type: integer
format: int32
- name: providerId
in: query
required: true
schema:
type: integer
format: int32
- name: trade
in: query
required: false
schema:
type: string
- name: tradeId
in: query
required: false
schema:
type: integer
format: int32
responses:
'200':
description: Indicates that the request succeeded and that the requested information is in the response.
'400':
description: "Bad Request - the request could not be understood or was missing required parameters.\n <br/>Error codes:\n <br/> 503 - Request data is empty;"
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
text/json:
schema:
$ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
'401':
description: "Indicates that the requested resource requires authentication.\n <br/>Error codes:\n <br/> 504 - API call rejected by security permissions;"
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
text/json:
schema:
$ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
'404':
description: Indicates that the requested resource does not exist on the server.
deprecated: false
x-access: Any
/providers/current/subscribers/{subscriberId}/applicationissuechoice/servicerequest/info:
get:
tags:
- ServiceRequest
operationId: GETv3_providers_current_subscribers_{subscriberId}_applicationissuechoice_servicerequest_info?AreaName={AreaName}&ProblemType={ProblemType}&EquipmentType={EquipmentType}&ProblemCode={ProblemCode}&LocationId={LocationId}&SetupId={SetupId}&CallDate={CallDate}&Version={Version}
parameters:
- name: subscriberId
in: path
required: true
schema:
type: integer
format: int32
- name: areaName
in: query
description: Name of the area
required: false
schema:
type: string
- name: problemType
in: query
description: Problem type
required: false
schema:
type: string
- name: equipmentType
in: query
description: Equipment type
required: false
schema:
type: string
- name: problemCode
in: query
description: Problem name
required: false
schema:
type: string
- name: locationId
in: query
description: ID of a location
required: false
schema:
type: integer
format: int32
- name: setupId
in: query
description: SetupId
required: false
schema:
type: integer
format: int32
- name: callDate
in: query
description: Call Date
required: false
schema:
type: string
format: date-time
- name: version
in: query
required: false
schema:
type: string
enum:
- Undefined
- V1
- V2
responses:
'200':
description: Request succeeded and the requested information is in the response.
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceChannel.Services.Messaging.Workorders.GetServiceRequestInfoRequest'
text/json:
schema:
$ref: '#/components/schemas/ServiceChannel.Services.Messaging.Workorders.GetServiceRequestInfoRequest'
'400':
description: Bad Request - the request could not be understood or was missing required parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
text/json:
schema:
$ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
'401':
description: "Unauthorized indicates that the requested resource requires authentication.\n <br/>Error codes:\n <br/> 504 - API call rejected by security permissions;"
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
text/json:
schema:
$ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
deprecated: false
x-access: Providers
/providers/current/subscriber/{subscriberId}/location/{locationId}/applicationissuechoice/servicerequest/info:
get:
tags:
- ServiceRequest
operationId: GETv3_providers_current_subscriber_{subscriberId}_location_{locationId}_applicationissuechoice_servicerequest_info
parameters:
- name: subscriberId
in: path
required: true
schema:
type: integer
format: int32
- name: locationId
in: path
required: true
schema:
type: integer
format: int32
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/System.Object'
text/json:
schema:
$ref: '#/components/schemas/System.Object'
deprecated: false
x-access: Providers
/subscribers/current/servicerequest/overrides/props:
post:
tags:
- ServiceRequest
summary: Get WorkOrder properties with overrides
operationId: POSTv3_subscribers_current_servicerequest_overrides_props
responses:
'200':
description: WorkOrder properties with overrides are provided in the response.
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceChannel.Services.RequestHandlers.WorkOrders.GetWorkOrderPropertiesWithOverridesResponse'
text/json:
schema:
$ref: '#/components/schemas/ServiceChannel.Services.RequestHandlers.WorkOrders.GetWorkOrderPropertiesWithOverridesResponse'
'400':
description: "The request is not accepted due to bad syntax, missing parameters, insufficient data, etc.\n <br/>Error codes:\n 503 - Bad Request - validation fails"
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
text/json:
schema:
$ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
'401':
description: "The request is not authorized.\n <br/>Error codes:\n 504 - Missing or incorrect authentication credentials"
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
text/json:
schema:
$ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
'500':
description: "The server was unable to complete the request due to an internal error.\n <br/>Error codes:\n 501 - Unspecified internal server error occurred"
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
text/json:
schema:
$ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
deprecated: false
x-access: Subscribers
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceChannel.Services.Messaging.Workorders.GetWorkOrderPropertiesRequest'
text/json:
schema:
$ref: '#/components/schemas/ServiceChannel.Services.Messaging.Workorders.GetWorkOrderPropertiesRequest'
description: Properties request
required: true
/providers/current/subscribers/{subscriberId}/servicerequest/overrides/props:
post:
tags:
- ServiceRequest
summary: Get WorkOrder properties with overrides
operationId: POSTv3_providers_current_subscribers_{subscriberId}_servicerequest_overrides_props
parameters:
- name: subscriberId
in: path
description: Subscriber Id
required: true
schema:
type: integer
format: int32
responses:
'200':
description: WorkOrder properties with overrides are provided in the response.
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceChannel.Services.RequestHandlers.WorkOrders.GetWorkOrderPropertiesWithOverridesResponse'
text/json:
schema:
$ref: '#/components/schemas/ServiceChannel.Services.RequestHandlers.WorkOrders.GetWorkOrderPropertiesWithOverridesResponse'
'400':
description: "The request is not accepted due to bad syntax, missing parameters, insufficient data, etc.\n <br/>Error codes:\n 503 - Bad Request - validation fails"
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
text/json:
schema:
$ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
'401':
description: "The request is not authorized.\n <br/>Error codes:\n 504 - Missing or incorrect authentication credentials"
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
text/json:
schema:
$ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
'500':
description: "The server was unable to complete the request due to an internal error.\n <br/>Error codes:\n 501 - Unspecified internal server error occurred"
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
text/json:
schema:
$ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
deprecated: false
x-access: Providers
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceChannel.Services.Messaging.Workorders.GetWorkOrderPropertiesRequest'
text/json:
schema:
$ref: '#/components/schemas/ServiceChannel.Services.Messaging.Workorders.GetWorkOrderPropertiesRequest'
description: Properties request
required: true
/subscribers/current/servicerequest/duplicates/completed:
post:
tags:
- ServiceRequest
operationId: POSTv3_subscribers_current_servicerequest_duplicates_completed
responses:
'200':
description: Completed duplicate work orders are provided in the response.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ServiceChannel.Api.Model.Dashboard.WorkOrderViewModel'
text/json:
schema:
type: array
items:
$ref: '#/components/schemas/ServiceChannel.Api.Model.Dashboard.WorkOrderViewModel'
deprecated: false
x-access: Subscribers
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceChannel.Services.Messaging.Workorders.Dashboard.Requests.GetWarningTicketsPagedRequest'
text/json:
schema:
$ref: '#/components/schemas/ServiceChannel.Services.Messaging.Workorders.Dashboard.Requests.GetWarningTicketsPagedRequest'
required: true
/subscribers/current/servicerequest/duplicates/open:
post:
tags:
- ServiceRequest
operationId: POSTv3_subscribers_current_servicerequest_duplicates_open
responses:
'200':
description: Open duplicate work orders are provided in the response.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ServiceChannel.Api.Model.Dashboard.WorkOrderViewModel'
text/json:
schema:
type: array
items:
$ref: '#/components/schemas/ServiceChannel.Api.Model.Dashboard.WorkOrderViewModel'
deprecated: false
x-access: Subscribers
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceChannel.Services.Messaging.Workorders.Dashboard.Requests.GetWarningTicketsPagedRequest'
text/json:
schema:
$ref: '#/components/schemas/ServiceChannel.Services.Messaging.Workorders.Dashboard.Requests.GetWarningTicketsPagedRequest'
required: true
components:
schemas:
ServiceChannel.Services.Messaging.DashboardSettings.SetupRequestResponse:
type: object
properties:
SetupId:
format: int32
description: Store Dashboard Setup ID.
type: integer
EnableRequestWizard:
description: This flag enables/disables request wizard for the dashboard.
default: false
type: boolean
ShowPrivateStoreNotes:
description: Show/hide private store notes in the 'location notes' field on the first step of the service request wizard page.
default: false
type: boolean
ShowProviderPhoneNumber:
description: Show/hide provider phone number on the confirmation step after an issue has been submitted.
default: false
type: boolean
ShowLastServiceCall:
description: Show last service call and last description in the body of alert email.
default: false
type: boolean
SetOriginalVendorForRecalls:
description: This option controls whether original vendor is assigned to the work order in case of a recall.
default: false
type: boolean
NteToZeroForRecalls:
description: Set NTE to zero if a new service request is marked as a recall.
default: false
type: boolean
SendAlertToFM:
description: This flag controls whether service request email will be sent to the facility managers or not.
default: false
type: boolean
TurnOffDescription:
description: Show/hide problem description field.
default: false
type: boolean
DaysOfHistoryToDisplay:
format: int32
description: How many days of work order history to display on the dublicates warning report.
type: integer
ShowStoreWarrantyStr:
description: "There are three possible options: 1) 'none' hides a StoreWarrantyMessage on the first step of the Request Wizard;\n 2) 'show' shows a StoreWarrantyMessage on the first step of the Request Wizard;\n 3) 'stop' shows a StoreWarrantyMessage without a possibility to move to the next step."
type: string
StoreWarrantyMessage:
description: A store warranty message to show on the first step of the request wizard page.
type: string
ConfirmationMessage:
description: This message is shown on the confirmation page after the user submits their request.
type: string
ProviderNotFoundMessage:
description: An error message to show when provider is not found for the specified issue choice.
type: string
EnableEquipment:
description: Show equipment
default: false
type: boolean
DuplicateFilters:
type: array
items:
type: string
ExcludedCategoriesOpenDup:
type: array
items:
type: string
ExcludedCategoriesClosedDup:
type: array
items:
type: string
ExcludedStatuses:
type: array
items:
type: string
ExcludedTradesOpenDup:
type: array
items:
type: string
EnableEquipmentReplacementFlag:
default: false
type: boolean
EnableRequestWizardMobile:
description: This flag enables/disables request wizard for the SC Mobile.
default: false
type: boolean
EnableLocationNotes:
default: false
type: boolean
AlwaysShowLocationNotes:
default: false
type: boolean
SkipTroubleshootingStep:
default: false
type: boolean
HidePriority:
default: false
type: boolean
EnableIssueListKeywordSearch:
description: "This flag enables/disables the keyword search functionality on the request wizard.\n When enabled, users can type keywords to more quickly identify issue list selections."
default: false
type: boolean
HideGPSRadius:
default: false
type: boolean
AssetFirstWorkOrderCreation:
description: Enables asset-first approach for work order creation.
default: false
type: boolean
EnableEquipmentReplacement:
default: false
type: boolean
AssetNotListedFlag:
default: false
type: boolean
ServiceChannel.Api.Model.Dashboard.Assets.Asset:
type: object
properties:
Id:
format: int32
type: integer
TagID:
type: string
Manufacturer:
type: string
ModelNo:
type: string
SerialNo:
type: string
Location:
type: string
WarrantyExpirationDate:
type: string
WarrantyCategory:
type: string
Nte:
format: double
type: number
WarrantyPriority:
type: string
WarrantyNTEHidden:
default: false
type: boolean
WarrantyNotExpired:
default: false
type: boolean
Type:
type: string
AssetTag:
type: string
Description:
type: string
StoreId:
type: string
ServiceChannel.Api.Model.Workorders.OverrideProperties.Anomaly:
type: object
properties:
TradeAnomalous:
default: false
type: boolean
TradeScore:
format: double
type: number
NTEAnomalous:
default: false
type: boolean
NTEScore:
format: double
type: number
FirstTimeFixAnomalous:
default: false
type: boolean
FirstTimeFixScore:
format: double
type: number
Top1PrimaryTrade:
type: string
InvoiceTotalWithoutProposal25:
format: double
type: number
InvoiceTotalWithoutProposalMedian:
format: double
type: number
InvoiceTotalWithProposal75:
format: double
type: number
IsAnomaly:
default: false
type: boolean
readOnly: true
ServiceChannel.Api.Model.Workorders.OverrideProperties.ServiceProvider:
type: object
properties:
Id:
format: int32
type: integer
Name:
type: string
Rank:
format: int32
type: integer
Default:
default: false
type: boolean
DoNotDispatch:
default: false
type: boolean
Pilot:
default: false
type: boolean
IsInternal:
default: false
type: boolean
ServiceChannel.Services.Messaging.Providers.GetServiceRequestProvidersResponse:
type: object
properties:
Providers:
type: array
items:
$ref: '#/components/schemas/ServiceChannel.Services.Messaging.Providers.ServiceRequestProvider'
ServiceChannel.Services.Messaging.Providers.ServiceRequestProvider:
type: object
properties:
Rank:
format: int32
description: Rank
type: integer
Category:
description: Category
type: string
Priority:
description: Priority
type: string
Nte:
format: double
description: Nte
type: number
GeneralEmail:
description: General Email
type: string
IsDefault:
description: Is Default
default: false
type: boolean
ServiceRequestEmails:
description: ServiceRequestEmails
type: string
Phone:
type: string
FullName:
description: Full Name
type: string
Address1:
description: Address1
type: string
Address2:
description: Adress2
type: string
City:
description: City
type: string
State:
description: State
type: string
Zip:
description: Zip
type: string
Country:
# --- truncated at 32 KB (139 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/servicechannel/refs/heads/main/openapi/servicechannel-servicerequest-api-openapi.yml