AppDirect Bundle API

The Bundle API from AppDirect — 3 operation(s) for bundle.

OpenAPI Specification

appdirect-bundle-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  description: The Companies API allows developers to manage marketplace companies and their user memberships.
  title: Companies AI Embed Bundle 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: Bundle
  x-displayName: Bundles
paths:
  /marketplace/v1/bundles:
    get:
      summary: List all bundles
      tags:
      - Bundle
      description: This call lists all bundles on the marketplace.
      operationId: resource_Bundle_readBundles_GET
      responses:
        '200':
          description: List of product bundle.
          content:
            application/json:
              schema:
                description: List of product bundle.
                type: array
                items:
                  $ref: '#/components/schemas/BundleListingWS'
              examples:
                response:
                  value:
                  - href: http://localhost/api/marketplace/v1/bundles/257
                    id: 257
                    uuid: df44129f-3c03-40eb-a112-b04e455b8c3f
                    url: http://localhost/apps/257
                    name: MockApp3891706169852983393
                    productType: BUNDLE
                    iconUrl: null
                    profileLogoUrl: null
                    description: Bundle Description
                    overview: null
                    startingPrice: $0.00/User/Mo
                    billingFrequency: MONTHLY
                    publishedOn: 1461792752534
                    developerName: Appdirect
                    vendorName: Appdirect
                    rating: null
                    numRatings: null
                    overviewImageUrl: null
                    blurb: Bundle Blurb
                    buyable: false
                    free: false
                    freeTrialOrEditionPresent: true
                    referable: false
                    hasLyncToPhone: false
                    downloadFileSize: null
                    hidePricings: false
                    collectLeads: false
                    addon: false
                    featured: false
                    featuredSliderPosition: null
                    popular: false
                    popularity: null
                    staffPick: false
                    staffPickSliderPosition: null
                    discountDetails: null
                    lastModified: 1461792752644
                    sortRank: 5
                    tags: []
                    bundleUrls: []
                    supportedLanguages:
                    - en
                    bundledProducts: []
            application/xml:
              schema:
                description: List of product bundle.
                type: array
                items:
                  $ref: '#/components/schemas/BundleListingWS'
      x-codeSamples:
      - lang: Shell + Curl
        source: "curl --request GET \\\n  --url https://marketplace.appdirect.com/api/marketplace/v1/bundles"
      - lang: Node + Request
        source: "const request = require('request');\n\nconst options = {\n  method: 'GET',\n  url: 'https://marketplace.appdirect.com/api/marketplace/v1/bundles'\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/marketplace/v1/bundles\")\n  .get()\n  .build();\n\nResponse response = client.newCall(request).execute();"
  /marketplace/v1/bundles/{bundleId}:
    get:
      summary: Retrieve a bundle
      tags:
      - Bundle
      description: This call returns all details about a specific bundle.
      operationId: resource_Bundle_readBundle_GET
      parameters:
      - description: Bundle product id
        name: bundleId
        in: path
        required: true
        schema:
          type: number
      responses:
        '200':
          description: Bundle application read.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BundleWS'
              examples:
                response:
                  value:
                    href: http://localhost/api/marketplace/v1/bundles/245
                    id: 245
                    url: http://localhost/apps/245
                    name: MockApp-4393604041692298141
                    productType: BUNDLE
                    iconUrl: null
                    profileLogoUrl: null
                    description: Bundle Description
                    overview: null
                    startingPrice: null
                    billingFrequency: null
                    publishedOn: 1461792750665
                    provider:
                      uuid: b863d403-f8a7-4d38-9f89-c5fa021c2b7e
                      name: Appdirect
                      url: appdirect.com
                    rating: null
                    numRatings: null
                    overviewImageUrl: null
                    blurb: Bundle Blurb
                    buyable: false
                    free: false
                    freeTrialOrEditionPresent: false
                    referable: false
                    collectLeads: false
                    collectLeadsWithPurchaseEnabled: false
                    newSubscriptionEnabled: true
                    changeSubscriptionAllowed: true
                    downloadFileSize: null
                    featured: false
                    featuredSliderPosition: null
                    popular: false
                    popularity: null
                    staffPick: false
                    staffPickSliderPosition: null
                    discountDetails: null
                    lastModified: 1461792750786
                    tags: []
                    supportedLanguages:
                    - en
                    bundledProducts: []
            application/xml:
              schema:
                $ref: '#/components/schemas/BundleWS'
        '404':
          description: Bundle application not found.
      x-codeSamples:
      - lang: Shell + Curl
        source: "curl --request GET \\\n  --url https://marketplace.appdirect.com/api/marketplace/v1/bundles/%7BbundleId%7D"
      - lang: Node + Request
        source: "const request = require('request');\n\nconst options = {\n  method: 'GET',\n  url: 'https://marketplace.appdirect.com/api/marketplace/v1/bundles/%7BbundleId%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/marketplace/v1/bundles/%7BbundleId%7D\")\n  .get()\n  .build();\n\nResponse response = client.newCall(request).execute();"
  /marketplace/v1/bundles/{bundleId}/status:
    get:
      summary: Retrieve a bundle status
      tags:
      - Bundle
      description: This call returns the current state of the bundle.
      operationId: resource_Bundle_readBundleStatus_GET
      parameters:
      - description: Bundle product id
        name: bundleId
        in: path
        required: true
        schema:
          type: number
      responses:
        '200':
          description: Bundle application status read.
          content:
            application/json:
              schema:
                description: Bundle application status read.
                type: array
                items:
                  $ref: '#/components/schemas/UserAppInfo'
              examples:
                response:
                  value:
                  - assigned: false
                    pending: false
                    requested: false
                    pendingAppType: REQUESTED
                    companyEntitlementPending: false
                    companyEntitlementId: null
                    editionId: null
                    editionPricingId: null
                    ownerId: null
                    ownerFullName: null
                    ownerAdmin: false
                    partOfExistingBundle: false
                    freeTrialAllowed: true
                    ownerUuid: null
                    freeTrialDaysLeft: 0
                    companyWide: false
            application/xml:
              schema:
                description: Bundle application status read.
                type: array
                items:
                  $ref: '#/components/schemas/UserAppInfo'
        '404':
          description: Bundle application not found.
      x-codeSamples:
      - lang: Shell + Curl
        source: "curl --request GET \\\n  --url https://marketplace.appdirect.com/api/marketplace/v1/bundles/%7BbundleId%7D/status"
      - lang: Node + Request
        source: "const request = require('request');\n\nconst options = {\n  method: 'GET',\n  url: 'https://marketplace.appdirect.com/api/marketplace/v1/bundles/%7BbundleId%7D/status'\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/marketplace/v1/bundles/%7BbundleId%7D/status\")\n  .get()\n  .build();\n\nResponse response = client.newCall(request).execute();"
