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.
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
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: $.