API:REST API/uk: Difference between revisions
Updating to match new version of source page |
Updating to match new version of source page |
||
| (19 intermediate revisions by 3 users not shown) | |||
| Line 1: | Line 1: | ||
<languages/> |
<languages /> |
||
__notoc__ |
|||
{{REST API}} |
|||
<span lang="en" dir="ltr" class="mw-content-ltr">The MediaWiki REST API provides access to wiki content and functionality through a [[w:REST|RESTful]], HTTP interface.</span> |
|||
{{TOCright|limit=2}} |
|||
<span lang="en" dir="ltr" class="mw-content-ltr">It supports operations like searching, getting and transforming wiki pages, and accessing page history.</span> |
|||
{{ContentGrid |
|||
<span lang="en" dir="ltr" class="mw-content-ltr">The MediaWiki '''REST API''' lets you interact with MediaWiki by sending [[w:Hypertext Transfer Protocol|HTTP]] requests to <code>rest.php</code> URLs.</span> |
|||
|content= |
|||
<span lang="en" dir="ltr" class="mw-content-ltr">You can use the API to build apps and scripts that search and display wiki pages, get media files, and explore page history.</span> |
|||
{{Colored box |
|||
<span |
|title = <span lang="en" dir="ltr" class="mw-content-ltr">Get started</span> |
||
|content = <span lang="en" dir="ltr" class="mw-content-ltr">Learn about the API and get started making basic API calls.</span> |
|||
== Швидкий початок == |
|||
* {{ll|API:REST_API/Get_started|2=<span lang="en" dir="ltr" class="mw-content-ltr">Quick start</span>}} |
|||
<span class="mw-code mw-highlight plainlinks" style="display:block"><!-- |
|||
* {{ll|API:REST_API/Policies|2=<span lang="en" dir="ltr" class="mw-content-ltr">Access and stability policies</span>}} |
|||
-->{{#tag:span|# Search English Wikipedia for an article about Earth|class=c1}} |
|||
}} |
|||
$ curl {{#tag:span|"https://en.wikipedia.org/w/rest.php/v1/search/page?q=earth&limit=1"|class=s2}} |
|||
{{Colored box |
|||
</span> |
|||
|title = <span lang="en" dir="ltr" class="mw-content-ltr">API reference</span> |
|||
|content = <span lang="en" dir="ltr" class="mw-content-ltr">Interact with the API and find documentation for each endpoint.</span> |
|||
{{Clickable button 2 |
|||
* <span lang="en" dir="ltr" class="mw-content-ltr">[[Special:RestSandbox|Special:RestSandbox]] on any Wikimedia wiki ([[wikipedia:Special:RestSandbox|English Wikipedia example]])</span> |
|||
* {{ll|API:REST_API/Reference|2=<span lang="en" dir="ltr" class="mw-content-ltr">API reference</span>}} |
|||
|class=mw-ui-progressive |
|||
* {{ll|API:REST API/Status codes|2=<span lang="en" dir="ltr" class="mw-content-ltr">Status codes and error messages</span>}} |
|||
|url=https://en.wikipedia.org/w/rest.php/v1/search/page?q=earth&limit=1 |
|||
}} |
|||
{{Colored box |
|||
|title = <span lang="en" dir="ltr" class="mw-content-ltr">Tutorials</span> |
|||
|content = <span lang="en" dir="ltr" class="mw-content-ltr">Explore working examples of how you can use the API.</span> |
|||
* [https://public-paws.wmcloud.org/User:APaskulin_(WMF)/en-wikipedia-search.ipynb <span lang="en" dir="ltr" class="mw-content-ltr">Search Wikipedia articles</span>] |
|||
* [https://public-paws.wmcloud.org/User:APaskulin_(WMF)/en-wikipedia-page-history.ipynb <span lang="en" dir="ltr" class="mw-content-ltr">Explore page history</span>] |
|||
* [https://public-paws.wmcloud.org/User:APaskulin_(WMF)/en-wikipedia-images.ipynb <span lang="en" dir="ltr" class="mw-content-ltr">Reuse media files</span>] |
|||
}} |
|||
{{Colored box |
|||
|title = <span lang="en" dir="ltr" class="mw-content-ltr">User guides</span> |
|||
|content = <span lang="en" dir="ltr" class="mw-content-ltr">Find instructions for tasks related to this API.</span> |
|||
* {{ll|OAuth/For Developers|2=<span lang="en" dir="ltr" class="mw-content-ltr">Authenticate with OAuth</span>}} |
|||
* {{ll|API:REST API/Extensions|2=<span lang="en" dir="ltr" class="mw-content-ltr">Build REST APIs for extensions</span>}} |
|||
* {{ll|Manual:CORS|2=<span lang="en" dir="ltr" class="mw-content-ltr">Make CORS requests</span>}} |
|||
}} |
|||
}} |
}} |
||
<span id="Data_format"></span> |
|||
== Формат даних == |
|||
<span lang="en" dir="ltr" class="mw-content-ltr">REST API endpoints return data in [[w:JSON|JSON]] or [[w:HTML|HTML]] format.</span> |
|||
<span lang="en" dir="ltr" class="mw-content-ltr">See the [[Special:MyLanguage/API:REST API/Reference|API reference]] for the content type supported by each endpoint.</span> |
|||
<span id="Methods"></span> |
|||
== Методи == |
|||
<div lang="en" dir="ltr" class="mw-content-ltr"> |
<div lang="en" dir="ltr" class="mw-content-ltr"> |
||
== API features == |
|||
The API supports standard [[w:Hypertext Transfer Protocol#Request methods|HTTP request methods]]. |
|||
</div> |
</div> |
||
{| class="wikitable" |
|||
|- |
|||
! GET |
|||
| <span lang="en" dir="ltr" class="mw-content-ltr">Retrieve resource</span> |
|||
|- |
|||
! HEAD |
|||
| <span lang="en" dir="ltr" class="mw-content-ltr">Return [[w:List of HTTP header fields|HTTP headers]] for a GET request without response data</span> |
|||
|- |
|||
! POST |
|||
| <span lang="en" dir="ltr" class="mw-content-ltr">Create resource</span> |
|||
|- |
|||
! PUT |
|||
| <span lang="en" dir="ltr" class="mw-content-ltr">Update or create resource</span> |
|||
|} |
|||
<span id="URL_structure"></span> |
|||
== Структура URL == |
|||
<div lang="en" dir="ltr" class="mw-content-ltr"> |
<div lang="en" dir="ltr" class="mw-content-ltr"> |
||
The MediaWiki REST API offers the following key features: |
|||
API endpoints share a consistent URL structure that includes the wiki's base URL, the wiki's [[Special:MyLanguage/Manual:$wgScriptPath|script path]], and the API version. |
|||
</div> |
</div> |
||
* <span lang="en" dir="ltr" class="mw-content-ltr">Build apps and scripts that access content from Wikipedia, or any other [[m:Special:SiteMatrix|Wikimedia project]].</span> |
|||
<syntaxhighlight lang=bash> |
|||
* <span lang="en" dir="ltr" class="mw-content-ltr">Get data in [[w:JSON|JSON]] or [[w:HTML|HTML]] format.</span> |
|||
# URL structure |
|||
* <span lang="en" dir="ltr" class="mw-content-ltr">Define {{ll|API:REST_API/Extensions|extension-specific API endpoints}} within MediaWiki extensions.</span> |
|||
[project url]/[script path]/rest.php/v[version number]/ |
|||
<span lang="en" dir="ltr" class="mw-content-ltr">Compared to the {{ll|API:Action_API|MediaWiki Action API}}, the REST API offers:</span> |
|||
# Example URL: Get the history of the Main Page of English Wikipedia |
|||
https://en.wikipedia.org/w/rest.php/v1/page/Main_Page/history |
|||
</syntaxhighlight> |
|||
* <span lang="en" dir="ltr" class="mw-content-ltr">A smaller, more streamlined set of operations and resources.</span> |
|||
<span id="Versioning"></span> |
|||
* <span lang="en" dir="ltr" class="mw-content-ltr">Better performance, and cached responses to reduce system load on Wikimedia projects.</span> |
|||
== Версії == |
|||
<span lang="en" dir="ltr" class="mw-content-ltr"> |
* <span lang="en" dir="ltr" class="mw-content-ltr">Simple, consistent URL structure for endpoints.</span> |
||
<span lang="en" dir="ltr" class="mw-content-ltr">Following the principles of [https://semver.org/ semantic versioning], the version is incremented when an endpoint is changed in a backwards-incompatible way, such as removing a response property or adding a required parameter.</span> |
|||
<span lang="en" dir="ltr" class="mw-content-ltr">Within a major version, the API may change in backwards-compatible ways, such as adding a response property or optional request parameter.</span> |
|||
<span lang="en" dir="ltr" class="mw-content-ltr">To learn more about how the MediaWiki REST API compares to other available APIs, see {{ll|API}}.</span> |
|||
<!-- TODO: When new versions are used, this should be converted to use {{tmpl}} |
|||
-- or something in order to minimise translation unit duplication --> |
|||
{| class="wikitable" |
|||
|- |
|||
! <code>/v1/</code> (<span lang="en" dir="ltr" class="mw-content-ltr">latest</span>) |
|||
| <span lang="en" dir="ltr" class="mw-content-ltr">Available in {{ll|MediaWiki 1.35}}</span> |
|||
|} |
|||
<span id="Permissions_and_authorization"></span> |
|||
== Дозволи й авторизація == |
|||
<span lang="en" dir="ltr" class="mw-content-ltr">The REST API is designed to be used with the {{ll|Extension:OAuth|OAuth}} extension for user authentication and authorization.</span> |
|||
<span lang="en" dir="ltr" class="mw-content-ltr">However, regardless of the authentication method, the API responds to the presence of a logged-in user and returns content appropriate to that user's permissions.</span> |
|||
<span id="Accessing_Wikimedia_projects_using_the_REST_API"></span> |
|||
== Доступ до проєктів Вікімедіа за допомогою REST API == |
|||
<span lang="en" dir="ltr" class="mw-content-ltr">You can use the REST API to access [https://www.wikipedia.org/ Wikipedia], [https://www.wiktionary.org/ Wiktionary], and other Wikimedia projects in multiple languages.</span> |
|||
<span lang="en" dir="ltr" class="mw-content-ltr">For a complete list of Wikimedia project URLs, see [[m:Special:SiteMatrix|Meta-Wiki’s site matrix]].</span> |
|||
<span id="Request_limit"></span> |
|||
=== Обмеження запиту === |
|||
<span lang="en" dir="ltr" class="mw-content-ltr">There is no fixed limit on requests to the API, but your client may be blocked if you endanger the stability of a site.</span> |
|||
<span lang="en" dir="ltr" class="mw-content-ltr">To stay within a safe request rate, wait for each request to finish before sending another request.</span> |
|||
<span id="Client_identification"></span> |
|||
=== Ідентифікація клієнта === |
|||
<span lang="en" dir="ltr" class="mw-content-ltr">Wikimedia sites require an HTTP [[w:User-Agent header|User-Agent header]] for all API requests.</span> |
|||
<span lang="en" dir="ltr" class="mw-content-ltr">This helps identify your app and ensures that system administrators can contact you if a problem arises.</span> |
|||
<span lang="en" dir="ltr" class="mw-content-ltr">Clients making requests without a User-Agent header may be IP-blocked without notice.</span> |
|||
<div lang="en" dir="ltr" class="mw-content-ltr"> |
<div lang="en" dir="ltr" class="mw-content-ltr"> |
||
== Get help == |
|||
The User-Agent header can include a user page on the local wiki, a user page on a related wiki using [[m:Special:MyLanguage/Help:Interwiki linking on Wikimedia wikis|interwiki linking syntax]], a URL for a relevant external website, or an email address. |
|||
</div> |
</div> |
||
{{Component|mediawiki-rest-api}} |
|||
{{#tag:syntaxhighlight| |
|||
# Preferred format for User-Agent headers |
|||
{{tmpl|0= |
|||
<$2>/<$1> (<$3>) <$4>/<$1> |
|||
|1=version |
|||
|2=client name |
|||
|3=contact information |
|||
|4=library/framework name |
|||
}} |
|||
| lang = "bash" |
|||
}} |
|||
<span lang="en" dir="ltr" class="mw-content-ltr">If you are calling the API from browser-based JavaScript, you may not be able to influence the User-Agent header, depending on the browser.</span> |
|||
<span lang="en" dir="ltr" class="mw-content-ltr">To work around this, use the <code>Api-User-Agent</code> header.</span> |
|||
<span lang="en" dir="ltr" class="mw-content-ltr">See the [[foundation:Special:MyLanguage/Policy:User-Agent policy|User-Agent policy]] for more information.</span> |
|||
<span id="Authorization"></span> |
|||
=== Авторизація === |
|||
<div lang="en" dir="ltr" class="mw-content-ltr"> |
<div lang="en" dir="ltr" class="mw-content-ltr"> |
||
== Contribute == |
|||
To authorize your app to act on behalf of a user, follow the [[Special:MyLanguage/OAuth/For Developers|OAuth developer guide]] to register your app and make requests using OAuth tokens. |
|||
</div> |
</div> |
||
<span lang="en" dir="ltr" class="mw-content-ltr">These docs are written manually based on the {{tmpl|0={{git file|file=includes/Rest|text=$1}}|MediaWiki Core source code}}.</span> |
|||
<span lang="en" dir="ltr" class="mw-content-ltr">Corrections and additions are welcome!</span> |
|||
<span lang="en" dir="ltr" class="mw-content-ltr">To share a tutorial or app that uses the MediaWiki REST API, add a comment on the [[API_talk:REST_API|Talk page]].</span> |
|||
<div lang="en" dir="ltr" class="mw-content-ltr"> |
<div lang="en" dir="ltr" class="mw-content-ltr"> |
||
== Client libraries == |
|||
=== Licensing and trademarks === |
|||
</div> |
</div> |
||
<span lang="en" dir="ltr" class="mw-content-ltr"> |
* [https://github.com/magnusmanske/mediawiki_rest_api <span lang="en" dir="ltr" class="mw-content-ltr">Rust</span>] |
||
<span lang="en" dir="ltr" class="mw-content-ltr">Licenses can differ between projects, so see the individual project for information about licenses and content reuse.</span> |
|||
<span lang="en" dir="ltr" class="mw-content-ltr">For example, English Wikipedia’s text can be used under the terms of the [[w:Wikipedia:Text of Creative Commons Attribution-ShareAlike 4.0 International License|Creative Commons Attribution Share-Alike license]], while media files on [[c:Special:MyLanguage/Commons:Reusing content outside Wikimedia|Wikimedia Commons]] are licensed individually as indicated on the file’s information page.</span> |
|||
<span lang="en" dir="ltr" class="mw-content-ltr">For more information about licensing and trademark use, see [[m:Special:MyLanguage/Developer app guidelines|Meta-Wiki’s developer app guidelines]].</span> |
|||
<span id="Limitations_on_Wikidata"></span> |
|||
=== Обмеження на Вікіданих === |
|||
<span lang="en" dir="ltr" class="mw-content-ltr">While the REST API is available on Wikimedia projects, it is not fully supported by Wikidata.</span> |
|||
<span lang="en" dir="ltr" class="mw-content-ltr">As of writing, some of the endpoints may return unexpected errors.</span> |
|||
<span lang="en" dir="ltr" class="mw-content-ltr">Instead, use the [[wikidata:Special:MyLanguage/Wikidata:REST_API|Wikidata REST API]].</span> |
|||
<div lang="en" dir="ltr" class="mw-content-ltr"> |
<div lang="en" dir="ltr" class="mw-content-ltr"> |
||
== APIs for Wikimedia wikis == |
|||
== Extension endpoints == |
|||
</div> |
</div> |
||
<span lang="en" dir="ltr" class="mw-content-ltr"> |
<span lang="en" dir="ltr" class="mw-content-ltr">For information about other APIs available for Wikimedia wikis, see {{ll|Wikimedia APIs}}.</span> |
||
<span lang="en" dir="ltr" class="mw-content-ltr">See |
<span lang="en" dir="ltr" class="mw-content-ltr">See recent changes to all Wikimedia APIs at {{ll|Wikimedia APIs/Changelog}}.</span> |
||
<span lang="en" dir="ltr" class="mw-content-ltr">In {{ll|MediaWiki 1.35}} and later, the REST API extension interface is available by default.</span> |
|||
<span id="API_comparison"></span> |
|||
== Порівняння API == |
|||
{{API comparison}} |
|||
<span id="About_these_docs"></span> |
|||
== Про ці документи == |
|||
<span lang="en" dir="ltr" class="mw-content-ltr">These docs are written manually based on the {{tmpl|0={{git file|file=includes/Rest|text=$1}}|MediaWiki Core source code}}.</span> |
|||
<span lang="en" dir="ltr" class="mw-content-ltr">Corrections and additions are welcome!</span> |
|||
<span lang="en" dir="ltr" class="mw-content-ltr">To share a tutorial or app that uses the MediaWiki REST API, add a link to the [[Special:MyLanguage/Template:REST API|REST API template]].</span> |
|||
<div lang="en" dir="ltr" class="mw-content-ltr"> |
|||
== Code stewardship == |
|||
</div> |
|||
{{Component|mediawiki-rest-api}} |
|||
<span id="See_also"></span> |
|||
== Див. також == |
|||
* [[w:REST API|REST API]] на Вікіпедії |
|||
* {{ll|Core Platform Team/Initiatives/Core REST API in MediaWiki|2=Сторінка ініціативи REST API}} |
|||
* {{ll|Manual:$wgRestPath}} |
|||
Latest revision as of 22:34, 1 June 2026
The MediaWiki REST API provides access to wiki content and functionality through a RESTful, HTTP interface. It supports operations like searching, getting and transforming wiki pages, and accessing page history.
Learn about the API and get started making basic API calls.
Interact with the API and find documentation for each endpoint.
- Special:RestSandbox on any Wikimedia wiki (English Wikipedia example)
- API reference
- Status codes and error messages
Explore working examples of how you can use the API.
Find instructions for tasks related to this API.
API features
The MediaWiki REST API offers the following key features:
- Build apps and scripts that access content from Wikipedia, or any other Wikimedia project.
- Get data in JSON or HTML format.
- Define extension-specific API endpoints within MediaWiki extensions.
Compared to the MediaWiki Action API, the REST API offers:
- A smaller, more streamlined set of operations and resources.
- Better performance, and cached responses to reduce system load on Wikimedia projects.
- Simple, consistent URL structure for endpoints.
To learn more about how the MediaWiki REST API compares to other available APIs, see API.
Get help
- Maintained by MediaWiki Interfaces Team.
- Live chat (IRC): #mediawiki-core connect
- Issue tracker: Phabricator MediaWiki-REST-API (Report an issue)
Contribute
These docs are written manually based on the MediaWiki Core source code. Corrections and additions are welcome! To share a tutorial or app that uses the MediaWiki REST API, add a comment on the Talk page.
Client libraries
APIs for Wikimedia wikis
For information about other APIs available for Wikimedia wikis, see Wikimedia APIs. See recent changes to all Wikimedia APIs at Wikimedia APIs/Changelog.