← Back to all apps

Kleinanzeigen

Shoppingby kleinanzeigen.de GmbH

Finde, was du liebst – verkaufe, was du nicht mehr brauchst. Kleinanzeigen ist Deutschlands Nr. 1 für Anzeigen. Millionen nutzen es bereits.

1ChatGPT Tools
kleinanzeigen.de GmbHDeveloper
ShoppingCategory

Available Tools

Get Category Reference

get_category_reference
Full Description

Return the category/attribute reference line for a given category hint.

Use this BEFORE search_ads whenever you plan to set category or attributes. Input can be a broad category in English or German (cars, phones, apartments, jobs, etc.). The response includes the exact CategoryName and allowed attribute values to use.

Parameters (1 required, 1 optional)
Required
categorystring

Broad category hint in English or German (cars, phones, apartments, jobs, etc.).

Optional
maxSuggestionsinteger

Max suggestions when no exact category match is found.

Default: 3

Search Ads

search_ads
Full Description

Search Kleinanzeigen listings in Germany.

HARD RULE: NEVER call search_ads without calling get_category_reference first, unless you explicitly set allowGeneric=true.

HARD RULE: Call MCP tools directly (get_category_reference, search_ads). Do NOT call api_tool or any /KA/link wrapper paths.

IMPORTANT RULES: 1. You may use up to TWO tool calls per user request:

  • First call get_category_reference if you need category/attributes.
  • Then call search_ads once with the resolved category/attributes.
  • Do not call search_ads more than once for the same user request.

2. MULTILINGUAL SEARCH

  • CRITICAL: Kleinanzeigen has both German and English listings.
  • For generic nouns (apartment, couch, musician, bicycle, etc.), ALWAYS use queries array with BOTH German AND English terms.
  • This performs OR search - finds listings in either language.
  • WRONG: {"query":"Musiker musician"} <- AND search, returns 0 results
  • RIGHT: {"queries":["Musiker","musician"]} <- OR search, finds all
  • Keep brand names as-is: "iPhone 14 Pro", "PlayStation 5", "BMW" (same in all languages)

2b. USER ALTERNATIVES (or/oder)

  • CRITICAL: When user mentions alternatives like "256 or 512 GB", "rot oder blau", "3 or 4 rooms":
    • If the user uses "or" / "oder" between alternatives, use queries to represent each alternative as a separate OR search.
    • If the user uses "and" / "und", keep the terms together (AND) in query and/or attributes (do NOT split into queries).
    • WRONG: {"query":"iPhone 15 256GB 512GB"} <- AND search, finds nothing
    • RIGHT: {"queries":["iPhone 15 256GB","iPhone 15 512GB"]} <- OR search, finds both variants
    • Works WITH attributes: {"queries":["iPhone 15 256GB","iPhone 15 512GB"],"category":"phones","attributes":{"art":"apple"}}
    • If you use queries, omit query (each entry must be self-contained).
    • If user mixes OR + AND (e.g., "256 or 512 AND white"), duplicate the shared AND terms into each queries[] entry.

3. Search EXACTLY what the user asked for - do not expand or modify criteria.

  • If user says "3 rooms", search for exactly 3 rooms, not 3-6 rooms.
  • If user says "under 10000 euros", use maxPrice=10000, not 15000.
  • If user says "less than 50000 km", use km=[;50000], not a higher value.

4. Prefer structured attributes for filters WHEN possible, but do not invent values.

  • Use ONLY valid values from get_category_reference (do not invent values).
  • Translate user-friendly filter terms to the valid enum values (e.g., "automatic" -> "automatik").
  • If the user mentions a product name that implies a brand/model, map it to the listed value

(e.g., "iPhone" -> art=apple in Handy_Telekom).

  • If the user mentions a value that is not listed/recognized (e.g., trim/variant like "Shelby", "GTI", "AMG"),

DO NOT pass it as an attribute value (it will be ignored). Put it into query (or into each queries[] entry) instead.

  • When using attributes, you may use query OR queries. Use queries for OR variants (multilingual synonyms or "X or Y");

if you use queries, omit query and make each entry self-contained. 5. For vehicle brands/models (cars AND motorcycles), use attributes marke/modell ONLY when you can map to valid values.

  • modell must be a single valid model code (e.g., mustang, mustang_mach_e), not a free-form phrase.
  • Example: "Mustang Shelby" -> {"category":"cars","query":"shelby","attributes":{"marke":"ford","modell":"mustang"}}

