*(apologies for cross posting)* Hello everyone,
As you may already know, we are developing a new REST API to improve programmatic access to data from Wikidata and other Wikibase instances. Many thanks to everyone who gave us the initial feedback on the proposed implementation plan of the REST API and subsequently tested the experimental phase of it on Beta Wikidata https://wikidata.beta.wmflabs.org.
All the items listed in our previous communication https://lists.wikimedia.org/hyperkitty/list/wikidata@lists.wikimedia.org/message/26Q4RUTPFN2SWZWOEA3TXBH5MCPHLEBU/ as still needing to be completed for the initial release have now been completed and we are pleased to announce that the Wikibase REST API is planned to go live on Wikidata about a week later.
What is the current state capable of doing?
-
Retrieve the data of an Item with ‘GET /entities/items/{item_id}’ and filter what fields (i.e. type, labels, descriptions, aliases, statements, sitelinks) are returned when reading the Item data -
Retrieve all statements of an Item with ‘GET /entities/items/{item_id}/statements’ -
Retrieve the data of a single statement of an Item with ‘GET /entities/items/{item_id}/statements/{statement_id}’ or ‘GET /statements/{statement_id}’ -
Conditionally request the data only if it has changed since the specified revision/timestamp (using If-None-Match, If-Modified-Since HTTP headers) -
Create a statement on an Item with ‘POST /entities/items/{item_id}/statements’ -
Authenticate and authorize as a Beta Wikidata user when making edits using the API, as well as provide edit tags and edit comment, and mark an edit as one made by a bot. -
Replacing the statement on an Item with ‘PUT /entities/items/{item_id}/statements/{statement_id}’ or ‘PUT /statements/{statement_id}’ -
Removing the statement from an Item with ‘DELETE /entities/items/{item_id}/statements/{statement_id}’ or ‘DELETE /statements/{statement_id}’ -
Automated edit summaries
The following functionality is still awaiting a final security review of a library https://phabricator.wikimedia.org/T316523 and will be enabled once that is finished:
-
Editing a statement on an Item with ‘PATCH /entities/items/{item_id}/statements/{statement_id}’ or ‘PATCH /statements/{statement_id}’
Please note that the following items previously listed under "The following will likely not be available in the first version but follow later" have not yet been finished and will not be available in this initial release:
-
Creating or deleting an Item -
Getting a statement from an Item based on the Property ID in the statement -
Any operation (reading, adding, editing, removing) on sitelinks, labels, descriptions and aliases -
Any operation on entity types other than Items (i.e. Properties, Lexemes, …) -
Translated error messages
However, we will continue to work on these items in the future to provide a more comprehensive REST API. In order to prioritize our next steps, we would greatly appreciate feedback on which missing features you would find most useful to add next.
If you have any questions or want to provide feedback please let us know at Wikidata talk:REST API feedback round https://www.wikidata.org/wiki/Wikidata_talk:REST_API_feedback_round#The_Wikibase_REST_API_is_now_available_for_testing_on_Test.Wikidata_(January_2023). As this new API is more tailored to the Wikibase data model than the Action API, we have outlined the differences in the JSON data format between the two https://doc.wikimedia.org/Wikibase/master/php/rest_data_format_differences.html for you for easy comparison.
Thank you for your patience and support as we continue to improve the Wikibase REST API.
Cheers,