Skip to main content

Add or Edit an In-App Subscription

🚧
Feature under development

In-App Subscriptions are currently under development and will be released soon. This endpoint may change before launch.

You can add a new In-App Subscription or update an existing one in a single request via this API endpoint. If an in-app subscription with the given sku does not exist, it will be created. If it already exists, it will be updated with the provided values.

Endpoint

MethodURL
PUThttps://ws.catappult.io/api/applications/{applicationName}/subscriptions/{sku}

Authentication

To access this API, you need to have an active account subscription on Aptoide Connect and authenticate with an API key (check here how to generate one).

⚠️
Account type required

In-app subscriptions can only be created or edited by accounts of type Developer.

Headers

HeaderTypeRequiredDescription
Api-KeystringRequiredUsed to authenticate your API requests. The value is your Aptoide Connect API key.

Path Parameters

ParameterTypeDescription
applicationNamestringThe unique package name of the application (e.g. com.example.test).
skustringThe unique identifier of the in-app subscription to add or update (e.g., subscription01).

Query Parameters

Parameter

Type

Required

Description

operatingSystem

string (URL)or file

Optional (default: android)

Specifies the operating system for the in-app subscription. Possible values:
android
ios

Body Parameters

⚠️
Important

All parameters must always be sent as form data (multipart/form-data), even when you’re providing URLs instead of uploading files.

JSON requests are not supported. Use the -F flag in cURL to send each field.

Notes:

  • If no country-specific retail price is defined, the final charge will be automatically converted from the reference price at the time of purchase.
  • All countryPrices parameters (countryPrices[<country_code>][...]) can use any supported ISO 3166-1 alpha-2 country code.
  • All locale parameters (locales[<language_code>][...]) can use any ISO 639 language code. You can provide locale parameters for multiple languages at once, but only one can be set as the default.
  • The period parameter is non-mutable: it is only applied when a new subscription is being created and is ignored when an existing subscription is updated.
ParameterTypeRequiredDescription
periodstringRequired on creationPeriod in the ISO 8601 format. Cannot be changed after the subscription is created. See available periods.
gracePeriodstringOptionalGrace period in the ISO 8601 format. See available grace periods.
freeTrialPeriodstringOptionalFree trial period, in the ISO 8601 format. See available free trial periods.
referencePriceCurrencystringRequiredISO 4217 currency code of the reference price. See available currency codes.
referencePriceAmountstringRequiredNumeric value of the reference price.
countryPrices[<country_code>]stringOptionalPrice in the specified country.
locales[<language_code>][title]stringOptionalTitle in the specified language.
locales[<language_code>][description]stringOptionalDescription in the specified language.
locales[<language_code>][isDefault]booleanOptionalSet this language as default.

Response

Success

If the API call returns an HTTP 200 status code, the request was successful, and the in-app subscription was either created or updated.

Examples

Example for the in-app subscription subscription01 in the app com.example.app, with a period of 1 week, grace period of 3 days, free trial period of 3 days a reference price of 1 EUR, a country-specific price for United States of America (US) set to 2 USD, and localized content for English (en) (cURL)

curl -X PUT "https://ws.catappult.io/api/applications/com.example.app/subscriptions/subscription01?operatingSystem=android" \
-H "Api-Key: YOUR_API_KEY" \
-F "period=P1W" \
-F "gracePeriod=P3D" \
-F "freeTrialPeriod=P3D" \
-F "referencePriceCurrency=EUR" \
-F "referencePriceAmount=1" \
-F "countryPrices[US]=2" \
-F "locales[en][title]=Title" \
-F "locales[en][description]=Description" \
-F "locales[en][isDefault]=true"