AppDirect Discount API

The Discount API from AppDirect — 2 operation(s) for discount.

Operations 5

GET /channel/v1/discounts List all discounts #
POST /channel/v1/discounts Create discounts #
PUT /channel/v1/discounts/{discountId} Update discounts #
GET /channel/v1/discounts/{discountId} Retrieve discounts #
DELETE /channel/v1/discounts/{discountId} Delete discounts #

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/appdirect-discount-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

appdirect-discount-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: The Companies API allows developers to manage marketplace companies and their user memberships.
  title: Companies Discount API
  license:
    name: Apache License, Version 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0
  version: v296.0-SNAPSHOT
servers:
- url: https://marketplace.appdirect.com/api
- url: https://virtserver.swaggerhub.com
tags:
- name: Discount
  x-displayName: Discounts
paths:
  /channel/v1/discounts:
    get:
      description: 'Lists all available discounts.

        The parameters can be used to filter the results.'
      tags:
      - Discount
      summary: List all discounts
      operationId: resource_Other_readDiscounts_GET
      parameters:
      - description: Discount code
        name: code
        in: query
        schema:
          type: string
      - description: Number of results to fetch. Used for paging.
        name: count
        in: query
        schema:
          type: integer
          default: 250
      - description: Sort field. Default value is creation date.
        name: sortField
        in: query
        schema:
          type: string
          enum:
          - APPLICATION
          - CHANNEL
          - CODE
          - CREATED_ON
          - END_DATE
          - REDEMPTIONS
          - START_DATE
          default: CREATED_ON
      - description: Sort order. Default value is ascending.
        name: sortOrder
        in: query
        schema:
          type: string
          enum:
          - ASC
          - DESC
          default: ASC
      - description: First result index. Used for paging.
        name: start
        in: query
        schema:
          type: integer
      responses:
        '200':
          description: OK
          headers:
            X-Total-Count:
              schema:
                type: integer
          content:
            '*/*':
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Discount'
            application/json:
              examples:
                response:
                  value:
                  - id: 4
                    uuid: 47055f26-ace6-4abe-87a6-ab64f4de80ce
                    code: null
                    redemptions: 0
                    maxRedemptions: null
                    createdOn: 1480969138028
                    startDate: null
                    expirationDate: null
                    type: PERCENTAGE
                    percentage: 70
                    price: null
                    description: SOMEDESCRIPTION
                    applicationName: null
                    applicationId: null
                    applicationUuid: null
                    editionId: null
                    editionUuid: null
                    paymentPlanId: null
                    paymentPlanUuid: null
                    autoApply: true
                    billingCycles: null
                    retainable: false
                    redemptionRestriction: NONE
                    vendorSharePercentage: null
                    partnerSharePercentage: null
                    basePartnerSharePercentage: null
                    unit: USER
                    minUnits: 0
                    maxUnits: 0
                    industryId: null
            headers:
              examples:
                response:
                  value:
                    X-Total-Count: 1
        '404':
          description: Not Found
      x-codeSamples:
      - lang: Shell + Curl
        source: "curl --request GET \\\n  --url 'https://marketplace.appdirect.com/api/channel/v1/discounts?code=SOME_STRING_VALUE&count=SOME_INTEGER_VALUE&sortField=SOME_STRING_VALUE&sortOrder=SOME_STRING_VALUE&start=SOME_INTEGER_VALUE'"
      - lang: Node + Request
        source: "const request = require('request');\n\nconst options = {\n  method: 'GET',\n  url: 'https://marketplace.appdirect.com/api/channel/v1/discounts',\n  qs: {\n    code: 'SOME_STRING_VALUE',\n    count: 'SOME_INTEGER_VALUE',\n    sortField: 'SOME_STRING_VALUE',\n    sortOrder: 'SOME_STRING_VALUE',\n    start: 'SOME_INTEGER_VALUE'\n  }\n};\n\nrequest(options, function (error, response, body) {\n  if (error) throw new Error(error);\n\n  console.log(body);\n});\n"
      - lang: Java + Okhttp
        source: "OkHttpClient client = new OkHttpClient();\n\nRequest request = new Request.Builder()\n  .url(\"https://marketplace.appdirect.com/api/channel/v1/discounts?code=SOME_STRING_VALUE&count=SOME_INTEGER_VALUE&sortField=SOME_STRING_VALUE&sortOrder=SOME_STRING_VALUE&start=SOME_INTEGER_VALUE\")\n  .get()\n  .build();\n\nResponse response = client.newCall(request).execute();"
    post:
      description: Creates a discount with the provided data. Note that percentage discounts cannot exceed two decimal places (for example, 10.15).
      tags:
      - Discount
      summary: Create discounts
      operationId: resource_Other_createDiscount_POST
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Discount'
        description: Discount data object
      responses:
        '201':
          description: Created
          content:
            application/json:
              examples:
                response:
                  value:
                    id: 1
                    uuid: 17055f26-ace6-4abe-87a6-ab64f4de80ce
                    code: null
                    redemptions: 0
                    maxRedemptions: null
                    createdOn: 1480969136160
                    startDate: null
                    expirationDate: null
                    type: PERCENTAGE
                    percentage: 70
                    price: null
                    description: SOMEDESCRIPTION
                    applicationName: null
                    applicationId: null
                    applicationUuid: null
                    editionId: null
                    editionUuid: null
                    paymentPlanId: null
                    paymentPlanUuid: null
                    autoApply: true
                    billingCycles: null
                    retainable: false
                    redemptionRestriction: NONE
                    vendorSharePercentage: 50
                    partnerSharePercentage: 25
                    basePartnerSharePercentage: 25
                    unit: USER
                    minUnits: 0
                    maxUnits: 0
                    industryId: null
        '400':
          description: Bad Request
        '404':
          description: Not Found
        '409':
          description: Conflict
      x-codeSamples:
      - lang: Shell + Curl
        source: "curl --request POST \\\n  --url https://marketplace.appdirect.com/api/channel/v1/discounts \\\n  --data '{\"applicationId\":0,\"applicationUuid\":\"string\",\"applicationName\":\"string\",\"autoApply\":true,\"basePartnerSharePercentage\":0,\"billingCycles\":0,\"code\":\"string\",\"createdOn\":0,\"description\":\"string\",\"editionId\":0,\"editionUuid\":\"string\",\"expirationDate\":0,\"id\":0,\"uuid\":\"string\",\"industryId\":0,\"maxRedemptions\":0,\"maxUnits\":0,\"minUnits\":0,\"partnerSharePercentage\":0,\"paymentPlanId\":0,\"paymentPlanUuid\":\"string\",\"percentage\":0,\"price\":0,\"redemptionRestriction\":\"string\",\"redemptions\":0,\"retainable\":true,\"startDate\":0,\"type\":\"string\",\"unit\":\"USER\",\"vendorSharePercentage\":0}'"
      - lang: Node + Request
        source: "const request = require('request');\n\nconst options = {\n  method: 'POST',\n  url: 'https://marketplace.appdirect.com/api/channel/v1/discounts',\n  body: {\n    applicationId: 0,\n    applicationUuid: 'string',\n    applicationName: 'string',\n    autoApply: true,\n    basePartnerSharePercentage: 0,\n    billingCycles: 0,\n    code: 'string',\n    createdOn: 0,\n    description: 'string',\n    editionId: 0,\n    editionUuid: 'string',\n    expirationDate: 0,\n    id: 0,\n    uuid: 'string',\n    industryId: 0,\n    maxRedemptions: 0,\n    maxUnits: 0,\n    minUnits: 0,\n    partnerSharePercentage: 0,\n    paymentPlanId: 0,\n    paymentPlanUuid: 'string',\n    percentage: 0,\n    price: 0,\n    redemptionRestriction: 'string',\n    redemptions: 0,\n    retainable: true,\n    startDate: 0,\n    type: 'string',\n    unit: 'USER',\n    vendorSharePercentage: 0\n  },\n  json: true\n};\n\nrequest(options, function (error, response, body) {\n  if (error) throw new Error(error);\n\n  console.log(body);\n});\n"
      - lang: Java + Okhttp
        source: "OkHttpClient client = new OkHttpClient();\n\nMediaType mediaType = MediaType.parse(\"application/json\");\nRequestBody body = RequestBody.create(mediaType, \"{\\\"applicationId\\\":0,\\\"applicationUuid\\\":\\\"string\\\",\\\"applicationName\\\":\\\"string\\\",\\\"autoApply\\\":true,\\\"basePartnerSharePercentage\\\":0,\\\"billingCycles\\\":0,\\\"code\\\":\\\"string\\\",\\\"createdOn\\\":0,\\\"description\\\":\\\"string\\\",\\\"editionId\\\":0,\\\"editionUuid\\\":\\\"string\\\",\\\"expirationDate\\\":0,\\\"id\\\":0,\\\"uuid\\\":\\\"string\\\",\\\"industryId\\\":0,\\\"maxRedemptions\\\":0,\\\"maxUnits\\\":0,\\\"minUnits\\\":0,\\\"partnerSharePercentage\\\":0,\\\"paymentPlanId\\\":0,\\\"paymentPlanUuid\\\":\\\"string\\\",\\\"percentage\\\":0,\\\"price\\\":0,\\\"redemptionRestriction\\\":\\\"string\\\",\\\"redemptions\\\":0,\\\"retainable\\\":true,\\\"startDate\\\":0,\\\"type\\\":\\\"string\\\",\\\"unit\\\":\\\"USER\\\",\\\"vendorSharePercentage\\\":0}\");\nRequest request = new Request.Builder()\n  .url(\"https://marketplace.appdirect.com/api/channel/v1/discounts\")\n  .post(body)\n  .build();\n\nResponse response = client.newCall(request).execute();"
  /channel/v1/discounts/{discountId}:
    put:
      description: Updates the specified discount with the provided data. Note that percentage discounts cannot exceed two decimal places (for example, 10.15).
      tags:
      - Discount
      summary: Update discounts
      operationId: resource_Other_updateDiscount_PUT
      parameters:
      - description: Discount ID or Discount UUID
        name: discountId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Discount'
        description: Discount data object
      responses:
        '200':
          description: OK
          content:
            application/json:
              examples:
                response:
                  value:
                    id: 5
                    uuid: 57055f26-ace6-4abe-87a6-ab64f4de80ce
                    code: null
                    redemptions: 0
                    maxRedemptions: null
                    createdOn: null
                    startDate: null
                    expirationDate: null
                    type: PERCENTAGE
                    percentage: 50
                    price: null
                    description: SOMEDESCRIPTION
                    applicationName: null
                    applicationId: null
                    applicationUuid: null
                    editionId: null
                    editionUuid: null
                    paymentPlanId: null
                    paymentPlanUuid: null
                    autoApply: true
                    billingCycles: null
                    retainable: false
                    redemptionRestriction: NONE
                    vendorSharePercentage: 50
                    partnerSharePercentage: 25
                    basePartnerSharePercentage: 25
                    unit: USER
                    minUnits: 0
                    maxUnits: 0
                    industryId: null
        '400':
          description: Bad Request
        '404':
          description: Not Found
        '409':
          description: Conflict
      x-codeSamples:
      - lang: Shell + Curl
        source: "curl --request PUT \\\n  --url https://marketplace.appdirect.com/api/channel/v1/discounts/%7BdiscountId%7D \\\n  --data '{\"applicationId\":0,\"applicationUuid\":\"string\",\"applicationName\":\"string\",\"autoApply\":true,\"basePartnerSharePercentage\":0,\"billingCycles\":0,\"code\":\"string\",\"createdOn\":0,\"description\":\"string\",\"editionId\":0,\"editionUuid\":\"string\",\"expirationDate\":0,\"id\":0,\"uuid\":\"string\",\"industryId\":0,\"maxRedemptions\":0,\"maxUnits\":0,\"minUnits\":0,\"partnerSharePercentage\":0,\"paymentPlanId\":0,\"paymentPlanUuid\":\"string\",\"percentage\":0,\"price\":0,\"redemptionRestriction\":\"string\",\"redemptions\":0,\"retainable\":true,\"startDate\":0,\"type\":\"string\",\"unit\":\"USER\",\"vendorSharePercentage\":0}'"
      - lang: Node + Request
        source: "const request = require('request');\n\nconst options = {\n  method: 'PUT',\n  url: 'https://marketplace.appdirect.com/api/channel/v1/discounts/%7BdiscountId%7D',\n  body: {\n    applicationId: 0,\n    applicationUuid: 'string',\n    applicationName: 'string',\n    autoApply: true,\n    basePartnerSharePercentage: 0,\n    billingCycles: 0,\n    code: 'string',\n    createdOn: 0,\n    description: 'string',\n    editionId: 0,\n    editionUuid: 'string',\n    expirationDate: 0,\n    id: 0,\n    uuid: 'string',\n    industryId: 0,\n    maxRedemptions: 0,\n    maxUnits: 0,\n    minUnits: 0,\n    partnerSharePercentage: 0,\n    paymentPlanId: 0,\n    paymentPlanUuid: 'string',\n    percentage: 0,\n    price: 0,\n    redemptionRestriction: 'string',\n    redemptions: 0,\n    retainable: true,\n    startDate: 0,\n    type: 'string',\n    unit: 'USER',\n    vendorSharePercentage: 0\n  },\n  json: true\n};\n\nrequest(options, function (error, response, body) {\n  if (error) throw new Error(error);\n\n  console.log(body);\n});\n"
      - lang: Java + Okhttp
        source: "OkHttpClient client = new OkHttpClient();\n\nMediaType mediaType = MediaType.parse(\"application/json\");\nRequestBody body = RequestBody.create(mediaType, \"{\\\"applicationId\\\":0,\\\"applicationUuid\\\":\\\"string\\\",\\\"applicationName\\\":\\\"string\\\",\\\"autoApply\\\":true,\\\"basePartnerSharePercentage\\\":0,\\\"billingCycles\\\":0,\\\"code\\\":\\\"string\\\",\\\"createdOn\\\":0,\\\"description\\\":\\\"string\\\",\\\"editionId\\\":0,\\\"editionUuid\\\":\\\"string\\\",\\\"expirationDate\\\":0,\\\"id\\\":0,\\\"uuid\\\":\\\"string\\\",\\\"industryId\\\":0,\\\"maxRedemptions\\\":0,\\\"maxUnits\\\":0,\\\"minUnits\\\":0,\\\"partnerSharePercentage\\\":0,\\\"paymentPlanId\\\":0,\\\"paymentPlanUuid\\\":\\\"string\\\",\\\"percentage\\\":0,\\\"price\\\":0,\\\"redemptionRestriction\\\":\\\"string\\\",\\\"redemptions\\\":0,\\\"retainable\\\":true,\\\"startDate\\\":0,\\\"type\\\":\\\"string\\\",\\\"unit\\\":\\\"USER\\\",\\\"vendorSharePercentage\\\":0}\");\nRequest request = new Request.Builder()\n  .url(\"https://marketplace.appdirect.com/api/channel/v1/discounts/%7BdiscountId%7D\")\n  .put(body)\n  .build();\n\nResponse response = client.newCall(request).execute();"
    get:
      description: Retrieves the discount for the given discount ID or UUID.
      tags:
      - Discount
      summary: Retrieve discounts
      operationId: resource_Other_readDiscount_GET
      parameters:
      - description: Discount ID or Discount UUID
        name: discountId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              examples:
                response:
                  value:
                    id: 4
                    uuid: 47055f26-ace6-4abe-87a6-ab64f4de80ce
                    code: null
                    redemptions: 0
                    maxRedemptions: null
                    createdOn: 1480969138028
                    startDate: null
                    expirationDate: null
                    type: PERCENTAGE
                    percentage: 70
                    price: null
                    description: SOMEDESCRIPTION
                    applicationName: null
                    applicationId: null
                    applicationUuid: null
                    editionId: null
                    editionUuid: null
                    paymentPlanId: null
                    paymentPlanUuid: null
                    autoApply: true
                    billingCycles: null
                    retainable: false
                    redemptionRestriction: NONE
                    vendorSharePercentage: null
                    partnerSharePercentage: null
                    basePartnerSharePercentage: null
                    unit: USER
                    minUnits: 0
                    maxUnits: 0
                    industryId: null
        '404':
          description: Not Found
      x-codeSamples:
      - lang: Shell + Curl
        source: "curl --request GET \\\n  --url https://marketplace.appdirect.com/api/channel/v1/discounts/%7BdiscountId%7D"
      - lang: Node + Request
        source: "const request = require('request');\n\nconst options = {\n  method: 'GET',\n  url: 'https://marketplace.appdirect.com/api/channel/v1/discounts/%7BdiscountId%7D'\n};\n\nrequest(options, function (error, response, body) {\n  if (error) throw new Error(error);\n\n  console.log(body);\n});\n"
      - lang: Java + Okhttp
        source: "OkHttpClient client = new OkHttpClient();\n\nRequest request = new Request.Builder()\n  .url(\"https://marketplace.appdirect.com/api/channel/v1/discounts/%7BdiscountId%7D\")\n  .get()\n  .build();\n\nResponse response = client.newCall(request).execute();"
    delete:
      description: Deletes the discount with the specified discount ID or UUID.
      tags:
      - Discount
      summary: Delete discounts
      operationId: resource_Other_deleteDiscount_DELETE
      parameters:
      - description: Discount ID or Discount UUID
        name: discountId
        in: path
        required: true
        schema:
          type: string
      responses:
        '204':
          description: No Content
        '404':
          description: Not Found
      x-codeSamples:
      - lang: Shell + Curl
        source: "curl --request DELETE \\\n  --url https://marketplace.appdirect.com/api/channel/v1/discounts/%7BdiscountId%7D"
      - lang: Node + Request
        source: "const request = require('request');\n\nconst options = {\n  method: 'DELETE',\n  url: 'https://marketplace.appdirect.com/api/channel/v1/discounts/%7BdiscountId%7D'\n};\n\nrequest(options, function (error, response, body) {\n  if (error) throw new Error(error);\n\n  console.log(body);\n});\n"
      - lang: Java + Okhttp
        source: "OkHttpClient client = new OkHttpClient();\n\nRequest request = new Request.Builder()\n  .url(\"https://marketplace.appdirect.com/api/channel/v1/discounts/%7BdiscountId%7D\")\n  .delete(null)\n  .build();\n\nResponse response = client.newCall(request).execute();"
