iOS · Arazzo Workflow

iOS Create an Auto-Renewable Subscription

Version 1.0.0

Create a subscription group, add a subscription to it, and localize the subscription.

1 workflow 3 source APIs 1 provider
View Spec View on GitHub iOSAppleMobileApp StorePush NotificationsIn-App PurchasesSubscriptionAuthenticationWalletsDeveloper PlatformArazzoWorkflows

Provider

ios

Workflows

create-subscription
Create a subscription group, add a subscription, and localize it.
Creates a subscription group for an app, adds a subscription to the group, and adds a localized name/description for the subscription.
3 steps inputs: appId, groupReferenceName, locale, localizedDescription, localizedName, productId, subscriptionName, subscriptionPeriod outputs: groupId, localizationId, subscriptionId
1
createGroup
Create the subscription group that the subscription will belong to.
2
createSubscription
Add the subscription to the new group with its product id and renewal period.
3
addLocalization
Add the localized name and description customers see for the subscription.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: iOS Create an Auto-Renewable Subscription
  summary: Create a subscription group, add a subscription to it, and localize the subscription.
  description: >-
    Builds out an auto-renewable subscription from scratch. The workflow creates a
    subscription group for an app, adds a subscription with a product id and
    renewal period into that group, and then attaches a localized name and
    description for the subscription. Every step spells out its request inline so
    the flow can be read and executed without opening the underlying App Store
    Connect OpenAPI description. All calls require an App Store Connect JWT bearer
    token.
  version: 1.0.0
  x-realizes-capability-ids:
  - BC-4240.10
  x-capability-derivation:
    method: 'deterministic join: sourceDescriptions -> per-tag OpenAPI -> tag/capability edge. No classification at this step.'
    min_confidence: 0.7
    sources:
    - capability_id: BC-4240.10
      capability_name: Plan & Entitlement Design
      spec: ios-subscriptiongroups-api-openapi.yml
      confidence: 0.78
    model: Turbo EA Capabilities by Vincent Verdet — Turbo EA, https://github.com/vincentmakes/turbo-ea-capabilities, CC BY 4.0
sourceDescriptions:
- name: subscriptiongroupsApi
  url: ../openapi/ios-subscriptiongroups-api-openapi.yml
  type: openapi
- name: subscriptionlocalizationsApi
  url: ../openapi/ios-subscriptionlocalizations-api-openapi.yml
  type: openapi
- name: subscriptionsApi
  url: ../openapi/ios-subscriptions-api-openapi.yml
  type: openapi
workflows:
- workflowId: create-subscription
  summary: Create a subscription group, add a subscription, and localize it.
  description: >-
    Creates a subscription group for an app, adds a subscription to the group,
    and adds a localized name/description for the subscription.
  inputs:
    type: object
    required:
    - appId
    - groupReferenceName
    - subscriptionName
    - productId
    - subscriptionPeriod
    - locale
    - localizedName
    properties:
      appId:
        type: string
        description: The id of the app the subscription belongs to.
      groupReferenceName:
        type: string
        description: The internal reference name for the subscription group.
      subscriptionName:
        type: string
        description: The internal reference name for the subscription.
      productId:
        type: string
        description: The product identifier (e.g. com.example.app.pro.monthly).
      subscriptionPeriod:
        type: string
        description: The renewal period (e.g. ONE_MONTH, ONE_YEAR).
      locale:
        type: string
        description: The locale for the localization (e.g. en-US).
      localizedName:
        type: string
        description: The customer-facing display name for the locale.
      localizedDescription:
        type: string
        description: The customer-facing description for the locale (optional).
  steps:
  - stepId: createGroup
    description: >-
      Create the subscription group that the subscription will belong to.
    operationId: subscriptionGroups_createInstance
    requestBody:
      contentType: application/json
      payload:
        data:
          type: subscriptionGroups
          attributes:
            referenceName: $inputs.groupReferenceName
          relationships:
            app:
              data:
                type: apps
                id: $inputs.appId
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      groupId: $response.body#/data/id
  - stepId: createSubscription
    description: >-
      Add the subscription to the new group with its product id and renewal
      period.
    operationId: subscriptions_createInstance
    requestBody:
      contentType: application/json
      payload:
        data:
          type: subscriptions
          attributes:
            name: $inputs.subscriptionName
            productId: $inputs.productId
            subscriptionPeriod: $inputs.subscriptionPeriod
          relationships:
            group:
              data:
                type: subscriptionGroups
                id: $steps.createGroup.outputs.groupId
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      subscriptionId: $response.body#/data/id
  - stepId: addLocalization
    description: >-
      Add the localized name and description customers see for the subscription.
    operationId: subscriptionLocalizations_createInstance
    requestBody:
      contentType: application/json
      payload:
        data:
          type: subscriptionLocalizations
          attributes:
            locale: $inputs.locale
            name: $inputs.localizedName
            description: $inputs.localizedDescription
          relationships:
            subscription:
              data:
                type: subscriptions
                id: $steps.createSubscription.outputs.subscriptionId
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      localizationId: $response.body#/data/id
  outputs:
    groupId: $steps.createGroup.outputs.groupId
    subscriptionId: $steps.createSubscription.outputs.subscriptionId
    localizationId: $steps.addLocalization.outputs.localizationId

Work with this as data

Every workflow here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for arazzo workflows

4 MCP tools reach this
  • find_arazzoBrowse and filter every workflow in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This workflow
curl "https://apis.io/api/v1/arazzo/ios-create-subscription-workflow"
All arazzo workflows
curl "https://apis.io/api/v1/arazzo?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.