Genesys Gamification API

Gamification, Scorecard, and leaderboard

Operations 78

POST /api/v2/gamification/contests/uploads/prizeimages Generates pre-signed URL to upload a prize image for gamification contests #
POST /api/v2/employeeperformance/externalmetrics/data Write External Metric Data #
GET /api/v2/employeeperformance/externalmetrics/definitions/{metricId} Get an External Metric Definition #
DELETE /api/v2/employeeperformance/externalmetrics/definitions/{metricId} Delete an External Metric Definition #
PATCH /api/v2/employeeperformance/externalmetrics/definitions/{metricId} Update External Metric Definition #
GET /api/v2/employeeperformance/externalmetrics/definitions Get a list of External Metric Definitions of an organization, sorted by name in ascending order #
POST /api/v2/employeeperformance/externalmetrics/definitions Create External Metric Definition #
GET /api/v2/gamification/status Gamification activation status #
PUT /api/v2/gamification/status Update gamification activation status #
GET /api/v2/gamification/leaderboard Leaderboard of the requesting user's division or performance profile #
GET /api/v2/gamification/leaderboard/bestpoints Best Points of the requesting user's current performance profile or division #
GET /api/v2/gamification/leaderboard/all Leaderboard by filter type #
GET /api/v2/gamification/leaderboard/all/bestpoints Best Points by division or performance profile #
GET /api/v2/gamification/metricdefinitions/{metricDefinitionId} Metric definition by id #
GET /api/v2/gamification/metricdefinitions All metric definitions #
GET /api/v2/gamification/templates/{templateId} Objective template by id #
GET /api/v2/gamification/templates All objective templates #
POST /api/v2/gamification/profiles/users/{userId}/query Query performance profiles in date range for a user #
POST /api/v2/gamification/profiles/users/me/query Query performance profiles in date range for the current user #
GET /api/v2/gamification/profiles/{profileId} Performance profile by id #
PUT /api/v2/gamification/profiles/{profileId} Updates a performance profile #
POST /api/v2/gamification/profiles/{profileId}/activate Activate a performance profile #
POST /api/v2/gamification/profiles/{profileId}/deactivate Deactivate a performance profile #
GET /api/v2/gamification/profiles/users/me Performance profile of the requesting user #
GET /api/v2/gamification/profiles/users/{userId} Performance profile of a user #
GET /api/v2/gamification/profiles All performance profiles #
POST /api/v2/gamification/profiles Create a new custom performance profile #
GET /api/v2/gamification/profiles/{profileId}/metrics/{metricId} Performance profile gamified metric by id #
PUT /api/v2/gamification/profiles/{profileId}/metrics/{metricId} Updates a metric in performance profile #
GET /api/v2/gamification/profiles/{profileId}/metrics/objectivedetails All metrics for a given performance profile with objective details such as order and maxPoints #
GET /api/v2/gamification/profiles/{profileId}/metrics All gamified metrics for a given performance profile #
POST /api/v2/gamification/profiles/{profileId}/metrics Creates a gamified metric with a given metric definition and metric objective under in a performance profile #
GET /api/v2/gamification/contests/{contestId}/prizeimages/{prizeImageId} Get a Contest Prize Image by Id #
GET /api/v2/gamification/contests Get a List of Contests (Admin) #
POST /api/v2/gamification/contests Creates a Contest #
GET /api/v2/gamification/contests/me Get a List of Contests (Agent/Supervisor) #
GET /api/v2/gamification/contests/{contestId} Get a Contest by Id #
PUT /api/v2/gamification/contests/{contestId} Update a Contest by Id #
DELETE /api/v2/gamification/contests/{contestId} Delete a Contest by Id #
PATCH /api/v2/gamification/contests/{contestId} Finalize a Contest by Id #
GET /api/v2/gamification/contests/{contestId}/agents/scores Get Contest Scores (Admin) #
GET /api/v2/gamification/contests/{contestId}/agents/scores/me Get Contest Scores for the requesting Agent/Supervisor #
GET /api/v2/gamification/contests/{contestId}/agents/scores/trends/me Get a Contest Score Trend for the requesting Agent #
GET /api/v2/gamification/contests/{contestId}/agents/scores/trends Get a Contest Score Trend (Average Trend) #
GET /api/v2/gamification/insights/users/{userId}/details Get insights details for the user #
GET /api/v2/gamification/insights/details Get insights details for the current user #
GET /api/v2/gamification/insights/members Query users in a profile during a period of time #
GET /api/v2/gamification/insights/managers Query managers in a profile during a period of time #
GET /api/v2/gamification/insights/groups/trends/all Get insights overall trend #
GET /api/v2/gamification/insights/groups/trends Get insights overall trend for the current user #
GET /api/v2/gamification/insights Get insights summary #
GET /api/v2/gamification/insights/rankings Get insights rankings #
GET /api/v2/gamification/insights/trends Get insights user trend for the current user #
GET /api/v2/gamification/insights/users/{userId}/trends Get insights user trend for the user #
GET /api/v2/gamification/profiles/{profileId}/members Members of a given performance profile #
POST /api/v2/gamification/profiles/{profileId}/members Assign members to a given performance profile #
POST /api/v2/gamification/profiles/{profileId}/members/validate Validate member assignment #
GET /api/v2/gamification/scorecards/profiles/{profileId}/metrics/{metricId}/users/values/trends Average performance values trends by metric of a division or a performance profile #
GET /api/v2/gamification/scorecards/profiles/{profileId}/metrics/{metricId}/users/{userId}/values/trends Average performance values trends by metric of a user #
GET /api/v2/gamification/scorecards/profiles/{profileId}/metrics/{metricId}/values/trends Average performance values trends by metric of the requesting user #
GET /api/v2/gamification/scorecards/bestpoints Best points of the requesting user #
GET /api/v2/gamification/scorecards Workday performance metrics of the requesting user #
GET /api/v2/gamification/scorecards/attendance Attendance status metrics of the requesting user #
GET /api/v2/gamification/scorecards/points/alltime All-time points of the requesting user #
GET /api/v2/gamification/scorecards/points/average Average points of the requesting user's division or performance profile #
GET /api/v2/gamification/scorecards/points/trends Points trends of the requesting user #
GET /api/v2/gamification/scorecards/values/trends Values trends of the requesting user or group #
GET /api/v2/gamification/scorecards/values/average Average values of the requesting user's division or performance profile #
GET /api/v2/gamification/scorecards/users/{userId} Workday performance metrics for a user #
GET /api/v2/gamification/scorecards/users/{userId}/bestpoints Best points of a user #
GET /api/v2/gamification/scorecards/users/{userId}/attendance Attendance status metrics for a user #
GET /api/v2/gamification/scorecards/users/{userId}/points/trends Points trend for a user #
GET /api/v2/gamification/scorecards/users/{userId}/points/alltime All-time points for a user #
GET /api/v2/gamification/scorecards/users/{userId}/values/trends Values trends of a user #
GET /api/v2/gamification/scorecards/users/points/average Workday average points by target group #
GET /api/v2/gamification/scorecards/users/values/average Workday average values by target group #
GET /api/v2/gamification/scorecards/users/values/trends Values trend by target group #

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-gamification-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-gamification-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 Gamification 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: Gamification
  description: Gamification, Scorecard, and leaderboard
  externalDocs:
    description: Gamification Documentation
    url: https://developer.genesys.cloud/useragentman/gamification/
