MMetadata /docs
Docs/Tools/list_negative_keywords_list

list_negative_keywords_list

List and search negative keywords lists by name filter.

Read search

Returns data. Calling it changes nothing, so it is safe in an unattended loop.

What it does

List and search negative keywords lists by name filter.

                PURPOSE:
                Retrieve a list of negative keywords lists from the Metadata platform with optional name filtering.
                Use this tool to discover and search for specific negative keywords lists for campaign management and optimization.

                ACCOUNT LIMIT:
                ⚠️ MAXIMUM 20 NEGATIVE KEYWORDS LISTS PER ACCOUNT ⚠️
                Each account can have a maximum of 20 negative keyword lists. Use this tool to check your current list count
                and manage your existing lists. If you need to create a new list but have reached the limit, you'll need to
                delete or archive existing lists first.

                WHEN TO USE:
                - Browse all available negative keywords lists in the account
                - Search for specific negative keywords lists by name
                - Find negative keywords lists by partial name matching
                - Get all negative keywords lists data
                - Discover available negative keywords lists for campaign use
                - Check current list count to manage the 20-list limit

                KEY FEATURES:
                ✓ NAME SEARCH: Filter by negative keywords list name for targeted searches (optional)
                ✓ MULTIPLE SEARCH: Search for multiple list names at once with automatic deduplication
                ✓ SIMPLE INTERFACE: Only name-based filtering, no pagination or sorting needed
                ✓ LIST COUNTING: Use to verify your current count against the 20-list maximum

                NAME SEARCH:
                The optional 'name' parameter supports:
                1. Single name (string): Searches for one negative keywords list name
                   - "branded" → Finds negative keywords list named "Branded"
                   - "competitor" → Finds negative keywords list named "Competitor"
                   - "generic" → Finds negative keywords list named "Generic"

                2. Multiple names (array of strings): Searches for multiple negative keywords lists at once
                   - ["branded", "competitor", "generic"] → Aggregates results from all three searches
                   - Makes separate API requests for each name and combines results
                   - Automatically deduplicates lists by ID
                   - Returns all unique negative keywords lists matching any of the provided names

                - Omit 'name' parameter to list all negative keywords lists without filtering
                - Both single and multiple searches support partial matching

                RESPONSE FORMAT:
                Returns a response with:
                {
                  "data": [
                    {
                      "name": "BRanded",
                      "id": 123
                    },
                    {
                      "name": "Competitor",
                      "id": 124
                    }
                  ]
                }

                COMMON USE CASES:
                1. List all negative keywords lists:
                   list_negative_keywords_list()

                2. Search for "branded" negative keywords list:
                   list_negative_keywords_list(name="branded")

                3. Find specific negative keywords list:
                   list_negative_keywords_list(name="BRanded")

                4. Search for multiple negative keywords list names at once:
                   list_negative_keywords_list(name=["branded", "competitor", "generic"])

                5. Search multiple negative keywords list names:
                   list_negative_keywords_list(name=["competitor", "generic"])

                PARAMETERS:
                - name: Optional negative keywords list name or partial name to search for. Can be a string or array of strings.
                        Supports partial matching. Omit to list all negative keywords lists. (optional)

                PERFORMANCE TIPS:
                - Use name parameter for targeted searches to reduce result set
                - When searching multiple names, each name triggers a separate API request
                  Use reasonable list sizes to avoid excessive API calls
                - Results are automatically deduplicated when searching multiple names

                EXAMPLES:
                - list_negative_keywords_list() - Get all negative keywords lists
                - list_negative_keywords_list(name="branded") - Search for branded negative keywords list
                - list_negative_keywords_list(name=["branded", "competitor"]) - Search multiple negative keywords lists
                - list_negative_keywords_list(name="competitor") - Find competitor negative keywords list
                - list_negative_keywords_list(name=["branded", "generic"]) - Multiple list names search

                CHANNEL SCOPE:
                BOTH search channels are supported: pass channel=MICROSOFT_ADS for Microsoft
                Ads (Bing) and channel=GOOGLE_ADS for Google. The two channels hold SEPARATE
                lists, so never substitute one channel for the other to get "close enough"
                results.

