> ## Documentation Index
> Fetch the complete documentation index at: https://docs.asobeast.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Connect a store console key

> Verifies the key with the store, seals it at rest bound to this workspace and replaces any key connected before, then queues a report sync. App Store Connect takes an issuer ID, a key ID and a .p8 private key; Google Play takes a service account JSON key and the bucket id of its Play Console reports. The store in the body must match the path. Owner only, through a signed in session. Answers 422 when the store refuses the key and 409 when the instance has store connections off.



## OpenAPI

````yaml /api-reference/openapi.json put /store-connections/{store}
openapi: 3.0.0
info:
  title: asobeast API
  description: >-
    Self hosted ASO toolkit API.


    A metered instance carries RateLimit-Limit, RateLimit-Remaining and
    RateLimit-Reset on every response, for the tightest limit the request
    touched. A self hosted instance has no request rate limits and sends no such
    header. Limits are per workspace, so minting more tokens does not buy more
    capacity, and they are sized per plan across three classes: read for stored
    data, write for configuration changes and store for the endpoints that reach
    the App Store or Google Play.


    A 429 carries Retry-After and a rateLimit object naming the window that
    closed, or an aiAllowance object when the workspace has spent the AI calls
    its plan includes this month. A 403 with a quota object means a plan
    capacity limit such as apps or tracked keyword markets, which is a different
    problem from a rate limit. A 402 with an entitlement object means the
    workspace needs a plan.


    Positions are 1-based and null means checked but not found within the
    captured depth, never zero. Daily granularity uses UTC dates.
  version: 1.13.0
  contact: {}
servers:
  - url: http://localhost:3000/api/backend
    description: Web origin proxy
  - url: http://localhost:4000
    description: Direct API
security:
  - personalApiToken: []
tags: []
paths:
  /store-connections/{store}:
    put:
      tags:
        - store-connect
      summary: Connect a store console key
      description: >-
        Verifies the key with the store, seals it at rest bound to this
        workspace and replaces any key connected before, then queues a report
        sync. App Store Connect takes an issuer ID, a key ID and a .p8 private
        key; Google Play takes a service account JSON key and the bucket id of
        its Play Console reports. The store in the body must match the path.
        Owner only, through a signed in session. Answers 422 when the store
        refuses the key and 409 when the instance has store connections off.
      operationId: StoreConnectionsController_connect
      parameters:
        - name: store
          required: true
          in: path
          schema:
            enum:
              - APP_STORE
              - GOOGLE_PLAY
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/AppStoreConnectionDto'
                - $ref: '#/components/schemas/PlayConnectionDto'
              discriminator:
                propertyName: store
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
components:
  schemas:
    AppStoreConnectionDto:
      type: object
      properties:
        store:
          enum:
            - APP_STORE
          type: string
        issuerId:
          type: string
          example: 57246542-96fe-1a63-e053-0824d011072a
          description: Issuer ID from Users and Access, Integrations, Team Keys
        keyId:
          type: string
          example: 2X9R4HXF34
          description: Ten character key ID
        privateKey:
          type: string
          maxLength: 4096
          description: >-
            The whole contents of the downloaded .p8 file. Verified with Apple,
            sealed at rest and never returned.
      required:
        - store
        - issuerId
        - keyId
        - privateKey
    PlayConnectionDto:
      type: object
      properties:
        store:
          enum:
            - GOOGLE_PLAY
          type: string
        serviceAccountJson:
          type: string
          maxLength: 16384
          description: >-
            The whole contents of the JSON key file Google Cloud downloaded for
            the service account. Verified with Google, sealed at rest and never
            returned.
        bucket:
          type: string
          maxLength: 63
          example: pubsite_prod_rev_01234567890987654321
          description: >-
            The Cloud Storage bucket id shown under Download reports in Play
            Console
      required:
        - store
        - serviceAccountJson
        - bucket
  securitySchemes:
    personalApiToken:
      scheme: bearer
      bearerFormat: asob
      type: http

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.