6. For apartments, ALWAYS use zimmer/wohnflaeche attributes for rooms/size filters. 7. Category selection:

  • Only set category when the user explicitly mentions the domain/category (cars, motorcycles, apartments, phones, furniture, etc.) OR when required to apply attributes.
  • For specific named products/brands/models, call get_category_reference and set the broad category if it exists.
  • NEVER guess narrow subcategories (e.g. "konsolen", "wohnzimmer"). If you set category, use broad categories only.
  • If unsure, omit category rather than guessing.
  • Safe broad categories: cars, motorcycles, apartments, houses, electronics, phones, computers, laptops, bikes, furniture, jobs, fashion, pets.

8. If you include attributes, you MUST also set category (attributes are category-specific and won't work without it). 9. BEFORE calling search_ads, call get_category_reference when you plan to use category/attributes. 10. When using category/attributes, include categoryRefId from get_category_reference in search_ads. 11. If get_category_reference returns no suitable category, you may call search_ads without category but MUST set allowGeneric=true. 12. Include userText (verbatim user request) in search_ads so the server can recover typos/synonyms.

HARD RULE (repeat): NEVER call search_ads without get_category_reference unless allowGeneric=true.

Examples:

  • "musician jobs" -> {"queries":["Musiker","musician"],"category":"jobs"}
  • "apartment in Berlin" -> {"queries":["Wohnung","apartment"],"location":"Berlin"}
  • "used couch" -> {"queries":["Sofa","Couch","couch"]}
  • "bicycle for kids" -> {"queries":["Kinderfahrrad","Fahrrad Kinder","kids bike"]}
  • "electric cars in Berlin" -> {"category":"cars","location":"Berlin","attributes":{"fuel":"elektro"}}
  • "BMW diesel" -> {"category":"cars","attributes":{"fuel":"diesel","marke":"bmw"}}
  • "Ford Mustang Shelby" -> {"category":"cars","query":"shelby","attributes":{"marke":"ford","modell":"mustang"}}
  • "3 room apartment 50-80 sqm" -> {"category":"apartments","attributes":{"zimmer":"3","wohnflaeche":"[50;80]"}}
  • "PlayStation 5" -> {"query":"PlayStation 5"}
  • "iPhone 14 Pro" -> {"query":"iPhone 14 Pro"}
  • "cars under 10000" -> {"category":"cars","maxPrice":10000}
  • "iPhone 15 with 256 or 512 GB" -> {"queries":["iPhone 15 256GB","iPhone 15 512GB"],"category":"phones"}
  • "red or blue BMW" -> {"queries":["BMW rot","BMW blau"],"category":"cars"}
  • "3 or 4 room apartment" -> {"queries":["3 Zimmer Wohnung","4 Zimmer Wohnung"],"category":"apartments"}
Parameters (0 required, 11 optional)
Optional
allowGenericboolean

Set to true only if get_category_reference could not find a suitable category.

Default: False
attributesobject

Category-specific filters. Use ONLY values listed in the category/attribute reference for select attributes (do not invent values). If a value is not listed/recognized, omit that attribute and put the term in `query` (or in each `queries[]` entry) instead. If an attribute is listed as `=[many]`, do not use it as an attribute; keep the user value in `query` (or in each `queries[]` entry). For numeric attributes (km, year, etc.), use range syntax: '[;100000]' = less than, '[50000;]' = more than, '[min;max]' = between. For boolean attributes, use 'true' to enable the filter.

categorystring

Category (e.g., 'cars', 'phones', 'bikes', 'furniture').

categoryRefIdinteger

Category reference id returned by get_category_reference.

limitinteger

Number of results (default 25).

Default: 25
locationstring

City in Germany (e.g., 'Berlin', 'Munich'). Omit for all Germany.

maxPriceinteger

Maximum price in EUR.

minPriceinteger

Minimum price in EUR.

queriesarray

OR search: multiple query variants. Use for: (1) user alternatives like '256 or 512 GB' -> ['iPhone 256GB','iPhone 512GB'], (2) multilingual terms -> ['Wohnung','apartment'], (3) batch variants -> ['iPhone 12','iPhone 13']. Works WITH attributes for filtered OR search. Do NOT use `queries` for AND (and/und) constraints; keep those in `query`/`attributes`. If you use `queries`, omit `query` and make each entry self-contained.

querystring

Free text search keywords. Use for specific items like 'iPhone 14 Pro', and for extra details/variants that are not valid attribute values (e.g., 'Shelby', 'GTI', 'AMG'). For OR alternatives (or/oder) or multilingual variants, use `queries` instead.

userTextstring

Verbatim user request. Include this so the server can recover typos/synonyms.

Search One Step

SEARCH_ONE_STEP
Full Description

One-step Kleinanzeigen search.

Provide the full user request as userText (verbatim).

Parameters (1 required, 1 optional)
Required
userTextstring

Verbatim user request (full text).

Optional
limitinteger

Number of results (default 25).

Default: 25