List the user's Kleinanzeigen conversations with the latest messages.
UNTESTED, needs login: lists the logged-in user's Kleinanzeigen conversations (listing title, other party, last message preview, unread flag, time) from the messagebox, newest first. Pairs with message-seller for 'did the seller answer?'.
- Site
- Kleinanzeigen, Germany
- Version
- v1
- Runs, last 7 days
- No reports yet
- sha256
- d33173bf7509…
Requests
sent from your browser, in order- 1GET/m-access-token.jsonBearer for the messagebox gateway (401 when logged out, verified). Treat as secret: never in output.
- 2GETgateway.kleinanzeigen.de/messagebox/api/users/{{u.uid}}/conversations?page&sizegateway.kleinanzeigen.de answers 401 logged out and allows credentialed CORS from www (verified). Path and fields unverified.
Parameters
from your agentlimitenum 10 | 25 | 50 = 25
unread_onlyboolean = false
Returns
to your agentconversationsobject[]id, last_message, listing_id, listing_title, other_party, unread, updated
messages_urlstring
Where it can send
- www.kleinanzeigen.de
- gateway.kleinanzeigen.de
Anything else is blocked by the extension.
Reads from your session
- user_id from dom
Used only in requests to the addresses on the left. Never sent to wield.run or your agent.
Checks
a run passes when- output.conversations != `null`
Raw recipe
Served as canonical JSON from /api/v1/recipes/kleinanzeigen.de/my-messages, so its sha256 matches the ETag and the index.
Check it yourself
curl -s https://wield.run/api/v1/recipes/kleinanzeigen.de/my-messages | shasum -a 256 # d33173bf7509b4bb0b13bd47780bbf3fa78ee966b686cfc58014df32856c57a8
kleinanzeigen.de/my-messages.json, v1
{ "auth": { "derive": [ { "from": "dom", "name": "user_id", "regex": "[\"']?userId[\"']?\\s*[:=]\\s*[\"']?([0-9]{3,})", "required": false, "selector": "script:not([src])" } ] }, "description": "UNTESTED, needs login: lists the logged-in user's Kleinanzeigen conversations (listing title, other party, last message preview, unread flag, time) from the messagebox, newest first. Pairs with message-seller for 'did the seller answer?'.", "effect": "read", "id": "kleinanzeigen.de/my-messages", "keywords": [ "kleinanzeigen", "nachrichten", "postfach", "antwort verkäufer", "messages", "inbox", "did the seller reply" ], "login_check": { "expect": { "login_required_if": { "status": [ 401, 403 ] }, "status": [ 200 ] }, "id": "login_check", "request": { "headers": { "Accept": "application/json" }, "method": "GET", "url": "/m-access-token.json" } }, "output": { "schema": { "properties": { "conversations": { "items": { "properties": { "id": { "type": "string" }, "last_message": { "description": "Preview of the latest message", "type": [ "string", "null" ] }, "listing_id": { "type": [ "string", "null" ] }, "listing_title": { "type": [ "string", "null" ] }, "other_party": { "type": [ "string", "null" ] }, "unread": { "type": "boolean" }, "updated": { "type": [ "string", "null" ] } }, "type": "object" }, "type": "array" }, "messages_url": { "format": "uri", "type": "string" } }, "required": [ "conversations" ], "type": "object" }, "value": "let $u = params.unread_only in {conversations: steps.conversations[0].items[?!$u || unread], messages_url: 'https://www.kleinanzeigen.de/m-nachrichten.html'}" }, "params": { "additionalProperties": false, "properties": { "limit": { "default": 25, "enum": [ 10, 25, 50 ], "type": "integer" }, "unread_only": { "default": false, "type": "boolean" } }, "type": "object" }, "provenance": { "method": "manual", "notes": "UNTESTED. Verified logged out only: /m-access-token.json → 401; https://gateway.kleinanzeigen.de/messagebox/api/users/{id}/conversations → 401 with access-control-allow-origin https://www.kleinanzeigen.de + allow-credentials. The user id comes from the token response or the page (regex), whichever exists. Token JSON keys, conversation path and fields are unverified; record 'Nachrichten' with tools/har2recipe. The bearer travels as a step value, not a derived var: C1 should treat it as secret (request filed).", "recorded_at": "2026-11-07T12:41:00+01:00", "recorded_by": "C4" }, "requires_login": true, "schema": "https://wield.run/schema/recipe/v1.json", "site": { "country": "DE", "id": "kleinanzeigen.de", "language": "de", "login_url": "https://www.kleinanzeigen.de/m-einloggen.html", "name": "Kleinanzeigen", "origin": "https://www.kleinanzeigen.de", "origins": [ "https://www.kleinanzeigen.de", "https://gateway.kleinanzeigen.de" ] }, "steps": [ { "description": "Bearer for the messagebox gateway (401 when logged out, verified). Treat as secret: never in output.", "expect": { "content_type": "json", "login_required_if": { "status": [ 401, 403 ] }, "status": [ 200 ] }, "extract": { "json": { "bearer": "token || access_token || accessToken", "uid": "userId || user_id || `null`" } }, "id": "token", "request": { "headers": { "Accept": "application/json" }, "method": "GET", "url": "/m-access-token.json" } }, { "description": "gateway.kleinanzeigen.de answers 401 logged out and allows credentialed CORS from www (verified). Path and fields unverified.", "expect": { "content_type": "json", "login_required_if": { "status": [ 401, 403 ] }, "status": [ 200 ] }, "extract": { "json": { "items": "(conversations || _embedded.conversations || @)[].{id: to_string(id), listing_title: adTitle || ad.title || `null`, listing_id: to_string(adId || ad.id || ''), other_party: (role == 'Buyer' && sellerName || buyerName) || otherParticipantName || `null`, last_message: textShortTrimmed || lastMessage.text || `null`, unread: unread == `true` || unseen > `0`, updated: receivedDate || lastMessageDate || `null`}" } }, "foreach": { "as": "u", "in": "[{uid: steps.token.uid || vars.user_id}]", "max": 1 }, "id": "conversations", "request": { "headers": { "Accept": "application/json", "Authorization": "Bearer {{steps.token.bearer}}" }, "method": "GET", "query": { "page": "0", "size": "{{params.limit}}" }, "url": "https://gateway.kleinanzeigen.de/messagebox/api/users/{{u.uid}}/conversations" } } ], "task": "List the user's Kleinanzeigen conversations with the latest messages", "tos": { "notes": "Reads the user's own inbox from their own session, on request. Message contents stay on the device.", "reviewed": false }, "verify": { "checks": [ "output.conversations != `null`" ], "example_params": {} }, "version": 1 }