paths:
  /api/v2/gamification/contests/uploads/prizeimages:
    post:
      tags:
      - Gamification
      summary: Generates pre-signed URL to upload a prize image for gamification contests
      description: ''
      operationId: postGamificationContestsUploadsPrizeimages
      responses:
        '200':
          description: Pre-signed urls successfully created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UploadUrlResponse'
        '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'
            client.failed.request: The client did not produce a request with valid end of stream signaling. This can be caused by poor network connection and/or client behavior.
            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.
          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:
        - gamification
      x-inin-requires-permissions:
        type: ALL
        permissions:
        - gamification:contestPrizeImage:upload
      x-purecloud-method-name: postGamificationContestsUploadsPrizeimages
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GamificationContestPrizeImageUploadUrlRequest'
        description: query
        required: true
  /api/v2/employeeperformance/externalmetrics/data:
    post:
      tags:
      - Gamification
      summary: Write External Metric Data
      description: ''
      operationId: postEmployeeperformanceExternalmetricsData
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExternalMetricDataWriteResponse'
        '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'
            client.failed.request: The client did not produce a request with valid end of stream signaling. This can be caused by poor network connection and/or client behavior.
            employee.performance.external.metric.data.input.validation.error: There was an error parsing argument
            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.
          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:
            employee.performance.external.metric.data.internal.service.error: The operation failed in an unexpected way
            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).
            employee.performance.external.metric.data.server.too.busy: The operation failed because the service is too busy
          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:
        - employee-performance
      x-inin-requires-permissions:
        type: ANY
        permissions:
        - employeePerformance:externalMetricData:add
      x-purecloud-method-name: postEmployeeperformanceExternalmetricsData
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExternalMetricDataWriteRequest'
        description: The External Metric Data to be added
  /api/v2/employeeperformance/externalmetrics/definitions/{metricId}:
    get:
      tags:
      - Gamification
      summary: Get an External Metric Definition
      description: ''
      operationId: getEmployeeperformanceExternalmetricsDefinition
      parameters:
      - name: metricId
        in: path
        description: Specifies the External Metric Definition ID
        required: true
        schema:
          type: string
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExternalMetricDefinition'
        '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]
            employee.performance.external.metric.definition.input.validation.error: There was an error parsing argument
            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:
            employee.performance.external.metric.definition.not.found: The operation failed because the metric definition was 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:
            employee.performance.external.metric.definition.internal.service.error: The operation failed in an unexpected way
            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:
            employee.performance.external.metric.definition.server.too.busy: The operation failed because the service is too busy
            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:
        - employee-performance
        - employee-performance:readonly
      x-inin-requires-permissions:
        type: ANY
        permissions:
        - employeePerformance:externalMetricDefinition:view
      x-purecloud-method-name: getEmployeeperformanceExternalmetricsDefinition
    delete:
      tags:
      - Gamification
      summary: Delete an External Metric Definition
      description: ''
      operationId: deleteEmployeeperformanceExternalmetricsDefinition
      parameters:
      - name: metricId
        in: path
        description: Specifies the External Metric Definition ID
        required: true
        schema:
          type: string
      responses:
        '204':
          description: The External Metric Definition was successfully deleted
        '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
            employee.performance.external.metric.definition.input.validation.error: There was an error parsing argument
          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:
            employee.performance.external.metric.definition.not.found: The operation failed because the metric definition was 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.
            employee.performance.external.metric.definition.state.conflict.error: The operation failed because the metric definition is in use
          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:
            employee.performance.external.metric.definition.internal.service.error: The operation failed in an unexpected way
            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:
            employee.performance.external.metric.definition.server.too.busy: The operation failed because the service is too busy
            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:
        - employee-performance
      x-inin-requires-permissions:
        type: ANY
        permissions:
        - employeePerformance:externalMetricDefinition:delete
      x-purecloud-method-name: deleteEmployeeperformanceExternalmetricsDefinition
    patch:
      tags:
      - Gamification
      summary: Update External Metric Definition
      description: ''
      operationId: patchEmployeeperformanceExternalmetricsDefinition
      parameters:
      - name: metricId
        in: path
        description: Specifies the metric definition ID
        required: true
        schema:
          type: string
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExternalMetricDefinition'
        '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'
            client.failed.request: The client did not produce a request with valid end of stream signaling. This can be caused by poor network connection and/or client behavior.
            invalid.property: Value [%s] is not a valid property for object [%s]
            employee.performance.external.metric.definition.input.validation.error:

# --- truncated at 32 KB (697 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/genesys/refs/heads/main/openapi/genesys-gamification-api-openapi.yml