Genesys Stations API

Stations

Operations 3

DELETE /api/v2/stations/{stationId}/associateduser Unassigns the user assigned to this station #
GET /api/v2/stations/{stationId} Get station. #
GET /api/v2/stations Get the list of available stations. #

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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/genesys-stations-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

genesys-stations-api-openapi.yml Raw ↑
openapi: 3.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/
servers:
- url: https://api.mypurecloud.com
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
      parameters:
      - name: stationId
        in: path
        description: Station ID
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Operation was successful.
        '400':
          description: The request could not be understood by the server due to malformed syntax.
          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
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '401':
          description: No authentication bearer token specified in authorization header.
          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.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '403':
          description: You are not authorized to perform the requested action.
          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'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '404':
          description: The requested resource was not found.
          x-inin-error-codes:
            not.found: The requested resource was not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '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.
          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.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '409':
          description: The request conflicts with the current state of the target resource.
          x-inin-error-codes:
            request.conflict: The request conflicts with the current state of the target resource.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '413':
          description: 'The request is over the size limit. Maximum bytes: %s'
          x-inin-error-codes:
            request.entity.too.large: 'The request is over the size limit. Maximum bytes: %s'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '415':
          description: Unsupported Media Type - Unsupported or incorrect media type, such as an incorrect Content-Type value in the header.
          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.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '429':
          description: Rate limit exceeded the maximum. Retry the request in [%s] seconds
          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
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '500':
          description: The server encountered an unexpected condition which prevented it from fulfilling the request.
          x-inin-error-codes:
            internal.server.error: The server encountered an unexpected condition which prevented it from fulfilling the request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '503':
          description: Service Unavailable - The server is currently unavailable (because it is overloaded or down for maintenance).
          x-inin-error-codes:
            service.unavailable: Service Unavailable - The server is currently unavailable (because it is overloaded or down for maintenance).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '504':
          description: The request timed out.
          x-inin-error-codes:
            authentication.request.timeout: Authentication request timeout.
            request.timeout: The request timed out.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
      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
      parameters:
      - name: stationId
        in: path
        description: Station ID
        required: true
        schema:
          type: string
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Station'
        '400':
          description: The request could not be understood by the server due to malformed syntax.
          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'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '401':
          description: No authentication bearer token specified in authorization header.
          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.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '403':
          description: You are not authorized to perform the requested action.
          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'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '404':
          description: The requested resource was not found.
          x-inin-error-codes:
            general.resource.not.found: Specified station resource not found.
            not.found: The requested resource was not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '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.
          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.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '409':
          description: The request conflicts with the current state of the target resource.
          x-inin-error-codes:
            request.conflict: The request conflicts with the current state of the target resource.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '413':
          description: 'The request is over the size limit. Maximum bytes: %s'
          x-inin-error-codes:
            request.entity.too.large: 'The request is over the size limit. Maximum bytes: %s'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '415':
          description: Unsupported Media Type - Unsupported or incorrect media type, such as an incorrect Content-Type value in the header.
          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.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '429':
          description: Rate limit exceeded the maximum. Retry the request in [%s] seconds
          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
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '500':
          description: The server encountered an unexpected condition which prevented it from fulfilling the request.
          x-inin-error-codes:
            internal.server.error: The server encountered an unexpected condition which prevented it from fulfilling the request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '503':
          description: Service Unavailable - The server is currently unavailable (because it is overloaded or down for maintenance).
          x-inin-error-codes:
            service.unavailable: Service Unavailable - The server is currently unavailable (because it is overloaded or down for maintenance).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '504':
          description: The request timed out.
          x-inin-error-codes:
            authentication.request.timeout: Authentication request timeout.
            request.timeout: The request timed out.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
      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
      parameters:
      - name: pageSize
        in: query
        description: Page size
        required: false
        schema:
          type: integer
          format: int32
          default: 25
      - name: pageNumber
        in: query
        description: Page number
        required: false
        schema:
          type: integer
          format: int32
          default: 1
      - name: sortBy
        in: query
        description: Sort by
        required: false
        schema:
          type: string
          default: name
      - name: name
        in: query
        description: Name
        required: false
        schema:
          type: string
      - name: userSelectable
        in: query
        description: True for stations that the user can select otherwise false
        required: false
        schema:
          type: string
      - name: webRtcUserId
        in: query
        description: Filter for the webRtc station of the webRtcUserId
        required: false
        schema:
          type: string
      - name: id
        in: query
        description: Comma separated list of stationIds
        required: false
        schema:
          type: string
      - name: lineAppearanceId
        in: query
        description: lineAppearanceId
        required: false
        schema:
          type: string
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StationEntityListing'
        '400':
          description: The request could not be understood by the server due to malformed syntax.
          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'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '401':
          description: No authentication bearer token specified in authorization header.
          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.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '403':
          description: You are not authorized to perform the requested action.
          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'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '404':
          description: The requested resource was not found.
          x-inin-error-codes:
            not.found: The requested resource was not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '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.
          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.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '409':
          description: The request conflicts with the current state of the target resource.
          x-inin-error-codes:
            request.conflict: The request conflicts with the current state of the target resource.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '413':
          description: 'The request is over the size limit. Maximum bytes: %s'
          x-inin-error-codes:
            request.entity.too.large: 'The request is over the size limit. Maximum bytes: %s'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '415':
          description: Unsupported Media Type - Unsupported or incorrect media type, such as an incorrect Content-Type value in the header.
          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.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '429':
          description: Rate limit exceeded the maximum. Retry the request in [%s] seconds
          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
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '500':
          description: The server encountered an unexpected condition which prevented it from fulfilling the request.
          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.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '503':
          description: Service Unavailable - The server is currently unavailable (because it is overloaded or down for maintenance).
          x-inin-error-codes:
            service.unavailable: Service Unavailable - The server is currently unavailable (because it is overloaded or down for maintenance).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '504':
          description: The request timed out.
          x-inin-error-codes:
            authentication.request.timeout: Authentication request timeout.
            request.timeout: The request timed out.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
      security:
      - PureCloud OAuth:
        - stations
        - stations:readonly
      x-purecloud-method-name: getStations
components:
  schemas:
    Detail:
      type: object
      properties:
        errorCode:
          type: string
        fieldName:
          type: string
        entityId:
          type: string
        entityName:
          type: string
    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: '#/components/schemas/DomainEntityRef'
        secondaryEdge:
          $ref: '#/components/schemas/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: '#/components/schemas/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
    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: '#/components/schemas/Detail'
        errors:
          type: array
          items:
            $ref: '#/components/schemas/ErrorBody'
        limit:
          $ref: '#/components/schemas/Limit'
  securitySchemes:
    PureCloud_OAuth:
      type: oauth2
      flows:
        implicit:
          scopes:
            all: All the scopes
          authorizationUrl: https://login.mypurecloud.com/authorize
    Guest_Chat_JWT:
      type: apiKey
      name: Authorization
      in: header
externalDocs:
  description: PureCloud API Documentation
  url: https://developer.genesys.cloud/