---
title: "List google ads search terms"
method: GET
path: "/api/v1/business/google-ads-search-terms"
tags: ["business"]
---

# List google ads search terms

`GET /api/v1/business/google-ads-search-terms`

## Request

- Base URL: `https://point11.ai`
- URL: `https://point11.ai/api/v1/business/google-ads-search-terms`
- Auth: one of:
  - HTTP bearer
  - OAuth 2 (authorization code, authorization URL `https://auth.point11.ai/oauth2/authorize`, token URL `https://auth.point11.ai/oauth2/token`)

List one Google Ads account's search terms (the organization's first selected account when none is named, returned as accountId): what people searched that showed an ad, per keyword that matched it, with the window's impressions, clicks, and cost (history "all": its whole stored history), beside that keyword's current Quality Score and its three components (a search term has no score of its own). Sort by cost (default) or the keyword's score; filter to keywords scored at or below a value; search the terms' text.

## Query parameters

- `limit` integer: Number of items to return (1–1000)
- `cursor` string: Opaque cursor returned as nextCursor by the previous page
- `accountId` string, uuid
- `days` integer
- `maxQualityScore` integer
- `query` string
- `from` string, date
- `through` string, date
- `history` 'all'
- `sort` 'cost' | 'quality_score'

## Headers

- `Point11-Organization` string, uuid

## Response `200`

Success.

- BusinessGoogleAdsSearchTermsListResponse
  - `data` object[], required
    - `searchTerm` string, required
    - `adGroupId` string, required
    - `criterionId` string, required
    - `keywordText` string, required
    - `matchType` string, nullable, required
    - `campaignName` string, nullable, required
    - `adGroupName` string, nullable, required
    - `qualityScore` integer, nullable, required
    - `expectedCtr` 'below_average' | 'average' | 'above_average', nullable, required
    - `adRelevance` 'below_average' | 'average' | 'above_average', nullable, required
    - `landingPageExperience` 'below_average' | 'average' | 'above_average', nullable, required
    - `impressions` number, required
    - `clicks` number, required
    - `costMicros` number, required
  - `nextCursor` string, nullable, required
  - `accountId` string, uuid, required
  - `total` integer, required

## Other responses

- `400`: The input, query, or Idempotency-Key is invalid.
- `401`: The bearer is missing, expired, or not accepted.
- `403`: The credential lacks the operation's scope or role, or the operation needs a different door.
- `404`: The resource or organization does not exist for this caller.
- `405`: This path takes another HTTP method, named in `Allow`.
- `409`: The request conflicts with current state or with prior use of its Idempotency-Key.
- `413`: The request, or the answer it asks for, is too large; narrow it.
- `429`: The credential's rate budget is spent; retry after `Retry-After` seconds.
- `500`: An unexpected server failure; retry later. Only `request_id` identifies it.
- `503`: A dependency is temporarily unavailable; retry after `Retry-After` seconds.
- `default`: Another status a product answers for its own refusal (for example `415` for an unsupported attachment); branch on `code`.

---

[API](https://skmtc.dev/point11/apis/point11-api.md) · [All operations](https://skmtc.dev/point11/apis/point11-api/llms.txt) · [OpenAPI document](https://skmtc.dev/point11/apis/point11-api/revisions/5241805fe425?raw)
