AppDirect Bundle API
The Bundle API from AppDirect — 3 operation(s) for bundle.
The Bundle API from AppDirect — 3 operation(s) for bundle.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/appdirect-bundle-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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: 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