Close search
 
Home | Tech Support | Protecting the COUNTER API

Protecting the COUNTER API

04 November 2025

The internet is a dangerous place. Internet traffic is full of automated bots, scripts, and other malicious actors. Therefore it is legitimate to protect any resource that is exposed to the internet from potential attacks.

The COUNTER API (formerly sushi) is no exception and has some built-in protection mechanisms which are part of the Code of Practice.

how captcha works
  • The COUNTER API must be provided over HTTPS. This ensures encryption of the traffic in transit.
  • In addition to the traditional customer_id and requestor_id credentials, the COUNTER API also supports API keys for enhanced security.
  • The API contains a throttling mechanism to prevent abuse by responding with several different Exceptions. These signal to the client that it needs to slow down or postpone its requests. For example, Exception 1010 means that the COUNTER API is too busy to execute a request, 1011 means the report has been queued for later processing, and 1020 means that the API client has made too many requests in too short a time.

So the COUNTER API does have protections. But there are some protection mechanisms which don’t make sense in the context of the COUNTER API. Report providers must not use these restrictions on the COUNTER API:

  • IP address based authentication. This used to be permitted under the terms of Release 5, but it caused a lot of problems!
  • JavaScript based Captcha. The COUNTER API was created explicitly as a machine-to-machine interface, so Captcha tools designed to make a user prove they are human makes no sense.

Please keep this in mind when you are developing your COUNTER API service. Using the right protection will make life easier for your library clients and harvesting tools without compromising security.

Thank you to Beda Kosata for this latest tech blog post

This website uses cookies
This site uses cookies to enhance your browsing experience. We use necessary cookies to make sure that our website works. We’d also like to set analytics cookies that help us make improvements by measuring how you use the site. By clicking “Allow All”, you agree to the storing of cookies on your device to enhance site navigation, analyse site usage, and assist in our marketing efforts.
These cookies are required for basic functionalities such as accessing secure areas of the website, remembering previous actions and facilitating the proper display of the website. Necessary cookies are often exempt from requiring user consent as they do not collect personal data and are crucial for the website to perform its core functions.
A “preferences” cookie is used to remember user preferences and settings on a website. These cookies enhance the user experience by allowing the website to remember choices such as language preferences, font size, layout customization, and other similar settings. Preference cookies are not strictly necessary for the basic functioning of the website but contribute to a more personalised and convenient browsing experience for users.
A “statistics” cookie typically refers to cookies that are used to collect anonymous data about how visitors interact with a website. These cookies help website owners understand how users navigate their site, which pages are most frequently visited, how long users spend on each page, and similar metrics. The data collected by statistics cookies is aggregated and anonymized, meaning it does not contain personally identifiable information (PII).
Marketing cookies are used to track user behaviour across websites, allowing advertisers to deliver targeted advertisements based on the user’s interests and preferences. These cookies collect data such as browsing history and interactions with ads to create user profiles. While essential for effective online advertising, obtaining user consent is crucial to comply with privacy regulations.