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

# Autocomplete Google Ads keyword themes

> <Info>This API is in beta. Endpoints, fields, and behavior may still change, so avoid depending on it in production.</Info>

Suggests keyword themes as someone types, for the keyword picker on a Smart campaign.

Returns matching theme names from Google's catalog, most relevant first, and never more than `limit`. Anything the caller types is still valid to save, so treat these as suggestions rather than the allowed set.

A `query` shorter than two characters returns an empty list rather than an error, because a one-character prefix matches too much to be useful. `country_code` scopes the catalog and is required in practice: Google returns nothing without one, so leaving it unset uses `US`.

`language_code` is best-effort. Google's catalog covers a fixed set of languages, and anything outside it falls back to English rather than failing, so a request for an unsupported language returns English themes with no signal that the substitution happened. Send a two-letter code; a regional tag like `pt-BR` is reduced to its first part.

An empty list also means Google was briefly unreachable, so treat "no suggestions" as "nothing to show right now" rather than "this word has no themes".

<Note>This endpoint accepts a personal API key. Workspace API keys are not authorized for it and are rejected with a 403.</Note>



## OpenAPI

````yaml /developers/references/app-management/app-management-openapi.json get /api/apps/{app_id}/google-ads/suggestions/keyword-themes
openapi: 3.1.0
info:
  title: Base44 App Management API
  version: 1.0.0
servers:
  - url: https://app.base44.com
security:
  - ApiKeyAuth: []
paths:
  /api/apps/{app_id}/google-ads/suggestions/keyword-themes:
    get:
      summary: Autocomplete Google Ads keyword themes
      description: >-
        <Info>This API is in beta. Endpoints, fields, and behavior may still
        change, so avoid depending on it in production.</Info>


        Suggests keyword themes as someone types, for the keyword picker on a
        Smart campaign.


        Returns matching theme names from Google's catalog, most relevant first,
        and never more than `limit`. Anything the caller types is still valid to
        save, so treat these as suggestions rather than the allowed set.


        A `query` shorter than two characters returns an empty list rather than
        an error, because a one-character prefix matches too much to be useful.
        `country_code` scopes the catalog and is required in practice: Google
        returns nothing without one, so leaving it unset uses `US`.


        `language_code` is best-effort. Google's catalog covers a fixed set of
        languages, and anything outside it falls back to English rather than
        failing, so a request for an unsupported language returns English themes
        with no signal that the substitution happened. Send a two-letter code; a
        regional tag like `pt-BR` is reduced to its first part.


        An empty list also means Google was briefly unreachable, so treat "no
        suggestions" as "nothing to show right now" rather than "this word has
        no themes".


        <Note>This endpoint accepts a personal API key. Workspace API keys are
        not authorized for it and are rejected with a 403.</Note>
      operationId: >-
        suggest_keyword_themes_autocomplete_api_apps__app_id__google_ads_suggestions_keyword_themes_get
      parameters:
        - name: app_id
          in: path
          required: true
          schema:
            type: string
            description: ID of the app you are planning a Google Ads campaign for.
            title: App Id
          description: ID of the app you are planning a Google Ads campaign for.
          example: 6820f3a4e7b91d003c45a1f2
        - name: query
          in: query
          required: false
          schema:
            type: string
            description: Free-text the user is typing
            default: ''
            title: Query
          description: Free-text the user is typing
        - name: language_code
          in: query
          required: false
          schema:
            type: string
            description: Two-letter language code
            default: en
            title: Language Code
          description: Two-letter language code
        - name: country_code
          in: query
          required: false
          schema:
            type: string
            description: Two-letter country code (scopes the catalog)
            default: US
            title: Country Code
          description: Two-letter country code (scopes the catalog)
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            maximum: 25
            minimum: 1
            description: Most suggestions to return.
            default: 10
            title: Limit
          description: Most suggestions to return.
          example: 10
      responses:
        '200':
          description: Matching keyword theme names, most relevant first.
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
                title: GoogleAdsKeywordThemeNames
        '401':
          description: Missing or invalid credentials.
        '403':
          description: >-
            You don't have access to this app, the app does not exist, or you
            used a workspace API key. A missing app and an app you cannot reach
            are deliberately the same answer.
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
components:
  schemas:
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: api_key
      description: Personal API key.

````