Skip to Content
Menu
This question has been flagged
2 Replies
759 Views

„Your application has exceeded usage limit on this call, please make call to Developer Analytics API to check your call usage.(518)“


I've been having problems with eBay for days. I can no longer put items online and the Odoo support doesn't help either.


Do you have another idea?

Avatar
Discard
Best Answer

Steps to Resolve:

  1. Check eBay API Usage Limits:
    • Log into your eBay Developer account.
    • Navigate to the "Developer Analytics API" to check your current usage and quota limits.
    • Confirm whether the number of API calls made by your Odoo system exceeds the allowed limit.
  2. Optimize API Calls in Odoo:
    • Review the Odoo connector or integration module responsible for communicating with the eBay API.
    • Reduce unnecessary API calls by caching responses or batching requests.
    • Ensure that operations like fetching listings, uploading items, and syncing data are scheduled efficiently to avoid spamming the API.
  3. Increase API Quota:
    • Contact eBay Developer Support to request a higher API quota if your application genuinely requires more capacity.
    • Justify the increased usage by providing details of your application and how it complies with eBay's API policies.

Implement API Call Throttling:

Add a mechanism in your Odoo eBay connector to respect eBay's rate limits. For example:

  • import time

    def make_api_call(api_method, *args, **kwargs):
        try:
            response = api_method(*args, **kwargs)
            return response
        except ApiLimitExceededError as e:
            print("API limit exceeded. Waiting for retry...")
            time.sleep(60)  # Wait before retrying
            return make_api_call(api_method, *args, **kwargs)

Debugging & Logs:

  • Enable logging in Odoo for the eBay integration to identify which operations are causing excessive calls.
  • Navigate to Settings > Technical > Logs and filter by the eBay connector to review detailed error messages.

Update or Reconfigure the eBay Integration Module:

  • Ensure your Odoo eBay integration module is updated to the latest version.
  • Verify that your eBay credentials, API keys, and endpoints are correctly configured in Settings > eBay Integration.

Code Snippet for Scheduled API Calls

To avoid excessive API calls, implement a scheduled task for syncing eBay data:

from odoo import models, fields, api

class EbaySync(models.Model):
    _name = 'ebay.sync'
    _description = 'eBay Synchronization'

    @api.model
    def scheduled_sync(self):
        # Fetch listings in batches to reduce API calls
        try:
            batch_size = 50
            offset = 0
            while True:
                items = self.env['ebay.listing'].search([], limit=batch_size, offset=offset)
                if not items:
                    break
                for item in items:
                    self.sync_item_to_ebay(item)
                offset += batch_size
        except Exception as e:
            _logger.error(f"Error during eBay sync: {e}")

    def sync_item_to_ebay(self, item):
        # Placeholder for your sync logic
        pass

Avatar
Discard
Best Answer

I've had the same issues and nobody could figure it out until I finally solved it myself. The answer was really simple. If you create products on odoo and put them on ebay and they get sold then the odoo products ebay-status is either on ended or active, but the connection between the odoo product and the eBay-product is not automatically severed after being sold. that means that for every sold product odoo tries to sycronize with the eBay-product about every 15 minutes which amounts to hundreds of api-calls an hour... and because the ebay-developer api is capped at 5000 calls a day you get this error and can't do anything with ebay anymore.. you can see the api-calls if you are in developer mode - go to settings - technical - databank structure - logging .... what you have to do is the following... go to products in list view, check every sold item, go to actions and choose the last action that disables the connection to the ebay product... the action is called "ebay: Unlink Product listing."  If you do that regularly you will prevent odoo from overloading your ebay developer api... hope it works for you... take care, frederik

Avatar
Discard