Apps

App Submission

App Submissions for Marketplace is now closed.

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:
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:

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": "author@example.com"
    },
    "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 or privileged.
  • 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, and interactive_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 is true, but price is null. In this case, the app cannot be bought.
  • premium_type (string) – One of free, premium, free-inapp, premium-inapp. If premium or premium-inapp the app should be bought, check the price 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. If null, 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. If null, 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:
DELETE /api/v2/apps/app/(int: id)/

Note

Requires authentication.

Response

Status Codes:
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:

Versions

GET /api/v2/apps/versions/(int: id)/

Retrieves data for a specific version of an application.

Response

Status Codes:

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:

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:
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:

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:

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.