components:
  schemas:
    Discount:
      description: Discount details
      type: object
      title: Discount
      required:
      - type
      - description
      properties:
        applicationId:
          description: Application ID.
          type:
          - number
          - 'null'
        applicationUuid:
          description: Application UUID.
          type:
          - string
          - 'null'
        applicationName:
          description: Name of the application to which the discount applies.
          type:
          - string
          - 'null'
        autoApply:
          description: True if the discount is automatically applied. Default value is true.
          type: boolean
        basePartnerSharePercentage:
          description: Base partner's percentage share of the discount.
          type:
          - number
          - 'null'
        billingCycles:
          description: Number of billing cycles for which the discount should be applied.
          type:
          - number
          - 'null'
        code:
          description: Discount code. Must be at least 4 characters, but no longer than 103 characters.
          type:
          - string
          - 'null'
        createdOn:
          description: Creation date of the discount.
          type:
          - number
          - 'null'
        description:
          description: Description of discount. Required field. Must be at least 4 characters, but no longer than 255 characters.
          type: string
        editionId:
          description: Edition ID.
          type:
          - number
          - 'null'
        editionUuid:
          description: Edition UUID.
          type:
          - string
          - 'null'
        expirationDate:
          description: Expiration date for the discount. This date must be in the future.
          type:
          - number
          - 'null'
        id:
          description: Discount ID.
          type:
          - number
          - 'null'
        uuid:
          description: Discount UUID.
          type:
          - string
          - 'null'
        industryId:
          description: Industry ID.
          type:
          - number
          - 'null'
        maxRedemptions:
          description: Maximum number of redemptions available.
          type:
          - number
          - 'null'
        maxUnits:
          description: Maximum number of units for which to apply the discount.
          type: number
        minUnits:
          description: Minimum number of units for which to apply the discount.
          type: number
        partnerSharePercentage:
          description: Partner's percentage share of the discount.
          type:
          - number
          - 'null'
        paymentPlanId:
          description: Payment plan ID.
          type:
          - number
          - 'null'
        paymentPlanUuid:
          description: Payment plan UUID.
          type:
          - string
          - 'null'
        percentage:
          description: Percentage discount if discount is of PERCENTAGE type. The percentage value cannot exceed two decimal places (for example, 10.15).
          type: number
        price:
          description: Amount to discount if discount is of FIXED_PRICE type.
          type:
          - number
          - 'null'
        redemptionRestriction:
          $ref: '#/components/schemas/RedemptionRestriction'
        redemptions:
          description: Number of times the discount has been redeemed.
          type: number
        retainable:
          description: True if the discount is retainable. Retainable discounts can be redeemed on orders that are updated after the discount expires. For example, if an order includes a discount that expires on 01 January 2019, and the order is then updated on 02 January 2019, the discount would still be redeemable. The default value is false (discounts are not retained).
          type: boolean
        startDate:
          description: Start date for the discount.
          type:
          - number
          - 'null'
        type:
          $ref: '#/components/schemas/DiscountType'
        unit:
          $ref: '#/components/schemas/PricingUnit'
        vendorSharePercentage:
          description: Vendor's percentage share of the discount.
          type:
          - number
          - 'null'
    RedemptionRestriction:
      type: string
      title: RedemptionRestriction
      properties:
        RedemptionRestriction:
          type: string
          enum:
          - NONE
          - ONCE_PER_USER
          - ONCE_PER_COMPANY
    DiscountType:
      type: string
      title: DiscountType
      properties:
        DiscountType:
          type: string
          enum:
          - PERCENTAGE
          - FIXED_PRICE
    PricingUnit:
      type: string
      title: PricingUnit
      enum:
      - USER
      - GIGABYTE
      - GMV
      - MEGABYTE
      - PROSPECT_SCORE
      - HOUR
      - MINUTE
      - INVOICE
      - UNIT
      - PROJECT
      - PROPERTY
      - ITEM
      - WORD
      - EMAIL
      - CONTACT
      - CALL
      - CREDIT
      - ROOM
      - HOST
      - AGENT
      - OPERATOR
      - PROVIDER
      - MANAGER
      - TESTER
      - JVM
      - SERVER
      - WEB_USE_MINUTE
      - AUDIO_USE_MINUTE
      - PIECE
      - EMPLOYEE_PAY_PERIOD
      - EMPLOYEE_PER_PAY_PERIOD
      - COMPUTER
      - NOT_APPLICABLE
      - ONE_TIME_SETUP
      - DATA_POINTS
      - TIER1_API_CALLS
      - TIER2_API_CALLS
      - ADVISORY_HOURS
      - OVERAGE_AUDIO_MINUTE
      - EMPLOYEE
      - CONNECTION
      - PUSH_USER
      - THOUSAND_EMAILS_PER_DAY
      - PUSH_NOTIFICATION_DEVICES
      - API_CALLS
      - SMS_TEXT_MESSAGE
      - CONTACTS_1000
      - CONTRACT_FEE
      - TRANSFER_FEE
      - REACTIVATION_FEE
      - RECIPIENT
      - ADDITIONAL_1000_CONTACTS_BLOCK
      - SCHEDULE_PLAN
      - EMAILS_1000
      - EMAILS_2500
      - EMAILS_100000
      - MOBILE_DEVICE
      - PAYSLIP
      - PAYSLIP_CORRECTION
      - STORE
      - WEBSITE
      - EPAPER
      - PAGE
      - POSTAGE_AND_PRINT
      - INTERNATIONAL_POSTAGE_AND_PRINT
      - TIER1_TOP_LEVEL_DOMAIN
      - TIER2_TOP_LEVEL_DOMAIN
      - DEDICATED_IP
      - ENABLELCM
      - MAXCOMPONENTS
      - DATA_MANAGEMENT_USER
      - SPECIALIST_USER
      - PROFESSIONAL_USER
      - MATERIALITY_MATRIX
      - STAKEHOLDER_MANAGEMENT
      - SCORECARD
      - STANDARD_MAPPING
      - DONATION_MANAGEMENT
      - DOCUMENT
      - PACKAGE_SMALL
      - PACKAGE_LARGE
      - MEMBER
      - ATTENDEE
      - MAILING
      - RESPONSE
      - EXTERNAL_INVOICE_FEE
      - CLIENT_TEST
      - IMAGE_TRANSFORMATION
      - TOTAL_IMAGE
      - LICENSE
      - MAILBOX
      - FREE_40_INCH_HDTV_PC
      - FREE_46_INCH_HDTV_PC
      - FREE_46_INCH_HDTV_PC_MOUNTING
      - EMPLOYEE_PER_WEEK
      - REGISTER
      - END_USER
      - CORE
      - DEVICE
      - PORT
      - MEASURER
      - PUBLISHED_MEASUREMENT
      - NODE
      - SERVER_RULE
      - VPN_LP
      - PROXY_LP
      - DESKTOP_CONNECT_LP
      - CAMERA
      - MAIN_SOUND_ZONE
      - SUB_SOUND_ZONE
      - POST
      - REPORT
      - BOX
      - SESSION
      - DISPLAY
      - TRUCKROLL
      - TRANSACTION_FEE
      - SENDING_API_CALL
      - LOOKUP_API_CALL
      - ANALYTICS_API_CALL
      - MIGRATION_INSTANCE
      - NFON_SETUP_PER_PHONE_EXTENSION
      - NFON_SETUP_PER_PHONE_EXTENSION_PLUS
      - NFON_SETUP_PER_EFAX_EXTENSION
      - NFON_PHONE_EXTENSION
      - NFON_PHONE_EXTENSION_PLUS
      - NFON_EFAX_EXTENSION
      - NFON_CALL_CENTER_MONITORING
      - NFON_NMEETING
      - NFON_MOBILE_NFON_DEVICE
      - NFON_ISOFTPHONE_MAC
      - NFON_NSOFTPHONE_STANDARD_WINDOWS
      - NFON_NSOFTPHONE_PREMIUM_WINDOWS
      - NFON_NCTI_STANDARD_WINDOWS
      - NFON_NCTI_STANDARD_CRM_WINDOWS
      - NFON_NCTI_STANDARD_MAC
      - NFON_NSOFTPHONE_STANDARD_WINDOWS_OR_MOBILE
      - WESUSTAIN_PERFORMANCE
      - WESUSTAIN_STAKEHOLDER_REPUTATION
      - WESUSTAIN_WEAPP
      - FAX
      - FAX_LINE
      - ROOM_LINE
      - DEPARTMENT_LINE
      - INTERNATIONAL_LICENSE
      - INTERNATIONAL_DEPARTMENT_LINE
      - INTERNATIONAL_ROOM_LINE
      - INTERNATIONAL_LINE
      - CALLING_CREDIT
      - LINE
      - TOLLFREE_ROOM_LINE
      - TOLLFREE_DEPARTMENT_LINE
      - TAXES_AND_FEES
      - LEAD
      - OPPORTUNITY
      - CAMPAIGN
      - CASE
      - CUSTOMER
      - TIER1_STANDARD_LINE
      - TIER1_ROOM_LINE
      - TIER1_TOLLFREE_ROOM_LINE
      - TIER1_TOLLFREE_DEPARTMENT_LINE
      - TIER1_FAX_LINE
      - TIER1_DEPARTMENT_LINE
      - TIER2_STANDARD_LINE
      - TIER2_ROOM_LINE
      - TIER2_DEPARTMENT_LINE
      - TIER3_STANDARD_LINE
      - TIER3_ROOM_LINE
      - TIER3_DEPARTMENT_LINE
      - TIER4_STANDARD_LINE
      - TIER4_ROOM_LINE
      - TIER4_DEPARTMENT_LINE
      - CLUSTER
      - NODE_4VCPU
      - FIVE_HUNDRED_GB_SSD
      - TWELVE_TB_NETWORK_IO
      - JBOSS_EAP
      - JBOSS_FUSE
      - JBOSS_A_MQ
      - JBOSS_BRMS
      - JBOSS_BPM_SUITE
      - JBOSS_DATA_GRID
      - JBOSS_DATA_VIRT
      - USER_LICENSE
      - ADDITIONAL_NUMBER_LICENSE
      - ROOM_PHONE_LICENSE
      - UBERCONFERENCE_PRO_LICENSE
      - UBERCONFERENCE_PRO_LICENSE_UNBUNDLED
      - INSTANCE
      - INDOOR_CAMERA
      - OUTDOOR_CAMERA
      - VINGATE_LP_LICENCE
      - ADMINISTRATOR
      - MOBILE_USER
      - G_SUITE
      - T1
      - PHONE
      - AUTO_ATTENDANT
      - HUNT_GROUP
      - VOICEMAIL_BOX
      - TOLL_FREE_NUMBER
      - INBOUND_LONG_DISTANCE_MINUTE
      - OUTBOUND_LONG_DISTANCE_MINUTE
      - INBOUND_OUTBOUND_LONG_DISTANCE_MINUTE
      - SET_TOP_BOX
      - MODEM
      - ACCESS_POINT
      - CALLING_FEATURE
      - IAD_DEVICE
      - ANALOG_LINE
      - PRI
      - SBC_DEVICE
      - ROUTER
      - INTERNATIONAL_MINUTE
      - PHONE_LINE
      - DYNAMIC_IP_ADDRESS
      - STATIC_IP_ADDRESS
      - GATEWAY
      - REMOTE_CONTROL
      - TIER1_STANDARD_SEAT
      - TIER2_STANDARD_SEAT
      - TIER3_STANDARD_SEAT
      - TIER4_STANDARD_SEAT
      - TIER1_TOLL_FREE_SEAT
      - MILLION_MESSAGES
      - MESSAGE
      - WEEKLY
      - PHONE_NUMBER
      - GUEST
      - REVISION_SAFE_DATAROOM
      - GROUP_SESSION
      - MAILBOX_AD_SYNC
      - PHONE_SUPPORT
      - EXTRA_10TB
      - EXTRA_50TB
      - EXTRA_200TB
      - MAP_VIEW
      - SVM
      - CHANNEL
      - NUMBER_PRINTER_TABLET
      - NUMBER_ONSITE_SERVER
      - NUMBER_VISITS
      - ONSITE_TECHNICIAN_PC
      - ONSITE_TECHNICIAN_SERVER
      - SHORTER_REACTION_TIMES
      - E_COMMERCE_INTEGRATION
      - LOCATION
      - TRAINING_SESSION
      - GIGABYTES_PER_HOUR
      - FINANCIAL_PLANNING
      - ONSITE_WORKPLACE
      - INTERNAL_TOOLS_ACCESS
      - DUTY_SERVICE
      - TERABYTE
      - HOST_UNIT_HOURS
      - WEB_CHECKS
      - ACTIVE_USERS
      - ACTIVE_EMPLOYEE
      - PC_OF_NET_RECURRING_FEE
      - ACTIVE_VENDOR
      - ADVERTISEMENT
      - ADVERTISER_SPENDS
      - ANNUAL_FUNDRAISING_INCOME
      - ANNUAL_SUBSCRIPTION
      - APPLIANCE
      - ASSET
      - ASSETS_UNDER_MANAGEMENT
      - BUSINESS_PARTNERS
      - CASH_FLOWS
      - COMPONENT
      - CONNECTED_SYSTEMS
      - CONTRACTS
      - COSTS
      - DATA_STREAMS
      - DATABASE_SIZE
      - EXTERNAL_SERVICE_CALLS
      - FILE
      - FIXED
      - FLAT
      - FLAT_FEE_BASED_ON_ASSETS
      - FLEET_PLANNING_ORDERS
      - FORMS
      - GIGABYTE_DATABASE_SIZES
      - INSTALLATION
      - INSTALLED_CAPACITY
      - JOB_POSTING
      - LEARNER
      - LOGON
      - MANAGED_SYSTEM
      - MASTER_DATA_OBJECT
      - MASTER_RECORDS
      - MBPS
      - MONITORED_USER
      - MPLS
      - ORDER
      - OUTPATIENT_DAYS
      - PAGE_VIEW
      - PATIENT_CARE_DAY
      - PATIENT_TREATED
      - PLANT
      - POINTS_OF_DELIVERY
      - PREMIUM
      - PROCESS
      - PRODUCTS
      - RECORDS
      - RENTAL_UNIT
      - RESOURCES
      - REVENUE
      - SALES_ORDER
      - SALES_PORTFOLIOS
      - SERVICE_ORDERS
      - SITE_VISITS
      - SPENDS
      - SPEND_VOLUMES
      - STREAM
      - STUDENT
      - SUBSCRIBER
      - SUPPLIERS
      - TICKETS
      - TOTAL_ANNUAL_BUDGET
      - TUNNEL
      - VIRTUAL_USERS
      - SAP_SYSTEM
      - POSITION_TYPES
      - OVERAGE_FEES
      - OVERAGE_FEE_TRANSACTION
      - OVERAGE_FEES_DOCUMENT
      - OVERAGE_FEES_ITEM
      - EVENT
      - BUSINESS_EVENT
      - LEGAL_TENDER
      - ANNUAL_REVENUE
      - AD_SYNC
      - FULL_DATA_RESTORE
      - USED_STORAGE_100GB
      - COMPANY
      - ADDITIONAL_USER
      - VISIT
      - VIDEO
      - ELECTRONIC_PAYMENT
      - CHECK_PAYMENT
      - EXPRESS_PAY_ELECTRONIC_PAYMENT
      - EXPRESS_PAY_CHECK_PAYMENT
      - DATA_ENTRY_SERVICE
      - MONTHLY_VISIT
      - SCRUB_TRANSACTION
      - DEVICE_LICENSE
      - SERVER_LICENSE
      - BASE_LICENSE
      - SERVICE_CALL
      - SUPPORT_INCIDENT_TICKET
      - CUSTOM_REPORT_BUILDING_TRAINING
      - QUOTA
      - DOMESTIC_TRANSACTION
      - BEE
      - BEE_FLEET
      - BEE_BEACON_AMBIENT_LIGHT
      - BEE_BEACON_TEMPERATURE_HUMIDITY
      - CONTACTS_100
      - TEMPLATE
      - TEMPLATE_PACKS_10
      - PACK
      - SMS_TEXT_MESSAGE_10
      - VIRTUAL_SERVER
      - PHYSICAL_SERVER
      - WORKSTATION
      - CHATS
      - MATCH_LIST
      - CERTIFICATE_12_MONTHS
      - CERTIFICATE_24_MONTHS
      - PRIVACY
      - PAGE_VIEWS_100000
      - VOICE_OUT
      - EXAM
      - PARTICIPANT
      - ENCRYPTION_ADDON
      - ESS
      - ETI
      - ATP_ADDON
      - PBE_ADDO
      - NETI_ADDON
      - HUNDRED_SMS_REMINDER
      - CALENDAR_SYNC
      - PAYMENT_INTERFACE
      - MULTILINGUAL_ONLINE_EVENT_BOOKING
      - SOCKET
      - OFFER
      - FREELANCER
      - SOAP
      - DATEV_LEXWARE_INTERFACE
      - TOKEN
      - SERVICE_MONTH


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