Apple · Capability

Apple App Store Connect API — Beta Testers

Apple App Store Connect API — Beta Testers. 15 operations. Lead operation: List Beta Groups. Self-contained Naftiko capability covering one Apple business surface.

Run with Naftiko AppleBeta Testers

What You Can Do

GET
Listbetagroups — List Beta Groups
/v1/v1/betagroups
POST
Createbetagroup — Create a Beta Group
/v1/v1/betagroups
GET
Readbetagroup — Read Beta Group Information
/v1/v1/betagroups/{id}
PATCH
Modifybetagroup — Modify a Beta Group
/v1/v1/betagroups/{id}
DELETE
Deletebetagroup — Delete a Beta Group
/v1/v1/betagroups/{id}
GET
Listbetagroupbetatesters — List All Beta Testers in a Beta Group
/v1/v1/betagroups/{id}/betatesters
POST
Addbetatesterstobetagroup — Add Beta Testers to a Beta Group
/v1/v1/betagroups/{id}/relationships/betatesters
DELETE
Removebetatestersfrombetagroup — Remove Beta Testers From a Beta Group
/v1/v1/betagroups/{id}/relationships/betatesters
GET
Listbetatesters — List Beta Testers
/v1/v1/betatesters
POST
Createbetatester — Create a Beta Tester
/v1/v1/betatesters
GET
Readbetatester — Read Beta Tester Information
/v1/v1/betatesters/{id}
DELETE
Deletebetatester — Delete a Beta Tester
/v1/v1/betatesters/{id}
GET
Listbetatesterapps — List All Apps for a Beta Tester
/v1/v1/betatesters/{id}/apps
GET
Listbetatesterbuilds — List All Builds Individually Assigned to a Beta Tester
/v1/v1/betatesters/{id}/builds
GET
Listbuildindividualtesters — List All Individual Testers for a Build
/v1/v1/builds/{id}/individualtesters

MCP Tools

list-beta-groups

List Beta Groups

read-only idempotent
create-beta-group

Create a Beta Group

read-beta-group-information

Read Beta Group Information

read-only idempotent
modify-beta-group

Modify a Beta Group

idempotent
delete-beta-group

Delete a Beta Group

idempotent
list-all-beta-testers-beta

List All Beta Testers in a Beta Group

read-only idempotent
add-beta-testers-beta-group

Add Beta Testers to a Beta Group

remove-beta-testers-beta-group

Remove Beta Testers From a Beta Group

idempotent
list-beta-testers

List Beta Testers

read-only idempotent
create-beta-tester

Create a Beta Tester

read-beta-tester-information

Read Beta Tester Information

read-only idempotent
delete-beta-tester

Delete a Beta Tester

idempotent
list-all-apps-beta-tester

List All Apps for a Beta Tester

read-only idempotent
list-all-builds-individually-assigned

List All Builds Individually Assigned to a Beta Tester

read-only idempotent
list-all-individual-testers-build

List All Individual Testers for a Build

read-only idempotent

Capability Spec

