---
title: "Open a Kleinanzeigen session with the account's own credentials. Returns an opaque session id to carry in the x-session-id header on the session routes. The portal's own session is the only thing kept, sealed at rest; the password is not stored and cannot be read back out of the session. A Kleinanzeigen account is created in the Kleinanzeigen Android app, not through this API. Its password form is the one step behind a bot guard, so a plain HTTP client cannot post it: run that sign-in once in a browser, keep the refresh token it yields and send it as `login_token` instead of `password`. Everything after the login runs without a browser."
method: POST
path: "/v1/kleinanzeigen/login"
tags: ["Kleinanzeigen"]
---

# Open a Kleinanzeigen session with the account's own credentials. Returns an opaque session id to carry in the x-session-id header on the session routes. The portal's own session is the only thing kept, sealed at rest; the password is not stored and cannot be read back out of the session. A Kleinanzeigen account is created in the Kleinanzeigen Android app, not through this API. Its password form is the one step behind a bot guard, so a plain HTTP client cannot post it: run that sign-in once in a browser, keep the refresh token it yields and send it as \`login_token\` instead of \`password\`. Everything after the login runs without a browser.

`POST /v1/kleinanzeigen/login`

## Request

- Base URL: `https://api.scraper-api.com`
- URL: `https://api.scraper-api.com/v1/kleinanzeigen/login`
- Auth: API key in header `x-api-key`

**Live endpoint.** Credit cost: **1** (1 request = 1 credit).

## Request body

- object
  - `username` string, required: The portal account's e-mail address, or its phone number in +49… form where the platform signs in with one.
  - `password` string: The portal account's password, or the one-time code where the platform has no password.
  - `login_token` string: The token the challenge route handed back, which binds the code to the attempt it was sent for. On a portal that only asks for a code when it does not recognise the sign-in, this carries that mailed code itself.

## Response `200`

Platform-native JSON payload (ScrapeCreators-compatible).

## Other responses

- `400`: Missing or invalid parameters.
- `401`: Missing or invalid API key.
- `402`: Not enough credits.
- `429`: Rate limit exceeded.
- `502`: Upstream scrape failed.

---

[API](https://skmtc.dev/scraper-api/apis/scraper-api-com-api.md) · [All operations](https://skmtc.dev/scraper-api/apis/scraper-api-com-api/llms.txt) · [OpenAPI document](https://skmtc.dev/scraper-api/apis/scraper-api-com-api/revisions/3c0343a0e65a?raw)
