AppDirect Bundle API

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

Operations 3

GET /marketplace/v1/bundles List all bundles #
GET /marketplace/v1/bundles/{bundleId} Retrieve a bundle #
GET /marketplace/v1/bundles/{bundleId}/status Retrieve a bundle status #

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-bundle-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-bundle-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 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:
    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: '...'
    ScreenshotWS:
      description: Screenshot to be displayed in a product profile
      type: object
      title: Screenshot
      properties:
        imageUrl:
          description: Image URL
          type:
          - string
          - 'null'
        imageUrlSrcset:
          description: Image URL Srcset
          type: object
          additionalProperties:
            type: string
        name:
          description: Name
          type: string
          maxLength: 256
          minLength: 0
      example:
        imageUrl: '...'
        imageUrlSrcset:
          property1: '...'
          property2: '...'
        name: '...'
    ProductWS:
      description: Product detail
      type: object
      title: Product
      properties:
        _embedded:
          description: "This property can contain different values depending on the type of product. If the product has associated add-ons, it contains a list of the add-on products in an `associatedAddons` array. Add-on products are different than add-on offerings: add-on offerings appear as an array of `AddonOffering` in the `addonOffering` object. Depending on your marketplace settings, your products can support either add-on offerings or add-on products.\n If the product is itself an add-on product, this property lists the editions of the associated regular product in an `associatedEditions` array."
          type: object
          properties:
            associatedAddons:
              type: array
              items:
                $ref: '#/components/schemas/AssociatedAddonWS'
            associatedEditions:
              type: array
              items:
                $ref: '#/components/schemas/AssociatedEditionWS'
        addon:
          description: Returns true if the application is an add-on product, or false if it is a base product.
          type: boolean
        addonOffering:
          description: List of the product's add-on offerings, which are different than add-on products. Add-on products appear as an array of `associatedAddons` in the `_embedded` object. Depending on your marketplace settings, your base products can support either add-on offerings or add-on products.
          type: array
          items:
            $ref: '#/components/schemas/AddonOfferingWS'
        assignLeadsToDevelopers:
          description: Indicates whether the lead can be assigned to users with the Developer role
          type: boolean
        autoUpgradeToPaid:
          description: Is auto upgrade to paid
          type: boolean
        bundledPlanIds:
          description: Bundle plan IDs
          type:
          - object
          - 'null'
          items:
            type:
            - number
            - 'null'
        buyable:
          description: 'Is buyable

            If false, the buy button is not available'
          type: boolean
        changeSubscriptionAllowed:
          description: Change subscription allowed
          type: boolean
        collectLeads:
          description: Is collect lead enabled
          type: boolean
        collectLeadsWithPurchaseEnabled:
          description: 'Collect lead with the purchase

            If set to true and collectLeads = true, then a lead will be collected when an user buys the product

            If set to false, the user cannot buy the product'
          type: boolean
        customAttributes:
          description: List of attached product custom attributes
          type: array
          items:
            $ref: '#/components/schemas/CustomAttributeLightV2WS'
        customIntegration:
          description: Custom integration type, eg. MOSI, GOOGLE APPS, SENDGRID
          type:
          - string
          - 'null'
        displayQuestions:
          description: Display question and answers
          type: boolean
        displayReviews:
          description: Display reviews
          type: boolean
        downloadFileSize:
          description: Download file size for downloadable apps
          type:
          - number
          - 'null'
        features:
          description: List of features
          type: array
          items:
            $ref: '#/components/schemas/FeatureWS'
        featuredCustomers:
          description: List of featured customers
          type: array
          items:
            $ref: '#/components/schemas/FeaturedCustomerWS'
        featuredMedia:
          description: List of media sources
          type: array
          items:
            $ref: '#/components/schemas/FeaturedMediumWS'
        free:
          description: Is free
          type: boolean
        freeTrialOrEditionPresent:
          description: Is free trial or edition present
          type: boolean
        hidePricings:
          description: Hide the pricings
          type: boolean
        highestFixedDiscount:
          $ref: '#/components/schemas/PriceWS'
        highestPercentageDiscount:
          description: Highest percentage discount
          type:
          - number
          - 'null'
        hostedLocation:
          description: Hosted location
          type:
          - string
          - 'null'
        href:
          description: URL to retrieve product detail
          type: string
        id:
          description: ID
          type: number
        importable:
          description: Indicates whether a product can be imported
          type: boolean
        integrationConfiguration:
          $ref: '#/components/schemas/IntegrationConfigurationWS'
        language:
          description: List of supported languages
          type: array
          items:
            type: string
        lastModified:
          description: Last modified date
          type: number
        linkedImportableApplicationUuid:
          description: Linked importable application unique identifier
          type:
          - string
          - 'null'
        listing:
          $ref: '#/components/schemas/ListingInfoWS'
        liveChatAvailable:
          description: Live chat available
          type: boolean
        liveChatEnabled:
          description: Live chat enabled
          type: boolean
        merchandisingBadges:
          description: Array of badges for the product, including UUID, name, and URL for the associated image for each badge
          type: array
          items: {}
        mosiConnectorType:
          $ref: '#/components/schemas/OriginApi'
        name:
          description: Name
          type: string
        newSubscriptionEnabled:
          description: New subscription enabled
          type: boolean
        numRatings:
          description: Number of ratings
          type:
          - number
          - 'null'
        oneClickPurchasable:
          description: Is one-click purchase enabled
          type: boolean
        overview:
          $ref: '#/components/schemas/OverviewInfoWS'
        platforms:
          description: List of attached Platforms
          type: array
          items:
            $ref: '#/components/schemas/ApplicationPlatformWS'
        pricing:
          $ref: '#/components/schemas/MarketplacePricingWS'
        privacyUrl:
          description: Privacy policy URL
          type:
          - string
          - 'null'
        productRibbon:
          $ref: '#/components/schemas/ProductRibbonWS'
        provider:
          $ref: '#/components/schemas/ProviderWS'
        publishedApp:
          $ref: '#/components/schemas/LinkWS'
        publishedOn:
          description: Publication date in UNIX Epoch milliseconds
          type: number
        rating:
          description: User-submitted rating
          type:
          - number
          - 'null'
        referUrl:
          description: 'Redirection link to product website when user clicks the buy button

            For referral apps'
          type:
          - string
          - 'null'
        referable:
          description: Is a referrable product
          type: boolean
        resources:
          description: List of resources
          type: array
          items:
            $ref: '#/components/schemas/ResourceWS'
        screenshots:
          description: List of screenshots
          type: array
          items:
            $ref: '#/components/schemas/ScreenshotWS'
        sellerName:
          description: The name of the company that owns the catalog and the product profile being sold
          type: string
        showSelfServiceRestriction:
          description: Show self-service restriction
          type: boolean
        showThirdPartyLegalDisclosure:
          description: Show third-party legal Disclosure
          type: boolean
        startingPrice:
          $ref: '#/components/schemas/StartingPriceWS'
        support:
          $ref: '#/components/schemas/SupportWS'
        supportedCountries:
          description: The list of supported countries in ISO 3166 format
          type: array
          items: {}
        supportedCurrencies:
          description: The list of supported currencies in ISO 4217 format
          type: array
          items: {}
        supportedLanguages:
          description: The list of supported languages in ISO 639
          type: array
          items: {}
        supportsMultipleEditions:
          description: Indicates whether the product type can have multiple editions
          type: boolean
        tag:
          description: List of tags
          type: array
          items:
            $ref: '#/components/schemas/Tag'
        termsUrl:
          description: Terms and condition URL
          type:
          - string
          - 'null'
        type:
          description: Product type
          type: string
        usageType:
          description: Usage type
          type: string
        uuid:
          description: Unique identifier
          type: string
        workingApp:
          $ref: '#/components/schemas/LinkWS'
      example:
        _embedded:
          associatedAddons:
          - addonId: 1090
            editionId: 1416
            links:
            - rel: '...'
              href: '...'
            - rel: '...'
              href: '...'
          - addonId: 1090
            editionId: 1404
            links:
            - rel: '...'
              href: '...'
            - rel: '...'
              href: '...'
        addon: true
        addonOfferings:
        - bullets:
          - content: '...'
            tooltip: '...'
          - content: '...'
            tooltip: '...'
          code: '...'
          description: '...'
          descriptionHtml: '...'
          exclusive: true
          id: 12345
          name: '...'
          paymentPlan:
          - allowCustomUsage: true
            contract: {}
            cost:
            - {}
            - {}
            discount: {}
            frequency: '...'
            href: '...'
            id: 12345
            isPrimaryPrice: true
            keepBillDateOnUsageChange: true
            separatePrepaid: true
            tld: '...'
            uuid: '...'
          - allowCustomUsage: true
            contract: {}
            cost:
            - {}
            - {}
            discount: {}
            frequency: '...'
            href: '...'
            id: 12345
            isPrimaryPrice: true
            keepBillDateOnUsageChange: true
            separatePrepaid: true
            tld: '...'
            uuid: '...'
          stacked: true
          status: '...'
          uuid: '...'
        - bullets:
          - content: '...'
            tooltip: '...'
          - content: '...'
            tooltip: '...'
          code: '...'
          description: '...'
          descriptionHtml: '...'
          exclusive: true
          id: 12345
          name: '...'
          paymentPlan:
          - allowCustomUsage: true
            contract: {}
            cost:
            - {}
            - {}
            discount: {}
            frequency: '...'
            href: '...'
            id: 12345
            isPrimaryPrice: true
            keepBillDateOnUsageChange: true
            separatePrepaid: true
            tld: '...'
            uuid: '...'
          - allowCustomUsage: true
            contract: {}
            cost:
            - {}
            - {}
            discount: {}
            frequency: '...'
            href: '...'
            id: 12345
            isPrimaryPrice: true
            keepBillDateOnUsageChange: true
            separatePrepaid: true
            tld: '...'
            uuid: '...'
          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:
          - optionKey: '...'
            optionLabel: '...'
          - optionKey: '...'
            optionLabel: '...'
        - attributeKey: '...'
          attributeType: MULTISELECT
          label: '...'
          value: '...'
          valueKeys:
          - '...'
          - '...'
          valueOptions:
          - optionKey: '...'
            optionLabel: '...'
          - optionKey: '...'
            optionLabel: '...'
        customIntegration: '...'
        displayQuestions: true
        displayReviews: true
        downloadFileSize: 12345
        features:
        - bullets:
          - abovePicture: true
            highlight:
            - {}
            - {}
            position: 12345
            title: '...'
          - abovePicture: true
            highlight:
            - {}
            - {}
            position: 12345
            title: '...'
          description: '...'
          header: '...'
          hideOnOverview: true
          id: 12345
          imageUrl: '...'
          position: 12345
          slogan: '...'
        - bullets:
          - abovePicture: true
            highlight:
            - {}
            - {}
            position: 12345
            title: '...'
          - abovePicture: true
            highlight:
            - {}
            - {}
            position: 12345
            title: '...'
          description: '...'
          header: '...'
          hideOnOverview: true
          id: 12345
          imageUrl: '...'
          position: 12345
          slogan: '...'
        featuredCustomer:
        - id: 12345
          logoUrl: '...'
          name: '...'
        - id: 12345
          logoUrl: '...'
          name: '...'
        featuredMedium:
        - link: '...'
          linkDescription: '...'
          source:
            id: 12345
            logoUrl: '...'
            name: '...'
        - link: '...'
          linkDescription: '...'
          source:
            id: 12345
            logoUrl: '...'
            name: '...'
        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:
            enabledForSubscriptionChange: true
            form:
            - {}
            - {}
            preSubmitValidationRequired: true
            validationUrl: '...'
        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:
          - description: '...'
            title: '...'
          - description: '...'
            title: '...'
          demoUrl: '...'
          documentationUrl: '...'
          downloadDocumentationUrl: '...'
          downloadFileSize: 12345
          imageSrcset:
            property1: '...'
            property2: '...'
          imageUrl: '...'
          splashDescription: '...'
          splashTitle: '...'
          systemRequirements: '...'
          versions:
            entry:
            - {}
            - {}
        platform:
        - attribute:
          - applicationPlatformUuid: '...'
            createdOn: 12345
            lastModified: 12345
            platformAttributeDefinitionUuid: '...'
            platformAttributeOptionUuid: '...'
            uuid: '...'
            value: '...'
          - applicationPlatformUuid: '...'
            createdOn: 12345
            lastModified: 12345
            platformAttributeDefinitionUuid: '...'
            platformAttributeOptionUuid: '...'
            uuid: '...'
            value: '...'
          platformDefinition:
            attributeDefinition:
            - {}
            - {}
            createdOn: 12345
            description: '...'
            iconUrl: '...'
            isVersionSupported: true
            lastModified: 12345
            name: '...'
            numTaggedProducts: 12345
            uuid: '...'
          uuid: '...'
        - attribute:
          - applicationPlatformUuid: '...'
            createdOn: 12345
            lastModified: 12345
            platformAttributeDefinitionUuid: '...'
            platformAttributeOptionUuid: '...'
            uuid: '...'
            value: '...'
          - applicationPlatformUuid: '...'
            createdOn: 12345
            lastModified: 12345
            platformAttributeDefinitionUuid: '...'
            platformAttributeOptionUuid: '...'
            uuid: '...'
            value: '...'
          platformDefinition:
            attributeDefinition:
            - {}
            - {}
            createdOn: 12345
            description: '...'
            iconUrl: '...'
            isVersionSupported: true
            lastModified: 12345
            name: '...'
            numTaggedProducts: 12345
            uuid: '...'
          uuid: '...'
        pricing:
          bullets:
          - content: '...'
            tooltip: '...'
          - content: '...'
            tooltip: '...'
          edition:
          - bullets:
            - {}
            - {}
            bundleOnly: true
            code: '...'
            customerContractRestricted: true
            customization:
            - {}
            - {}
            defaultFreeTrial: true
            expiredTrialGracePeriod: 12345
            freeTrialDuration: 12345
            freeTrialType: '...'
            invisible: true
            item:
            - {}
            - {}
            lastModified: 12345
            leadGen: true
            name: '...'
            plan:
            - {}
            - {}
            primary: true
            rank: 12345
            restricted: true
            revenueType: '...'
            targetAudience: '...'
            trial: {}
            uuid: '...'
          - bullet:
            - {}
            - {}
            bundleOnly: true
            code: '...'
            customerContractRestricted: true
            customization:
            - {}
            - {}
            defaultFreeTrial: true
            expiredTrialGracePeriod: 12345
            freeTrialDuration: 12345
            freeTrialType: '...'
            invisible: true
            item:
            - {}
            - {}
            lastModified: 12345
            leadGen: true
            name: '...'
            plan:
            - {}
            - {}
            primary: true
            rank: 12345
            restricted: true
            revenueType: '...'
            targetAudience: '...'
            trial: {}
            uuid: '...'
          footnote:
          - '...'
          - '...'
          pricingSummary: '...'
        privacyUrl: '...'
        productRibbon: {}
        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:
        - imageUrl: '...'
          imageUrlSrcset:
            property1: '...'
            property2: '...'
          name: '...'
        - imageUrl: '...'
          image

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