Android · Capability

Google Play Developer API — Subscriptions

Google Play Developer API — Subscriptions. 13 operations. Lead operation: List Subscription Products. Self-contained Naftiko capability covering one Android business surface.

Run with Naftiko AndroidSubscriptions

What You Can Do

GET
Listsubscriptions — List Subscription Products
/v1/applications/{packagename}/monetization/subscriptions
POST
Createsubscription — Create a Subscription Product
/v1/applications/{packagename}/monetization/subscriptions
GET
Getsubscription — Get a Subscription Product
/v1/applications/{packagename}/monetization/subscriptions/{productid}
PATCH
Updatesubscription — Update a Subscription Product
/v1/applications/{packagename}/monetization/subscriptions/{productid}
DELETE
Deletesubscription — Delete a Subscription Product
/v1/applications/{packagename}/monetization/subscriptions/{productid}
GET
Listsubscriptionoffers — List Subscription Offers
/v1/applications/{packagename}/monetization/subscriptions/{productid}/baseplans/{baseplanid}/offers
POST
Createsubscriptionoffer — Create a Subscription Offer
/v1/applications/{packagename}/monetization/subscriptions/{productid}/baseplans/{baseplanid}/offers
GET
Getpurchasesubscription — Get Subscription Purchase Status
/v1/applications/{packagename}/purchases/subscriptions/{subscriptionid}/tokens/{token}
POST
Acknowledgepurchasesubscription — Acknowledge a Subscription Purchase
/v1/applications/{packagename}/purchases/subscriptions/{subscriptionid}/tokens/token-acknowledge
POST
Cancelpurchasesubscription — Cancel a Subscription Purchase
/v1/applications/{packagename}/purchases/subscriptions/{subscriptionid}/tokens/token-cancel
POST
Deferpurchasesubscription — Defer a Subscription Purchase
/v1/applications/{packagename}/purchases/subscriptions/{subscriptionid}/tokens/token-defer
POST
Revokepurchasesubscription — Revoke a Subscription Purchase
/v1/applications/{packagename}/purchases/subscriptions/{subscriptionid}/tokens/token-revoke
GET
Getsubscriptionpurchasev2 — Get Subscription Purchase V2
/v1/applications/{packagename}/purchases/subscriptionsv2/tokens/{token}

MCP Tools

list-subscription-products

List Subscription Products

read-only idempotent
create-subscription-product

Create a Subscription Product

get-subscription-product

Get a Subscription Product

read-only idempotent
update-subscription-product

Update a Subscription Product

idempotent
delete-subscription-product

Delete a Subscription Product

idempotent
list-subscription-offers

List Subscription Offers

read-only idempotent
create-subscription-offer

Create a Subscription Offer

get-subscription-purchase-status

Get Subscription Purchase Status

read-only idempotent
acknowledge-subscription-purchase

Acknowledge a Subscription Purchase

cancel-subscription-purchase

Cancel a Subscription Purchase

defer-subscription-purchase

Defer a Subscription Purchase

revoke-subscription-purchase

Revoke a Subscription Purchase

get-subscription-purchase-v2

Get Subscription Purchase V2

read-only idempotent

Capability Spec

