API:REST API/uk: Difference between revisions
Created page with "=== Ідентифікація клієнта ===" |
Updating to match new version of source page |
||
| (32 intermediate revisions by 4 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 |
|||
< |
|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> |
|||
== Quick start == |
|||
* {{ll|API:REST_API/Get_started|2=<span lang="en" dir="ltr" class="mw-content-ltr">Quick start</span>}} |
|||
</div> |
|||
* {{ll|API:REST_API/Policies|2=<span lang="en" dir="ltr" class="mw-content-ltr">Access and stability policies</span>}} |
|||
<span class="mw-code mw-highlight plainlinks" style="display:block"><!-- |
|||
}} |
|||
-->{{#tag:span|# Search English Wikipedia for an article about Earth|class=c1}} |
|||
{{Colored box |
|||
$ curl {{#tag:span|"https://en.wikipedia.org/w/rest.php/v1/search/page?q=earth&limit=1"|class=s2}} |
|||
|title = <span lang="en" dir="ltr" class="mw-content-ltr">API reference</span> |
|||
</span> |
|||
|content = <span lang="en" dir="ltr" class="mw-content-ltr">Interact with the API and find documentation for each endpoint.</span> |
|||
* <span lang="en" dir="ltr" class="mw-content-ltr">[[Special:RestSandbox|Special:RestSandbox]] on any Wikimedia wiki ([[wikipedia:Special:RestSandbox|English Wikipedia example]])</span> |
|||
{{Clickable button 2 |
|||
| |
* {{ll|API:REST_API/Reference|2=<span lang="en" dir="ltr" class="mw-content-ltr">API reference</span>}} |
||
* {{ll|API:REST API/Status codes|2=<span lang="en" dir="ltr" class="mw-content-ltr">Status codes and error messages</span>}} |
|||
|class=mw-ui-progressive |
|||
}} |
|||
|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>}} |
|||
}} |
|||
}} |
}} |
||
<div lang="en" dir="ltr" class="mw-content-ltr"> |
<div lang="en" dir="ltr" class="mw-content-ltr"> |
||
== |
== API features == |
||
</div> |
</div> |
||
<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> |
|||
<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: |
|||
== Methods == |
|||
</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> |
||
* <span lang="en" dir="ltr" class="mw-content-ltr">Get data in [[w:JSON|JSON]] or [[w:HTML|HTML]] format.</span> |
|||
The API supports standard [[w:Hypertext Transfer Protocol#Request methods|HTTP request methods]]. |
|||
* <span lang="en" dir="ltr" class="mw-content-ltr">Define {{ll|API:REST_API/Extensions|extension-specific API endpoints}} within MediaWiki extensions.</span> |
|||
</div> |
|||
<span lang="en" dir="ltr" class="mw-content-ltr">Compared to the {{ll|API:Action_API|MediaWiki Action API}}, the REST API offers:</span> |
|||
{| 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 lang="en" dir="ltr" class="mw-content-ltr">A smaller, more streamlined set of operations and resources.</span> |
||
* <span lang="en" dir="ltr" class="mw-content-ltr">Better performance, and cached responses to reduce system load on Wikimedia projects.</span> |
|||
== URL structure == |
|||
* <span lang="en" dir="ltr" class="mw-content-ltr">Simple, consistent URL structure for endpoints.</span> |
|||
</div> |
|||
< |
<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> |
||
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> |
|||
<syntaxhighlight lang=bash> |
|||
# URL structure |
|||
[project url]/[script path]/rest.php/v[version number]/ |
|||
# 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> |
|||
<div lang="en" dir="ltr" class="mw-content-ltr"> |
<div lang="en" dir="ltr" class="mw-content-ltr"> |
||
== |
== Get help == |
||
</div> |
</div> |
||
{{Component|mediawiki-rest-api}} |
|||
<span lang="en" dir="ltr" class="mw-content-ltr">Designed to provide long-term stability for developers, the MediaWiki REST API is versioned using a global version number in the API path (for example: <code>/v1/</code>).</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> |
|||
<!-- 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> |
|||
|} |
|||
<div lang="en" dir="ltr" class="mw-content-ltr"> |
<div lang="en" dir="ltr" class="mw-content-ltr"> |
||
== Contribute == |
|||
== Permissions and authorization == |
|||
</div> |
</div> |
||
<span lang="en" dir="ltr" class="mw-content-ltr"> |
<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"> |
<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 == |
|||
== Accessing Wikimedia projects using the REST API == |
|||
</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">For a complete list of Wikimedia project URLs, see [[m:Special:SiteMatrix|Meta-Wiki’s site matrix]].</span> |
|||
<div lang="en" dir="ltr" class="mw-content-ltr"> |
<div lang="en" dir="ltr" class="mw-content-ltr"> |
||
== APIs for Wikimedia wikis == |
|||
=== Request limit === |
|||
</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"> |
<span lang="en" dir="ltr" class="mw-content-ltr">See recent changes to all Wikimedia APIs at {{ll|Wikimedia APIs/Changelog}}.</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"> |
|||
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> |
|||
{{#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"> |
|||
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 lang="en" dir="ltr" class="mw-content-ltr"> |
|||
=== Licensing and trademarks === |
|||
</div> |
|||
<span lang="en" dir="ltr" class="mw-content-ltr">Wikimedia content is free to reuse within the terms specified by the applicable license.</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"> |
|||
== Extension endpoints == |
|||
</div> |
|||
<span lang="en" dir="ltr" class="mw-content-ltr">MediaWiki extensions can provide extension-specific API endpoints using the REST API interface.</span> |
|||
<span lang="en" dir="ltr" class="mw-content-ltr">See the [[Special:MyLanguage/API:REST/Extensions|REST API extension interface docs]] to get started.</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> |
|||
<span id="See_also"></span> |
|||
== Див. також == |
|||
* <span lang="en" dir="ltr" class="mw-content-ltr">[[w:REST API|REST API]] on Wikipedia</span> |
|||
* {{ll|Core Platform Team/Initiatives/Core REST API in MediaWiki|2=<span lang="en" dir="ltr" class="mw-content-ltr">REST API initiative page</span>}} |
|||
* {{ll|Manual:$wgRestPath}} |
|||
{{Component|mediawiki-rest-api}} |
|||
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.