Skip to main content

Unofficial Wrapper for OLX API

Project description

Contributors Forks Stargazers Issues MIT License LinkedIn


Logo

OLX Api Wrapper

Simple client for OLX Developer API written in Python
Explore the docs »

View Demo · Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Contributing
  6. License
  7. Contact
  8. Acknowledgments

About The Project

OLX API Wrapper: Easy Solution for Working with OLX. With this Python library you can quickly fetch user data, handle adverts with simple CRUD operations, and seamlessly integrate with the OLX API. Simplify your development process and focus on building your app hassle-free.

(back to top)

Built With

  • Python
  • requests
  • dacite

(back to top)

Getting Started

In order to use OLX Api you need to sign in at OLX Developer Portal and create an App. More details: https://developer.olx.pl/articles/getting-access-to-api

Prerequisites

To use this API Wrapper you need to copy Client ID and Client Secret. Store them in the safe place. In your code you can use them as enviroment variables, they sholdn't be hardcoded. You can perform actions with API on:

  • OLX PL
  • OLX BG
  • OLX RO
  • OLX PT
  • OLX UA
  • OLX KZ

By default, all requests are sent to olx.PL. To change it you must pass country_code argument to every child of Olx class, i.e.:

olx.partner.Auth(country_code="bg")
olx.partner.Adverts(country_code="ro")
olx.partner.Users(country_code="pt")
olx.partner.CitiesDistricts(country_code="ua")
olx.partner.AdvertsStatistics(country_code="kz")
# etc...

Installation

  1. Install olx-api-wrapper package
    pip install olx-api-wrapper
    
  2. In order to get access token you need to authenticate with authorization code. How to get authorization code?
    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. Now you have access token which you will need to have an access to OLX API resources.
  4. authenticate() method returns AuthResponse, so you can get other info like refresh token, scope or information about remaining time left.
    auth_response = auth.authenticate(code='authorization_code')
    # AuthResponse(access_token='access_token', expires_in=86367, token_type='bearer', scope='read write v2', refresh_token='refresh_token')
    
    To refresh expired access token just use refresh method as below:
    auth.refresh(refresh_token=auth_response.refresh_token)
    # If token is still valid, the response will be AuthResponse with current access token and time left (in seconds)
    # If token is expired, the response will be AuthResponse with new access token and fresh expiration time
    

(back to top)

Usage

Using olx-api-wrapper in Your Project

Below are examples demonstrating the usage of olx-api-wrapper in your project. Please note that you require an access token to execute the actions described below.

Each section from the OLX API documentation corresponds to a separate object within olx-api-wrapper. For instance, the section Users in the documentation is represented as olx.Users. Additionally, each endpoint mentioned in the documentation corresponds to a single method. For example, the 'Get user' endpoint becomes the method olx.partner.Users().get_user(user_id).

If a method returns a value, it will be in the form of a dataclass object. This facilitates ease of use and clarity due to type hints. You can access values as properties, for example, user_values.email.

This structure provides a convenient and straightforward approach to integrating olx-api-wrapper into your project.

=====================================

First of all you need to assign an object you want to use to variable and then use available method of this object. You must to pass access_token to every single object.

Prerequisites: Import olx module.

import olx
  • Show authenticated user info
    users = olx.partner.Users(access_token='your_access_token')
    user_info = users.get_authenticated_user()
    # AuthenticatedUser(id=123, email='john@mail.com', status='confirmed', name='Paweł', phone='123123123', phone_login=None, created_at='2018-01-29 19:48:49', last_login_at='2024-04-26 17:20:48', avatar=None, is_business=True)
    
    user_email = user_info.email
    # john@mail.com
    
  • Get category suggestions for provided ad title
    categories_and_attributes = olx.partner.CategoriesAttributes(access_token='your_access_token')
    suggestions = categories_and_attributes.get_category_suggestions(ad_title='Honda Hornet')
    # [CategorySuggestion(id='1379', name='Szosowo - Turystyczny', path=[CategoryPath(id='5', name='Motoryzacja'), CategoryPath(id='81', name='Motocykle i Skutery')])]
    

(back to top)

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your 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

(back to top)

License

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

(back to top)

Contact

Paweł Stawikowski - pawikoski@gmail.com

Project Link: https://github.com/Pawikoski/olx-api-wrapper

(back to top)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

olx-api-wrapper-1.0.1.tar.gz (21.7 kB view details)

Uploaded Source

File details

Details for the file olx-api-wrapper-1.0.1.tar.gz.

File metadata

  • Download URL: olx-api-wrapper-1.0.1.tar.gz
  • Upload date:
  • Size: 21.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.11.9

File hashes

Hashes for olx-api-wrapper-1.0.1.tar.gz
Algorithm Hash digest
SHA256 d9aae604bbea2907b4a334c490b152fd8a7e95030ca74ebe2d116ab5e5b0eecc
MD5 eb77061400998303b3aee5e2c180ef2c
BLAKE2b-256 cfcc1c8a8522a6e76df66362801f1b52a3e725d64630cb9158f4a8f492c40191

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page