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

# Track keyword discoveries

> Tracks the discoveries named by keywordIds, or every ranked discovery with allRanked true, optionally in one market; exactly one of the two is required. Ids that are not open discoveries of the app are ignored. Tracking spends the keyword room of the plan the way a manual add does: skipped counts the rows over that room, which stay discoveries. A known position from a check of today or yesterday becomes the first position of the keyword and every other row queues its first position check. Answers 403 and writes nothing when another request took the last keyword slots in the meantime.



## OpenAPI

````yaml /api-reference/openapi.json post /apps/{id}/keyword-discoveries/track
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.15.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}/keyword-discoveries/track:
    post:
      tags:
        - keywords
      summary: Track keyword discoveries
      description: >-
        Tracks the discoveries named by keywordIds, or every ranked discovery
        with allRanked true, optionally in one market; exactly one of the two is
        required. Ids that are not open discoveries of the app are ignored.
        Tracking spends the keyword room of the plan the way a manual add does:
        skipped counts the rows over that room, which stay discoveries. A known
        position from a check of today or yesterday becomes the first position
        of the keyword and every other row queues its first position check.
        Answers 403 and writes nothing when another request took the last
        keyword slots in the meantime.
      operationId: KeywordDiscoveryController_track
      parameters:
        - name: id
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/KeywordDiscoveryTrackDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
components:
  schemas:
    KeywordDiscoveryTrackDto:
      type: object
      properties:
        keywordIds:
          minItems: 1
          maxItems: 200
          type: array
          items:
            type: string
            maxLength: 64
        allRanked:
          type: boolean
        country:
          type: string
          example: de
          pattern: ^[a-z]{2}$
  securitySchemes:
    personalApiToken:
      scheme: bearer
      bearerFormat: asob
      type: http

````

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