An open API service indexing awesome lists of open source software.

https://github.com/danielwte/ebay-kleinanzeigen-api

This tool acts as an API interface, you can use it to get random listings from Ebay-Kleinanzeigen.de, exact data from specific listings and even views of listings.
https://github.com/danielwte/ebay-kleinanzeigen-api

api docker ebay-api ebay-kleinanzeigen nginx python scraper scraper-api

Last synced: 15 days ago
JSON representation

This tool acts as an API interface, you can use it to get random listings from Ebay-Kleinanzeigen.de, exact data from specific listings and even views of listings.

Awesome Lists containing this project

README

        

# Ebay Kleinanzeigen API


Ebay Kleinanzeigen API


A powerful API interface for Ebay-Kleinanzeigen.de that enables you to fetch listings and specific data.


๐Ÿš€ Looking for a ready-to-use solution?


Try it at kleinanzeigen-agent.de ยป


โœ“ Automated Search Agents


โœ“ Search & Detail API


Report Bug
ยท
Request Feature


(back to top)

## Getting Started

### Want to skip the setup?
Visit [kleinanzeigen-agent.de](https://kleinanzeigen-agent.de/features/developer-api) for our hosted solution with additional features and zero configuration required.

### Prerequisites
- Python 3.12 or higher
- pip (Python package manager)
- Playwright

### Installation

1. Clone the repository
```sh
git clone https://github.com/DanielWTE/ebay-kleinanzeigen-api.git
cd ebay-kleinanzeigen-api
```

2. Install dependencies
```sh
pip install -r requirements.txt
playwright install chromium
```

3. Start the API
```sh
uvicorn main:app --reload
```

The API will be available at `http://localhost:8000`

### API Endpoints

#### 1. Fetch Listings
**Endpoint:** `GET /inserate`

**Description:** Retrieves a list of listings based on search criteria.

##### Query Parameters:
- **`query`** *(string, optional)*: The search term (e.g., "fahrrad" to search for bicycles).
- **`location`** *(string, optional)*: The location or postal code to narrow the search (e.g., `10178` for Berlin).
- **`radius`** *(integer, optional)*: The search radius in kilometers from the specified location (e.g., `5` for a 5 km radius).
- **`min_price`** *(integer, optional)*: The minimum price in Euros for the listings (e.g., `200` for at least 200 Euros).
- **`max_price`** *(integer, optional)*: The maximum price in Euros for the listings (e.g., `500` for at most 500 Euros).
- **`page_count`** *(integer, optional)*: The number of pages to search or return (e.g., `5` for the first 5 pages, default is 1, max: 20 pages).

##### Example Request:
```http
GET /inserate?query=fahrrad&location=10178&radius=5&min_price=200&page_count=5
```

#### 2. Fetch Listing Details
**Endpoint:** `GET /inserat/{id}`

**Description:** Retrieves detailed information about a specific listing.

##### Path Parameters:
- **`id`** *(string)*: The unique identifier of the listing to fetch details for.

##### Example Request:
```http
GET /inserat/12345
```

### Documentation

#### API Response Format
All API endpoints return responses in the following JSON format:
```json
{
"success": true,
"data": [
...
]
}
```

API documentation is available at `http://localhost:8000/docs` when running locally.

## License
Distributed under the MIT License. See `LICENSE` for more information.

(back to top)