AppDirect Bundle API
The Bundle API from AppDirect — 3 operation(s) for bundle.
The Bundle API from AppDirect — 3 operation(s) for bundle.
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