components:
  schemas:
    ChannelPrice:
      type: object
      title: ChannelPrice
      properties:
        duration:
          $ref: '#/components/schemas/PricingDuration'
        price:
          type: number
      example:
        duration: DAILY
        price: 12345
    FeatureCharacteristicWS:
      description: Product feature characteristic
      type: object
      title: FeatureCharacteristic
      properties:
        abovePicture:
          description: Is characteristic above feature
          type: boolean
        highlight:
          description: List of feature highlights
          type: array
          items:
            $ref: '#/components/schemas/CharacteristicHighlightWS'
        id:
          type: number
        position:
          description: Order how the characteristic appear versus the others
          type: number
        title:
          description: Describe a characteristic of a feature
          type: string
          maxLength: 256
          minLength: 0
      example:
        abovePicture: true
        highlight:
        - displayCheck: true
          highlight: '...'
          id: 12345
        - displayCheck: true
          highlight: '...'
          id: 12345
        id: 12345
        position: 12345
        title: '...'
    Tag:
      description: Represents a category, subcategory, industry, customer tag, attribute or attribute group
      type: object
      title: Tag
      properties:
        badge:
          description: Badge image URL
          type: string
        description:
          description: Description
          type: string
          nullable: true
        id:
          description: ID
          type: number
        name:
          description: Name
          type: string
        showBadge:
          description: Show badge
          type: boolean
        showOnNavigation:
          description: Show tag on naviagtion for filtering
          type: boolean
        tag:
          description: Children tags
          type: array
          items:
            $ref: '#/components/schemas/Tag'
        type:
          description: Type
          type: string
      example:
        badge: '...'
        description: '...'
        id: 12345
        name: '...'
        showBadge: true
        showOnNavigation: true
        tag:
        - badge: '...'
          description: '...'
          id: 12345
          name: '...'
          showBadge: true
          showOnNavigation: true
          tag:
          - {}
          - {}
          type: '...'
        - badge: '...'
          description: '...'
          id: 12345
          name: '...'
          showBadge: true
          showOnNavigation: true
          tag:
          - {}
          - {}
          type: '...'
        type: '...'
    BundleWS:
      type: object
      title: Bundle
      properties:
        billingFrequency:
          type: string
          nullable: true
        blurb:
          type: string
          nullable: true
        bundleSettings:
          $ref: '#/components/schemas/BundleSettingsWS'
        buyable:
          type: boolean
        changeSubscriptionAllowed:
          type: boolean
        collectLeads:
          type: boolean
        collectLeadsWithPurchaseEnabled:
          type: boolean
        description:
          type: string
        discountDetails:
          $ref: '#/components/schemas/DiscountDetailsWS'
        downloadFileSize:
          type: number
          nullable: true
        featured:
          type: boolean
        featuredSliderPosition:
          type: number
          nullable: true
        free:
          type: boolean
        freeTrialOrEditionPresent:
          type: boolean
        href:
          type: string
        iconUrl:
          type: string
          nullable: true
        id:
          type: number
        language:
          type: array
          items:
            type: string
        lastModified:
          type: number
        name:
          type: string
        newSubscriptionEnabled:
          type: boolean
        numRatings:
          type: number
          nullable: true
        overview:
          type: string
          nullable: true
        overviewImageUrl:
          type: string
          nullable: true
        popular:
          type: boolean
        popularity:
          type: number
          nullable: true
        product:
          type: array
          items:
            $ref: '#/components/schemas/ProductWS'
        productType:
          type: string
        profileLogoUrl:
          type: string
          nullable: true
        provider:
          $ref: '#/components/schemas/ProviderWS'
        publishedOn:
          type: number
        rating:
          type: number
          nullable: true
        referable:
          type: boolean
        staffPick:
          type: boolean
        staffPickSliderPosition:
          type: number
          nullable: true
        startingPrice:
          $ref: '#/components/schemas/StartingPriceWS'
        tag:
          type: array
          items:
            $ref: '#/components/schemas/Tag'
        url:
          type: string
      example:
        billingFrequency: '...'
        blurb: '...'
        bundleSettings:
          allowPartialCancel: true
          allowPartialPurchase: true
          bundleApplicationId: 12345
          removeDiscountsOnPartialCancel: true
          removeMarkupsOnPartialCancel: true
        buyable: true
        changeSubscriptionAllowed: true
        collectLeads: true
        collectLeadsWithPurchaseEnabled: true
        description: '...'
        discountDetails:
          discountedStartingPrice: '...'
          highestFixedDiscount:
            AUD: 12345
            BRL: 12345
            CAD: 12345
            CHF: 12345
            CNY: 12345
            DKK: 12345
            EUR: 12345
            GBP: 12345
            GTQ: 12345
            INR: 12345
            JPY: 12345
            KRW: 12345
            MXN: 12345
            MYR: 12345
            NOK: 12345
            NZD: 12345
            PHP: 12345
            SAR: 12345
            SEK: 12345
            SGD: 12345
            USD: 12345
            ZAR: 12345
          highestPercentageDiscount: 12345
          startingPricePercentageDiscount: 12345
        downloadFileSize: 12345
        featured: true
        featuredSliderPosition: 12345
        free: true
        freeTrialOrEditionPresent: true
        href: '...'
        iconUrl: '...'
        id: 12345
        language:
        - '...'
        - '...'
        lastModified: 12345
        name: '...'
        newSubscriptionEnabled: true
        numRatings: 12345
        overview: '...'
        overviewImageUrl: '...'
        popular: true
        popularity: 12345
        product:
        - _embedded:
            property1: {}
            property2: {}
          addon: true
          addonOffering:
          - bullet:
            - {}
            - {}
            code: '...'
            description: '...'
            descriptionHtml: '...'
            exclusive: true
            id: 12345
            name: '...'
            paymentPlan:
            - {}
            - {}
            stacked: true
            status: '...'
            uuid: '...'
          - bullet:
            - {}
            - {}
            code: '...'
            description: '...'
            descriptionHtml: '...'
            exclusive: true
            id: 12345
            name: '...'
            paymentPlan:
            - {}
            - {}
            stacked: true
            status: '...'
            uuid: '...'
          autoUpgradeToPaid: true
          bundledPlanIds:
          - 12345
          - 12345
          buyable: true
          changeSubscriptionAllowed: true
          collectLeads: true
          collectLeadsWithPurchaseEnabled: true
          customAttributes:
          - attributeKey: '...'
            attributeType: MULTISELECT
            label: '...'
            value: '...'
            valueKeys:
            - '...'
            - '...'
            valueOptions:
            - {}
            - {}
          - attributeKey: '...'
            attributeType: TEXT
            label: '...'
            value: '...'
            valueKeys:
            - '...'
            - '...'
            valueOptions:
            - {}
            - {}
          customIntegration: '...'
          displayQuestions: true
          displayReviews: true
          downloadFileSize: 12345
          feature:
          - bullet:
            - {}
            - {}
            description: '...'
            header: '...'
            hideOnOverview: true
            id: 12345
            imageUrl: '...'
            position: 12345
            slogan: '...'
          - bullet:
            - {}
            - {}
            description: '...'
            header: '...'
            hideOnOverview: true
            id: 12345
            imageUrl: '...'
            position: 12345
            slogan: '...'
          featuredCustomer:
          - id: 12345
            logoUrl: '...'
            name: '...'
          - id: 12345
            logoUrl: '...'
            name: '...'
          featuredMedium:
          - id: 12345
            link: '...'
            linkDescription: '...'
            source: {}
          - id: 12345
            link: '...'
            linkDescription: '...'
            source: {}
          free: true
          freeTrialOrEditionPresent: true
          hidePricings: true
          highestFixedDiscount:
            AUD: 12345
            BRL: 12345
            CAD: 12345
            CHF: 12345
            CNY: 12345
            DKK: 12345
            EUR: 12345
            GBP: 12345
            GTQ: 12345
            INR: 12345
            JPY: 12345
            KRW: 12345
            MXN: 12345
            MYR: 12345
            NOK: 12345
            NZD: 12345
            PHP: 12345
            SAR: 12345
            SEK: 12345
            SGD: 12345
            USD: 12345
            ZAR: 12345
          highestPercentageDiscount: 12345
          hostedLocation: '...'
          href: '...'
          id: 12345
          integrationConfiguration:
            productSettings: {}
          language:
          - '...'
          - '...'
          lastModified: 12345
          linkedImportableApplicationUuid: '...'
          links:
          - href: '...'
            rel: '...'
          - href: '...'
            rel: '...'
          listing:
            blurb: '...'
            imageSrcset:
              property1: '...'
              property2: '...'
            imageUrl: '...'
            mobileAppStoreId: '...'
            mobileBundleId: '...'
            myAppLogoIconSrcset:
              property1: '...'
              property2: '...'
            myAppLogoIconUrl: '...'
            overview: '...'
            profileImageSrcset:
              property1: '...'
              property2: '...'
            profileImageUrl: '...'
            rating: 12345
            reviewCount: 12345
          liveChatAvailable: true
          liveChatEnabled: true
          mosiConnectorType: CREST
          name: '...'
          newSubscriptionEnabled: true
          numRatings: 12345
          oneClickPurchasable: true
          overview:
            benefit:
            - {}
            - {}
            demoUrl: '...'
            documentationUrl: '...'
            downloadDocumentationUrl: '...'
            downloadFileSize: 12345
            imageSrcset:
              property1: '...'
              property2: '...'
            imageUrl: '...'
            splashDescription: '...'
            splashTitle: '...'
            systemRequirements: '...'
            versions: {}
          platform:
          - attribute:
            - {}
            - {}
            platformDefinition: {}
            uuid: '...'
          - attribute:
            - {}
            - {}
            platformDefinition: {}
            uuid: '...'
          pricing:
            bullet:
            - {}
            - {}
            edition:
            - {}
            - {}
            footnote:
            - '...'
            - '...'
            pricingSummary: '...'
          privacyUrl: '...'
          productRibbon:
            ribbonColor: '...'
            text: '...'
            textColor: '...'
          provider:
            name: '...'
            url: '...'
            uuid: '...'
          publishedApp:
            href: '...'
            id: '...'
          publishedOn: 12345
          rating: 12345
          referUrl: '...'
          referable: true
          resource:
          - description: '...'
            id: 12345
            link: '...'
            name: '...'
            resellerAccess: true
            resourceType: '...'
            scribdId: '...'
            scribdKey: '...'
          - description: '...'
            id: 12345
            link: '...'
            name: '...'
            resellerAccess: true
            resourceType: '...'
            scribdId: '...'
            scribdKey: '...'
          screenshot:
          - id: 12345
            imageUrl: '...'
            imageUrlSrcset:
              property1: '...'
              property2: '...'
            name: '...'
          - id: 12345
            imageUrl: '...'
            imageUrlSrcset:
              property1: '...'
              property2: '...'
            name: '...'
          showSelfServiceRestriction: true
          showThirdPartyLegalDisclosure: true
          startingPrice:
            amount: {}
            billingFrequency: '...'
            discount: {}
            unit: '...'
          support:
            description: '...'
            email: '...'
            knowledgebaseUrl: '...'
            phone: '...'
          tag:
          - badge: '...'
            description: '...'
            id: 12345
            name: '...'
            showBadge: true
            showOnNavigation: true
            tag:
            - {}
            - {}
            type: '...'
          - badge: '...'
            description: '...'
            id: 12345
            name: '...'
            showBadge: true
            showOnNavigation: true
            tag:
            - {}
            - {}
            type: '...'
          termsUrl: '...'
          type: '...'
          usageType: '...'
          uuid: '...'
          workingApp:
            href: '...'
            id: '...'
        - _embedded:
            property1: {}
            property2: {}
          addon: true
          addonOffering:
          - bullet:
            - {}
            - {}
            code: '...'
            description: '...'
            descriptionHtml: '...'
            exclusive: true
            id: 12345
            name: '...'
            paymentPlan:
            - {}
            - {}
            stacked: true
            status: '...'
            uuid: '...'
          - bullet:
            - {}
            - {}
            code: '...'
            description: '...'
            descriptionHtml: '...'
            exclusive: true
            id: 12345
            name: '...'
            paymentPlan:
            - {}
            - {}
            stacked: true
            status: '...'
            uuid: '...'
          autoUpgradeToPaid: true
          bundledPlanIds:
          - 12345
          - 12345
          buyable: true
          changeSubscriptionAllowed: true
          collectLeads: true
          collectLeadsWithPurchaseEnabled: true
          customAttributes:
          - attributeKey: '...'
            attributeType: TEXT
            label: '...'
            value: '...'
            valueKeys:
            - '...'
            - '...'
            valueOptions:
            - {}
            - {}
          - attributeKey: '...'
            attributeType: MULTISELECT
            label: '...'
            value: '...'
            valueKeys:
            - '...'
            - '...'
            valueOptions:
            - {}
            - {}
          customIntegration: '...'
          displayQuestions: true
          displayReviews: true
          downloadFileSize: 12345
          feature:
          - bullet:
            - {}
            - {}
            description: '...'
            header: '...'
            hideOnOverview: true
            id: 12345
            imageUrl: '...'
            position: 12345
            slogan: '...'
          - bullet:
            - {}
            - {}
            description: '...'
            header: '...'
            hideOnOverview: true
            id: 12345
            imageUrl: '...'
            position: 12345
            slogan: '...'
          featuredCustomer:
          - id: 12345
            logoUrl: '...'
            name: '...'
          - id: 12345
            logoUrl: '...'
            name: '...'
          featuredMedium:
          - id: 12345
            link: '...'
            linkDescription: '...'
            source: {}
          - id: 12345
            link: '...'
            linkDescription: '...'
            source: {}
          free: true
          freeTrialOrEditionPresent: true
          hidePricings: true
          highestFixedDiscount:
            AUD: 12345
            BRL: 12345
            CAD: 12345
            CHF: 12345
            CNY: 12345
            DKK: 12345
            EUR: 12345
            GBP: 12345
            GTQ: 12345
            INR: 12345
            JPY: 12345
            KRW: 12345
            MXN: 12345
            MYR: 12345
            NOK: 12345
            NZD: 12345
            PHP: 12345
            SAR: 12345
            SEK: 12345
            SGD: 12345
            USD: 12345
            ZAR: 12345
          highestPercentageDiscount: 12345
          hostedLocation: '...'
          href: '...'
          id: 12345
          integrationConfiguration:
            productSettings: {}
          language:
          - '...'
          - '...'
          lastModified: 12345
          linkedImportableApplicationUuid: '...'
          links:
          - href: '...'
            rel: '...'
          - href: '...'
            rel: '...'
          listing:
            blurb: '...'
            imageSrcset:
              property1: '...'
              property2: '...'
            imageUrl: '...'
            mobileAppStoreId: '...'
            mobileBundleId: '...'
            myAppLogoIconSrcset:
              property1: '...'
              property2: '...'
            myAppLogoIconUrl: '...'
            overview: '...'
            profileImageSrcset:
              property1: '...'
              property2: '...'
            profileImageUrl: '...'
            rating: 12345
            reviewCount: 12345
          liveChatAvailable: true
          liveChatEnabled: true
          mosiConnectorType: MOSI
          name: '...'
          newSubscriptionEnabled: true
          numRatings: 12345
          oneClickPurchasable: true
          overview:
            benefit:
            - {}
            - {}
            demoUrl: '...'
            documentationUrl: '...'
            downloadDocumentationUrl: '...'
            downloadFileSize: 12345
            imageSrcset:
              property1: '...'
              property2: '...'
            imageUrl: '...'
            splashDescription: '...'
            splashTitle: '...'
            systemRequirements: '...'
            versions: {}
          platform:
          - attribute:
            - {}
            - {}
            platformDefinition: {}
            uuid: '...'
          - attribute:
            - {}
            - {}
            platformDefinition: {}
            uuid: '...'
          pricing:
            bullet:
            - {}
            - {}
            edition:
            - {}
            - {}
            footnote:
            - '...'
            - '...'
            pricingSummary: '...'
          privacyUrl: '...'
          productRibbon:
            ribbonColor: '...'
            text: '...'
            textColor: '...'
          provider:
            name: '...'
            url: '...'
            uuid: '...'
          publishedApp:
            href: '...'
            id: '...'
          publishedOn: 12345
          rating: 12345
          referUrl: '...'
          referable: true
          resource:
          - description: '...'
            id: 12345
            link: '...'
            name: '...'
            resellerAccess: true
            resourceType: '...'
            scribdId: '...'
            scribdKey: '...'
          - description: '...'
            id: 12345
            link: '...'
            name: '...'
            resellerAccess: true
            resourceType: '...'
            scribdId: '...'
            scribdKey: '...'
          screenshot:
          - id: 12345
            imageUrl: '...'
            imageUrlSrcset:
              property1: '...'
              property2: '...'
            name: '...'
          - id: 12345
            imageUrl: '...'
            imageUrlSrcset:
              property1: '...'
              property2: '...'
            name: '...'
          showSelfServiceRestriction: true
          showThirdPartyLegalDisclosure: true
          startingPrice:
            amount: {}
            billingFrequency: '...'
            discount: {}
            unit: '...'
          support:
            description: '...'
            email: '...'
            knowledgebaseUrl: '...'
            phone: '...'
          tag:
          - badge: '...'
            description: '...'
            id: 12345
            name: '...'
            showBadge: true
            showOnNavigation: true
            tag:
            - {}
            - {}
            type: '...'
          - badge: '...'
            description: '...'
            id: 12345
            name: '...'
            showBadge: true
            showOnNavigation: true
            tag:
            - {}
            - {}
            type: '...'
          termsUrl: '...'
          type: '...'
          usageType: '...'
          uuid: '...'
          workingApp:
            href: '...'
            id: '...'
        productType: '...'
        profileLogoUrl: '...'
        provider:
          name: '...'
          url: '...'
          uuid: '...'
        publishedOn: 12345
        rating: 12345
        referable: true
        staffPick: true
        staffPickSliderPosition: 12345
        startingPrice:
          amount:
            AUD: 12345
            BRL: 12345
            CAD: 12345
            CHF: 12345
            CNY: 12345
            DKK: 12345
            EUR: 12345
            GBP: 12345
            GTQ: 12345
            INR: 12345
            JPY: 12345
            KRW: 12345
            MXN: 12345
            MYR: 12345
            NOK: 12345
            NZD: 12345
            PHP: 12345
            SAR: 12345
            SEK: 12345
            SGD: 12345
            USD: 12345
            ZAR: 12345
          billingFrequency: '...'
          discount:
            amount: {}

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