# Search creatives

Returns creatives for `advertiser_id` or creatives linking to `domain`; provide one of those fields. Supports format, surface, ordering, report-type, and pagination filters.

- Platform: Google Ads
- Request: `GET https://api.toolzerhub.com/v1/google-ads/creatives/search`
- Auth: `x-api-key` header
- Cost: 1 credit per successful request. Failed requests are not billed.
- Page: https://docs.toolzerhub.com/reference/google-ads/creatives/google-ads-search-creatives

| Parameter | In | Required | Type | Description |
| --- | --- | --- | --- | --- |
| `advertiser_id` | query | no | string | List creatives for one advertiser. Required unless domain is set. |
| `domain` | query | no | string | List creatives linking to this domain, across every advertiser. Required unless advertiser_id is set. |
| `ad_format` | query | no | enum: unknown, text, image, video | unknown returns every format. Default: unknown. |
| `surfaces` | query | no | string | Comma-separated platform filter: play, maps, search, shopping, youtube. Omit for every surface. |
| `num_results` | query | no | integer | Page size, 1-100. Default: 20. |
| `page_token` | query | no | string | Opaque cursor from a previous response's next_page_token. Omit for the first page. |
| `sort_key` | query | no | enum: unknown, revenue, impressions, last_activity_date |  Default: unknown. |
| `descending` | query | no | boolean |  Default: true. |
| `report_type` | query | no | enum: all, political | all covers every advertiser/creative; political scopes to Google's separate election-ads transparency report. Default: all. |

## Example request

```bash
curl "https://api.toolzerhub.com/v1/google-ads/creatives/search" \
  -H "x-api-key: $TOOLZERHUB_API_KEY"
```

Success responses are wrapped as `{ "data": ... }`. Errors return `{ "error": { "code", "status", "message", "retryable", "details" } }`. See https://docs.toolzerhub.com/docs/responses-and-errors.
