In-App Purchases API

Create and manage in-app purchases including consumables, non-consumables, and non-renewing subscriptions. Sync with App Store Connect.

Get all in-app purchases and subscription groups for a project.

GET /iap

Authentication

Requires API key with Authorization: Bearer <api_key> header

URL Parameters

NameTypeRequiredDescription
projectIdstringYesThe project ID

Response Example

{
"iaps": [
{
"id": "iap_abc123",
"productId": "com.app.coins_100",
"name": "100 Coins",
"productType": "CONSUMABLE",
"state": "APPROVED",
"syncStatus": "synced",
"familyShareable": false
}
],
"subscriptionGroups": [
{
"id": "group_xyz",
"referenceName": "Premium",
"subscriptions": [...]
}
]
}

Code Examples

curl "https://api.appstorecopilot.com/v1/iap?projectId=proj_123" \
-H "Authorization: Bearer $ASC_API_KEY"

Get detailed information about a specific in-app purchase including localizations.

GET /iap/:iapId

Authentication

Requires API key with Authorization: Bearer <api_key> header

URL Parameters

NameTypeRequiredDescription
projectIdstringYesThe project ID

Response Example

{
"iap": {
"id": "iap_abc123",
"productId": "com.app.coins_100",
"name": "100 Coins",
"productType": "CONSUMABLE",
"state": "APPROVED",
"localizations": [
{
"locale": "en-US",
"name": "100 Coins",
"description": "Get 100 coins to spend in-game"
}
]
}
}

Create a new in-app purchase product.

POST /iap

Authentication

Requires API key with Authorization: Bearer <api_key> header

Request Body

NameTypeRequiredDescription
projectIdstringYesThe project ID
productIdstringYesUnique product identifier (e.g., com.app.coins_100)
namestringYesDisplay name for the product
productTypestringYesCONSUMABLE, NON_CONSUMABLE, or NON_RENEWING_SUBSCRIPTION
familyShareablebooleanNoWhether the product can be shared with family members (default: false)

Response Example

{
"success": true,
"iap": {
"id": "iap_abc123",
"productId": "com.app.coins_100",
"name": "100 Coins",
"productType": "CONSUMABLE",
"syncStatus": "pending_creation"
}
}

Update an existing in-app purchase.

PATCH /iap/:iapId

Authentication

Requires API key with Authorization: Bearer <api_key> header

Request Body

NameTypeRequiredDescription
projectIdstringYesThe project ID
namestringNoUpdated display name
familyShareablebooleanNoUpdated family sharing setting

Delete an in-app purchase. Optionally remove from App Store Connect.

DELETE /iap/:iapId

Authentication

Requires API key with Authorization: Bearer <api_key> header

URL Parameters

NameTypeRequiredDescription
projectIdstringYesThe project ID
deleteFromStorebooleanNoAlso delete from App Store Connect (default: false)

Sync in-app purchases from App Store Connect to local storage.

POST /iap/pull

Authentication

Requires API key with Authorization: Bearer <api_key> header

Request Body

NameTypeRequiredDescription
projectIdstringYesThe project ID

Response Example

{
"success": true,
"summary": {
"iaps": { "created": 5, "updated": 2, "unchanged": 10 },
"subscriptionGroups": { "created": 1, "updated": 0 },
"subscriptions": { "created": 3, "updated": 1 }
}
}

Push local in-app purchases to App Store Connect.

POST /iap/push

Authentication

Requires API key with Authorization: Bearer <api_key> header

Request Body

NameTypeRequiredDescription
projectIdstringYesThe project ID
productIdsstring[]NoSpecific product IDs to push (all if not specified)

Response Example

{
"success": true,
"results": {
"created": ["com.app.premium"],
"updated": ["com.app.coins_100"],
"failed": []
}
}

Set regional pricing for an in-app purchase using pricing strategies.

POST /iap/:iapId/pricing

Authentication

Requires API key with Authorization: Bearer <api_key> header

Request Body

NameTypeRequiredDescription
projectIdstringYesThe project ID
strategystringYesPricing strategy: FIXED_USD, PURCHASING_POWER, or CUSTOM
basePricenumberYesBase price in USD cents

AI-translate IAP name and description to target locales.

POST /iap/translate

Authentication

Requires API key with Authorization: Bearer <api_key> header

Request Body

NameTypeRequiredDescription
projectIdstringYesThe project ID
iapIdstringYesThe IAP ID to translate
targetLocalesstring[]YesTarget locale codes (e.g., ["de", "fr", "ja"])