https://github.com/pawikoski/olx-api-wrapper
An unoffical wrapper for OLX Api
https://github.com/pawikoski/olx-api-wrapper
api api-wrapper olx olx-api rest-api wrapper wrapper-api
Last synced: 2 months ago
JSON representation
An unoffical wrapper for OLX Api
- Host: GitHub
- URL: https://github.com/pawikoski/olx-api-wrapper
- Owner: Pawikoski
- License: mit
- Created: 2024-04-29T19:20:36.000Z (almost 2 years ago)
- Default Branch: master
- Last Pushed: 2025-06-10T19:42:45.000Z (10 months ago)
- Last Synced: 2025-09-28T22:02:13.992Z (6 months ago)
- Topics: api, api-wrapper, olx, olx-api, rest-api, wrapper, wrapper-api
- Language: Python
- Homepage:
- Size: 79.1 KB
- Stars: 12
- Watchers: 2
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[![Contributors][contributors-shield]][contributors-url]
[![Forks][forks-shield]][forks-url]
[![Stargazers][stars-shield]][stars-url]
[![Issues][issues-shield]][issues-url]
[![MIT License][license-shield]][license-url]
[![LinkedIn][linkedin-shield]][linkedin-url]
OLX API Wrapper
A Python client for the OLX Developer API, enabling seamless integration with OLX services.
Explore the docs »
View Demo
·
Report Bug
·
Request Feature
Table of Contents
## About The Project
OLX API Wrapper is a Python library designed to simplify integration with the OLX Developer API. It allows developers to:
- Fetch user data
- Manage adverts with CRUD operations
- Access OLX API resources effortlessly
This library is ideal for developers looking to streamline their interaction with OLX services.
### Built With
- [![Python][python]][python-url]
- [![requests][requests]][requests-url]
- [![dacite][dacite]][dacite-url]
## Getting Started
To use the OLX API Wrapper, you need to sign in to the OLX Developer Portal and create an app. For more details, visit [Getting Access to the API](https://developer.olx.pl/articles/getting-access-to-api).
### Prerequisites
1. [Not required for public API] Obtain your **Client ID** and **Client Secret** from the OLX Developer Portal.
2. Store them securely (e.g., as environment variables). Avoid hardcoding them in your code.
Supported countries:
- OLX PL
- OLX BG
- OLX RO
- OLX PT
- OLX UA
- OLX KZ
By default, requests are sent to OLX **PL**. To change the country, pass the `country_code` argument to the relevant class:
```python
from olx.partner import Auth, Adverts
auth = Auth(country_code="bg")
adverts = Adverts(country_code="ro")
```
### Installation
1. Install the package:
```sh
pip install olx-api-wrapper
```
2. Authenticate using the authorization code:
```python
from olx.partner import Auth
auth = Auth(client_id="your_client_id", client_secret="your_client_secret")
auth.authenticate(code="authorization_code")
access_token = auth.access_token
```
3. Use the `AuthResponse` object to retrieve additional information:
```python
auth_response = auth.authenticate(code="authorization_code")
print(auth_response.refresh_token) # Retrieve the refresh token
```
4. Refresh an expired access token:
```python
auth.refresh(refresh_token=auth_response.refresh_token)
```
## Usage
Below are examples of how to use the `olx-api-wrapper` in your project. Ensure you have an access token before proceeding.
### Example 1: Fetch Authenticated User Info
```python
from olx.partner import Users
users = Users(access_token="your_access_token")
user_info = users.get_authenticated_user()
print(user_info.email) # Output: john@mail.com
```
### Example 2: Get Category Suggestions
```python
from olx.partner import CategoriesAttributes
categories = CategoriesAttributes(access_token="your_access_token")
suggestions = categories.get_category_suggestions(ad_title="Honda Hornet")
print(suggestions)
```
## Public API Methods
The `olx.public` module provides methods to interact with OLX's public API. Below are the available methods and their usage examples:
### Example 1: Fetch Offers
```python
from olx.public import OlxPublic
olx_public = OlxPublic()
offers = olx_public.get_offers(category_id=123, offset=0, limit=10)
print(offers)
```
### Example 2: Get Offer Details
```python
from olx.public import OlxPublic
olx_public = OlxPublic()
offer = olx_public.get_offer(offer_id=456)
print(offer)
```
### Example 3: Get Suggested Offers
```python
from olx.public import OlxPublic
olx_public = OlxPublic()
suggested_offers = olx_public.get_suggested_offers(offer_id=456)
print(suggested_offers)
```
### Example 4: Get Offer Filters
```python
from olx.public import OlxPublic
olx_public = OlxPublic()
filters = olx_public.get_offer_filters()
print(filters)
```
### Example 5: Get Breadcrumbs
```python
from olx.public import OlxPublic
olx_public = OlxPublic()
breadcrumbs = olx_public.get_breadcrumbs(category_id=123)
print(breadcrumbs)
```
### Example 6: SEO Popular Searches
```python
from olx.public import OlxPublic
olx_public = OlxPublic()
popular_searches = olx_public.seo.popular_searches(category_id=123, count=5)
print(popular_searches)
```
### Example 7: SEO Offer Details
```python
from olx.public import OlxPublic
olx_public = OlxPublic()
offer_seo = olx_public.seo.offer_seo(offer_id=456)
print(offer_seo)
```
## Contributing
Contributions are welcome! Follow these steps to contribute:
1. Fork the repository.
2. Create a feature branch (`git checkout -b feature/AmazingFeature`).
3. Commit your changes (`git commit -m 'Add some AmazingFeature'`).
4. Push to the branch (`git push origin feature/AmazingFeature`).
5. Open a pull request.
## License
Distributed under the MIT License. See `LICENSE` for more information.
## Contact
Paweł Stawikowski - pawikoski@gmail.com
Project Link: [https://github.com/Pawikoski/olx-api-wrapper](https://github.com/Pawikoski/olx-api-wrapper)
[contributors-shield]: https://img.shields.io/github/contributors/Pawikoski/olx-api-wrapper.svg?style=for-the-badge
[contributors-url]: https://github.com/Pawikoski/olx-api-wrapper/graphs/contributors
[forks-shield]: https://img.shields.io/github/forks/Pawikoski/olx-api-wrapper.svg?style=for-the-badge
[forks-url]: https://github.com/Pawikoski/olx-api-wrapper/network/members
[stars-shield]: https://img.shields.io/github/stars/Pawikoski/olx-api-wrapper.svg?style=for-the-badge
[stars-url]: https://github.com/Pawikoski/olx-api-wrapper/stargazers
[issues-shield]: https://img.shields.io/github/issues/Pawikoski/olx-api-wrapper.svg?style=for-the-badge
[issues-url]: https://github.com/Pawikoski/olx-api-wrapper/issues
[license-shield]: https://img.shields.io/github/license/Pawikoski/olx-api-wrapper.svg?style=for-the-badge
[license-url]: https://github.com/Pawikoski/olx-api-wrapper/blob/master/LICENSE
[linkedin-shield]: https://img.shields.io/badge/-LinkedIn-black.svg?style=for-the-badge&logo=linkedin&colorB=555
[linkedin-url]: https://linkedin.com/in/paweł-stawikowski
[python]: https://img.shields.io/badge/python-000000?style=for-the-badge&logo=python&logoColor=white
[python-url]: https://python.org/
[dacite]: https://img.shields.io/badge/dacite-20232A?style=for-the-badge&logo=github&logoColor=61DAFB
[dacite-url]: https://github.com/konradhalas/dacite
[requests]: https://img.shields.io/badge/requests-35495E?style=for-the-badge&logo=github&logoColor=4FC08D
[requests-url]: https://github.com/psf/requests