ServiceChannel WorkActivities API
The WorkActivities API from ServiceChannel — 5 operation(s) for workactivities.
The WorkActivities API from ServiceChannel — 5 operation(s) for workactivities.
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-workactivities-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 Work Activities API
isOdataApi: false
relativePath: ''
discoveryPath: docs/bearer.v1
_isAuthorizedAccess: true
servers:
- url: https://sb2fixxbook.servicechannel.com:443/api
security:
- oauth2: []
tags:
- name: WorkActivities
paths:
/workorders/{workorderId}/workactivities/{workactivityId}:
put:
tags:
- WorkActivities
summary: Update the specified work activity of a work order
description: "Updates the specified work activity of a work order by setting the check-in and check-out date and time values passed in the request.\n <br />Before updating a work activity, please consider the following:\n • You can update work activities only for work orders in the *In Progress* primary status.\n • The check-in date and time cannot be greater than the check-out date and time.\n • The check-in date and time cannot be earlier than the scheduled date and time of the work order.\n • The time range of the work activity you are updating cannot overlap the time ranges of existing work activities of the work order.\n • The name will be set to the API caller name if the `name` value is not provided.\n <br />***Note:*** Both subscribers and providers can use this method.\n <br />***Note:*** Only users with extended permissions can update the work activities created by other users along with updating the `name` parameter. The users with certain permissions are:\n • Subscribers that have the *Admin* role. These users can update the work activities created both by subscribers and by providers.\n • Providers that have the *Admin* role (with the *EditLaborItemsOnWoDetailsProvider* feature flag turned on). These users can update the work activities created by providers only.\n • Providers that have the *Business Owner / Management* role (with the *EditLaborItemsOnWoDetailsProvider* feature flag turned on). These users can update the work activities created by providers only.\n <br />Learn more about [updating a work activity](https://servicechannel.atlassian.net/wiki/spaces/SCU/pages/576258285/Updating+Service+Provider+Check-In+Out+Information) in ServiceChannel University.\n <br />**Example Request**\n \n PUT /workorders/{workorderId}/workactivities/{workactivityId}\n {\n \"CheckInDate\": \"2020-11-19T11:10:36.868Z\",\n \"CheckOutDate\": \"2020-11-19T12:30:36.868Z\",\n \"Name\": \"John Doe\"\n }"
operationId: PUTv3_workorders_{workorderId}_workactivities_{workactivityId}
parameters:
- name: workorderId
in: path
description: The unique numeric identifier of the work order for which you want to update a work activity.
required: true
schema:
type: integer
format: int32
- name: workactivityId
in: path
description: The unique numeric identifier of the work activity to update.
required: true
schema:
type: integer
format: int32
responses:
'200':
description: The work activity is updated, and its ID is returned in the response.
'400':
description: "The request is not accepted due to bad syntax, missing parameters, insufficient data, etc.\n <br/>Error codes:\n 502 — WorkOrder not found\n 503 — Work activity is not found\n 503 — Date range is incorrect\n 503 — Check In/Out is premature\n 904 — Invalid work order status\n 1186 — Time range is overlapped"
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 — 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'
'403':
description: "You are not authorized to request this resource, or the resource is unavailable for some reason.\n <br/>Error codes:\n 804 — User has no permissions to perform this action"
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.
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
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceChannel.Services.Messaging.Workorders.WorkActivityRequest'
text/json:
schema:
$ref: '#/components/schemas/ServiceChannel.Services.Messaging.Workorders.WorkActivityRequest'
description: Request to update a work activity.
required: true
/workorders/{workorderId}/workactivities:
post:
tags:
- WorkActivities
summary: Create a work activity for the specified work order
description: "Creates a new work activity for the specified work order. The work activity type can be either *Travel* or *Repair*. Note that custom types may be configured for a subscriber.\n <br />Before creating a work activity, please consider the following:\n • You can create work activities only for work orders in the *In Progress* primary status.\n • The check-in date and time cannot be greater than the check-out date and time.\n • The check-in date and time cannot be earlier than the scheduled date and time of the work order.\n • The time range of the work activity you are creating cannot overlap the time ranges of existing work activities of the work order.\n • The name will be set to the API caller name if the `name` value is not provided.\n <br />***Note:*** Both subscribers and providers can use this method.\n <br />***Note:*** Only users with extended permissions can specify the technician's name while creating a work activity. The users with extended permissions are:\n • Subscribers that have the *Admin* role.\n • Providers that have the *Admin* role (with the *EditLaborItemsOnWoDetailsProvider* feature flag turned on).\n • Providers that have the *Business Owner / Management* role (with the *EditLaborItemsOnWoDetailsProvider* feature flag turned on).\n <br />Learn more about [creating a work activity](https://servicechannel.atlassian.net/wiki/spaces/SCU/pages/576258285/Updating+Service+Provider+Check-In+Out+Information) in ServiceChannel University.\n <br />**Example Request**\n \n POST /workorders/{workorderId}/workactivities\n {\n \"WorkTypeId\": \"1\", \n \"CheckInDate\": \"2020-11-19T11:10:36.868Z\",\n \"CheckOutDate\": \"2020-11-19T12:15:36.868Z\",\n \"Name\": \"John Doe\"\n }"
operationId: POSTv3_workorders_{workorderId}_workactivities
parameters:
- name: workorderId
in: path
description: The unique numeric identifier of the work order for which you want to create a work activity.
required: true
schema:
type: integer
format: int32
responses:
'201':
description: A work activity is created for the specified work order, and a unique work activity ID is returned in the response.
'400':
description: "The request is not accepted due to bad syntax, missing parameters, insufficient data, etc.\n <br/>Error codes:\n 502 — WorkOrder not found\n 503 — Work Type Not Found\n 503 — Date range is incorrect\n 503 — Check In/Out is premature\n 904 — Invalid work order status\n 1186 — Time range is overlapped"
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 — 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'
'403':
description: "You are not authorized to request this resource, or the resource is unavailable for some reason.\n <br/>Error codes:\n 804 — User has no permissions to perform this action"
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
text/json:
schema:
$ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
'406':
description: The request is already processed.
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.
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
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceChannel.Services.Messaging.Workorders.WorkActivityPostRequest'
text/json:
schema:
$ref: '#/components/schemas/ServiceChannel.Services.Messaging.Workorders.WorkActivityPostRequest'
description: Request to create a work activity.
required: true
delete:
tags:
- WorkActivities
summary: Delete the specified work activities of a work order
description: "Delete one or more work activities of the specified work order. When you pass multiple work activity IDs, the request will succeed if at least one ID is valid.\n <br />***Note:*** Both subscribers and providers can use this method."
operationId: DELETEv3_workorders_{workorderId}_workactivities?workactivityIds[0]={workactivityIds[0]}&workactivityIds[1]={workactivityIds[1]}
parameters:
- name: workorderId
in: path
description: The unique numeric identifier of the work order for which you want to delete work activities.
required: true
schema:
type: integer
format: int32
- name: workactivityIds
in: query
description: The unique numeric identifiers of the work activities to delete.
required: true
style: form
explode: true
schema:
type: array
items:
type: integer
format: int32
responses:
'204':
description: The specified work activities are deleted, and the response is intentionally blank.
'400':
description: "The request is not accepted due to bad syntax, missing parameters, insufficient data, etc.\n <br/>Error codes:\n 502 — WorkOrder not found\n 502 — Work activities are not found\n 804 — User has no permissions to perform this action"
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 — 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'
'500':
description: The server was unable to complete the request due to an internal error.
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
/odata/workorders({workorderId})/workactivities:
get:
tags:
- WorkActivities
summary: List work activities of the specified work order
description: "Returns work activities of the specified work order.\n <br />A work activity details information about the technician's work on a service request: the time when the technician started and finished their work, the type of activity they carried out, the number of technicians who rendered the service, and other details related to the labor performed.\n <br />***Note:*** Both subscribers and providers can use this method."
operationId: WorkActivities_GetWorkActivities
parameters:
- name: workorderId
in: path
description: The unique numeric identifier of the work order for which you want to retrieve work activities.
required: true
schema:
type: integer
format: int32
- name: $expand
in: query
description: Expand a navigation property.
required: false
schema:
type: string
- name: $select
in: query
description: Select a set of properties to return.
required: false
schema:
type: string
- name: $filter
in: query
description: Filter a collection of resources addressed by a request URL.
required: false
schema:
type: string
- name: $orderby
in: query
description: Order resources by the specified property in the response.
required: false
schema:
type: string
- name: $top
in: query
description: Return the specified number of items in the response.
required: false
schema:
type: integer
- name: $skip
in: query
description: Skip the specified number of items in the response.
required: false
schema:
type: integer
- name: $count
in: query
description: Include the count of the matching resources in the response.
required: false
schema:
type: boolean
responses:
'200':
description: The work activities of the specified work order are in the response.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ServiceChannel.Services.Messaging.Workorders.WorkActivity'
'400':
description: "The request is not accepted due to bad syntax, missing parameters, insufficient data, etc.\n <br/>Error codes:\n 502 — WorkOrder not found"
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
'401':
description: "The request is not authorized.\n <br/>Error codes:\n 504 — API call rejected by security permissions"
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
'500':
description: The server was unable to complete the request due to an internal error.
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
deprecated: false
x-access: Any
/odata/workactivities/Service.ForTimeInterval(dtMin={dtMin}, dtMax={dtMax}, userId={userId}):
get:
tags:
- WorkActivities
summary: List work activities created by a provider user within the specified time period
description: "Returns work activities created by the specified provider user within the set time period.\n <br />A work activity details information about the technician’s work on a service request: the time when the technician started and finished their work, the type of activity they carried out, the number of technicians who rendered the service, and other details related to the labor performed.\n <br />***Note:*** This method is only available to provider users."
operationId: WorkActivities_ForTimeInterval
parameters:
- name: userId
in: path
description: PIN of the provider user who created work activities.
required: true
schema:
type: integer
format: int32
- name: dtMax
in: path
description: The end date of the time period for which you want to retrieve work activities. The format is `YYYY-MM-DD`.
required: true
schema:
type: string
format: date-time
- name: dtMin
in: path
description: The start date of the time period for which you want to retrieve work activities. The format is `YYYY-MM-DD`.
required: true
schema:
type: string
format: date-time
- name: $expand
in: query
description: Expand a navigation property.
required: false
schema:
type: string
- name: $select
in: query
description: Select a set of properties to return.
required: false
schema:
type: string
- name: $filter
in: query
description: Filter a collection of resources addressed by a request URL.
required: false
schema:
type: string
- name: $orderby
in: query
description: Order resources by the specified property in the response.
required: false
schema:
type: string
- name: $top
in: query
description: Return the specified number of items in the response.
required: false
schema:
type: integer
- name: $skip
in: query
description: Skip the specified number of items in the response.
required: false
schema:
type: integer
- name: $count
in: query
description: Include the count of the matching resources in the response.
required: false
schema:
type: boolean
responses:
'200':
description: Work activities created by the specified provider user within the set time period are in the response.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ServiceChannel.Services.Messaging.Workorders.WorkActivity'
'400':
description: "The request is not accepted due to bad syntax, missing parameters, insufficient data, etc.\n <br/>Error codes:\n 504 — User not found"
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
'401':
description: "The request is not authorized.\n <br/>Error codes:\n 504 — API call rejected by security permissions"
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
'500':
description: The server was unable to complete the request due to an internal error.
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
deprecated: false
x-access: Providers
/odata/workorders({workorderId})/workactivities({workactivityId}):
get:
tags:
- WorkActivities
summary: Retrieve the specified work activity of a work order
description: "Returns the specified work activity of a work order.\n <br />A work activity details information about the technician's work on a service request: the time when the technician started and finished their work, the type of activity they carried out, the number of technicians who rendered the service, and other details related to the labor performed.\n <br />***Note:*** Both subscribers and providers can use this method."
operationId: WorkActivities_GetWorkActivity
parameters:
- name: workactivityId
in: path
description: The unique numeric identifier of the work activity to return.
required: true
schema:
type: integer
format: int32
- name: workorderId
in: path
description: The unique numeric identifier of the work order for which you want to retrieve a work activity.
required: true
schema:
type: integer
format: int32
- name: $expand
in: query
description: Expand a navigation property.
required: false
schema:
type: string
- name: $select
in: query
description: Select a set of properties to return.
required: false
schema:
type: string
- name: $filter
in: query
description: Filter a collection of resources addressed by a request URL.
required: false
schema:
type: string
- name: $orderby
in: query
description: Order resources by the specified property in the response.
required: false
schema:
type: string
- name: $top
in: query
description: Return the specified number of items in the response.
required: false
schema:
type: integer
- name: $skip
in: query
description: Skip the specified number of items in the response.
required: false
schema:
type: integer
- name: $count
in: query
description: Include the count of the matching resources in the response.
required: false
schema:
type: boolean
responses:
'200':
description: The requested work activity of the specified work order is in the response.
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceChannel.Services.Messaging.Workorders.WorkActivity'
'400':
description: "The request is not accepted due to bad syntax, missing parameters, insufficient data, etc.\n <br/>Error codes:\n 502 — WorkOrder not found\n 502 — Work activity is not found"
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
'401':
description: "The request is not authorized.\n <br/>Error codes:\n 504 — API call rejected by security permissions"
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
'500':
description: The server was unable to complete the request due to an internal error.
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
deprecated: false
x-access: Any
components:
schemas:
ServiceChannel.Services.Messaging.Workorders.WorkActivity:
description: Work activity object.
type: object
properties:
Id:
format: int32
description: The unique numeric identifier of the work activity.
type: integer
WorkOrderId:
format: int32
description: The unique numeric identifier of the work order for which the work activity was reported.
type: integer
TimeIn:
format: date-time
description: The date and time when the technician started work on the service request.
type: string
TimeOut:
format: date-time
description: The date and time when the technician finished work on the service request.
type: string
IsTimeEdited:
description: Indicates if the time of the labor performed was modified.
default: false
type: boolean
User:
$ref: '#/components/schemas/ServiceChannel.Services.Messaging.Users.UserInfo'
description: The detailed info about the user who performed a check-in.
CallerId:
description: "Possible values:\n a) The GPS coordinates of the location where the technician performed the most recent action — either check-in or check-out — via the ServiceChannel Provider mobile app.\n b) The phone number of the technician from which they performed the most recent action — either check-in or check-out — using the IVR (Interactive Voice Response) system.\n c) Null value if the work activity was entered manually."
type: string
ResolutionCode:
description: The most recent status assigned to the work order by the technician.
type: string
WorkType:
description: 'The type of activity performed: *Repair* or *Travel*. Other values may be returned if custom types are set up for the subscriber.'
type: string
HasCheckInInfo:
description: Indicates if a check-in was performed for the work activity.
default: false
type: boolean
HasCheckListResponse:
description: Indicates if the technician answered checklist questions.
default: false
type: boolean
TechsCount:
format: int32
description: The number of technicians who performed the work.
type: integer
Name:
description: The technician performed the work.
type: string
CreatedBy:
format: int32
description: The user who created the labor.
type: integer
ServiceChannel.Services.Messaging.Users.UserInfo:
description: The user details object.
type: object
properties:
Id:
format: int32
description: The unique numeric identifier of the user.
type: integer
UserName:
description: The username of the user.
type: string
UserNameOrFullName:
description: The username if fullname is null or empty
type: string
readOnly: true
FullName:
description: The full name of the user.
type: string
Email:
description: The email address of the user.
type: string
LevelInfo:
$ref: '#/components/schemas/ServiceChannel.Api.Model.Proposals.MlpLevelSimpleModel'
description: The information on the MLP level the user belongs to.
ServiceChannel.Services.Messaging.Workorders.WorkActivityRequest:
description: Request object to update a work activity.
type: object
properties:
CheckInDate:
format: date-time
description: The date and time when a technician started work on the service request. The format is `YYYY-MM-DDThh:mm:ss.sssZ`. The default is the current date and time.
type: string
CheckOutDate:
format: date-time
description: The date and time when a technician finished work on the service request. The format is `YYYY-MM-DDThh:mm:ss.sssZ`. The default is the current date and time.
type: string
Name:
description: (*Optional*) The name of technician who worked on the service request.
type: string
System.Object:
type: object
properties: {}
ServiceChannel.Services.Messaging.Workorders.WorkActivityPostRequest:
description: Request object to create a work activity.
type: object
properties:
WorkTypeId:
format: int32
description: 'The type of activity performed: 1 — *Repair*, 2 — *Travel*. You can pass other values if custom types are set up for the subscriber.'
type: integer
CheckInDate:
format: date-time
description: The date and time when a technician started work on the service request. The format is `YYYY-MM-DDThh:mm:ss.sssZ`. The default is the current date and time.
type: string
CheckOutDate:
format: date-time
description: The date and time when a technician finished work on the service request. The format is `YYYY-MM-DDThh:mm:ss.sssZ`. The default is the current date and time.
type: string
Name:
description: (*Optional*) The name of technician who worked on the service request.
type: string
ServiceChannel.Api.Model.Proposals.MlpLevelSimpleModel:
type: object
properties:
UserId:
format: int32
type: integer
LocationIds:
type: array
items:
format: int32
type: integer
LevelId:
format: int32
type: integer
LevelName:
type: string
Order:
format: int32
type: integer
UsersLocations:
type: object
additionalProperties:
type: array
items:
format: int32
type: integer
CategoryChange:
default: false
type: boolean
PriorityChange:
default: false
type: boolean
CodeChange:
default: false
type: boolean
DivisionId:
format: int32
type: integer
ServiceChannel.Services.Messaging.ErrorResponse:
description: The error response object
type: object
properties:
ErrorCodes:
description: The list of error codes. Go to /basics/general/response-codes/#internal-error-codes-and-messages to map error codes to error reasons.
type: array
items:
enum:
- NotAllowed
- EmptyProvider
- InvalidProviderId
# --- truncated at 32 KB (96 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/servicechannel/refs/heads/main/openapi/servicechannel-workactivities-api-openapi.yml