app-store-connect-beta-testers.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Apple App Store Connect API — Beta Testers
  description: 'Apple App Store Connect API — Beta Testers. 15 operations. Lead operation: List Beta Groups. Self-contained
    Naftiko capability covering one Apple business surface.'
  tags:
  - Apple
  - Beta Testers
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    APPLE_API_KEY: APPLE_API_KEY
capability:
  consumes:
  - type: http
    namespace: app-store-connect-beta-testers
    baseUri: https://api.appstoreconnect.apple.com
    description: Apple App Store Connect API — Beta Testers business capability. Self-contained, no shared references.
    resources:
    - name: v1-betaGroups
      path: /v1/betaGroups
      operations:
      - name: listbetagroups
        method: GET
        description: List Beta Groups
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: filter[app]
          in: query
          type: array
          description: Filter by app resource ID
        - name: filter[name]
          in: query
          type: array
          description: Filter by group name
        - name: filter[isInternalGroup]
          in: query
          type: array
          description: Filter by internal group status
        - name: filter[publicLinkEnabled]
          in: query
          type: array
          description: Filter by public link enabled status
        - name: filter[id]
          in: query
          type: array
          description: Filter by beta group resource ID
        - name: sort
          in: query
          type: array
          description: Sort order for results
        - name: fields[betaGroups]
          in: query
          type: array
          description: Fields to return for beta group resources
        - name: include
          in: query
          type: array
          description: Relationship data to include in the response
      - name: createbetagroup
        method: POST
        description: Create a Beta Group
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: v1-betaGroups-id
      path: /v1/betaGroups/{id}
      operations:
      - name: readbetagroup
        method: GET
        description: Read Beta Group Information
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: fields[betaGroups]
          in: query
          type: array
          description: Fields to return for beta group resources
        - name: include
          in: query
          type: array
          description: Relationship data to include in the response
      - name: modifybetagroup
        method: PATCH
        description: Modify a Beta Group
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
      - name: deletebetagroup
        method: DELETE
        description: Delete a Beta Group
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v1-betaGroups-id-betaTesters
      path: /v1/betaGroups/{id}/betaTesters
      operations:
      - name: listbetagroupbetatesters
        method: GET
        description: List All Beta Testers in a Beta Group
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: fields[betaTesters]
          in: query
          type: array
          description: Fields to return for beta tester resources
    - name: v1-betaGroups-id-relationships-betaTesters
      path: /v1/betaGroups/{id}/relationships/betaTesters
      operations:
      - name: addbetatesterstobetagroup
        method: POST
        description: Add Beta Testers to a Beta Group
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
      - name: removebetatestersfrombetagroup
        method: DELETE
        description: Remove Beta Testers From a Beta Group
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: v1-betaTesters
      path: /v1/betaTesters
      operations:
      - name: listbetatesters
        method: GET
        description: List Beta Testers
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: filter[email]
          in: query
          type: array
          description: Filter by email address
        - name: filter[firstName]
          in: query
          type: array
          description: Filter by first name
        - name: filter[lastName]
          in: query
          type: array
          description: Filter by last name
        - name: filter[inviteType]
          in: query
          type: array
          description: Filter by invitation type
        - name: filter[apps]
          in: query
          type: array
          description: Filter by app resource IDs
        - name: filter[betaGroups]
          in: query
          type: array
          description: Filter by beta group resource IDs
        - name: filter[builds]
          in: query
          type: array
          description: Filter by build resource IDs
        - name: filter[id]
          in: query
          type: array
          description: Filter by beta tester resource ID
        - name: sort
          in: query
          type: array
          description: Sort order for results
        - name: fields[betaTesters]
          in: query
          type: array
          description: Fields to return for beta tester resources
        - name: include
          in: query
          type: array
          description: Relationship data to include in the response
      - name: createbetatester
        method: POST
        description: Create a Beta Tester
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: v1-betaTesters-id
      path: /v1/betaTesters/{id}
      operations:
      - name: readbetatester
        method: GET
        description: Read Beta Tester Information
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: fields[betaTesters]
          in: query
          type: array
          description: Fields to return for beta tester resources
        - name: include
          in: query
          type: array
          description: Relationship data to include in the response
      - name: deletebetatester
        method: DELETE
        description: Delete a Beta Tester
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v1-betaTesters-id-apps
      path: /v1/betaTesters/{id}/apps
      operations:
      - name: listbetatesterapps
        method: GET
        description: List All Apps for a Beta Tester
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: fields[apps]
          in: query
          type: array
          description: Fields to return for app resources
    - name: v1-betaTesters-id-builds
      path: /v1/betaTesters/{id}/builds
      operations:
      - name: listbetatesterbuilds
        method: GET
        description: List All Builds Individually Assigned to a Beta Tester
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: fields[builds]
          in: query
          type: array
          description: Fields to return for build resources
    - name: v1-builds-id-individualTesters
      path: /v1/builds/{id}/individualTesters
      operations:
      - name: listbuildindividualtesters
        method: GET
        description: List All Individual Testers for a Build
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: fields[betaTesters]
          in: query
          type: array
          description: Fields to return for beta tester resources
    authentication:
      type: bearer
      token: '{{env.APPLE_API_KEY}}'
  exposes:
  - type: rest
    namespace: app-store-connect-beta-testers-rest
    port: 8080
    description: REST adapter for Apple App Store Connect API — Beta Testers. One Spectral-compliant resource per consumed
      operation, prefixed with /v1.
    resources:
    - path: /v1/v1/betagroups
      name: v1-betagroups
      description: REST surface for v1-betaGroups.
      operations:
      - method: GET
        name: listbetagroups
        description: List Beta Groups
        call: app-store-connect-beta-testers.listbetagroups
        with:
          filter[app]: rest.filter[app]
          filter[name]: rest.filter[name]
          filter[isInternalGroup]: rest.filter[isInternalGroup]
          filter[publicLinkEnabled]: rest.filter[publicLinkEnabled]
          filter[id]: rest.filter[id]
          sort: rest.sort
          fields[betaGroups]: rest.fields[betaGroups]
          include: rest.include
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: createbetagroup
        description: Create a Beta Group
        call: app-store-connect-beta-testers.createbetagroup
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/betagroups/{id}
      name: v1-betagroups-id
      description: REST surface for v1-betaGroups-id.
      operations:
      - method: GET
        name: readbetagroup
        description: Read Beta Group Information
        call: app-store-connect-beta-testers.readbetagroup
        with:
          fields[betaGroups]: rest.fields[betaGroups]
          include: rest.include
        outputParameters:
        - type: object
          mapping: $.
      - method: PATCH
        name: modifybetagroup
        description: Modify a Beta Group
        call: app-store-connect-beta-testers.modifybetagroup
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: deletebetagroup
        description: Delete a Beta Group
        call: app-store-connect-beta-testers.deletebetagroup
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/betagroups/{id}/betatesters
      name: v1-betagroups-id-betatesters
      description: REST surface for v1-betaGroups-id-betaTesters.
      operations:
      - method: GET
        name: listbetagroupbetatesters
        description: List All Beta Testers in a Beta Group
        call: app-store-connect-beta-testers.listbetagroupbetatesters
        with:
          fields[betaTesters]: rest.fields[betaTesters]
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/betagroups/{id}/relationships/betatesters
      name: v1-betagroups-id-relationships-betatesters
      description: REST surface for v1-betaGroups-id-relationships-betaTesters.
      operations:
      - method: POST
        name: addbetatesterstobetagroup
        description: Add Beta Testers to a Beta Group
        call: app-store-connect-beta-testers.addbetatesterstobetagroup
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: removebetatestersfrombetagroup
        description: Remove Beta Testers From a Beta Group
        call: app-store-connect-beta-testers.removebetatestersfrombetagroup
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/betatesters
      name: v1-betatesters
      description: REST surface for v1-betaTesters.
      operations:
      - method: GET
        name: listbetatesters
        description: List Beta Testers
        call: app-store-connect-beta-testers.listbetatesters
        with:
          filter[email]: rest.filter[email]
          filter[firstName]: rest.filter[firstName]
          filter[lastName]: rest.filter[lastName]
          filter[inviteType]: rest.filter[inviteType]
          filter[apps]: rest.filter[apps]
          filter[betaGroups]: rest.filter[betaGroups]
          filter[builds]: rest.filter[builds]
          filter[id]: rest.filter[id]
          sort: rest.sort
          fields[betaTesters]: rest.fields[betaTesters]
          include: rest.include
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: createbetatester
        description: Create a Beta Tester
        call: app-store-connect-beta-testers.createbetatester
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/betatesters/{id}
      name: v1-betatesters-id
      description: REST surface for v1-betaTesters-id.
      operations:
      - method: GET
        name: readbetatester
        description: Read Beta Tester Information
        call: app-store-connect-beta-testers.readbetatester
        with:
          fields[betaTesters]: rest.fields[betaTesters]
          include: rest.include
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: deletebetatester
        description: Delete a Beta Tester
        call: app-store-connect-beta-testers.deletebetatester
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/betatesters/{id}/apps
      name: v1-betatesters-id-apps
      description: REST surface for v1-betaTesters-id-apps.
      operations:
      - method: GET
        name: listbetatesterapps
        description: List All Apps for a Beta Tester
        call: app-store-connect-beta-testers.listbetatesterapps
        with:
          fields[apps]: rest.fields[apps]
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/betatesters/{id}/builds
      name: v1-betatesters-id-builds
      description: REST surface for v1-betaTesters-id-builds.
      operations:
      - method: GET
        name: listbetatesterbuilds
        description: List All Builds Individually Assigned to a Beta Tester
        call: app-store-connect-beta-testers.listbetatesterbuilds
        with:
          fields[builds]: rest.fields[builds]
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/builds/{id}/individualtesters
      name: v1-builds-id-individualtesters
      description: REST surface for v1-builds-id-individualTesters.
      operations:
      - method: GET
        name: listbuildindividualtesters
        description: List All Individual Testers for a Build
        call: app-store-connect-beta-testers.listbuildindividualtesters
        with:
          fields[betaTesters]: rest.fields[betaTesters]
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: app-store-connect-beta-testers-mcp
    port: 9090
    transport: http
    description: MCP adapter for Apple App Store Connect API — Beta Testers. One tool per consumed operation, routed inline
      through this capability's consumes block.
    tools:
    - name: list-beta-groups
      description: List Beta Groups
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: app-store-connect-beta-testers.listbetagroups
      with:
        filter[app]: tools.filter[app]
        filter[name]: tools.filter[name]
        filter[isInternalGroup]: tools.filter[isInternalGroup]
        filter[publicLinkEnabled]: tools.filter[publicLinkEnabled]
        filter[id]: tools.filter[id]
        sort: tools.sort
        fields[betaGroups]: tools.fields[betaGroups]
        include: tools.include
      outputParameters:
      - type: object
        mapping: $.
    - name: create-beta-group
      description: Create a Beta Group
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: app-store-connect-beta-testers.createbetagroup
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: read-beta-group-information
      description: Read Beta Group Information
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: app-store-connect-beta-testers.readbetagroup
      with:
        fields[betaGroups]: tools.fields[betaGroups]
        include: tools.include
      outputParameters:
      - type: object
        mapping: $.
    - name: modify-beta-group
      description: Modify a Beta Group
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: app-store-connect-beta-testers.modifybetagroup
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: delete-beta-group
      description: Delete a Beta Group
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: app-store-connect-beta-testers.deletebetagroup
      outputParameters:
      - type: object
        mapping: $.
    - name: list-all-beta-testers-beta
      description: List All Beta Testers in a Beta Group
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: app-store-connect-beta-testers.listbetagroupbetatesters
      with:
        fields[betaTesters]: tools.fields[betaTesters]
      outputParameters:
      - type: object
        mapping: $.
    - name: add-beta-testers-beta-group
      description: Add Beta Testers to a Beta Group
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: app-store-connect-beta-testers.addbetatesterstobetagroup
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: remove-beta-testers-beta-group
      description: Remove Beta Testers From a Beta Group
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: app-store-connect-beta-testers.removebetatestersfrombetagroup
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: list-beta-testers
      description: List Beta Testers
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: app-store-connect-beta-testers.listbetatesters
      with:
        filter[email]: tools.filter[email]
        filter[firstName]: tools.filter[firstName]
        filter[lastName]: tools.filter[lastName]
        filter[inviteType]: tools.filter[inviteType]
        filter[apps]: tools.filter[apps]
        filter[betaGroups]: tools.filter[betaGroups]
        filter[builds]: tools.filter[builds]
        filter[id]: tools.filter[id]
        sort: tools.sort
        fields[betaTesters]: tools.fields[betaTesters]
        include: tools.include
      outputParameters:
      - type: object
        mapping: $.
    - name: create-beta-tester
      description: Create a Beta Tester
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: app-store-connect-beta-testers.createbetatester
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: read-beta-tester-information
      description: Read Beta Tester Information
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: app-store-connect-beta-testers.readbetatester
      with:
        fields[betaTesters]: tools.fields[betaTesters]
        include: tools.include
      outputParameters:
      - type: object
        mapping: $.
    - name: delete-beta-tester
      description: Delete a Beta Tester
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: app-store-connect-beta-testers.deletebetatester
      outputParameters:
      - type: object
        mapping: $.
    - name: list-all-apps-beta-tester
      description: List All Apps for a Beta Tester
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: app-store-connect-beta-testers.listbetatesterapps
      with:
        fields[apps]: tools.fields[apps]
      outputParameters:
      - type: object
        mapping: $.
    - name: list-all-builds-individually-assigned
      description: List All Builds Individually Assigned to a Beta Tester
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: app-store-connect-beta-testers.listbetatesterbuilds
      with:
        fields[builds]: tools.fields[builds]
      outputParameters:
      - type: object
        mapping: $.
    - name: list-all-individual-testers-build
      description: List All Individual Testers for a Build
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: app-store-connect-beta-testers.listbuildindividualtesters
      with:
        fields[betaTesters]: tools.fields[betaTesters]
      outputParameters:
      - type: object
        mapping: $.