HasOffers
This package provides a Python low-level client for the HasOffers API.
Installation
pip install hasoffers
Usage Examples
Instantiate a client with your network token and network id:
from hasoffers import BrandClient client = BrandClient("networktoken", "networkid")
Or for the Affiliate API:
from hasoffers import AffiliateClient client = AffiliateClient("api_key", "network_id")
The general usage to call an API method is client.request(target, method, **params)
.
For example, to retrieve all offer categories:
response = client.request("Application", "findAllOfferCategories", filters={ "status": {"NOT_EQUAL": "deleted"} }) if response.success: # do something with response.data
Or to retrieve all conversions for an advertiser:
response = client.request("Conversion", "findAll", page=1, limit=100, filters={ "advertiser_id": 444, }) if response.success: # do something with response.data
To use a combination of OR and AND in filters:
# Find all conversions where (advertiser_id == 444 OR advertiser_id == 555 OR revenue >= 100) AND user_agent contains "AppleWebKit" response = client.request("Conversion", "findAll", page=1, limit=100, filters={ "OR": { "advertiser_id": [444, 555], "revenue": { "GREATER_THAN_OR_EQUAL_TO": 100 } }, "user_agent": { "LIKE": "%AppleWebKit%" } })
Note that a special keyword argument called response_class
can be passed to substitute the default response wrapper. For example:
from hasoffers import Response class CustomResponse(Response): def next_page(self): return int(self.data.get('page')) + 1 def has_more(self): return int(self.data.get('page')) < int(self.data.get('pageCount')) response = client.request("Conversion", "findAll", limit=100, page=1, response_class=CustomResponse)
Running Tests
tox
Contributions
All contributions and comments are welcome.
Change Log
v0.2.1
- Add ability to specify HTTP methods (verbs) when making a request. Thanks jeffkayser
v0.2.0
- Add support for Affiliate API. Thanks jarradh
v0.1.1
- Switch to Semantic Versioning
- Fix issue with parse_requirements for newer versions of pip (>=6.0.0)
v0.1
- Initial