{"openapi":"3.0.0","servers":[{"url":"https://market.openchannel.io/v2"}],"info":{"title":"OpenChannel Market API","version":"2.0.24","x-origin":[{"format":"swagger","url":"https://api.swaggerhub.com/apis/OpenChannel/Market-API/2.0.24","version":"2.0"}],"x-providerName":"openchannel.io","x-serviceName":"market"},"security":[{"basicAuth":[]}],"paths":{"/apps":{"get":{"description":"- Results are paginated and the default is value is 1000 if no limit is provided\n- If no query is specified, returns all APPROVED or SUSPENDED apps within the marketplace\n","parameters":[{"description":"A query document. Example: {'name':'MyApp'} matches all the apps that have the name 'MyApp'","in":"query","name":"query","required":false,"schema":{"type":"string"}},{"description":"A sort document. Example: {'name':1} sorts the results by name in ascending order","in":"query","name":"sort","required":false,"schema":{"type":"string"}},{"description":"The result set page number to be returned","in":"query","name":"pageNumber","required":false,"schema":{"type":"integer"}},{"description":"The maximum number of results to return per page","in":"query","name":"limit","required":false,"schema":{"type":"integer"}},{"description":"The unique id of the user requesting this resource","in":"query","name":"userId","required":false,"schema":{"type":"string"}},{"description":"Whether this result should only contain apps that are owned by this user","in":"query","name":"isOwner","required":false,"schema":{"type":"boolean"}}],"responses":{"400":{"description":"Bad Request - Required parameters are missing, malformed or invalid"},"default":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/AppPages"}}},"description":"OK"}},"summary":"Returns a paginated list of APPROVED or SUSPENDED apps","tags":["apps : Find and modify apps"]},"post":{"description":"- This method is called on behalf of a developer.\n- Price is required if the model is 'single' or 'recurring'\n- Returns the newly created app\n","parameters":[{"description":"The unique id of the developer that is adding this app","in":"query","name":"developerId","required":true,"schema":{"type":"string"}},{"description":"The name of the app","in":"query","name":"name","required":true,"schema":{"type":"string"}},{"description":"The type for this app","in":"query","name":"type","required":false,"schema":{"type":"string"}},{"description":"A JSON object representing the pricing model type for this app","in":"query","name":"model","required":false,"schema":{"type":"string"}},{"description":"A custom JSON object that you can create and attach to this record","in":"query","name":"customData","required":false,"schema":{"type":"string"}},{"description":"A custom set of app attributes defined by the administrator and attached to this app","in":"query","name":"attributes","required":false,"schema":{"type":"string"}},{"description":"JSON object to restrict users from owning or viewing this app. Example: {'view':{'country':['Canada','Mexico']},'own':{'country':['Canada','Mexico']}} restricts users from canada and mexico from viewing or owning this app","in":"query","name":"restrict","required":false,"schema":{"type":"string"}},{"description":"JSON object to restrict users from owning or viewing this app. Example: {'view':{'country':['Canada','Mexico']},'own':{'country':['Canada','Mexico']}} restricts users from canada and mexico from viewing or owning this app","in":"query","name":"allow","required":false,"schema":{"type":"string"}},{"description":"JSON array of data access requirements","in":"query","name":"access","required":false,"schema":{"type":"string"}}],"responses":{"400":{"description":"Bad Request - Required parameters are missing, malformed or invalid"},"409":{"description":"Already Exists - An app with this name already exists"},"default":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/AppVersion"}}},"description":"OK"}},"summary":"Adds a new app for this developer","tags":["apps : Find and modify apps"]}},"/apps/bySafeName/{safeName}":{"get":{"description":"- A 'view' event is recorded when trackViews is set to true\n","parameters":[{"description":"The safeName of the App to be located","in":"path","name":"safeName","required":true,"schema":{"type":"string"}},{"description":"The unique id of the user that is requesting this resource","in":"query","name":"userId","required":false,"schema":{"type":"string"}},{"description":"Whether this call should be tracked as a 'view' for this app. Default is false.","in":"query","name":"trackViews","required":false,"schema":{"type":"boolean"}}],"responses":{"400":{"description":"Bad Request - Required parameters are missing, malformed or invalid"},"404":{"description":"Not Found - The App is either restricted or was not found"},"default":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/App"}}},"description":"OK"}},"summary":"Returns a single APPROVED or SUSPENDED app","tags":["apps : Find and modify apps"]}},"/apps/textSearch":{"get":{"description":"- Results are returned for the market provided within the basic authentication credentials\n","parameters":[{"description":"A query document. Example: {'name':'MyApp'} matches all the documents that have the name 'MyApp'","in":"query","name":"query","required":false,"schema":{"type":"string"}},{"description":"The text to search for.","in":"query","name":"text","required":true,"schema":{"type":"string"}},{"description":"A JSON array containing all the fields to be searched through. Example: ['name', 'customData.description']","in":"query","name":"fields","required":true,"schema":{"type":"string"}},{"description":"The result set page number to be returned","in":"query","name":"pageNumber","required":false,"schema":{"type":"integer"}},{"description":"The maximum number of results to return per page","in":"query","name":"limit","required":false,"schema":{"type":"integer"}},{"description":"The unique id of the user requesting this resource","in":"query","name":"userId","required":false,"schema":{"type":"string"}},{"description":"Whether this result should only contain apps that are owned by this user","in":"query","name":"isOwned","required":false,"schema":{"type":"boolean"}}],"responses":{"400":{"description":"Bad Request - Required parameters are missing, malformed or invalid"},"default":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/SearchPages"}}},"description":"OK"}},"summary":"Searches through the text of fields to find APPROVED or SUSPENDED apps","tags":["apps : Find and modify apps"]}},"/apps/versions":{"get":{"description":"- Results are paginated when limit is set, otherwise all results are returned\n- If no query is specified, returns all AppVersions within the marketplace\n- Only returns AppVersions owned by this developer\n","parameters":[{"description":"A query document. Example: {'name':'MyApp'} matches all the apps that have the name 'MyApp'","in":"query","name":"query","required":false,"schema":{"type":"string"}},{"description":"A sort document. Example: {'name':1} sorts the results by name in ascending order","in":"query","name":"sort","required":false,"schema":{"type":"string"}},{"description":"The result set page number to be returned","in":"query","name":"pageNumber","required":false,"schema":{"type":"integer"}},{"description":"The maximum number of results to return per page","in":"query","name":"limit","required":false,"schema":{"type":"integer"}},{"description":"The unique id of the developer requesting this resource","in":"query","name":"developerId","required":false,"schema":{"type":"string"}}],"responses":{"400":{"description":"Bad Request - Required parameters are missing, malformed or invalid"},"default":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/VersionPages"}}},"description":"OK"}},"summary":"Returns a paginated list of AppVersions","tags":["apps : Find and modify apps"]}},"/apps/{appId}":{"delete":{"description":"- This method is called on behalf of a developer.\n","parameters":[{"description":"The id of the App to be removed","in":"path","name":"appId","required":true,"schema":{"type":"string"}},{"description":"The unique id of the developer that is removing this app","in":"query","name":"developerId","required":true,"schema":{"type":"string"}}],"responses":{"404":{"description":"Not Found - App is not found"}},"summary":"Removes app and all versions","tags":["apps : Find and modify apps"]},"get":{"description":"- A 'view' event is recorded when trackViews is set to true\n","parameters":[{"description":"The id of the App to be located","in":"path","name":"appId","required":true,"schema":{"type":"string"}},{"description":"The unique id of the user that is requesting this resource","in":"query","name":"userId","required":false,"schema":{"type":"string"}},{"description":"Whether this call should be tracked as a 'view' for this app. Default is false.","in":"query","name":"trackViews","required":false,"schema":{"type":"boolean"}}],"responses":{"400":{"description":"Bad Request - Required parameters are missing, malformed or invalid"},"404":{"description":"Not Found - The App is either restricted or was not found"},"default":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/App"}}},"description":"OK"}},"summary":"Returns a single APPROVED or SUSPENDED app","tags":["apps : Find and modify apps"]}},"/apps/{appId}/live":{"post":{"description":"- This method is called on behalf of a developer.\n","parameters":[{"description":"The id of the App to be changed","in":"path","name":"appId","required":true,"schema":{"type":"string"}},{"description":"The unique id of the developer that is changing this AppVersion","in":"query","name":"developerId","required":true,"schema":{"type":"string"}},{"description":"The new version of the live App","in":"query","name":"version","required":true,"schema":{"type":"string"}}],"responses":{"400":{"description":"Bad Request - Required parameters are missing, malformed or invalid"},"404":{"description":"Not Found - App is not found"}},"summary":"Change the live app to another, previously approved version","tags":["apps : Find and modify apps"]}},"/apps/{appId}/publish":{"post":{"description":"- This method is called on behalf of a developer. \n- Only effects the current working version of the app.\n","parameters":[{"description":"The id of the app to be published","in":"path","name":"appId","required":true,"schema":{"type":"string"}},{"description":"The unique id of the developer that is modifying this app","in":"query","name":"developerId","required":true,"schema":{"type":"string"}},{"description":"The version of the app to be published","in":"query","name":"version","required":true,"schema":{"type":"integer"}},{"description":"If true, this AppVersion is automatically approved and becomes immediately available to end users","in":"query","name":"autoApprove","required":false,"schema":{"type":"boolean"}}],"responses":{"202":{"description":"Accepted - Publishing succeeded but there are restrictions"},"400":{"description":"Bad Request - Required parameters are missing, malformed or invalid"},"404":{"description":"Not Found - App was not found"},"409":{"description":"Conflict - An app with that name already exists"}},"summary":"Publishes the current working version of the app to the marketplace","tags":["apps : Find and modify apps"]}},"/apps/{appId}/versions/{version}":{"delete":{"description":"- This method is called on behalf of a developer.\n","parameters":[{"description":"The id of the App to be removed","in":"path","name":"appId","required":true,"schema":{"type":"string"}},{"description":"The version of the App to be removed","in":"path","name":"version","required":true,"schema":{"type":"string"}},{"description":"The unique id of the developer that is removing this app","in":"query","name":"developerId","required":true,"schema":{"type":"string"}}],"responses":{"404":{"description":"Not Found - App is not found"}},"summary":"Removes AppVersion","tags":["apps : Find and modify apps"]},"get":{"description":"- Only returns AppVersions owned by this developer\n","parameters":[{"description":"The id of the App to be located","in":"path","name":"appId","required":true,"schema":{"type":"string"}},{"description":"The version number of the app","in":"path","name":"version","required":true,"schema":{"type":"integer"}},{"description":"The unique id of the developer that is requesting this resource","in":"query","name":"developerId","required":false,"schema":{"type":"string"}}],"responses":{"400":{"description":"Bad Request - Required parameters are missing, malformed or invalid"},"404":{"description":"Not Found - The App or version number was not found"},"default":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/AppVersion"}}},"description":"OK"}},"summary":"Returns a single AppVersion","tags":["apps : Find and modify apps"]},"patch":{"description":"- This method is called on behalf of a developer.\n- Price and is required if the model is 'single' or 'recurring'\n- Returns the newly updated app\n- This endpoint updates only the fields provided in the request (relative update). In contrast, the POST version of this method replaces the entire object to match the request (absolute update). \n","parameters":[{"description":"The id of the App to be updated","in":"path","name":"appId","required":true,"schema":{"type":"string"}},{"description":"The version of the App to be updated","in":"path","name":"version","required":true,"schema":{"type":"string"}},{"description":"The unique id of the developer that is updating this app","in":"query","name":"developerId","required":true,"schema":{"type":"string"}},{"description":"The name of the app","in":"query","name":"name","required":false,"schema":{"type":"string"}},{"description":"The type for this app","in":"query","name":"type","required":false,"schema":{"type":"string"}},{"description":"A JSON object representing the pricing model type for this app","in":"query","name":"model","required":false,"schema":{"type":"string"}},{"description":"A custom JSON object that you can create and attach to this record","in":"query","name":"customData","required":false,"schema":{"type":"string"}},{"description":"A custom set of app attributes defined by the administrator and attached to this app","in":"query","name":"attributes","required":false,"schema":{"type":"string"}},{"description":"JSON object to restrict users from purchasing or viewing this app. Example: {'view':{'country':['Canada','Mexico']},'purchase':{'country':['Canada','Mexico']}} restricts users from canada and mexico from viewing or purchasing this app","in":"query","name":"restrict","required":false,"schema":{"type":"string"}},{"description":"JSON object to allow users to purchase or view this app. Example: {'purchase':{'country':['Canada','Mexico']}} allows only users from canada and mexico to purchase this app","in":"query","name":"allow","required":false,"schema":{"type":"string"}},{"description":"JSON array of data access requirements","in":"query","name":"access","required":false,"schema":{"type":"string"}},{"description":"False if updates should skip the approval process and be available immediately. Default is True","in":"query","name":"approvalRequired","required":false,"schema":{"type":"string"}}],"responses":{"400":{"description":"Bad Request - Required parameters are missing, malformed or invalid"},"404":{"description":"Not Found - App is not found"},"409":{"description":"Already Exists - An app with this name already exists"},"default":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/AppVersion"}}},"description":"OK"}},"summary":"Updates the app fields or creates a new version","tags":["apps : Find and modify apps"]},"post":{"description":"- This method is called on behalf of a developer.\n- Price and is required if the model is 'single' or 'recurring'\n- Returns the newly updated app\n- This endpoint replaces the entire object to match the request (absolute update). In contrast, the PATCH version of this endpoint updates only the fields provided in the request (relative update).\n","parameters":[{"description":"The id of the App to be updated","in":"path","name":"appId","required":true,"schema":{"type":"string"}},{"description":"The version of the App to be updated","in":"path","name":"version","required":true,"schema":{"type":"string"}},{"description":"The unique id of the developer that is updating this app","in":"query","name":"developerId","required":true,"schema":{"type":"string"}},{"description":"The name of the app","in":"query","name":"name","required":false,"schema":{"type":"string"}},{"description":"The type for this app","in":"query","name":"type","required":false,"schema":{"type":"string"}},{"description":"A JSON object representing the pricing model type for this app","in":"query","name":"model","required":false,"schema":{"type":"string"}},{"description":"A custom JSON object that you can create and attach to this record","in":"query","name":"customData","required":false,"schema":{"type":"string"}},{"description":"A custom set of app attributes defined by the administrator and attached to this app","in":"query","name":"attributes","required":false,"schema":{"type":"string"}},{"description":"JSON object to restrict users from purchasing or viewing this app. Example: {'view':{'country':['Canada','Mexico']},'purchase':{'country':['Canada','Mexico']}} restricts users from canada and mexico from viewing or purchasing this app","in":"query","name":"restrict","required":false,"schema":{"type":"string"}},{"description":"JSON object to allow users to purchase or view this app. Example: {'purchase':{'country':['Canada','Mexico']}} allows only users from canada and mexico to purchase this app","in":"query","name":"allow","required":false,"schema":{"type":"string"}},{"description":"JSON array of data access requirements","in":"query","name":"access","required":false,"schema":{"type":"string"}},{"description":"False if updates should skip the approval process and be available immediately. Default is True","in":"query","name":"approvalRequired","required":false,"schema":{"type":"string"}}],"responses":{"400":{"description":"Bad Request - Required parameters are missing, malformed or invalid"},"404":{"description":"Not Found - App is not found"},"409":{"description":"Already Exists - An app with this name already exists"},"default":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/AppVersion"}}},"description":"OK"}},"summary":"Updates the app or creates a new version","tags":["apps : Find and modify apps"]}},"/apps/{appId}/versions/{version}/status":{"post":{"description":"Only certain status changes are allowed. For instance, a developer is only able to suspend and unsuspend their app (which must already be approved). See here for a state change diagram of allowed status changes for administrators: https://support.openchannel.io/documentation/api/#415-apps-status-change\n","parameters":[{"description":"The id of the App to be updated","in":"path","name":"appId","required":true,"schema":{"type":"string"}},{"description":"The version of the App to be updated","in":"path","name":"version","required":true,"schema":{"type":"integer"}},{"description":"The unique id of the developer that is modifying this app","in":"query","name":"developerId","required":false,"schema":{"type":"string"}},{"description":"The new status for this app. Can be either 'inReview', 'approved', 'suspended' or 'rejected'","in":"query","name":"status","required":false,"schema":{"enum":["inReview","approved","suspended","rejected"],"type":"string"}},{"description":"The role initiating this status change. Can be either 'developer' or 'administrator' (default)","in":"query","name":"modifiedBy","required":false,"schema":{"default":"administrator","enum":["developer","administrator"],"type":"string"}},{"description":"The reason for this status change","in":"query","name":"reason","required":false,"schema":{"type":"string"}}],"responses":{"400":{"description":"Bad Request - Required parameters are missing, malformed or invalid"},"404":{"description":"Not Found - App is not found"},"412":{"description":"Precondition Failed - The app's new status is not valid because of the app's current status"}},"summary":"Allows a developer or administrator to change the status of apps","tags":["apps : Find and modify apps"]}},"/custom-gateway/payment/{ownershipId}":{"post":{"description":"- Results are returned for the market provided within the basic authentication credentials \n- Payments must be enabled and 'Custom' must be selected as the gateway in order to use this API endpoint\n","parameters":[{"description":"The id of the ownership record involved in this transaction","in":"path","name":"ownershipId","required":true,"schema":{"type":"string"}},{"description":"The total amount paid in cents","in":"query","name":"amount","required":true,"schema":{"type":"integer"}},{"description":"The date (in milliseconds) of when this payment was made","in":"query","name":"date","required":false,"schema":{"format":"int64","type":"integer"}},{"description":"The fee (in cents) paid to a payment processors or third parties to process this payment. Default is 0.","in":"query","name":"feeAmount","required":false,"schema":{"type":"integer"}},{"description":"The amount (in cents) paid to the marketplace owner as a commission for the purchase of this app. Defaults based on the commission amount configured for this marketplace.","in":"query","name":"marketplaceAmount","required":false,"schema":{"type":"integer"}},{"description":"The amount (in cents) paid to the owner of the app. Defaults based on the commission amount configured for this marketplace.","in":"query","name":"developerAmount","required":false,"schema":{"type":"integer"}},{"description":"A custom JSON object to attach to this transaction","in":"query","name":"customData","required":false,"schema":{"type":"string"}}],"responses":{"400":{"description":"Bad Request - Required parameters are missing, malformed or invalid"},"412":{"description":"Precondition Failed - Payments must be enabled and 'Custom' must be selected as the gateway in order to use this API endpoint"},"default":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/Transaction"}}},"description":"OK"}},"summary":"Adds a payment for an app on behalf of a user","tags":["custom-gateway : Process payments and refunds"]}},"/custom-gateway/refund/{ownershipId}":{"post":{"description":"- Results are returned for the market provided within the basic authentication credentials\n- Payments must be enabled and 'Custom' must be selected as the gateway in order to use this API endpoint\n","parameters":[{"description":"The id of the ownership record involved in this transaction","in":"path","name":"ownershipId","required":true,"schema":{"type":"string"}},{"description":"The total amount refunded in cents","in":"query","name":"amount","required":true,"schema":{"type":"integer"}},{"description":"The date (in milliseconds) of when this refund was made","in":"query","name":"date","required":false,"schema":{"format":"int64","type":"integer"}},{"description":"The fee (in cents) recovered from a payment processor or third party to process this payment. The default value is 0","in":"query","name":"feeAmount","required":false,"schema":{"type":"integer"}},{"description":"The amount (in cents) recovered from the marketplace owner as a commission refund for the purchase of this app","in":"query","name":"marketplaceAmount","required":false,"schema":{"type":"integer"}},{"description":"The amount (in cents) recovered from the owner of the app","in":"query","name":"developerAmount","required":false,"schema":{"type":"integer"}},{"description":"A custom JSON object to attach to this transaction","in":"query","name":"customData","required":false,"schema":{"type":"string"}}],"responses":{"400":{"description":"Bad Request - Required parameters are missing, malformed or invalid"},"412":{"description":"Precondition Failed - Payments must be enabled and 'Custom' must be selected as the gateway in order to use this API endpoint"},"default":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/Transaction"}}},"description":"OK"}},"summary":"Fully or partially refund payment for an app on behalf of a user","tags":["custom-gateway : Process payments and refunds"]}},"/developerAccounts":{"get":{"description":"- Results are paginated and the default is value is 1000 if no limit is provided\n","parameters":[{"description":"A query document. Example: {'name':'NASA'} matches all the developerAccounts that have the name 'NASA'","in":"query","name":"query","required":false,"schema":{"type":"string"}},{"description":"A sort document. Example: {'name':1} sorts the results by name in ascending order","in":"query","name":"sort","required":false,"schema":{"type":"string"}},{"description":"The result set page number to be returned","in":"query","name":"pageNumber","required":false,"schema":{"type":"integer"}},{"description":"The maximum number of results to return per page","in":"query","name":"limit","required":false,"schema":{"type":"integer"}}],"responses":{"400":{"description":"Bad Request - Required parameters are missing, malformed or invalid"},"default":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/DeveloperAccountPages"}}},"description":"OK"}},"summary":"Returns a paginated list of developerAccounts","tags":["developerAccounts : Find and modify developer accounts"]}},"/developerAccounts/{developerAccountId}":{"delete":{"parameters":[{"description":"The id of the developer account to be updated","in":"path","name":"developerAccountId","required":true,"schema":{"type":"string"}}],"responses":{"400":{"description":"Bad Request - Required parameters are missing, malformed or invalid"},"default":{"description":"OK"}},"summary":"Removes the developer account","tags":["developerAccounts : Find and modify developer accounts"]},"get":{"parameters":[{"description":"The id of the developer account to be located","in":"path","name":"developerAccountId","required":true,"schema":{"type":"string"}}],"responses":{"400":{"description":"Bad Request - Required parameters are missing, malformed or invalid"},"404":{"description":"Not Found - Developer account is not found"},"default":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/DeveloperAccount"}}},"description":"OK"}},"summary":"Returns a single developer account","tags":["developerAccounts : Find and modify developer accounts"]},"patch":{"parameters":[{"description":"The id of the developer account to be updated","in":"path","name":"developerAccountId","required":true,"schema":{"type":"string"}},{"description":"The id of the developer that this account belongs to","in":"query","name":"developerId","required":true,"schema":{"type":"string"}},{"description":"The contact email address","in":"query","name":"email","required":false,"schema":{"type":"string"}},{"description":"The name for the account","in":"query","name":"name","required":false,"schema":{"type":"string"}},{"description":"A custom JSON object that you can create and attach to this record","in":"query","name":"customData","required":false,"schema":{"type":"string"}}],"responses":{"400":{"description":"Bad Request - Required parameters are missing, malformed or invalid"},"404":{"description":"Not Found - The developer is not found"},"default":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/DeveloperAccount"}}},"description":"OK"}},"summary":"Updates the developer account fields","tags":["developerAccounts : Find and modify developer accounts"]},"post":{"parameters":[{"description":"The id of the developer account to be updated","in":"path","name":"developerAccountId","required":true,"schema":{"type":"string"}},{"description":"The id of the developer that this account belongs to","in":"query","name":"developerId","required":true,"schema":{"type":"string"}},{"description":"The contact email address","in":"query","name":"email","required":false,"schema":{"type":"string"}},{"description":"The name for the account","in":"query","name":"name","required":false,"schema":{"type":"string"}},{"description":"A custom JSON object that you can create and attach to this record","in":"query","name":"customData","required":false,"schema":{"type":"string"}}],"responses":{"400":{"description":"Bad Request - Required parameters are missing, malformed or invalid"},"default":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/DeveloperAccount"}}},"description":"OK"}},"summary":"Updates the developer account or adds the developer account if it doesn't exist","tags":["developerAccounts : Find and modify developer accounts"]}},"/developers":{"get":{"description":"- Results are paginated and the default is value is 100 if no limit is provided\n","parameters":[{"description":"A query document. Example: {'name':'John'} matches all the developers that have the name 'John'","in":"query","name":"query","required":false,"schema":{"type":"string"}},{"description":"A sort document. Example: {'name':1} sorts the results by name in ascending order","in":"query","name":"sort","required":false,"schema":{"type":"string"}},{"description":"The result set page number to be returned","in":"query","name":"pageNumber","required":false,"schema":{"type":"integer"}},{"description":"The maximum number of results to return per page","in":"query","name":"limit","required":false,"schema":{"type":"integer"}}],"responses":{"400":{"description":"Bad Request - Required parameters are missing, malformed or invalid"},"default":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/DeveloperPages"}}},"description":"OK"}},"summary":"Returns a paginated list of developers","tags":["developers : Find and modify developers"]}},"/developers/{developerId}":{"delete":{"parameters":[{"description":"The id of the developer to be removed","in":"path","name":"developerId","required":true,"schema":{"type":"string"}}],"responses":{"400":{"description":"Bad Request - Required parameters are missing, malformed or invalid"},"404":{"description":"Not Found - Developer is not found"},"default":{"description":"OK"}},"summary":"Removes a single developer","tags":["developers : Find and modify developers"]},"get":{"parameters":[{"description":"The id of the developer to be located","in":"path","name":"developerId","required":true,"schema":{"type":"string"}}],"responses":{"400":{"description":"Bad Request - Required parameters are missing, malformed or invalid"},"404":{"description":"Not Found - Developer is not found"},"default":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/Developer"}}},"description":"OK"}},"summary":"Returns a single developer","tags":["developers : Find and modify developers"]},"patch":{"parameters":[{"description":"The id of the developer to be located","in":"path","name":"developerId","required":true,"schema":{"type":"string"}},{"description":"The type for this developer","in":"query","name":"type","required":false,"schema":{"type":"string"}},{"description":"The developer's email","in":"query","name":"email","required":false,"schema":{"type":"string"}},{"description":"The developer's username","in":"query","name":"username","required":false,"schema":{"type":"string"}},{"description":"The developer's name","in":"query","name":"name","required":false,"schema":{"type":"string"}},{"description":"A custom JSON object that you can create and attach to this record","in":"query","name":"customData","required":false,"schema":{"type":"string"}}],"responses":{"400":{"description":"Bad Request - Required parameters are missing, malformed or invalid"},"404":{"description":"Not Found - The developer is not found"},"default":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/Developer"}}},"description":"OK"}},"summary":"Updates the developer fields","tags":["developers : Find and modify developers"]},"post":{"parameters":[{"description":"The id of the developer to be located","in":"path","name":"developerId","required":true,"schema":{"type":"string"}},{"description":"The type for this developer","in":"query","name":"type","required":false,"schema":{"type":"string"}},{"description":"The developer's email","in":"query","name":"email","required":false,"schema":{"type":"string"}},{"description":"The developer's username","in":"query","name":"username","required":false,"schema":{"type":"string"}},{"description":"The developer's name","in":"query","name":"name","required":false,"schema":{"type":"string"}},{"description":"A custom JSON object that you can create and attach to this record","in":"query","name":"customData","required":false,"schema":{"type":"string"}}],"responses":{"400":{"description":"Bad Request - Required parameters are missing, malformed or invalid"},"default":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/Developer"}}},"description":"OK"}},"summary":"Updates the developer record or adds the developer if it doesn't exist","tags":["developers : Find and modify developers"]}},"/events/{eventId}":{"get":{"description":"- Results are returned for the market provided within the basic authentication credentials\n","parameters":[{"description":"The id of the event","in":"path","name":"eventId","required":true,"schema":{"type":"string"}}],"responses":{"400":{"description":"Bad Request - Required parameters are missing, malformed or invalid"},"404":{"description":"Not Found - The event was not found"},"default":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/Event"}}},"description":"OK"}},"summary":"Returns an event","tags":["events : Find events"]}},"/files":{"get":{"parameters":[{"description":"A query document. Example: {'name':'file.txt'} matches all the files that have the name 'file.txt'","in":"query","name":"query","required":false,"schema":{"type":"string"}},{"description":"A sort document. Example: {'name':1} sorts the results by name in ascending order","in":"query","name":"sort","required":false,"schema":{"type":"string"}},{"description":"The result set page number to be returned","in":"query","name":"pageNumber","required":false,"schema":{"type":"integer"}},{"description":"The maximum number of results to return per page","in":"query","name":"limit","required":false,"schema":{"type":"integer"}}],"responses":{"400":{"description":"Bad Request - Required parameters are missing, malformed or invalid"},"default":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/File"}}},"description":"OK"}},"summary":"Returns a paginated list of files","tags":["files : Upload files "]},"post":{"description":"- WARNING: File URLs or fileIds must be stored somewhere within the customData field for an app, review, developer or user. Unused files will be removed after a few days. \n- This method is called on behalf of a developer.\n","parameters":[{"description":"If true, this file will be protected as a private file and require the generation of a signed URL in order to download using the Download File API. The default is false.","in":"query","name":"isPrivate","required":false,"schema":{"type":"boolean"}},{"description":"A comma separated list of hashes to return in order to verify file integrity.","in":"query","name":"hash","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"properties":{"file":{"description":"The file to be uploaded","format":"binary","type":"string"}},"required":["file"],"type":"object"}}},"required":true},"responses":{"400":{"description":"Bad Request - Required parameters are missing, malformed or invalid"},"default":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/File"}}},"description":"OK"}},"summary":"Uploads a file.","tags":["files : Upload files "]}},"/files/byIdOrUrl":{"get":{"parameters":[{"description":"The fileId or fileUrl of the file to be returned","in":"query","name":"fileIdOrUrl","required":true,"schema":{"type":"string"}}],"responses":{"400":{"description":"Bad Request - Required parameters are missing, malformed or invalid"},"default":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/File"}}},"description":"OK"}},"summary":"Get the details for a file.","tags":["files : Upload files "]}},"/files/download":{"get":{"parameters":[{"description":"The URL of the file to be uploaded","in":"query","name":"fileId","required":true,"schema":{"type":"string"}},{"description":"The number of seconds that this signed URL should be valid for. The default is 60.","in":"query","name":"validSeconds","required":false,"schema":{"type":"integer"}}],"responses":{"400":{"description":"Bad Request - Required parameters are missing, malformed or invalid"},"404":{"description":"Not Found - The file was not found"},"default":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/FileDownload"}}},"description":"OK"}},"summary":"A signed URL for downloading a private file can be returned by providing the fileId.","tags":["files : Upload files "]}},"/files/url":{"post":{"description":"- WARNING: File URLs or fileIds must be stored somewhere within the customData field for an app, review, developer or user. Unused files will be removed after a few days.\n- This method is called on behalf of a developer.\n","parameters":[{"description":"The URL of the file to be uploaded","in":"query","name":"url","required":true,"schema":{"type":"string"}},{"description":"If true, this file will be protected as a private file and require the generation of a signed URL in order to download using the Download File API. The default is false.","in":"query","name":"isPrivate","required":false,"schema":{"type":"boolean"}}],"responses":{"400":{"description":"Bad Request - Required parameters are missing, malformed or invalid"},"default":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/File"}}},"description":"OK"}},"summary":"Uploads a file from a URL","tags":["files : Upload files "]}},"/markets/this":{"get":{"responses":{"400":{"description":"Bad Request - Required parameters are missing, malformed or invalid"},"default":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/Market"}}},"description":"OK"}},"summary":"Returns the current marketplace","tags":["markets : This marketplace"]}},"/ownership":{"get":{"description":" - Results are returned for the market provided within the basic authentication credentials ","parameters":[{"description":"A query document. Example: {'userId':'12'} matches all the ownership records that have the userId '12'.","in":"query","name":"query","required":false,"schema":{"type":"string"}},{"description":"A sort document. Example: {'date':1} sorts the results by date in ascending order","in":"query","name":"sort","required":false,"schema":{"type":"string"}},{"description":"The result set page number to be returned","in":"query","name":"pageNumber","required":false,"schema":{"type":"integer"}},{"description":"The maximum number of results to return per page","in":"query","name":"limit","required":false,"schema":{"type":"integer"}}],"responses":{"400":{"description":"Bad Request - Required parameters are missing, malformed or invalid"},"default":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/OwnershipPages"}}},"description":"OK"}},"summary":"Returns a paginated list of app licenses","tags":["ownership : Find ownership"]}},"/ownership/install":{"post":{"description":" - This method is called on behalf of a user - This method requires either a modelId from the app or a custom model - User data and statistics are recorded when this method is called ","parameters":[{"description":"The id of the App being owned","in":"query","name":"appId","required":true,"schema":{"type":"string"}},{"description":"The id of the User requesting to own the App","in":"query","name":"userId","required":true,"schema":{"type":"string"}},{"description":"The id of the model associated with this ownership request","in":"query","name":"modelId","required":false,"schema":{"type":"string"}},{"description":"A custom model that will override the app's default model for this install","in":"query","name":"model","required":false,"schema":{"type":"string"}},{"description":"A custom JSON object to attach to this ownership record","in":"query","name":"customData","required":false,"schema":{"type":"string"}}],"responses":{"400":{"description":"Bad Request - Required parameters are missing, malformed or invalid"},"402":{"description":"Payment Required - The App requires a user with pre-set payment details"},"404":{"description":"Not Found - The App is either restricted or was not found"},"409":{"description":"Already Exists - The User already owns this app (or is already participating in a trial)"},"412":{"description":"Payment Failed - The User's payment details are invalid"},"default":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/Ownership"}}},"description":"OK"}},"summary":"Aquires an app license for a user (installs app)","tags":["ownership : Find ownership"]}},"/ownership/uninstall/{ownershipId}":{"post":{"description":" - This method is called on behalf of a user - User data and statistics are recorded when this method is called ","parameters":[{"description":"The id of the ownership to be unintalled","in":"path","name":"ownershipId","required":true,"schema":{"type":"string"}},{"description":"The id of the User requesting to uninstall the App","in":"query","name":"userId","required":true,"schema":{"type":"string"}},{"description":"True if this app will require payment to be re-installed. Default is false","in":"query","name":"cancelOwnership","required":false,"schema":{"type":"boolean"}},{"description":"A custom JSON object to attach to this ownership record","in":"query","name":"customData","required":false,"schema":{"type":"string"}}],"responses":{"400":{"description":"Bad Request - Required parameters are missing, malformed or invalid"},"404":{"description":"Not Found - App is not found"},"409":{"description":"App is not owned by this user"},"default":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/Ownership"}}},"description":"OK"}},"summary":"Uninstalls a license for a particular user and app (uninstalls app)","tags":["ownership : Find ownership"]}},"/ownership/{ownershipId}":{"get":{"description":" - Results are returned for the market provided within the basic authentication credentials ","parameters":[{"description":"The id belonging to the ownership record","in":"path","name":"ownershipId","required":true,"schema":{"type":"string"}}],"responses":{"400":{"description":"Bad Request - Required parameters are missing, malformed or invalid"},"default":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/Ownership"}}},"description":"OK"}},"summary":"Returns an ownership record","tags":["ownership : Find ownership"]},"patch":{"description":" - Results are returned for the market provided within the basic authentication credentials ","parameters":[{"description":"The id of the ownership to be updated","in":"path","name":"ownershipId","required":true,"schema":{"type":"string"}},{"description":"Custom JSON object that will be attached to this ownership record","in":"query","name":"customData","required":false,"schema":{"type":"string"}},{"description":"The date (in millis) of when this app ownership expires","in":"query","name":"expires","required":false,"schema":{"format":"int64","type":"integer"}}],"responses":{"400":{"description":"Bad Request - Required parameters are missing, malformed or invalid"},"404":{"description":"Not Found - The ownership was not found"},"default":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/Ownership"}}},"description":"OK"}},"summary":"Updates ownership fields","tags":["ownership : Find ownership"]},"post":{"description":" - Results are returned for the market provided within the basic authentication credentials ","parameters":[{"description":"The id of the ownership to be updated","in":"path","name":"ownershipId","required":true,"schema":{"type":"string"}},{"description":"Custom JSON object that will be attached to this ownership record","in":"query","name":"customData","required":false,"schema":{"type":"string"}},{"description":"The date (in millis) of when this app ownership expires","in":"query","name":"expires","required":false,"schema":{"format":"int64","type":"integer"}}],"responses":{"400":{"description":"Bad Request - Required parameters are missing, malformed or invalid"},"default":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/Ownership"}}},"description":"OK"}},"summary":"Updates an ownership record","tags":["ownership : Find ownership"]}},"/permission/apps/{appId}":{"delete":{"parameters":[{"description":"The id of the app","in":"path","name":"appId","required":true,"schema":{"type":"string"}},{"description":"The id of the user","in":"query","name":"userId","required":true,"schema":{"type":"string"}}],"responses":{"400":{"description":"Bad Request - Required parameters are missing, malformed or invalid"},"404":{"description":"Not Found - The access is not found"}},"summary":"Removes permission that allows the app to access this user's data","tags":["permission : Add and remove permissions "]},"get":{"parameters":[{"description":"The id of the app","in":"path","name":"appId","required":true,"schema":{"type":"string"}},{"description":"The id of the user","in":"query","name":"userId","required":true,"schema":{"type":"string"}}],"responses":{"400":{"description":"Bad Request - Required parameters are missing, malformed or invalid"},"404":{"description":"Not Found - The access is not found"},"default":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/Access"}}},"description":"OK"}},"summary":"Returns permission that allows the app to access this user's data","tags":["permission : Add and remove permissions "]},"post":{"parameters":[{"description":"The id of the app","in":"path","name":"appId","required":true,"schema":{"type":"string"}},{"description":"The id of the user","in":"query","name":"userId","required":true,"schema":{"type":"string"}},{"description":"The time (in milliseconds) of when the user agreed to the access request","in":"query","name":"date","required":false,"schema":{"format":"int64","type":"integer"}},{"description":"The ip address of the user agreeing to the access request","in":"query","name":"ip","required":false,"schema":{"type":"string"}}],"responses":{"400":{"description":"Bad Request - Required parameters are missing, malformed or invalid"},"404":{"description":"Not Found - App not found"},"default":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/Access"}}},"description":"OK"}},"summary":"Adds permission to allow the app to access this user's data","tags":["permission : Add and remove permissions "]}},"/reviews":{"get":{"description":"- Results are paginated and the default is value is 100 if no limit is provided\n","parameters":[{"description":"A query document. Example: {'rating': 500} matches all the reviews that have a rating of 500. ","in":"query","name":"query","required":false,"schema":{"type":"string"}},{"description":"A sort document. Example: {'rating':1} sorts the results by rating in ascending order","in":"query","name":"sort","required":false,"schema":{"type":"string"}},{"description":"The result set page number to be returned","in":"query","name":"pageNumber","required":false,"schema":{"type":"integer"}},{"description":"The maximum number of results to return per page","in":"query","name":"limit","required":false,"schema":{"type":"integer"}}],"responses":{"400":{"description":"Bad Request - Required parameters are missing, malformed or invalid"},"default":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/ReviewPages"}}},"description":"OK"}},"summary":"Find reviews for a particular App and marketplace. Results are automatically paginated when limit is set","tags":["reviews : Find and modify reviews "]},"post":{"description":"- Only authenticated users are able to post reviews\n- Returns the newly created review\n","parameters":[{"description":"The id of the App that will own this review","in":"query","name":"appId","required":true,"schema":{"type":"string"}},{"description":"The id of the User that is posting this review","in":"query","name":"userId","required":true,"schema":{"type":"string"}},{"description":"The id of the User account that is posting this review","in":"query","name":"userAccountId","required":false,"schema":{"type":"string"}},{"description":"The review's headline. Limited to 50 characters.","in":"query","name":"headline","required":true,"schema":{"type":"string"}},{"description":"The rating given within this review. The rating is represented as an integer between 0 and 500 (0 - 5 stars)","in":"query","name":"rating","required":true,"schema":{"maximum":500,"minimum":0,"type":"integer"}},{"description":"The review's description. Limited to 2000 characters.","in":"query","name":"description","required":true,"schema":{"type":"string"}},{"description":"The type for this review","in":"query","name":"type","required":false,"schema":{"type":"string"}},{"description":"True if a review can be created only by a user that has owned the app. The default is True.","in":"query","name":"mustOwnApp","required":false,"schema":{"type":"boolean"}},{"description":"True if the review should be automatically approved. The default is False.","in":"query","name":"autoApprove","required":false,"schema":{"type":"boolean"}},{"description":"A custom JSON object that you can create and attach to this record","in":"query","name":"customData","required":false,"schema":{"type":"string"}}],"responses":{"400":{"description":"Bad Request - Required parameters are missing, malformed or invalid"},"403":{"description":"Forbidden - Users must have owned the app before they can post a review; Anonymous users cannot post reviews"},"409":{"description":"Already Exists - The User has already reviewed this app"},"default":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/Review"}}},"description":"OK"}},"summary":"Post a review from a User and returns the new post","tags":["reviews : Find and modify reviews "]}},"/reviews/{reviewId}":{"delete":{"description":"- Only the review author is able to remove their review\n","parameters":[{"description":"The id of the Review to be updated","in":"path","name":"reviewId","required":true,"schema":{"type":"string"}},{"description":"The id of the User that is removing this review","in":"query","name":"userId","required":true,"schema":{"type":"string"}},{"description":"The id of the User account that is emoving this review","in":"query","name":"userAccountId","required":false,"schema":{"type":"string"}}],"responses":{"400":{"description":"Bad Request - Required parameters are missing, malformed or invalid"}},"summary":"Remove a review","tags":["reviews : Find and modify reviews "]},"get":{"parameters":[{"description":"The id of the review to be located","in":"path","name":"reviewId","required":true,"schema":{"type":"string"}}],"responses":{"400":{"description":"Bad Request - Required parameters are missing, malformed or invalid"},"404":{"description":"Not Found - Review is not found"},"default":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/Review"}}},"description":"OK"}},"summary":"Find a Review within a particular App and marketplace","tags":["reviews : Find and modify reviews "]},"patch":{"description":"- Only the review author is able to update their review\n- Returns the newly updated review\n","parameters":[{"description":"The id of the Review to be updated","in":"path","name":"reviewId","required":true,"schema":{"type":"string"}},{"description":"The id of the User that is updating this review","in":"query","name":"userId","required":true,"schema":{"type":"string"}},{"description":"The id of the User account that is posting this review","in":"query","name":"userAccountId","required":false,"schema":{"type":"string"}},{"description":"The review's headline. Limited to 50 characters.","in":"query","name":"headline","required":false,"schema":{"type":"string"}},{"description":"The rating given within this review. The rating is represented as an integer between 0 and 500 (0 - 5 stars)","in":"query","name":"rating","required":false,"schema":{"maximum":500,"minimum":0,"type":"integer"}},{"description":"The review's description. Limited to 2000 characters.","in":"query","name":"description","required":false,"schema":{"type":"string"}},{"description":"A custom JSON object that you can create and attach to this record","in":"query","name":"customData","required":false,"schema":{"type":"string"}}],"responses":{"400":{"description":"Bad Request - Required parameters are missing, malformed or invalid"},"403":{"description":"Forbidden - Anonymous users cannot update reviews"},"404":{"description":"Not Found - This review was not found"},"default":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/Review"}}},"description":"OK"}},"summary":"Update a review fields","tags":["reviews : Find and modify reviews "]},"post":{"description":"- Only the review author is able to update their review\n- Returns the newly updated review\n","parameters":[{"description":"The id of the Review to be updated","in":"path","name":"reviewId","required":true,"schema":{"type":"string"}},{"description":"The id of the User that is updating this review","in":"query","name":"userId","required":true,"schema":{"type":"string"}},{"description":"The id of the User account that is posting this review","in":"query","name":"userAccountId","required":true,"schema":{"type":"string"}},{"description":"The review's headline. Limited to 50 characters.","in":"query","name":"headline","required":true,"schema":{"type":"string"}},{"description":"The rating given within this review. The rating is represented as an integer between 0 and 500 (0 - 5 stars)","in":"query","name":"rating","required":true,"schema":{"maximum":500,"minimum":0,"type":"integer"}},{"description":"The review's description. Limited to 2000 characters.","in":"query","name":"description","required":true,"schema":{"type":"string"}},{"description":"A custom JSON object that you can create and attach to this record","in":"query","name":"customData","required":false,"schema":{"type":"string"}}],"responses":{"400":{"description":"Bad Request - Required parameters are missing, malformed or invalid"},"403":{"description":"Forbidden - Anonymous users cannot update reviews"},"404":{"description":"Not Found - This review was not found"},"default":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/Review"}}},"description":"OK"}},"summary":"Update a review from a User and returns the new post","tags":["reviews : Find and modify reviews "]}},"/stats/increment/{field}":{"post":{"description":"increment a statistics field","parameters":[{"description":"The field to be incremented","in":"path","name":"field","required":true,"schema":{"type":"string"}},{"description":"The id of the app associated with this statistic value","in":"query","name":"appId","required":true,"schema":{"type":"string"}},{"description":"The id of the user that is performing the action","in":"query","name":"userId","required":false,"schema":{"type":"string"}},{"description":"The increment amount. Default is 1 if no value is provided.","in":"query","name":"value","required":false,"schema":{"type":"integer"}},{"description":"The date (in millis) for when this increment occurred. The default is the current date if no value is provided.","in":"query","name":"date","required":false,"schema":{"format":"int64","type":"integer"}}],"responses":{"default":{"description":"OK"}},"summary":"Increments a statistics field","tags":["stats: Find marketplace statistics"]}},"/stats/series/{period}/{fields}":{"get":{"description":"Return a timeseries nested array containing date and value. Example: [[1406520000000,2],[1406606400000,34],[1406692800000,245],...]","parameters":[{"description":"The period for the series (day or month)","in":"path","name":"period","required":true,"schema":{"enum":["day","month"],"type":"string"}},{"description":"The field to be graphed. This also be a comma separated list of fields and the result will be a single timeseries containing the sum of all fields.","in":"path","name":"fields","required":true,"schema":{"type":"string"}},{"description":"The start date for this series (in millis)","in":"query","name":"start","required":false,"schema":{"format":"int64","type":"integer"}},{"description":"The end date for this series (in millis)","in":"query","name":"end","required":false,"schema":{"format":"int64","type":"integer"}},{"description":"A query document. Example: {'developerId': '112'} matches all the apps that have the developer with id 112","in":"query","name":"query","required":false,"schema":{"type":"string"}}],"responses":{"default":{"content":{"*/*":{"schema":{"items":{"items":{"type":"object"},"type":"array"},"type":"array"}}},"description":"OK"}},"summary":"Return a timeseries for a particular field","tags":["stats: Find marketplace statistics"]}},"/stats/total":{"get":{"parameters":[{"description":"A comma seperated list of all the fields to be returned in the total (available by default: dislikes, likes, reviews, totalSales, developerSales, marketplaceSales, downloads, ownerships, views)","in":"query","name":"fields","required":true,"schema":{"type":"string"}},{"description":"A query document. Example: {'developerId': '112'} matches all the apps that have the developer with id 112","in":"query","name":"query","required":false,"schema":{"type":"string"}},{"description":"The start date for this total (in millis)","in":"query","name":"start","required":false,"schema":{"format":"int64","type":"integer"}},{"description":"The end date for this total (in millis)","in":"query","name":"end","required":false,"schema":{"format":"int64","type":"integer"}}],"responses":{"default":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/Total"}}},"description":"OK"}},"summary":"Returns the total number of events for a particular field.","tags":["stats: Find marketplace statistics"]}},"/stripe-gateway/developer/{developerId}/accounts":{"get":{"description":"- Results are returned for the market provided within the basic authentication credentials\n","parameters":[{"description":"The id of the developer connecting their Stripe account","in":"path","name":"developerId","required":true,"schema":{"type":"string"}}],"responses":{"400":{"description":"Bad Request - Required parameters are missing, malformed or invalid"},"412":{"description":"Precondition Failed - Payments must be enabled and 'Stripe' must be selected as the gateway in order to use this API endpoint"},"default":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/Accounts"}}},"description":"OK"}},"summary":"Returns a developers connected Stripe accounts","tags":["stripe-gateway : Process payments and refunds "]},"post":{"description":"- Results are returned for the market provided within the basic authentication credentials \n- The URL generated by this method is only valid for 48 hours.\n","parameters":[{"description":"The id of the developer connecting their Stripe account","in":"path","name":"developerId","required":true,"schema":{"type":"string"}},{"description":"The URL to redirect this developer after they have connected their Stripe account","in":"query","name":"redirectUrl","required":true,"schema":{"type":"string"}}],"responses":{"400":{"description":"Bad Request - Required parameters are missing, malformed or invalid"},"412":{"description":"Precondition Failed - Payments must be enabled and 'Stripe' must be selected as the gateway in order to use this API endpoint"},"default":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/DeveloperToken"}}},"description":"OK"}},"summary":"Generate a temporary URL to allow a developer to connect their Stripe account","tags":["stripe-gateway : Process payments and refunds "]}},"/stripe-gateway/developer/{developerId}/accounts/{stripeId}":{"delete":{"description":"\n- Results are returned for the market provided within the basic authentication credentials\n","parameters":[{"description":"The id of the developer disconnecting their Stripe account","in":"path","name":"developerId","required":true,"schema":{"type":"string"}},{"description":"The id of the stripe account to disconnect","in":"path","name":"stripeId","required":true,"schema":{"type":"string"}}],"responses":{"400":{"description":"Bad Request - Required parameters are missing, malformed or invalid"},"412":{"description":"Precondition Failed - Payments must be enabled and 'Stripe' must be selected as the gateway in order to use this API endpoint"},"default":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/Accounts"}}},"description":"OK"}},"summary":"Disconnects a developer's Stripe account","tags":["stripe-gateway : Process payments and refunds "]}},"/stripe-gateway/user/{userId}/cards":{"get":{"description":"- Results are returned for the market provided within the basic authentication credentials\n","parameters":[{"description":"The id of the user requesting their credit cards","in":"path","name":"userId","required":true,"schema":{"type":"string"}}],"responses":{"400":{"description":"Bad Request - Required parameters are missing, malformed or invalid"},"412":{"description":"Precondition Failed - Payments must be enabled and 'Stripe' must be selected as the gateway in order to use this API endpoint"},"default":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/Cards"}}},"description":"OK"}},"summary":"Returns credit cards for this user","tags":["stripe-gateway : Process payments and refunds "]},"post":{"description":"- Results are returned for the market provided within the basic authentication credentials\n","parameters":[{"description":"The id of the user adding their credit card","in":"path","name":"userId","required":true,"schema":{"type":"string"}},{"description":"The Stripe token returned by the Stripe.js Stripe.card.createToken call","in":"query","name":"token","required":true,"schema":{"type":"string"}},{"description":"Set to true if this should be set to be the default credit card","in":"query","name":"isDefault","required":false,"schema":{"type":"boolean"}}],"responses":{"400":{"description":"Bad Request - Required parameters are missing, malformed or invalid"},"412":{"description":"Precondition Failed - Payments must be enabled and 'Stripe' must be selected as the gateway in order to use this API endpoint"},"default":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/Cards"}}},"description":"OK"}},"summary":"Adds credit card for this user","tags":["stripe-gateway : Process payments and refunds "]}},"/stripe-gateway/user/{userId}/cards/{cardId}":{"delete":{"parameters":[{"description":"The id of the user removing their credit card","in":"path","name":"userId","required":true,"schema":{"type":"string"}},{"description":"The id of the credit card to remove","in":"path","name":"cardId","required":true,"schema":{"type":"string"}}],"responses":{"400":{"description":"Bad Request - Required parameters are missing, malformed or invalid"},"412":{"description":"Precondition Failed - Payments must be enabled and 'Stripe' must be selected as the gateway in order to use this API endpoint"},"default":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/Cards"}}},"description":"OK"}},"summary":"Removes a credit card for a user","tags":["stripe-gateway : Process payments and refunds "]},"post":{"description":"\n- Results are returned for the market provided within the basic authentication credentials\n","parameters":[{"description":"The id of the user adding their credit card","in":"path","name":"userId","required":true,"schema":{"type":"string"}},{"description":"The id of the card to be updated","in":"path","name":"cardId","required":true,"schema":{"type":"string"}},{"description":"Set to true if this should be set to be the default credit card","in":"query","name":"isDefault","required":false,"schema":{"type":"boolean"}},{"description":"The card holder's city","in":"query","name":"address_city","required":false,"schema":{"type":"string"}},{"description":"The card holder's country","in":"query","name":"address_country","required":false,"schema":{"type":"string"}},{"description":"The card holder's street address","in":"query","name":"address_line1","required":false,"schema":{"type":"string"}},{"description":"The card holder's street address","in":"query","name":"address_line2","required":false,"schema":{"type":"string"}},{"description":"The card holder's city state/province","in":"query","name":"address_state","required":false,"schema":{"type":"string"}},{"description":"The card holder's zip/postal code","in":"query","name":"address_zip","required":false,"schema":{"type":"string"}}],"responses":{"400":{"description":"Bad Request - Required parameters are missing, malformed or invalid"},"412":{"description":"Precondition Failed - Payments must be enabled and 'Stripe' must be selected as the gateway in order to use this API endpoint"},"default":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/Cards"}}},"description":"OK"}},"summary":"Updates a credit card for this user","tags":["stripe-gateway : Process payments and refunds "]}},"/transactions":{"get":{"description":"- Results are paginated and the default is value is 100 if no limit is provided\n","parameters":[{"description":"A query document. Example: {'userId':'1'} matches all the transactions that have the userId '1'.","in":"query","name":"query","required":false,"schema":{"type":"string"}},{"description":"A sort document. Example: {'date':1} sorts the results by total in ascending order","in":"query","name":"sort","required":false,"schema":{"type":"string"}},{"description":"The result set page number to be returned","in":"query","name":"pageNumber","required":false,"schema":{"type":"integer"}},{"description":"The maximum number of results to return per page","in":"query","name":"limit","required":false,"schema":{"type":"integer"}}],"responses":{"400":{"description":"Bad Request - Required parameters are missing, malformed or invalid"},"default":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/TransactionPages"}}},"description":"OK"}},"summary":"Returns a paginated list of transactions","tags":["transactions : Find payments and refunds "]}},"/transactions/{transactionId}":{"delete":{"description":"- Results are returned for the market provided within the basic authentication credentials\n","parameters":[{"description":"The id of the transaction to be deleted","in":"path","name":"transactionId","required":true,"schema":{"type":"string"}}],"responses":{"400":{"description":"Bad Request - Required parameters are missing, malformed or invalid"}},"summary":"Deleted a transaction","tags":["transactions : Find payments and refunds "]},"get":{"description":"- Results are returned for the market provided within the basic authentication credentials\n","parameters":[{"description":"The id of the transaction to return","in":"path","name":"transactionId","required":true,"schema":{"type":"string"}}],"responses":{"400":{"description":"Bad Request - Required parameters are missing, malformed or invalid"}},"summary":"Returns a transaction","tags":["transactions : Find payments and refunds "]},"post":{"description":"- Results are returned for the market provided within the basic authentication credentials\n","parameters":[{"description":"The id of the transaction to be updated","in":"path","name":"transactionId","required":true,"schema":{"type":"string"}},{"description":"A custom JSON object that you can create and attach to this record","in":"query","name":"customData","required":false,"schema":{"type":"string"}}],"responses":{"400":{"description":"Bad Request - Required parameters are missing, malformed or invalid"},"default":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/Transaction"}}},"description":"OK"}},"summary":"Updates a transaction","tags":["transactions : Find payments and refunds "]}},"/userAccounts":{"get":{"description":"- Results are paginated and the default is value is 1000 if no limit is provided\n","parameters":[{"description":"A query document. Example: {'name':'NASA'} matches all the userAccounts that have the name 'NASA'","in":"query","name":"query","required":false,"schema":{"type":"string"}},{"description":"A sort document. Example: {'name':1} sorts the results by name in ascending order","in":"query","name":"sort","required":false,"schema":{"type":"string"}},{"description":"The result set page number to be returned","in":"query","name":"pageNumber","required":false,"schema":{"type":"integer"}},{"description":"The maximum number of results to return per page","in":"query","name":"limit","required":false,"schema":{"type":"integer"}}],"responses":{"400":{"description":"Bad Request - Required parameters are missing, malformed or invalid"},"default":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/UserAccountPages"}}},"description":"OK"}},"summary":"Returns a paginated list of userAccounts","tags":["userAccounts : Find and modify user accounts "]}},"/userAccounts/{userAccountId}":{"delete":{"parameters":[{"description":"The id of the user account to be removed","in":"path","name":"userAccountId","required":true,"schema":{"type":"string"}}],"responses":{"400":{"description":"Bad Request - Required parameters are missing, malformed or invalid"},"default":{"description":"OK"}},"summary":"Removes the user account","tags":["userAccounts : Find and modify user accounts "]},"get":{"parameters":[{"description":"The id of the user account to be located","in":"path","name":"userAccountId","required":true,"schema":{"type":"string"}}],"responses":{"400":{"description":"Bad Request - Required parameters are missing, malformed or invalid"},"404":{"description":"Not Found - Developer account is not found"},"default":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/UserAccount"}}},"description":"OK"}},"summary":"Returns a single user account","tags":["userAccounts : Find and modify user accounts "]},"patch":{"parameters":[{"description":"The id of the user account to be updated","in":"path","name":"userAccountId","required":true,"schema":{"type":"string"}},{"description":"The Id of the user that this account belongs to","in":"query","name":"userId","required":true,"schema":{"type":"string"}},{"description":"The contact email address","in":"query","name":"email","required":false,"schema":{"type":"string"}},{"description":"The user account name","in":"query","name":"name","required":false,"schema":{"type":"string"}},{"description":"A custom JSON object that you can create and attach to this record","in":"query","name":"customData","required":false,"schema":{"type":"string"}}],"responses":{"400":{"description":"Bad Request - Required parameters are missing, malformed or invalid"},"404":{"description":"Not Found - User account is not found"},"default":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/UserAccount"}}},"description":"OK"}},"summary":"Updates the user account fields","tags":["userAccounts : Find and modify user accounts "]},"post":{"parameters":[{"description":"The id of the user account to be updated","in":"path","name":"userAccountId","required":true,"schema":{"type":"string"}},{"description":"The Id of the user that this account belongs to","in":"query","name":"userId","required":true,"schema":{"type":"string"}},{"description":"The contact email address","in":"query","name":"email","required":false,"schema":{"type":"string"}},{"description":"The user account name","in":"query","name":"name","required":false,"schema":{"type":"string"}},{"description":"A custom JSON object that you can create and attach to this record","in":"query","name":"customData","required":false,"schema":{"type":"string"}}],"responses":{"400":{"description":"Bad Request - Required parameters are missing, malformed or invalid"},"default":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/UserAccount"}}},"description":"OK"}},"summary":"Updates the user account or adds the user account if it doesn't exist","tags":["userAccounts : Find and modify user accounts "]}},"/users":{"get":{"description":"- Results are paginated and the default is value is 100 if no limit is provided\n","parameters":[{"description":"A query document. Example: {'name':'John'} matches all the users that have the name 'John'","in":"query","name":"query","required":false,"schema":{"type":"string"}},{"description":"A sort document. Example: {'name':1} sorts the results by name in ascending order","in":"query","name":"sort","required":false,"schema":{"type":"string"}},{"description":"The result set page number to be returned","in":"query","name":"pageNumber","required":false,"schema":{"type":"integer"}},{"description":"The maximum number of results to return per page","in":"query","name":"limit","required":false,"schema":{"type":"integer"}}],"responses":{"400":{"description":"Bad Request - Required parameters are missing, malformed or invalid"},"default":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/UserPages"}}},"description":"OK"}},"summary":"Returns a paginated list of users","tags":["users : Find and modify users "]}},"/users/{userId}":{"delete":{"description":"- Results are returned for the market provided within the basic authentication credentials\n","parameters":[{"description":"The id of the user to be removed","in":"path","name":"userId","required":true,"schema":{"type":"string"}}],"responses":{"400":{"description":"Bad Request - Required parameters are missing, malformed or invalid"},"404":{"description":"Not Found - User is not found"},"default":{"description":"OK"}},"summary":"Removes a single user","tags":["users : Find and modify users "]},"get":{"description":"- Results are returned for the market provided within the basic authentication credentials\n","parameters":[{"description":"The id of the user to be located","in":"path","name":"userId","required":true,"schema":{"type":"string"}}],"responses":{"400":{"description":"Bad Request - Required parameters are missing, malformed or invalid"},"404":{"description":"Not Found - User is not found"},"default":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/User"}}},"description":"OK"}},"summary":"Return a single user","tags":["users : Find and modify users "]},"patch":{"parameters":[{"description":"The id of the user to be updated","in":"path","name":"userId","required":true,"schema":{"type":"string"}},{"description":"The type for this user","in":"query","name":"type","required":false,"schema":{"type":"string"}},{"description":"The user's email","in":"query","name":"email","required":false,"schema":{"type":"string"}},{"description":"The user's username","in":"query","name":"username","required":false,"schema":{"type":"string"}},{"description":"The user's name","in":"query","name":"name","required":false,"schema":{"type":"string"}},{"description":"A custom JSON object that you can create and attach to this record","in":"query","name":"customData","required":false,"schema":{"type":"string"}}],"responses":{"400":{"description":"Bad Request - Required parameters are missing, malformed or invalid"},"404":{"description":"Not Found - User is not found"},"default":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/User"}}},"description":"OK"}},"summary":"Updates user fields","tags":["users : Find and modify users "]},"post":{"parameters":[{"description":"The id of the user to be updated","in":"path","name":"userId","required":true,"schema":{"type":"string"}},{"description":"The type for this user","in":"query","name":"type","required":false,"schema":{"type":"string"}},{"description":"The user's email","in":"query","name":"email","required":false,"schema":{"type":"string"}},{"description":"The user's username","in":"query","name":"username","required":false,"schema":{"type":"string"}},{"description":"The user's name","in":"query","name":"name","required":false,"schema":{"type":"string"}},{"description":"A custom JSON object that you can create and attach to this record","in":"query","name":"customData","required":false,"schema":{"type":"string"}}],"responses":{"400":{"description":"Bad Request - Required parameters are missing, malformed or invalid"},"default":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/User"}}},"description":"OK"}},"summary":"Updates a single user or adds the user if they don't exist","tags":["users : Find and modify users "]}}},"components":{"schemas":{"Access":{"description":"","properties":{"access":{"description":"The approved access restrictions for this app","items":{"type":"string"},"type":"array"},"appId":{"description":"The id of the app that owns this access key","type":"string"},"date":{"description":"The time (in milliseconds) of when the user agreed to the access request","format":"int64","type":"integer"},"ip":{"description":"The ip address of the user agreeing to the access request","type":"string"},"isValid":{"description":"True if this access is up to date with the current version of the app","type":"boolean"},"userId":{"description":"The id for this user","type":"string"}},"required":["appId","userId","access","date","ip","isValid"]},"Account":{"description":"The connected Stripe account for a developer","properties":{"accountName":{"description":"The name of the Stripe account","type":"string"},"country":{"description":"The country for this Stripe account","type":"string"},"defaultCurrency":{"description":"The default currency for this Stripe account","type":"string"},"stripeId":{"description":"The id of the Stripe account","type":"string"}},"required":["stripeId","accountName","country","defaultCurrency"]},"Accounts":{"description":"A developer's connected Stripe accounts","properties":{"accounts":{"description":"An array of connected Stripe accounts","items":{"$ref":"#/components/schemas/Account"},"type":"array"},"developerId":{"description":"The id of the developer","type":"string"}},"required":["developerId","accounts"]},"App":{"description":"An app","properties":{"access":{"description":"A custom defined list of access requirements","items":{"type":"string"},"type":"array"},"allow":{"$ref":"#/components/schemas/Restrictions"},"appId":{"description":"The id of this app","type":"string"},"attributes":{"description":"A custom defined list of app attributes","type":"object"},"created":{"description":"The date (in millis) that this app was created","format":"int64","type":"integer"},"customData":{"description":"A custom JSON object that you can create and attach to this record","type":"object"},"developerId":{"description":"The id of the developer that owns this app","type":"string"},"isLive":{"description":"True if this is the live version of the app","type":"boolean"},"lastUpdated":{"description":"The date (in millis) that this app was last modified","format":"int64","type":"integer"},"model":{"description":"The models that describes the cost and pricing for this app","items":{"$ref":"#/components/schemas/Model"},"type":"array"},"name":{"description":"The name of this app","type":"string"},"ownership":{"$ref":"#/components/schemas/Ownership"},"randomize":{"description":"A random number that changes hourly and is used for achieving a random sort order when displaying apps","type":"integer"},"rating":{"description":"The average review rating for this app. Reviews are rated from 100 (one star) to 500 (five star)","maximum":500,"minimum":0,"type":"integer"},"restrict":{"$ref":"#/components/schemas/Restrictions"},"reviewCount":{"description":"The number of approved reviews for this app.","type":"integer"},"safeName":{"description":"URL safe aliases that can be used to identify this app even after name changes. The current alias is always at position 0.","items":{"type":"string"},"type":"array"},"statistics":{"description":"A field containing summary stats about the app and is specially designed to allow apps to be sorted by popularity","type":"object"},"status":{"$ref":"#/components/schemas/Status"},"submittedDate":{"description":"The date (in millis) that this app was submitted for approval","format":"int64","type":"integer"},"type":{"description":"The type for this app","type":"string"},"version":{"description":"The version number for this app","type":"integer"}},"required":["appId","name","safeName","developerId","model","status","lastUpdated","created","rating","randomize","allow","customData","restrict","version","isLive","attributes"]},"AppPages":{"description":"Pages of app results","properties":{"count":{"description":"The total number of results","type":"integer"},"list":{"description":"An array of apps for the current page","items":{"$ref":"#/components/schemas/App"},"type":"array"},"pageNumber":{"description":"The current page number for this result set","type":"integer"},"pages":{"description":"The total number of pages available for this result set","type":"integer"}},"required":["count","list"]},"AppTotal":{"description":"The totals for the app","properties":{"$appId":{"$ref":"#/components/schemas/DataTotal"}},"required":["$appId"]},"AppVersion":{"description":"An AppVersion","properties":{"access":{"description":"A custom defined list of access requirements","items":{"type":"string"},"type":"array"},"allow":{"$ref":"#/components/schemas/Restrictions"},"appId":{"description":"The id of this app","type":"string"},"attributes":{"description":"A custom defined list of app attributes","type":"object"},"created":{"description":"The date (in millis) that this app was created","format":"int64","type":"integer"},"customData":{"description":"A custom JSON object that you can create and attach to this record","type":"object"},"developerId":{"description":"The id of the developer that owns this app","type":"string"},"isLatestVersion":{"description":"True if this is the latest version of this app","type":"boolean"},"isLive":{"description":"True if this is the live version of the app","type":"boolean"},"lastUpdated":{"description":"The date (in millis) that this app was last modified","format":"int64","type":"integer"},"model":{"description":"The models that describes the cost and pricing for this app","items":{"$ref":"#/components/schemas/Model"},"type":"array"},"name":{"description":"The name of this app","type":"string"},"parent":{"$ref":"#/components/schemas/Parent"},"rating":{"description":"The average review rating for this app. Reviews are rated from 100 (one star) to 500 (five star)","maximum":500,"minimum":0,"type":"integer"},"restrict":{"$ref":"#/components/schemas/Restrictions"},"reviewCount":{"description":"The number of approved reviews for this app.","type":"integer"},"safeName":{"description":"URL safe aliases that can be used to identify this app even after name changes. The current alias is always at position 0.","items":{"type":"string"},"type":"array"},"status":{"$ref":"#/components/schemas/Status"},"type":{"description":"The type for this app","type":"string"},"version":{"description":"The version number for this app","type":"integer"}},"required":["appId","name","safeName","developerId","model","status","lastUpdated","created","allow","parent","customData","restrict","version","isLive","isLatestVersion"]},"App_Entry":{"description":"","properties":{"appId":{"description":"The id of the app involved in this action","type":"string"},"date":{"description":"The date (in millis) of when this action was performed","format":"int64","type":"integer"}},"required":["date","appId"]},"Attributes":{"description":"An app attribute","properties":{"name":{"description":"The name of this attribute","type":"string"},"type":{"description":"The type of this attribute","enum":["text","select","multi"],"type":"string"},"values":{"description":"A comma seperated list of values allowed for this attribute","type":"string"}},"required":["name","type"]},"Card":{"description":"","properties":{"address_city":{"description":"The card holder's city","type":"string"},"address_country":{"description":"The card holder's country","type":"string"},"address_line1":{"description":"The card holder's street address","type":"string"},"address_line2":{"description":"The card holder's street address","type":"string"},"address_state":{"description":"The card holder's city state/province","type":"string"},"address_zip":{"description":"The card holder's zip/postal code","type":"string"},"brand":{"description":"The brand of the credit card. Example: Visa","type":"string"},"cardId":{"description":"The id for this credit card","type":"string"},"exp_month":{"description":"The two digit expiration month","type":"integer"},"exp_year":{"description":"The four digit expiration year","type":"integer"},"isDefault":{"description":"True if this is the default credit card","type":"boolean"},"last4":{"description":"The last 4 digits of the credit card number","type":"string"},"name":{"description":"The card holder's full name","type":"string"}},"required":["cardId","last4","exp_year","exp_month","brand","name","isDefault"]},"Cards":{"description":"A User's credit card details","properties":{"cards":{"description":"An array of credit cards added by this user","items":{"$ref":"#/components/schemas/Card"},"type":"array"},"userId":{"description":"The id of this user","type":"string"}},"required":["userId","cards"]},"Category":{"description":"The category supported by this category group","properties":{"description":{"description":"The description of this category","type":"string"},"name":{"description":"The name of this category","type":"string"}},"required":["name","description"]},"CategoryGroups":{"description":"The category groups supported by this marketplace","properties":{"categories":{"description":"The categories supported by this category group","items":{"$ref":"#/components/schemas/Category"},"type":"array"},"name":{"description":"The name of this category group","type":"string"}},"required":["name","categories"]},"DataTotal":{"description":"The totals for the field","properties":{"$field":{"description":"The totals for the field","type":"integer"}},"required":["$appId"]},"Developer":{"description":"A Developer","properties":{"created":{"description":"The time (in millis) of when this developer was created","type":"integer"},"customData":{"description":"A custom JSON object that you can create and attach to this record","type":"object"},"developerId":{"description":"The id of this developer","type":"string"},"email":{"description":"The developer's email","type":"string"},"name":{"description":"The developer's name","type":"string"},"type":{"description":"The type for this developer","type":"string"}},"required":["developerId","created"]},"DeveloperAccount":{"description":"A Developer Account","properties":{"customData":{"description":"A custom JSON object that you can create and attach to this record","type":"object"},"developerAccountId":{"description":"The id of this developer account","type":"string"},"developerId":{"description":"The id of the developer that this account belongs to","type":"string"},"email":{"description":"The contact email address","type":"string"},"name":{"description":"The name for the account","type":"string"}},"required":["developerAccountId","developerId"]},"DeveloperAccountPages":{"description":"Pages of developerAccount results","properties":{"count":{"description":"The total number of results","type":"integer"},"list":{"description":"An array of developerAccounts for the current page","items":{"$ref":"#/components/schemas/DeveloperAccount"},"type":"array"},"pageNumber":{"description":"The current page number for this result set","type":"integer"},"pages":{"description":"The total number of pages available for this result set","type":"integer"}},"required":["pages","list","pageNumber","count"]},"DeveloperPages":{"description":"Pages of developer results","properties":{"count":{"description":"The total number of results","type":"integer"},"list":{"description":"An array of developers for the current page","items":{"$ref":"#/components/schemas/Developer"},"type":"array"},"pageNumber":{"description":"The current page number for this result set","type":"integer"},"pages":{"description":"The total number of pages available for this result set","type":"integer"}},"required":["pages","list","pageNumber","count"]},"DeveloperToken":{"description":"","properties":{"developerId":{"description":"The id of the developer connecting their Stripe account","type":"string"},"expires":{"description":"The time (in milliseconds) when this URL expires","format":"int64","type":"integer"},"targetUrl":{"description":"The URL that this developer can use to connect their Stripe account","type":"string"}},"required":["developerId","expires","targetUrl"]},"Event":{"description":"","properties":{"app":{"$ref":"#/components/schemas/App"},"createdDate":{"description":"The date (in millis) of when this event occurred","format":"int64","type":"integer"},"description":{"description":"A description of the event","type":"string"},"developer":{"$ref":"#/components/schemas/Developer"},"eventId":{"description":"The id of the event","type":"string"},"eventType":{"description":"The current event type","enum":["app.submitted","app.approved","app.suspended","app.unsuspended","app.rejected","app.inReview","app.installed","app.uninstalled","review.created","review.updated","review.approved","review.spam","review.removed","user.created","user.updated","user.removed","user.invalidPaymentDetails","user.paymentDetailsRequired","developer.created","developer.updated","developer.removed","developer.paymentDetailsRequired","permission.added","permission.removed","payment.complete","payment.refunded","payment.required","ownership.expired"],"type":"string"},"marketplaceId":{"description":"The id of the marketplace that owns this event","type":"string"},"ownership":{"$ref":"#/components/schemas/Ownership"},"review":{"$ref":"#/components/schemas/Review"},"transaction":{"$ref":"#/components/schemas/Transaction"},"user":{"$ref":"#/components/schemas/User"}},"required":["eventId","eventType","createdDate","marketplaceId","message"]},"File":{"description":"The file ids of the uploaded file","properties":{"contentType":{"description":"The internet media type of the file","type":"string"},"fileId":{"description":"The id of the uploaded file","type":"string"},"fileUrl":{"description":"The path where the file can be located.","type":"string"},"hash":{"$ref":"#/components/schemas/Hash"},"mimeCheck":{"description":"The mime type validation check to see if the extension of this file matches it's content. Can be PASSED or FAILED","enum":["PASSED","FAILED"],"type":"string"},"name":{"description":"The name of the uploaded file","type":"string"},"size":{"description":"The number of bytes in the uploaded file","type":"integer"},"uploadDate":{"description":"The time in milliseconds when the file was uploaded","format":"int64","type":"integer"},"virusScan":{"$ref":"#/components/schemas/VirusScan"}},"required":["fileId","name","size","uploadDate"]},"FileDownload":{"description":"The signed URL for downloading a private file","properties":{"url":{"description":"The signed URL for downloading a private file","type":"string"}},"required":["url"]},"File_Pages":{"description":"Pages of file results","properties":{"count":{"description":"The total number of results","type":"integer"},"list":{"description":"An array of users for the current page","items":{"$ref":"#/components/schemas/File"},"type":"array"},"pageNumber":{"description":"The current page number for this result set","type":"integer"},"pages":{"description":"The total number of pages available for this result set","type":"integer"}},"required":["count","list"]},"FoundVirus":{"description":"The virus found within this file","properties":{"fileName":{"description":"The name of the file","type":"string"},"virusName":{"description":"The name of the virus","type":"string"}},"required":["url"]},"Hash":{"description":"The hashes requested for the file.","properties":{"MD5":{"description":"The MD5 hash for this uploaded file.","type":"string"},"SHA-1":{"description":"The SHA-1 hash for this uploaded file.","type":"string"},"SHA-256":{"description":"The SHA-256 hash for this uploaded file.","type":"string"}}},"Market":{"description":"A marketplace","properties":{"attributes":{"description":"The different app attributes supported by this marketplace","items":{"$ref":"#/components/schemas/Attributes"},"type":"array"},"categoryGroups":{"description":"The category groups supported by this marketplace","items":{"$ref":"#/components/schemas/CategoryGroups"},"type":"array"},"marketplaceId":{"description":"The id of this marketplace","type":"string"},"previewAppUrl":{"description":"The URL template for previewing apps on this marketplace","type":"string"},"viewAppUrl":{"description":"The URL template for viewing apps on this marketplace","type":"string"}},"required":["marketplaceId","attributes","viewAppUrl","previewAppUrl"]},"Market_Pages":{"description":"Pages of marketplace results","properties":{"count":{"description":"The total number of results","type":"integer"},"list":{"description":"An array of markets for the current page","items":{"$ref":"#/components/schemas/Market"},"type":"array"},"pageNumber":{"description":"The current page number for this result set","type":"integer"},"pages":{"description":"The total number of pages available for this result set","type":"integer"}},"required":["count","list"]},"Model":{"description":"The model that describes the cost and pricing for apps","properties":{"billingPeriod":{"description":"The billingPeriod along with the billingPeriodUnit make up the time between billing cycles","enum":["daily","weekly","monthly","annually"],"type":"string"},"billingPeriodUnit":{"description":"The billingPeriod along with the billingPeriodUnit make up the time between billing cycles","type":"integer"},"commission":{"description":"The marketplace commission applied to this app's model multiplied by 100 to include two digits for fractions of a percent","type":"integer"},"currency":{"description":"The ISO 4217 currency code for this price","type":"string"},"customData":{"description":"A custom JSON object that you can create and attach to this record","type":"object"},"feePayer":{"description":"The payee that will be paying for any payment processing fees","enum":["developer","marketplace"],"type":"string"},"license":{"description":"The license model type. Single allows a purchase to a single user or organization","enum":["single"],"type":"string"},"modelId":{"description":"The id that uniquely identifies this model","type":"string"},"price":{"description":"The price of this app in cents","type":"integer"},"subtype":{"description":"The pricing model subtype","enum":["usage","seat"],"type":"string"},"trial":{"description":"The maximum number of free trial days available","type":"integer"},"type":{"description":"The pricing model type. Free has no cost, single has a one time purchase cost and recurring requires a monthly subscription","enum":["free","single","recurring"],"type":"string"}},"required":["type","price","trial","license","currency","commission","feePayer"]},"Ownership":{"description":"","properties":{"appId":{"description":"The id of the app that is owned","type":"string"},"customData":{"description":"A custom JSON object that you can create and attach to this record","type":"object"},"date":{"description":"The date (in millis) of when this app was owned","format":"int64","type":"integer"},"developerId":{"description":"The id of the developer for this app","type":"string"},"expires":{"description":"The date (in millis) of when this app ownership expires","format":"int64","type":"integer"},"model":{"$ref":"#/components/schemas/Model"},"ownershipId":{"description":"The id of this ownership","type":"string"},"ownershipStatus":{"description":"The current ownership status for this app","enum":["pending","active","uninstalled","cancelled"],"type":"string"},"ownershipType":{"description":"The current ownership type for this app","enum":["full","subscription","trial"],"type":"string"},"uninstallDate":{"description":"The date (in millis) of when this app was uninstalled","format":"int64","type":"integer"},"userId":{"description":"The id of the user that owns this app","type":"string"}},"required":["ownershipId","date","ownershipType","ownershipStatus","appId","userId","developerId","model"]},"OwnershipPages":{"description":"Pages of ownership results","properties":{"count":{"description":"The total number of results","type":"integer"},"list":{"description":"An array of ownership records for the current page","items":{"$ref":"#/components/schemas/Ownership"},"type":"array"},"pageNumber":{"description":"The current page number for this result set","type":"integer"},"pages":{"description":"The total number of pages available for this result set","type":"integer"}},"required":["count","list"]},"Parent":{"description":"Details of the live version of this app","properties":{"status":{"$ref":"#/components/schemas/Status"}}},"Profanity":{"description":"Profanity found in this review","properties":{"end":{"description":"The ending location of the profanity","type":"integer"},"start":{"description":"The starting location of the profanity","type":"integer"},"word":{"description":"The profane word","type":"string"}},"required":["start","end","word"]},"Restrictions":{"description":"Resticts users from accessing this app","properties":{"own":{"description":"A custom object containing fields paired with an array value of restrictions. Restricts the users that may own this app. Example: {'country':['Canada','Mexico']}","type":"object"},"view":{"description":"A custom object containing fields paired with an array value of restrictions. Restricts the users that may view this app. Example: {'country':['Canada','Mexico']}","type":"object"}}},"Revenue":{"description":"The revenue generated by this app","properties":{"developer":{"description":"The total revenue generated for the developer by this app in cents","type":"integer"},"total":{"description":"The total revenue generated by this app in cents","type":"integer"}},"required":["total","developer"]},"Review":{"description":"A Review","properties":{"appId":{"description":"The Id of the App that owns this review","type":"string"},"customData":{"description":"A custom JSON object that you can create and attach to this record","type":"string"},"description":{"description":"The review's description. Limited to 2000 characters.","type":"string"},"headline":{"description":"The review's headline. Limited to 50 characters.","type":"string"},"rating":{"description":"The rating given within this review. The rating is represented as an integer between 100 and 500 (1 - 5 stars)","type":"integer"},"reportDate":{"description":"The date (in millis) this Review was posted","format":"int64","type":"integer"},"reviewId":{"description":"The id for this review.","type":"string"},"status":{"$ref":"#/components/schemas/Status"},"type":{"description":"The type for this review","type":"string"},"user":{"$ref":"#/components/schemas/User"},"userAccount":{"$ref":"#/components/schemas/UserAccount"},"userAccountId":{"description":"The id of the user account that posted this review","type":"string"},"userId":{"description":"The id of the User that posted this review","type":"string"}},"required":["reviewId","headline","description","rating","reportDate","appId","userId","status","customData"]},"ReviewPages":{"description":"Pages of review results","properties":{"count":{"description":"The total number of results","type":"integer"},"list":{"description":"An array of reviews for the current page","items":{"$ref":"#/components/schemas/Review"},"type":"array"},"pageNumber":{"description":"The current page number for this result set","type":"integer"},"pages":{"description":"The total number of pages available for this result set","type":"integer"}},"required":["count","list"]},"Review_Entry":{"description":"","properties":{"date":{"description":"The date (in millis) of when this action was performed","format":"int64","type":"integer"},"reviewId":{"description":"The id of the review involved in this action","type":"string"}},"required":["date","reviewId"]},"SearchPages":{"description":"Pages of search results","properties":{"count":{"description":"The total number of results","type":"integer"},"list":{"description":"An array of results for the current page","items":{"$ref":"#/components/schemas/App"},"type":"array"},"pageNumber":{"description":"The current page number for this result set","type":"integer"},"pages":{"description":"The total number of pages available for this result set","type":"integer"}},"required":["count","list"]},"Stat":{"description":"The statistic value","properties":{"value":{"description":"The statistic value","format":"int64","type":"integer"}},"required":["value"]},"Status":{"description":"The current status of this review","properties":{"profanity":{"description":"A list of profanity found in this review","items":{"$ref":"#/components/schemas/Profanity"},"type":"array"},"reason":{"description":"Text describing the reason for the current status","enum":["profanity","spam"],"type":"string"},"value":{"description":"The current status value","enum":["pending","spam","flagged","approved"],"type":"string"}},"required":["value","profanity","reason"]},"Total":{"description":"The total number of events for a particular field","properties":{"apps":{"$ref":"#/components/schemas/AppTotal"},"end":{"description":"The end date for this total (in millis)","format":"int64","type":"integer"},"start":{"description":"The start date for this total (in millis)","format":"int64","type":"integer"},"totals":{"$ref":"#/components/schemas/DataTotal"}},"required":["apps","totals"]},"Transaction":{"description":"A transaction for an app initiated by a user","properties":{"amount":{"description":"The total amount paid in cents","type":"integer"},"appId":{"description":"The id of the app involved with this transaction","type":"string"},"customData":{"description":"A custom JSON object that you can create and attach to this record","type":"object"},"date":{"description":"The date (in millis) of when this transaction occurred","format":"int64","type":"integer"},"developerAmount":{"description":"The total amount paid to the developer in cents","type":"integer"},"developerId":{"description":"The id of the developer involved with this transaction","type":"string"},"feeAmount":{"description":"The total amount paid to payment processing fees in cents","type":"integer"},"marketplaceAmount":{"description":"The total amount paid to the marketplace owner in cents","type":"integer"},"ownershipId":{"description":"The id for the ownership associated with this transaction","type":"string"},"transactionId":{"description":"The id for this transaction","type":"string"},"type":{"description":"The type for this transaction","enum":["payment","refund"],"type":"string"},"userId":{"description":"The id of the user making the transaction","type":"string"}},"required":["transactionId","ownershipId","type","appId","developerId","userId","date","amount"]},"TransactionPages":{"description":"Pages of transaction results","properties":{"count":{"description":"The total number of results","type":"integer"},"list":{"description":"An array of paymnets for the current page","items":{"$ref":"#/components/schemas/Transaction"},"type":"array"},"pageNumber":{"description":"The current page number for this result set","type":"integer"},"pages":{"description":"The total number of pages available for this result set","type":"integer"}},"required":["count","list"]},"User":{"description":"A User","properties":{"created":{"description":"The date (in millis) of when this user was created","format":"int64","type":"integer"},"customData":{"description":"A custom JSON object that you can create and attach to this record","type":"object"},"email":{"description":"The user's email","type":"string"},"name":{"description":"The user's name","type":"string"},"type":{"description":"The type for this user","type":"string"},"userId":{"description":"The id of this user","type":"string"}},"required":["userId","created","customData"]},"UserAccount":{"description":"A User Account","properties":{"customData":{"description":"A custom JSON object that you can create and attach to this record","type":"object"},"email":{"description":"The contact email address","type":"string"},"name":{"description":"The name for the account","type":"string"},"userAccountId":{"description":"The id of this user account","type":"string"},"userId":{"description":"The id of this user that this account belongs to","type":"string"}},"required":["userAccountId","userId"]},"UserAccountPages":{"description":"Pages of userAccount results","properties":{"count":{"description":"The total number of results","type":"integer"},"list":{"description":"An array of userAccounts for the current page","items":{"$ref":"#/components/schemas/UserAccount"},"type":"array"},"pageNumber":{"description":"The current page number for this result set","type":"integer"},"pages":{"description":"The total number of pages available for this result set","type":"integer"}},"required":["count","list"]},"UserPages":{"description":"Pages of user results","properties":{"count":{"description":"The total number of results","type":"integer"},"list":{"description":"An array of users for the current page","items":{"$ref":"#/components/schemas/User"},"type":"array"},"pageNumber":{"description":"The current page number for this result set","type":"integer"},"pages":{"description":"The total number of pages available for this result set","type":"integer"}},"required":["count","list"]},"VersionPages":{"description":"Pages of AppVersion results","properties":{"count":{"description":"The total number of results","type":"integer"},"list":{"description":"An array of apps for the current page","items":{"$ref":"#/components/schemas/AppVersion"},"type":"array"},"pageNumber":{"description":"The current page number for this result set","type":"integer"},"pages":{"description":"The total number of pages available for this result set","type":"integer"}},"required":["count","list"]},"VirusScan":{"description":"The virus scan results for this file","properties":{"finished":{"description":"The date (in milliseconds) when this file finished it's scan","format":"int64","type":"integer"},"foundViruses":{"description":"The list of viruses found in this file","items":{"$ref":"#/components/schemas/FoundVirus"},"type":"array"},"started":{"description":"The date (in milliseconds) when this file started it's scan","format":"int64","type":"integer"},"status":{"description":"The status of this scan. Can be NOT_SCANNED, CLEAN or DIRTY","type":"string"}},"required":["status"]}},"securitySchemes":{"basicAuth":{"scheme":"basic","type":"http"}}}}