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

# Queue lookups that detect the localizations an app ships

> Takes the localizations the markets of the app read, drops the ones the app ships and, when the home listing declares its languages, the ones in languages it does not declare, then queues one deferred store lookup per remaining localization in the first market that has a stored default listing and can probe it. A lookup records the localization as detected when the store serves a listing that differs from the default one. Spends one refresh allowance only when at least one lookup is newly queued; a localization already queued today queues nothing and spends nothing. Answers 202 with the number of lookups queued and every candidate. Answers 400 for a Google Play app, 404 for an unknown app and 429 when the refresh allowance is spent.



## OpenAPI

````yaml /api-reference/openapi.json post /apps/{id}/localizations/detect
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.9.0
  contact: {}
servers:
  - url: http://localhost:3000/api/backend
    description: Web origin proxy
  - url: http://localhost:4000
    description: Direct API
security:
  - personalApiToken: []
tags: []
paths:
  /apps/{id}/localizations/detect:
    post:
      tags:
        - apps
      summary: Queue lookups that detect the localizations an app ships
      description: >-
        Takes the localizations the markets of the app read, drops the ones the
        app ships and, when the home listing declares its languages, the ones in
        languages it does not declare, then queues one deferred store lookup per
        remaining localization in the first market that has a stored default
        listing and can probe it. A lookup records the localization as detected
        when the store serves a listing that differs from the default one.
        Spends one refresh allowance only when at least one lookup is newly
        queued; a localization already queued today queues nothing and spends
        nothing. Answers 202 with the number of lookups queued and every
        candidate. Answers 400 for a Google Play app, 404 for an unknown app and
        429 when the refresh allowance is spent.
      operationId: LocalizationDetectionController_detect
      parameters:
        - name: id
          required: true
          in: path
          schema:
            type: string
      responses:
        '202':
          description: ''
          content:
            application/json:
              schema:
                type: object
components:
  securitySchemes:
    personalApiToken:
      scheme: bearer
      bearerFormat: asob
      type: http

````

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