Apps¶
App Submission¶
See the dedicated App Submission topic.
App¶
Note
The name, description, homepage, release_notes, support_email and support_url fields are user-translated fields and have a dynamic type depending on the query. See translations.
-
GET
/api/v2/apps/app/
¶ Note
Requires authentication.
Returns a list of apps you have developed.
Request
The standard Listing query params.
Response
Parameters: - meta (object) – Listing response meta.
- objects (array) – A listing of apps.
-
GET
/api/v2/apps/app/
(int: id)|
(string: slug)/
¶ Note
Does not require authentication if your app is public.
Response
An app object, see below for an example.
Status Codes: - 200 OK – successfully completed.
- 403 Forbidden – not allowed to access this object.
- 404 Not Found – not found.
- 451 Unavailable For Legal Reasons – resource unavailable for legal reasons.
Example:
{ "app_type": "hosted", "author": "MKT Team", "categories": [ "games" ], "content_ratings": { "body": "esrb", "rating": "13", "descriptors_text": ["Frightening Content", "Crime"], "descriptors": ["has_esrb_scary", "has_esrb_crime"], "interactives_text": ["Users Interact", "Shares Location"] "interactives": ["has_users_interact", "has_shares_location"] }, "created": "2013-09-17T13:19:16", "current_version": "1.1", "default_locale": "en-US", "description": { "en-US": "Description in english", "fr": "Description en français" }, "device_types": [ "firefoxos" ], "feature_compatibility": true, "file_size": 8675, "homepage": { "en-US": "http://www.example.com/" }, "icons": { "32": "/tmp/uploads/addon_icons/0/24-32.png?modified=1362762723", "48": "/tmp/uploads/addon_icons/0/24-48.png?modified=1362762723", "64": "/tmp/uploads/addon_icons/0/24-64.png?modified=1362762723", "128": "/tmp/uploads/addon_icons/0/24-128.png?modified=1362762723" }, "id": 24, "is_disabled": false, "is_packaged": false, "last_updated": "2013-09-17T13:19:16", "manifest_url": "http://zrnktefoptje.test-manifest.herokuapp.com/manifest.webapp", "name": { "en-US": "Test app", }, "package_path": null, "payment_account": null, "payment_required": false, "premium_type": "free", "previews": [ { "filetype": "image/png", "id": "37", "image_url": "/tmp/uploads/previews/full/0/37.png?modified=1362762723", "resource_uri": "/api/v2/apps/preview/37/", "thumbnail_url": "/tmp/uploads/previews/thumbs/0/37.png?modified=1362762723" } ], "price": null, "price_locale": null, "privacy_policy": "/api/v2/apps/app/24/privacy/", "promo_imgs": { "320": "/tmp/img/uploads/webapp_promo_imgs/0/31-320.png?modified=1362762723", "640": "/tmp/img/uploads/webapp_promo_imgs/0/31-640.png?modified=1362762723", }, "public_stats": false, "ratings": { "average": 0.0, "count": 0 }, "regions": [ { "adolescent": true, "mcc": 310, "name": "United States", "slug": "us" }, { "adolescent": true, "mcc": null, "name": "Rest of World", "slug": "restofworld" } ], "release_notes": null, "resource_uri": "/api/v2/apps/app/24/", "slug": "test-app-zrnktefoptje", "status": 4, "support_email": { "en-US": "[email protected]" }, "support_url": { "en-US": "http://www.example.com/support/" }, "supported_locales": [ "en-US", "es", "it" ], "upsell": false, "upsold": null, "user": { "developed": false, "installed": false, "purchased": false }, "versions": { "1.0": "/api/v2/apps/versions/7012/", "1.1": "/api/v2/apps/versions/7930/" } }
Notes on the response.
Parameters: - app_type (string) – A string representing the app type. Can be
hosted
,packaged
orprivileged
. - author (string) – A string representing the app author.
- categories (array) – An array of strings representing the slugs of the categories the app belongs to.
- content_ratings (object) – International Age Rating Coalition (IARC) content
ratings data. It has three parts,
ratings
,descriptors
, andinteractive_elements
. If a region is detected, only a subset of data will be returned. - content_ratings.body (string) – The rating body that assigned the content rating. It is based off of the region of the request. It can be ‘classind’, ‘esrb’, ‘generic’, ‘pegi’, or ‘usk.
- content_ratings.rating – The content rating (usually an age).
- content_ratings.descriptors_text (array) – IARC content descriptors, flags about the app that might affect its suitability for younger-aged users.
- content_ratings.descriptors (array) – IARC content descriptors in normalized slug form.
- content_ratings.interactives_text (array) – IARC interactive elements, aspects about the app relating to whether the app shares info or interacts with external elements.
- content_ratings.interactives (array) – IARC interactive elements in normalized slug form
- created (string) – The date the app was added to the Marketplace, in ISO 8601 format.
- current_version (string) – The version number corresponding to the app’s latest public version.
- default_locale (string) – The app’s default locale, copied from the manifest.
- description (string|object) – The app’s description.
- device_types (array) –
- An array of strings representing the devices the app
- is marked as compatible with. Currently available devices names are
desktop
,android-mobile
,android-tablet
,firefoxos
,firefoxos-tv
. - feature_compatibility (boolean|null) – Boolean indicating whether the app’s current version is compatible with the feature profile signature passed to the API request. If no profile signature was passed or if the backend is unable to determine compatibility, null is returned.
- file_size (int) – Size of the app’s current version in bytes.
- homepage (string|object) – The app’s homepage.
- icons (object) – An object containing information about the app icons. The keys represent icon sizes, the values the corresponding URLs.
- id (int) – The app ID.
- is_disabled (boolean) – Boolean indicating whether the app is disabled or not.
- is_packaged (boolean) – Boolean indicating whether the app is packaged or not.
- last_updated (string) – The date the app was last updated in the Marketplace, in ISO 8601 format.
- manifest_url – URL for the app manifest. If the app is not an hosted app, this will be a minimal manifest generated by the Marketplace.
- name (string|object) – The app name.
- package_path (string) – URL for the app package of the latest public version. If the app is not a packaged app, this will be
null
. - payment_account – The path to the payment account being used for this app, or none if not applicable. NOTE: This will always point to the Bango account or else it will be None. In other words, it will not tell you all the payment providers that this app supports.
- payment_required (boolean) – A payment is required for this app. It
could be that
payment_required
istrue
, but price isnull
. In this case, the app cannot be bought. - premium_type (string) – One of
free
,premium
,free-inapp
,premium-inapp
. Ifpremium
orpremium-inapp
the app should be bought, check theprice
field to determine if it can. - previews (array) – List containing the preview images for the app.
- previews.filetype (string) – The mimetype for the preview.
- previews.id (int) – The ID of the preview.
- previews.image_url (string) – the absolute URL for the preview image.
- previews.thumbnail_url – the absolute URL for the thumbnail of the preview image.
- price (string|null) – If it is a paid app this will be a string representing
the price in the currency calculated for the request. If
0.00
then no payment is required, but the app requires a receipt. Ifnull
, a price cannot be calculated for the region and cannot be bought. Example: 1.00 - price_locale (string|null) – If it is a paid app this will be a string representing
the price with the currency formatted using the currency symbol and
the locale representations of numbers. If
0.00
then no payment is required, but the app requires a receipt. Ifnull
, a price cannot be calculated for the region and cannot be bought. Example: “1,00 $US”. For more information on this see payment tiers. - privacy_policy (string) – The path to the privacy policy resource.
- promo_imgs (object) – An object containing information about app promo images. The keys represent image sizes, the values the corresponding URLs.
- ratings (object) – An object holding basic information about the app ratings.
- ratings.average (float) – The average rating.
- ratings.count (int) – The number of ratings.
- regions (array) – An list of objects containing informations about each region the app is available in.
- regions.adolescent (boolean) – an adolescent region has a sufficient volume of data to calculate ratings and rankings independent of worldwide data.
- regions.mcc (int|null) – represents the region’s ITU mobile country code.
- regions.name (string) – The region name.
- regions.slug (string) – The region slug.
- release_notes (string|object|null) – the release notes for the current version.
- resource_uri (string) – The canonical URI for this resource.
- slug (string) – The app slug
- status (int) – The app status. See the status table.
- support_email (string|object) – The email the app developer set for support requests.
- support_url (string|object) – The URL the app developer set for support requests.
- supported_locales – The list of locales (as strings) supported by the app, according to what was set by the developer in the manifest.
- supported_locales – array
- upsell – The path to the premium app resource that this free app is upselling to, or null if not applicable.
- upsold – The path to the free app resource that this premium app is an upsell for, or null if not applicable.
- user (object) – an object representing information specific to this user for the app. If the user is anonymous this object will not be present.
- user.developed (boolean) – true if the user is a developer of the app.
- user.installed (boolean) – true if the user installed the app (this might differ from the device).
- user.purchased (boolean) – true if the user has purchased the app from the marketplace.
- versions (object) – Object representing the versions attached to this app. The keys represent version numbers, the values the corresponding URLs.
The possible values for app status are:
value status 0 Incomplete 2 Pending approval 4 Fully Reviewed 5 Disabled by Mozilla 11 Deleted 12 Rejected 13 Approved but waiting 15 Blocked
-
GET
/api/v2/apps/
(int: id)|
(string: slug)/privacy/
¶ Response
Parameters: - privacy_policy (string) – The text of the app’s privacy policy.
Status Codes: - 200 OK – successfully completed.
- 403 Forbidden – not allowed to access this object.
- 404 Not Found – not found.
- 451 Unavailable For Legal Reasons – resource unavailable for legal reasons.
-
DELETE
/api/v2/apps/app/
(int: id)/
¶ Note
Requires authentication.
Response
Status Codes: - 204 No Content – successfully deleted.
-
POST
/api/v2/apps/app/
¶ See Creating an app
-
PUT
/api/v2/apps/app/
(int: id)/
¶ See Creating an app
Updating an App Icon¶
Note
Requires authentication and a successfully created app.
-
PUT
/api/v2/apps/app/(int:id|string:app_slug)/icon/
¶ Request
Parameters: - file (object) – a dictionary containing the appropriate file data in the upload field.
- file.type (string) – the content type.
- file.name (string) – the file name.
- file.data (string) – the base 64 encoded data.
Response
Status Codes: - 200 OK – successfully updated the icon.
- 400 Bad Request – error processing the form.
Versions¶
-
GET
/api/v2/apps/versions/
(int: id)/
¶ Retrieves data for a specific version of an application.
Response
Status Codes: - 200 OK – successfully completed.
- 404 Not Found – not found.
Example:
{ "app": "/api/v2/apps/app/7/", "developer_name": "Cee's Vans", "features": [ "apps", "push" ], "is_current_version": true, "release_notes": "New and improved!", "version": "1.1" }
Parameters: - id (int) – the version id
- is_current_version (boolean) – indicates whether this is the most recent public version of the application.
- features (array) – each item represents a device feature required to run the application.
- release_notes (string|object|null) – the release notes for that version.
-
PATCH
/api/v2/apps/versions/
(int: id)/
¶ Update data for a specific version of an application.
Note
Requires authentication.
Request
Example:
{ "developer_name": "Cee's Vans", "features": [ "apps", "mp3", "push" ] }
Parameters: - features (array) – each item represents a device feature required to run the application. Features not present are assumed not to be required.
Response
Returns the updated JSON representation
Status Codes: - 200 OK – sucessfully altered.
- 403 Forbidden – not allowed to modify this version’s app.
- 404 Not Found – not found.
Payments¶
Note
Requires authentication and a successfully created app.
-
GET
/api/v2/apps/app/
(int: id)/payments/
¶ Gets information about the payments of an app, including the payment account.
Response
Parameters: - upsell (string) – URL to the upsell of the app.
- account (string) – URL to the app payment account.
Status Codes: - 200 OK – sucessfully completed.
-
POST
/api/v2/apps/app/
(int: id)/payments/status/
¶ Queries the Mozilla payment server to check that the app is ready to be sold. This would normally be run at the end of the payment flow to ensure that the app is setup correctly. The Mozilla payment server records the status of this check.
Request
Empty.
Response
{ "bango": { "status": "passed", "errors": [] } }
Parameters: - status (string) – passed or failed.
- errors (array of strings.) – an array of errors as string. Currently empty, reserved for future use.
Status Codes: - 200 OK – successfully completed.
- 400 Bad Request – app is not valid for checking, examine response content.
- 403 Forbidden – not allowed.
Note
The Transaction:Debug permission is required.
-
GET
/api/v2/apps/app/
(int: id)/payments/debug/
¶ Returns useful debug information about the app, suitable for marketplace developers and integrators. Output is truncated below and is subject to change.
Response
{ "bango": { "environment": "test" }, }
Status Codes: - 200 OK – successfully completed.
- 400 Bad Request – app is not valid for checking, examine response content.
- 403 Forbidden – not allowed.
Manifest refresh¶
Note
Requires authentication and a successfully created hosted app.
-
POST
/api/v2/apps/app/(int:id|string:slug)/refresh-manifest/
¶ Response :status 204: Refresh triggered. :status 400: App is packaged, not hosted, so no manifest to refresh. :status 403: Not an app you own. :status 404: No such app.