google-play-developer-subscriptions.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Google Play Developer API — Subscriptions
  description: 'Google Play Developer API — Subscriptions. 13 operations. Lead operation: List Subscription Products. Self-contained
    Naftiko capability covering one Android business surface.'
  tags:
  - Android
  - Subscriptions
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    ANDROID_API_KEY: ANDROID_API_KEY
capability:
  consumes:
  - type: http
    namespace: google-play-developer-subscriptions
    baseUri: https://androidpublisher.googleapis.com/androidpublisher/v3
    description: Google Play Developer API — Subscriptions business capability. Self-contained, no shared references.
    resources:
    - name: applications-packageName-monetization-subscriptions
      path: /applications/{packageName}/monetization/subscriptions
      operations:
      - name: listsubscriptions
        method: GET
        description: List Subscription Products
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: pageSize
          in: query
          type: integer
          description: Maximum number of subscriptions to return.
        - name: pageToken
          in: query
          type: string
          description: Page token for pagination.
        - name: showArchived
          in: query
          type: boolean
          description: Whether to include archived subscriptions in the response.
      - name: createsubscription
        method: POST
        description: Create a Subscription Product
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: productId
          in: query
          type: string
          description: The ID to use for the subscription. Must be unique within the app.
          required: true
        - name: regionsVersion.version
          in: query
          type: string
          description: The version of the available regions being used.
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: applications-packageName-monetization-subscriptions-productId
      path: /applications/{packageName}/monetization/subscriptions/{productId}
      operations:
      - name: getsubscription
        method: GET
        description: Get a Subscription Product
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: updatesubscription
        method: PATCH
        description: Update a Subscription Product
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: updateMask
          in: query
          type: string
          description: The list of fields to update in this subscription. Uses FieldMask format.
        - name: regionsVersion.version
          in: query
          type: string
          description: The version of the available regions being used.
        - name: latencyTolerance
          in: query
          type: string
          description: Tolerance for propagation latency. PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE or PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_TOLERANT.
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
      - name: deletesubscription
        method: DELETE
        description: Delete a Subscription Product
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: applications-packageName-monetization-subscriptions-productId-basePlans-basePlan
      path: /applications/{packageName}/monetization/subscriptions/{productId}/basePlans/{basePlanId}/offers
      operations:
      - name: listsubscriptionoffers
        method: GET
        description: List Subscription Offers
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: pageSize
          in: query
          type: integer
          description: Maximum number of offers to return.
        - name: pageToken
          in: query
          type: string
          description: Page token for pagination.
      - name: createsubscriptionoffer
        method: POST
        description: Create a Subscription Offer
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: offerId
          in: query
          type: string
          description: The ID to use for the offer. Must be unique within the base plan.
          required: true
        - name: regionsVersion.version
          in: query
          type: string
          description: The version of the available regions being used.
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: applications-packageName-purchases-subscriptions-subscriptionId-tokens-token
      path: /applications/{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token}
      operations:
      - name: getpurchasesubscription
        method: GET
        description: Get Subscription Purchase Status
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: applications-packageName-purchases-subscriptions-subscriptionId-tokens-token}:ac
      path: /applications/{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token}:acknowledge
      operations:
      - name: acknowledgepurchasesubscription
        method: POST
        description: Acknowledge a Subscription Purchase
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: applications-packageName-purchases-subscriptions-subscriptionId-tokens-token}:ca
      path: /applications/{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token}:cancel
      operations:
      - name: cancelpurchasesubscription
        method: POST
        description: Cancel a Subscription Purchase
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: applications-packageName-purchases-subscriptions-subscriptionId-tokens-token}:de
      path: /applications/{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token}:defer
      operations:
      - name: deferpurchasesubscription
        method: POST
        description: Defer a Subscription Purchase
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: applications-packageName-purchases-subscriptions-subscriptionId-tokens-token}:re
      path: /applications/{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token}:revoke
      operations:
      - name: revokepurchasesubscription
        method: POST
        description: Revoke a Subscription Purchase
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: applications-packageName-purchases-subscriptionsv2-tokens-token
      path: /applications/{packageName}/purchases/subscriptionsv2/tokens/{token}
      operations:
      - name: getsubscriptionpurchasev2
        method: GET
        description: Get Subscription Purchase V2
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    authentication:
      type: bearer
      token: '{{env.ANDROID_API_KEY}}'
  exposes:
  - type: rest
    namespace: google-play-developer-subscriptions-rest
    port: 8080
    description: REST adapter for Google Play Developer API — Subscriptions. One Spectral-compliant resource per consumed
      operation, prefixed with /v1.
    resources:
    - path: /v1/applications/{packagename}/monetization/subscriptions
      name: applications-packagename-monetization-subscriptions
      description: REST surface for applications-packageName-monetization-subscriptions.
      operations:
      - method: GET
        name: listsubscriptions
        description: List Subscription Products
        call: google-play-developer-subscriptions.listsubscriptions
        with:
          pageSize: rest.pageSize
          pageToken: rest.pageToken
          showArchived: rest.showArchived
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: createsubscription
        description: Create a Subscription Product
        call: google-play-developer-subscriptions.createsubscription
        with:
          productId: rest.productId
          regionsVersion.version: rest.regionsVersion.version
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/applications/{packagename}/monetization/subscriptions/{productid}
      name: applications-packagename-monetization-subscriptions-productid
      description: REST surface for applications-packageName-monetization-subscriptions-productId.
      operations:
      - method: GET
        name: getsubscription
        description: Get a Subscription Product
        call: google-play-developer-subscriptions.getsubscription
        outputParameters:
        - type: object
          mapping: $.
      - method: PATCH
        name: updatesubscription
        description: Update a Subscription Product
        call: google-play-developer-subscriptions.updatesubscription
        with:
          updateMask: rest.updateMask
          regionsVersion.version: rest.regionsVersion.version
          latencyTolerance: rest.latencyTolerance
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: deletesubscription
        description: Delete a Subscription Product
        call: google-play-developer-subscriptions.deletesubscription
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/applications/{packagename}/monetization/subscriptions/{productid}/baseplans/{baseplanid}/offers
      name: applications-packagename-monetization-subscriptions-productid-baseplans-baseplan
      description: REST surface for applications-packageName-monetization-subscriptions-productId-basePlans-basePlan.
      operations:
      - method: GET
        name: listsubscriptionoffers
        description: List Subscription Offers
        call: google-play-developer-subscriptions.listsubscriptionoffers
        with:
          pageSize: rest.pageSize
          pageToken: rest.pageToken
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: createsubscriptionoffer
        description: Create a Subscription Offer
        call: google-play-developer-subscriptions.createsubscriptionoffer
        with:
          offerId: rest.offerId
          regionsVersion.version: rest.regionsVersion.version
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/applications/{packagename}/purchases/subscriptions/{subscriptionid}/tokens/{token}
      name: applications-packagename-purchases-subscriptions-subscriptionid-tokens-token
      description: REST surface for applications-packageName-purchases-subscriptions-subscriptionId-tokens-token.
      operations:
      - method: GET
        name: getpurchasesubscription
        description: Get Subscription Purchase Status
        call: google-play-developer-subscriptions.getpurchasesubscription
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/applications/{packagename}/purchases/subscriptions/{subscriptionid}/tokens/token-acknowledge
      name: applications-packagename-purchases-subscriptions-subscriptionid-tokens-token-ac
      description: REST surface for applications-packageName-purchases-subscriptions-subscriptionId-tokens-token}:ac.
      operations:
      - method: POST
        name: acknowledgepurchasesubscription
        description: Acknowledge a Subscription Purchase
        call: google-play-developer-subscriptions.acknowledgepurchasesubscription
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/applications/{packagename}/purchases/subscriptions/{subscriptionid}/tokens/token-cancel
      name: applications-packagename-purchases-subscriptions-subscriptionid-tokens-token-ca
      description: REST surface for applications-packageName-purchases-subscriptions-subscriptionId-tokens-token}:ca.
      operations:
      - method: POST
        name: cancelpurchasesubscription
        description: Cancel a Subscription Purchase
        call: google-play-developer-subscriptions.cancelpurchasesubscription
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/applications/{packagename}/purchases/subscriptions/{subscriptionid}/tokens/token-defer
      name: applications-packagename-purchases-subscriptions-subscriptionid-tokens-token-de
      description: REST surface for applications-packageName-purchases-subscriptions-subscriptionId-tokens-token}:de.
      operations:
      - method: POST
        name: deferpurchasesubscription
        description: Defer a Subscription Purchase
        call: google-play-developer-subscriptions.deferpurchasesubscription
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/applications/{packagename}/purchases/subscriptions/{subscriptionid}/tokens/token-revoke
      name: applications-packagename-purchases-subscriptions-subscriptionid-tokens-token-re
      description: REST surface for applications-packageName-purchases-subscriptions-subscriptionId-tokens-token}:re.
      operations:
      - method: POST
        name: revokepurchasesubscription
        description: Revoke a Subscription Purchase
        call: google-play-developer-subscriptions.revokepurchasesubscription
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/applications/{packagename}/purchases/subscriptionsv2/tokens/{token}
      name: applications-packagename-purchases-subscriptionsv2-tokens-token
      description: REST surface for applications-packageName-purchases-subscriptionsv2-tokens-token.
      operations:
      - method: GET
        name: getsubscriptionpurchasev2
        description: Get Subscription Purchase V2
        call: google-play-developer-subscriptions.getsubscriptionpurchasev2
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: google-play-developer-subscriptions-mcp
    port: 9090
    transport: http
    description: MCP adapter for Google Play Developer API — Subscriptions. One tool per consumed operation, routed inline
      through this capability's consumes block.
    tools:
    - name: list-subscription-products
      description: List Subscription Products
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: google-play-developer-subscriptions.listsubscriptions
      with:
        pageSize: tools.pageSize
        pageToken: tools.pageToken
        showArchived: tools.showArchived
      outputParameters:
      - type: object
        mapping: $.
    - name: create-subscription-product
      description: Create a Subscription Product
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: google-play-developer-subscriptions.createsubscription
      with:
        productId: tools.productId
        regionsVersion.version: tools.regionsVersion.version
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: get-subscription-product
      description: Get a Subscription Product
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: google-play-developer-subscriptions.getsubscription
      outputParameters:
      - type: object
        mapping: $.
    - name: update-subscription-product
      description: Update a Subscription Product
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: google-play-developer-subscriptions.updatesubscription
      with:
        updateMask: tools.updateMask
        regionsVersion.version: tools.regionsVersion.version
        latencyTolerance: tools.latencyTolerance
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: delete-subscription-product
      description: Delete a Subscription Product
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: google-play-developer-subscriptions.deletesubscription
      outputParameters:
      - type: object
        mapping: $.
    - name: list-subscription-offers
      description: List Subscription Offers
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: google-play-developer-subscriptions.listsubscriptionoffers
      with:
        pageSize: tools.pageSize
        pageToken: tools.pageToken
      outputParameters:
      - type: object
        mapping: $.
    - name: create-subscription-offer
      description: Create a Subscription Offer
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: google-play-developer-subscriptions.createsubscriptionoffer
      with:
        offerId: tools.offerId
        regionsVersion.version: tools.regionsVersion.version
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: get-subscription-purchase-status
      description: Get Subscription Purchase Status
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: google-play-developer-subscriptions.getpurchasesubscription
      outputParameters:
      - type: object
        mapping: $.
    - name: acknowledge-subscription-purchase
      description: Acknowledge a Subscription Purchase
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: google-play-developer-subscriptions.acknowledgepurchasesubscription
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: cancel-subscription-purchase
      description: Cancel a Subscription Purchase
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: google-play-developer-subscriptions.cancelpurchasesubscription
      outputParameters:
      - type: object
        mapping: $.
    - name: defer-subscription-purchase
      description: Defer a Subscription Purchase
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: google-play-developer-subscriptions.deferpurchasesubscription
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: revoke-subscription-purchase
      description: Revoke a Subscription Purchase
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: google-play-developer-subscriptions.revokepurchasesubscription
      outputParameters:
      - type: object
        mapping: $.
    - name: get-subscription-purchase-v2
      description: Get Subscription Purchase V2
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: google-play-developer-subscriptions.getsubscriptionpurchasev2
      outputParameters:
      - type: object
        mapping: $.