> ## 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.

# Finish connecting Google Play with a Google account

> Redeems the code Google returned, lists the bucket with the account before anything is stored, seals the refresh token bound to this workspace, replaces any Google Play connection and queues a report sync. Answers 400 for a state of another owner, an expired state or a code Google refuses, 422 when the account was not granted Cloud Storage access or cannot read the bucket, and 409 when sign in is off or Google refuses the OAuth client of the instance.



## OpenAPI

````yaml /api-reference/openapi.json post /store-connections/GOOGLE_PLAY/sign-in/complete
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/GOOGLE_PLAY/sign-in/complete:
    post:
      tags:
        - store-connect
      summary: Finish connecting Google Play with a Google account
      description: >-
        Redeems the code Google returned, lists the bucket with the account
        before anything is stored, seals the refresh token bound to this
        workspace, replaces any Google Play connection and queues a report sync.
        Answers 400 for a state of another owner, an expired state or a code
        Google refuses, 422 when the account was not granted Cloud Storage
        access or cannot read the bucket, and 409 when sign in is off or Google
        refuses the OAuth client of the instance.
      operationId: PlaySignInController_complete
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PlaySignInCompletionDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
components:
  schemas:
    PlaySignInCompletionDto:
      type: object
      properties:
        code:
          type: string
          maxLength: 2048
          description: >-
            The code Google added to the redirect. Redeemed once with Google and
            never stored.
        state:
          type: string
          maxLength: 4096
          description: >-
            The state Google returned unchanged. Opens only for the signed in
            owner who started the sign in, within ten minutes.
      required:
        - code
        - state
  securitySchemes:
    personalApiToken:
      scheme: bearer
      bearerFormat: asob
      type: http

````

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