swagger: '2.0' info: description: With the PureCloud Platform API, you can control all aspects of your PureCloud environment. With the APIs you can access the system configuration, manage conversations and more. version: v2 title: PureCloud Platform Agent Assistants Stations API termsOfService: https://help.genesys.cloud/articles/terms-and-conditions/ contact: name: PureCloud Developer Evangelists url: https://developer.genesys.cloud/ email: DeveloperEvangelists@genesys.com license: name: UNLICENSED url: https://help.genesys.cloud/articles/terms-and-conditions/ host: api.mypurecloud.com schemes: - https consumes: - application/json produces: - application/json tags: - name: Stations description: Stations externalDocs: description: Stations Documentation url: https://developer.genesys.cloud/telephony/stations-apis paths: /api/v2/stations/{stationId}/associateduser: delete: tags: - Stations summary: Unassigns the user assigned to this station description: '' operationId: deleteStationAssociateduser produces: - application/json parameters: - name: stationId in: path description: Station ID required: true type: string responses: '200': description: Operation was successful. '400': description: The request could not be understood by the server due to malformed syntax. schema: $ref: '#/definitions/ErrorBody' x-inin-error-codes: bad.request: The request could not be understood by the server due to malformed syntax. response.entity.too.large: The response is over the size limit. Reduce pageSize or expand list to reduce response size if applicable '401': description: No authentication bearer token specified in authorization header. schema: $ref: '#/definitions/ErrorBody' x-inin-error-codes: authentication.required: No authentication bearer token specified in authorization header. ip.not.authorized: 'Requests originating from this IP address are not authorized: [%s]' bad.credentials: Invalid login credentials. '403': description: You are not authorized to perform the requested action. schema: $ref: '#/definitions/ErrorBody' x-inin-error-codes: missing.division.permission: Unable to perform the requested action. You are missing the following permission '%s' in the provided division(s). app.not.authorized.for.scope: App not authorized to use scope %s missing.permissions: 'Unable to perform the requested action. You are missing the following permission(s): %s' not.authorized: You are not authorized to perform the requested action. missing.any.permissions: 'Unable to perform the requested action. You must have at least one of the following permissions assigned: %s' authz.policy.denied: 'Unable to perform the requested action. Your organization''s security policies have denied access. Policy ID(s): [%s]' missing.any.division.permissions: 'Unable to perform the requested action. You must have at least one of the following permissions assigned: %s in at least one of the following division(s): %s' '404': description: The requested resource was not found. schema: $ref: '#/definitions/ErrorBody' x-inin-error-codes: not.found: The requested resource was not found. '408': description: The client did not produce a request within the server timeout limit. This can be caused by a slow network connection and/or large payloads. schema: $ref: '#/definitions/ErrorBody' x-inin-error-codes: client.timeout: The client did not produce a request within the server timeout limit. This can be caused by a slow network connection and/or large payloads. '409': description: The request conflicts with the current state of the target resource. schema: $ref: '#/definitions/ErrorBody' x-inin-error-codes: request.conflict: The request conflicts with the current state of the target resource. '413': description: 'The request is over the size limit. Maximum bytes: %s' schema: $ref: '#/definitions/ErrorBody' x-inin-error-codes: request.entity.too.large: 'The request is over the size limit. Maximum bytes: %s' '415': description: Unsupported Media Type - Unsupported or incorrect media type, such as an incorrect Content-Type value in the header. schema: $ref: '#/definitions/ErrorBody' x-inin-error-codes: unsupported.media.type: Unsupported Media Type - Unsupported or incorrect media type, such as an incorrect Content-Type value in the header. '429': description: Rate limit exceeded the maximum. Retry the request in [%s] seconds schema: $ref: '#/definitions/ErrorBody' x-inin-error-codes: too.many.requests.retry.after: Rate limit exceeded the maximum. Retry the request in [%s] seconds too.many.requests: Rate limit exceeded the maximum [%s] requests within [%s] seconds '500': description: The server encountered an unexpected condition which prevented it from fulfilling the request. schema: $ref: '#/definitions/ErrorBody' x-inin-error-codes: internal.server.error: The server encountered an unexpected condition which prevented it from fulfilling the request. '503': description: Service Unavailable - The server is currently unavailable (because it is overloaded or down for maintenance). schema: $ref: '#/definitions/ErrorBody' x-inin-error-codes: service.unavailable: Service Unavailable - The server is currently unavailable (because it is overloaded or down for maintenance). '504': description: The request timed out. schema: $ref: '#/definitions/ErrorBody' x-inin-error-codes: authentication.request.timeout: Authentication request timeout. request.timeout: The request timed out. security: - PureCloud OAuth: - stations x-inin-requires-permissions: type: ANY permissions: - telephony:station:disassociate x-purecloud-method-name: deleteStationAssociateduser /api/v2/stations/{stationId}: get: tags: - Stations summary: Get station. description: '' operationId: getStation produces: - application/json parameters: - name: stationId in: path description: Station ID required: true type: string responses: '200': description: successful operation schema: $ref: '#/definitions/Station' '400': description: The request could not be understood by the server due to malformed syntax. schema: $ref: '#/definitions/ErrorBody' x-inin-error-codes: bad.request: The request could not be understood by the server due to malformed syntax. response.entity.too.large: The response is over the size limit. Reduce pageSize or expand list to reduce response size if applicable invalid.date: 'Dates must be specified as ISO-8601 strings. For example: yyyy-MM-ddTHH:mm:ss.SSSZ' invalid.query.param.value: 'Value [%s] is not valid for parameter [%s]. Allowable values are: %s' invalid.property: Value [%s] is not a valid property for object [%s] constraint.validation: '%s' invalid.value: 'Value [%s] is not valid for field type [%s]. Allowable values are: %s' '401': description: No authentication bearer token specified in authorization header. schema: $ref: '#/definitions/ErrorBody' x-inin-error-codes: authentication.required: No authentication bearer token specified in authorization header. ip.not.authorized: 'Requests originating from this IP address are not authorized: [%s]' bad.credentials: Invalid login credentials. '403': description: You are not authorized to perform the requested action. schema: $ref: '#/definitions/ErrorBody' x-inin-error-codes: missing.division.permission: Unable to perform the requested action. You are missing the following permission '%s' in the provided division(s). app.not.authorized.for.scope: App not authorized to use scope %s missing.permissions: 'Unable to perform the requested action. You are missing the following permission(s): %s' not.authorized: You are not authorized to perform the requested action. missing.any.permissions: 'Unable to perform the requested action. You must have at least one of the following permissions assigned: %s' authz.policy.denied: 'Unable to perform the requested action. Your organization''s security policies have denied access. Policy ID(s): [%s]' missing.any.division.permissions: 'Unable to perform the requested action. You must have at least one of the following permissions assigned: %s in at least one of the following division(s): %s' '404': description: The requested resource was not found. schema: $ref: '#/definitions/ErrorBody' x-inin-error-codes: general.resource.not.found: Specified station resource not found. not.found: The requested resource was not found. '408': description: The client did not produce a request within the server timeout limit. This can be caused by a slow network connection and/or large payloads. schema: $ref: '#/definitions/ErrorBody' x-inin-error-codes: client.timeout: The client did not produce a request within the server timeout limit. This can be caused by a slow network connection and/or large payloads. '409': description: The request conflicts with the current state of the target resource. schema: $ref: '#/definitions/ErrorBody' x-inin-error-codes: request.conflict: The request conflicts with the current state of the target resource. '413': description: 'The request is over the size limit. Maximum bytes: %s' schema: $ref: '#/definitions/ErrorBody' x-inin-error-codes: request.entity.too.large: 'The request is over the size limit. Maximum bytes: %s' '415': description: Unsupported Media Type - Unsupported or incorrect media type, such as an incorrect Content-Type value in the header. schema: $ref: '#/definitions/ErrorBody' x-inin-error-codes: unsupported.media.type: Unsupported Media Type - Unsupported or incorrect media type, such as an incorrect Content-Type value in the header. '429': description: Rate limit exceeded the maximum. Retry the request in [%s] seconds schema: $ref: '#/definitions/ErrorBody' x-inin-error-codes: too.many.requests.retry.after: Rate limit exceeded the maximum. Retry the request in [%s] seconds too.many.requests: Rate limit exceeded the maximum [%s] requests within [%s] seconds '500': description: The server encountered an unexpected condition which prevented it from fulfilling the request. schema: $ref: '#/definitions/ErrorBody' x-inin-error-codes: internal.server.error: The server encountered an unexpected condition which prevented it from fulfilling the request. '503': description: Service Unavailable - The server is currently unavailable (because it is overloaded or down for maintenance). schema: $ref: '#/definitions/ErrorBody' x-inin-error-codes: service.unavailable: Service Unavailable - The server is currently unavailable (because it is overloaded or down for maintenance). '504': description: The request timed out. schema: $ref: '#/definitions/ErrorBody' x-inin-error-codes: authentication.request.timeout: Authentication request timeout. request.timeout: The request timed out. security: - PureCloud OAuth: - stations - stations:readonly x-purecloud-method-name: getStation /api/v2/stations: get: tags: - Stations summary: Get the list of available stations. description: '' operationId: getStations produces: - application/json parameters: - name: pageSize in: query description: Page size required: false type: integer default: 25 format: int32 - name: pageNumber in: query description: Page number required: false type: integer default: 1 format: int32 - name: sortBy in: query description: Sort by required: false type: string default: name - name: name in: query description: Name required: false type: string - name: userSelectable in: query description: True for stations that the user can select otherwise false required: false type: string - name: webRtcUserId in: query description: Filter for the webRtc station of the webRtcUserId required: false type: string - name: id in: query description: Comma separated list of stationIds required: false type: string - name: lineAppearanceId in: query description: lineAppearanceId required: false type: string responses: '200': description: successful operation schema: $ref: '#/definitions/StationEntityListing' '400': description: The request could not be understood by the server due to malformed syntax. schema: $ref: '#/definitions/ErrorBody' x-inin-error-codes: invalid.organization.type: Collaborate organizations do not have permission to work with stations bad.request: The request could not be understood by the server due to malformed syntax. response.entity.too.large: The response is over the size limit. Reduce pageSize or expand list to reduce response size if applicable invalid.date: 'Dates must be specified as ISO-8601 strings. For example: yyyy-MM-ddTHH:mm:ss.SSSZ' invalid.query.param.value: 'Value [%s] is not valid for parameter [%s]. Allowable values are: %s' general.bad.request: Request is badly formed. invalid.property: Value [%s] is not a valid property for object [%s] constraint.validation: '%s' invalid.value: 'Value [%s] is not valid for field type [%s]. Allowable values are: %s' '401': description: No authentication bearer token specified in authorization header. schema: $ref: '#/definitions/ErrorBody' x-inin-error-codes: authentication.required: No authentication bearer token specified in authorization header. ip.not.authorized: 'Requests originating from this IP address are not authorized: [%s]' bad.credentials: Invalid login credentials. '403': description: You are not authorized to perform the requested action. schema: $ref: '#/definitions/ErrorBody' x-inin-error-codes: missing.division.permission: Unable to perform the requested action. You are missing the following permission '%s' in the provided division(s). app.not.authorized.for.scope: App not authorized to use scope %s missing.permissions: 'Unable to perform the requested action. You are missing the following permission(s): %s' not.authorized: You are not authorized to perform the requested action. missing.any.permissions: 'Unable to perform the requested action. You must have at least one of the following permissions assigned: %s' authz.policy.denied: 'Unable to perform the requested action. Your organization''s security policies have denied access. Policy ID(s): [%s]' missing.any.division.permissions: 'Unable to perform the requested action. You must have at least one of the following permissions assigned: %s in at least one of the following division(s): %s' '404': description: The requested resource was not found. schema: $ref: '#/definitions/ErrorBody' x-inin-error-codes: not.found: The requested resource was not found. '408': description: The client did not produce a request within the server timeout limit. This can be caused by a slow network connection and/or large payloads. schema: $ref: '#/definitions/ErrorBody' x-inin-error-codes: client.timeout: The client did not produce a request within the server timeout limit. This can be caused by a slow network connection and/or large payloads. unknown: Unspecified error getting station listing. '409': description: The request conflicts with the current state of the target resource. schema: $ref: '#/definitions/ErrorBody' x-inin-error-codes: request.conflict: The request conflicts with the current state of the target resource. '413': description: 'The request is over the size limit. Maximum bytes: %s' schema: $ref: '#/definitions/ErrorBody' x-inin-error-codes: request.entity.too.large: 'The request is over the size limit. Maximum bytes: %s' '415': description: Unsupported Media Type - Unsupported or incorrect media type, such as an incorrect Content-Type value in the header. schema: $ref: '#/definitions/ErrorBody' x-inin-error-codes: unsupported.media.type: Unsupported Media Type - Unsupported or incorrect media type, such as an incorrect Content-Type value in the header. '429': description: Rate limit exceeded the maximum. Retry the request in [%s] seconds schema: $ref: '#/definitions/ErrorBody' x-inin-error-codes: too.many.requests.retry.after: Rate limit exceeded the maximum. Retry the request in [%s] seconds too.many.requests: Rate limit exceeded the maximum [%s] requests within [%s] seconds '500': description: The server encountered an unexpected condition which prevented it from fulfilling the request. schema: $ref: '#/definitions/ErrorBody' x-inin-error-codes: general.internal.server.error: Internal server error getting station listing. internal.server.error: The server encountered an unexpected condition which prevented it from fulfilling the request. '503': description: Service Unavailable - The server is currently unavailable (because it is overloaded or down for maintenance). schema: $ref: '#/definitions/ErrorBody' x-inin-error-codes: service.unavailable: Service Unavailable - The server is currently unavailable (because it is overloaded or down for maintenance). '504': description: The request timed out. schema: $ref: '#/definitions/ErrorBody' x-inin-error-codes: authentication.request.timeout: Authentication request timeout. request.timeout: The request timed out. security: - PureCloud OAuth: - stations - stations:readonly x-purecloud-method-name: getStations definitions: ErrorBody: type: object properties: message: type: string code: type: string status: type: integer format: int32 entityId: type: string entityName: type: string messageWithParams: type: string messageParams: type: object additionalProperties: type: string contextId: type: string details: type: array items: $ref: '#/definitions/Detail' errors: type: array items: $ref: '#/definitions/ErrorBody' limit: $ref: '#/definitions/Limit' DomainEntityRef: type: object properties: id: type: string name: type: string selfUri: type: string format: uri Station: type: object properties: id: type: string description: The globally unique identifier for the object. readOnly: true name: type: string description: type: string status: type: string enum: - AVAILABLE - ASSOCIATED userId: type: string description: The Id of the user currently logged in and associated with the station. webRtcUserId: type: string description: The Id of the user configured for the station if it is of type inin_webrtc_softphone. Empty if station type is not inin_webrtc_softphone. primaryEdge: $ref: '#/definitions/DomainEntityRef' secondaryEdge: $ref: '#/definitions/DomainEntityRef' type: type: string lineAppearanceId: type: string webRtcMediaDscp: type: integer format: int32 description: The default or configured value of media dscp for the station. Empty if station type is not inin_webrtc_softphone. readOnly: true webRtcPersistentEnabled: type: boolean description: The default or configured value of persistent connection setting for the station. Empty if station type is not inin_webrtc_softphone. readOnly: true webRtcForceTurn: type: boolean description: Whether the station is configured to require TURN for routing WebRTC calls. Empty if station type is not inin_webrtc_softphone. readOnly: true webRtcCallAppearances: type: integer format: int32 description: The number of call appearances on the station. readOnly: true webRtcRequireMediaHelper: type: boolean description: True when the media helper required. readOnly: true selfUri: type: string format: uri description: The URI for this object readOnly: true Limit: type: object properties: key: type: string namespace: type: string enum: - web.deployments - web.messaging - agent.assistant - agentic.virtual.agents - analytics.agents - analytics.alerting - analytics.data.extraction - analytics - analytics.realtime - analytics.reporting.settings - anomaly.detection - architect - audiohook - audiohook.monitor - audit - auth.api - authorization - automation.testing - bots - bots.voice - business.rules - callback - case.management - cobrowse - content.management - conversation - copilot - dataactions - datatables - directory - dsar - email - employee.engagement - event.orchestration - external.contacts - external.events.data.ingestion - gamification - gcv - gdpr - groups - guides - historical.adherence - infrastructureascode - integrations - intent.miner - internal.messaging - journey - knowledge - language.understanding - learning - limit.registry - marketplace - mcp.analytics.aggregates - mcp - media.communications - messaging - micro.frontend - multi.org - notifications - onboarding - outbound - platform.api - predictive.routing - presence - quality - recording - response.management - routing - scim - screen.monitoring - search - secondary.automation.testing - skills - social.media - speech.and.text.analytics - speech.integration - supportability - task.management - telephony.configuration - usage - users - users.rules - voice.transcription - webchat - webhooks - workforce.management.adherence - workforce.management.agent.availability - workforce.management.forecast - workforce.management - workforce.management.scheduling.preferences - workforce.management.self.schedule - workforce.management.shift.trading - system value: type: integer format: int64 StationEntityListing: type: object properties: entities: type: array items: $ref: '#/definitions/Station' pageSize: type: integer format: int32 pageNumber: type: integer format: int32 total: type: integer format: int64 totalNumberOfEntities: type: integer format: int64 description: The total organization-wide number of entities. firstUri: type: string format: uri nextUri: type: string format: uri previousUri: type: string format: uri lastUri: type: string format: uri selfUri: type: string format: uri pageCount: type: integer format: int32 Detail: type: object properties: errorCode: type: string fieldName: type: string entityId: type: string entityName: type: string securityDefinitions: PureCloud OAuth: type: oauth2 authorizationUrl: https://login.mypurecloud.com/authorize flow: implicit scopes: all: All the scopes Guest Chat JWT: type: apiKey name: Authorization in: header externalDocs: description: PureCloud API Documentation url: https://developer.genesys.cloud/