Hello,


This is an announcement about an upcoming breaking change related to the list=wbsubscribers API Query module, which has inconsistencies in its response.


Currently, calling the action=query&list=wbsubscribers API endpoint on a Wikibase returns a response with two different keys that could potentially contain results: subscribers and wbsubscribers. In addition, the XML response format is not structured as expected.


We have identified the root cause of this issue, which was a typo in the code that sets up the API module. We have fixed the issue and made the necessary changes to ensure that the results are now added to only one key, namely wbsubscribers instead of subscribers, and in the correct XML structure. The fix is already deployed on Test Wikidata, and we plan to deploy it to Wikidata on or after 2023-05-18.


Currently, an example API response may look like this:

JSON format

XML format

{

    "batchcomplete": true,

    "query": {

        "wbsubscribers": {},

        "subscribers": {

            "Q42": {

                "subscribers": [

                    {

                        "site": "enwiki"

                    }

                ]

            }

        }

    }

}

<?xml version="1.0"?>

<api batchcomplete="">

  <query>

    <wbsubscribers />

    <subscribers>

      <Q42>

        <subscribers>

          <subscriber site="enwiki" />

        </subscribers>

      </Q42>

    </subscribers>

  </query>

</api>


With the change, it will instead look like this:

JSON format

XML format

{

    "batchcomplete": true,

    "query": {

        "wbsubscribers": {

            "Q42": {

                "subscribers": [

                    {

                        "site": "enwiki"

                    }

                ]

            }

        }

    }

}

<?xml version="1.0"?>

<api batchcomplete="">

  <query>

    <wbsubscribers>

      <entity id="Q42">

        <subscribers>

          <subscriber site="enwiki" />

        </subscribers>

      </entity>

    </wbsubscribers>

  </query>

</api>


As an API user, you can prepare for this change by first checking if the wbsubscribers element in the response is empty or not. If it is nonempty, use it (the response is using the new format); if it is empty, fall back to using the subscribers element instead (it is still using the old format). This way, your code will work both before and after the change is deployed. (Later, you can remove the fallback code.)


If you have any questions or concerns about this change, please don’t hesitate to reach out to us in this ticket (phab:T300458).


Cheers,

--
Mohammed Sadat
Community Communications Manager, Wikidata

Wikimedia Deutschland e. V. | Tempelhofer Ufer 23-24 | 10963 Berlin
Phone: +49 (0) 30 577 116 2466
https://wikimedia.de

Grab a spot in my calendar for a chat: calendly.com/masssly.
Keep up to date! Current news and exciting stories about Wikimedia, Wikipedia and Free Knowledge in our newsletter (in German): Subscribe now.

Imagine a world in which every single human being can freely share in the sum of all knowledge. Help us to achieve our vision!
https://spenden.wikimedia.de

Wikimedia Deutschland – Gesellschaft zur Förderung Freien Wissens e. V. Eingetragen im Vereinsregister des Amtsgerichts Berlin-Charlottenburg unter der Nummer 23855 B. Als gemeinnützig anerkannt durch das Finanzamt für Körperschaften I Berlin, Steuernummer 27/029/42207.