Arguments

ArgumentTypeNotes
name object Optional negative keywords list name(s) to search for. Can be a single string or array of strings. Supports partial matching. Omit to list all negative keywords lists.
channel string Ad channel scope. Both search channels are supported. These are PER-CHANNEL resources: GOOGLE_ADS and MICROSOFT_ADS hold separate sets, and one is invisible to the other. Defaults to GOOGLE_ADS when the user does not say which.
one of: GOOGLE_ADS, MICROSOFT_ADS

Request

curl
curl -s -X POST https://mcp-server.metadata.io/mcp \
  -H "Authorization: $METADATA_PAT" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -H "MCP-Protocol-Version: 2025-11-25" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"list_negative_keywords_list","arguments":{}}}'

Response

Real, from the production server, in 717 ms. Values that identify a customer or disclose money are replaced with typed placeholders; keys, types and nesting are exactly as returned.

recorded response
{
 "totalElements": 20,
 "totalPages": 1,
 "data": [
  {
   "id": "[number redacted]",
   "name": "[name redacted]",
   "overlapped": null,
   "overlappingKeywords": null
  },
  {
   "id": "[number redacted]",
   "name": "[name redacted]",
   "overlapped": null,
   "overlappingKeywords": null
  },
  {
   "id": "[number redacted]",
   "name": "[name redacted]",
   "overlapped": null,
   "overlappingKeywords": null
  },
  {
   "id": "[number redacted]",
   "name": "[name redacted]",
   "overlapped": null,
   "overlappingKeywords": null
  },
  {
   "id": "[number redacted]",
   "name": "[name redacted]",
   "overlapped": null,
   "overlappingKeywords": null
  },
  {
   "id": "[number redacted]",
   "name": "[name redacted]",
   "overlapped": null,
   "overlappingKeywords": null
  },
  {
   "id": "[number redacted]",
   "name": "[name redacted]",
   "overlapped": null,
   "overlappingKeywords": null
  },
  {
   "id": "[number redacted]",
   "name": "[name redacted]",
   "overlapped": null,
   "overlappingKeywords": null
  },
  {
   "id": "[number redacted]",
   "name": "[name redacted]",
   "overlapped": null,
   "overlappingKeywords": null
  },
  {
   "id": "[number redacted]",
   "name": "[name redacted]",
   "overlapped": null,
   "overlappingKeywords": null
  },
  {
   "id": "[number redacted]",
   "name": "[name redacted]",
   "overlapped": null,
   "overlappingKeywords": null
  },
  {
   "id": "[number redacted]",
   "name": "[name redacted]",
   "overlapped": null,
   "overlappingKeywords": null
  },
  {
   "id": "[number redacted]",
   "name": "[name redacted]",
   "overlapped": null,
   "overlappingKeywords": null
  },
  {
   "id": "[number redacted]",
   "name": "[name redacted]",
   "overlapped": null,
   "overlappingKeywords": null
  },
  {
   "id": "[number redacted]",
   "name": "[name redacted]",
   "overlapped": null,
   "overlappingKeywords": null
  },
  {
   "id": "[number redacted]",
   "name": "[name redacted]",
   "overlapped": null,
   "overlappingKeywords": null
  },
  {
   "id": "[number redacted]",
   "name": "[name redacted]",
   "overlapped": null,
   "overlappingKeywords": null
  },
  {
   "id": "[number redacted]",
   "name": "[name redacted]",
   "overlapped": null,
   "overlappingKeywords": null
  },
  {
   "id": "[number redacted]",
   "name": "[name redacted]",
   "overlapped": null,
   "overlappingKeywords": null
  },
  {
   "id": "[number redacted]",
   "name": "[name redacted]",
   "overlapped": null,
   "overlappingKeywords": null
  }
 ]
}

Other search tools:

All 160 tools · machine-readable index