Skip to content
looot docs
Esc
↑↓navigate↵open⌘Jpreview
On this page

List the ads an advertiser is running on Google

Run job:ads.google.advertiser.ads through the looot API: 1 provider, from $0.00642 per call. Inputs, prices, output shape and code for curl, JavaScript and Python.

List the ads an advertiser is running on Google.

Job id ads.google.advertiser.ads, in Ads intelligence (Ad libraries). As of 2026-10-01, 1 provider serve it through 2 tools. Run job:ads.google.advertiser.ads and looot picks one of them; with fallback on, a miss moves on to the next. See Jobs.

Inputs

Fields the job’s tools take, most shared first. Any key you send passes through unchanged.

Name Type Taken by Required by Description
company_domain string 2 of 2 2 Company website
all_ads boolean 1 of 2 0 This will automatically use the continuation_token and scrape all the pages, returning all available ads. Works only with a webhook_url as it needs a place to send each page, one by one. Warning: use this cautiously because there is no way of stopping it. If you use this on a domain that runs 10000 ads, it will try to scrape all the ads and it will use the credits (one page = one credit)
continuation_token string 1 of 2 0 Token used to grab the next set of ads
data_provider string 1 of 2 0 Data provider to use
extract_text boolean 1 of 2 0 Extract text content from ad creatives
media_type string 1 of 2 0 Filter results based on media type. Possible values: text, image, video.
shopping boolean 1 of 2 1 Always true: Adyntel returns the Google Shopping ads in this same call. (false switches Adyntel to an async job id that this tool does not poll.). Example: true
webhook_url string 1 of 2 0 Webhook URL for async delivery

Providers and prices

Provider Tool Price
Adyntel adyntel-google $0.00642 per call
Adyntel adyntel-google-shopping $0.00642 per call

A call that fails at the provider costs $0. See What’s free.

Output

Each provider answers in its own shape. Shape of the run’s result from adyntel-google, checked against 4 real answers:

{ ads: { start, format, variants: { width, height, content }[], last_seen, creative_id, original_url, advertiser_id, advertiser_name }[], country_code, total_ad_count, continuation_token }

Run it

Every call needs your API token in LOOOT_TOKEN; Sign in shows how to get one. Each run also needs a new idempotency key, so a retry never pays twice. With wait: 30 the answer comes back inline when the run ends within 30 seconds. Otherwise you get the running run back: poll GET /v1/runs/<runId>.

Example input with placeholder values:

curl -X POST "https://api.looot.ai/v1/runs" \
  -H "Authorization: Bearer $LOOOT_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"endpointId":"job:ads.google.advertiser.ads","input":{"company_domain":"example.com"},"wait":30}'
const response = await fetch("https://api.looot.ai/v1/runs", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.LOOOT_TOKEN}`,
    "Content-Type": "application/json",
    "Idempotency-Key": crypto.randomUUID(),
  },
  body: JSON.stringify({
    endpointId: "job:ads.google.advertiser.ads",
    input: {
      company_domain: "example.com",
    },
    wait: 30,
  }),
});
const run = await response.json();
console.log(run.status, run.result);
import os
import uuid

import requests

response = requests.post(
    "https://api.looot.ai/v1/runs",
    headers={
        "Authorization": f"Bearer {os.environ['LOOOT_TOKEN']}",
        "Idempotency-Key": str(uuid.uuid4()),
    },
    json={
        "endpointId": "job:ads.google.advertiser.ads",
        "input": {
            "company_domain": "example.com",
        },
        "wait": 30,
    },
    timeout=90,
)
run = response.json()
print(run["status"], run.get("result"))

To pin one provider, send its tool id as endpointId instead of job:ads.google.advertiser.ads.

Was this page helpful?