<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mediawiki.numinix.com/index.php?action=history&amp;feed=atom&amp;title=API%2FEdit</id>
	<title>API/Edit - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mediawiki.numinix.com/index.php?action=history&amp;feed=atom&amp;title=API%2FEdit"/>
	<link rel="alternate" type="text/html" href="https://mediawiki.numinix.com/index.php?title=API/Edit&amp;action=history"/>
	<updated>2026-07-25T22:52:07Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://mediawiki.numinix.com/index.php?title=API/Edit&amp;diff=24&amp;oldid=prev</id>
		<title>Admin: Seed from mediawiki.org for Seekmodo connector demo</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.numinix.com/index.php?title=API/Edit&amp;diff=24&amp;oldid=prev"/>
		<updated>2026-07-25T17:02:15Z</updated>

		<summary type="html">&lt;p&gt;Seed from mediawiki.org for Seekmodo connector demo&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;languages/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:1--&amp;gt; &amp;#039;&amp;#039;&amp;#039;POST request&amp;#039;&amp;#039;&amp;#039; to edit a page.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== API documentation == &amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== Example == &amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:4--&amp;gt;&lt;br /&gt;
The sample code in this example is in Python.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:5--&amp;gt; See &amp;lt;tvar name=1&amp;gt;&amp;lt;/tvar&amp;gt; for examples and responses in &amp;lt;tvar name=2&amp;gt;&amp;lt;/tvar&amp;gt;.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== POST request === &amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:7--&amp;gt;&lt;br /&gt;
Making edits, and, indeed, any POST request, is a multi-step process. &lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:1. &amp;lt;translate&amp;gt;&amp;lt;!--T:8--&amp;gt; Log in, via one of the methods described in &amp;lt;tvar name=1&amp;gt;&amp;lt;/tvar&amp;gt;.&amp;lt;/translate&amp;gt; &amp;lt;translate&amp;gt;&amp;lt;!--T:9--&amp;gt; Note that while this is required to correctly attribute the edit to its author, many wikis do allow users to edit without registering or logging into an account.&amp;lt;/translate&amp;gt; &amp;lt;!--Using proper Wiki markup lists (i.e. #) breaks formatting for the sample queries--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:2. &amp;lt;translate&amp;gt;&amp;lt;!--T:10--&amp;gt; GET a :&amp;lt;/translate&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
:3. &amp;lt;translate&amp;gt;&amp;lt;!--T:11--&amp;gt; Send a POST request, with the CSRF token, to take action on a page:&amp;lt;/translate&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:12--&amp;gt; The Response section below is for the final POST request, to take action on the page.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:13--&amp;gt; See the pages on &amp;lt;tvar name=1&amp;gt;&amp;lt;/tvar&amp;gt; and &amp;lt;tvar name=2&amp;gt;&amp;lt;/tvar&amp;gt; for the intermediary JSON responses to earlier steps.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:14--&amp;gt; Also note that the tokens in the queries on this page are sample values.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:15--&amp;gt; Actual tokens are unique to each login session and cross-site request.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:16--&amp;gt; They are included only to demonstrate how to properly format queries.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== Response === &amp;lt;!--T:17--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:60%;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;edit&amp;quot;: {&lt;br /&gt;
        &amp;quot;result&amp;quot;: &amp;quot;Success&amp;quot;,&lt;br /&gt;
        &amp;quot;pageid&amp;quot;: 94542,&lt;br /&gt;
        &amp;quot;title&amp;quot;: &amp;quot;Wikipedia:Sandbox&amp;quot;,&lt;br /&gt;
        &amp;quot;contentmodel&amp;quot;: &amp;quot;wikitext&amp;quot;,&lt;br /&gt;
        &amp;quot;oldrevid&amp;quot;: 371705,&lt;br /&gt;
        &amp;quot;newrevid&amp;quot;: 371707,&lt;br /&gt;
        &amp;quot;newtimestamp&amp;quot;: &amp;quot;2018-12-18T16:59:42Z&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== Sample code == &amp;lt;!--T:18--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Transclude Sample code --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Care: &amp;#039;Sample code 1&amp;#039; is a list of sections defined at level 3 &amp;#039;===&amp;#039; &lt;br /&gt;
and thus must be kept under a level 2 section (ex: == Sample Code ==) &lt;br /&gt;
Better placed isolated since section numbering impacts the display of the TOC  --&amp;gt;&lt;br /&gt;
/Sample code 1}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== User cases == &amp;lt;!--T:101--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Edit conflicts === &amp;lt;!--T:19--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:20--&amp;gt; The [[&amp;lt;tvar name=1&amp;gt;#Sample code&amp;lt;/tvar&amp;gt;|Python sample]] is a basic implementation of an edit request by a registered user.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:21--&amp;gt; In real-world scenarios, care should be taken to prevent edit conflicts.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:22--&amp;gt; These occur when two or more users are attempting to edit the same page at the same time.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:23--&amp;gt; Conflicts can be prevented by retrieving the last  timestamp when we request a CSRF token.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:24--&amp;gt; Adding &amp;lt;tvar name=1&amp;gt;&amp;lt;code&amp;gt;prop=info|revisions&amp;lt;/code&amp;gt;&amp;lt;/tvar&amp;gt; to the CSRF token request in Step 3 allows us to access the timestamp for the last revision.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:25--&amp;gt; This timestamp will be used as the &amp;lt;tvar name=1&amp;gt;&amp;lt;code&amp;gt;basetimestamp&amp;lt;/code&amp;gt;&amp;lt;/tvar&amp;gt; when we make our the edit request.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:26--&amp;gt; We also need the exact time when we start our edit.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:27--&amp;gt; This can be retrieved by adding &amp;lt;tvar name=1&amp;gt;&amp;lt;code&amp;gt;curtimestamp&amp;lt;/code&amp;gt;&amp;lt;/tvar&amp;gt; to the CSRF request as well.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:28--&amp;gt; This value will serve as our &amp;lt;tvar name=1&amp;gt;&amp;lt;code&amp;gt;starttimestamp&amp;lt;/code&amp;gt;&amp;lt;/tvar&amp;gt;.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:29--&amp;gt;&lt;br /&gt;
Finally, in the actual edit request, set the &amp;lt;tvar name=1&amp;gt;&amp;lt;code&amp;gt;basetimestamp&amp;lt;/code&amp;gt;&amp;lt;/tvar&amp;gt; and &amp;lt;tvar name=2&amp;gt;&amp;lt;code&amp;gt;starttimestamp&amp;lt;/code&amp;gt;&amp;lt;/tvar&amp;gt; parameters, like so:&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== Large edits === &amp;lt;!--T:30--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:31--&amp;gt; POST requests containing large amounts of text content (8000+ characters) should be sent with &amp;lt;tvar name=1&amp;gt;&amp;lt;code&amp;gt;Content-Type: multipart/form-data&amp;lt;/code&amp;gt;&amp;lt;/tvar&amp;gt; indicated in the [[&amp;lt;tvar name=2&amp;gt;devmo:Web/HTTP/Headers&amp;lt;/tvar&amp;gt;|header]].&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:32--&amp;gt; Because &amp;lt;tvar name=1&amp;gt;&amp;lt;code&amp;gt;multipart/form-data&amp;lt;/code&amp;gt;&amp;lt;/tvar&amp;gt; does not need to add HTML escape characters (i.e., [[&amp;lt;tvar name=2&amp;gt;devmo:Glossary/percent-encoding&amp;lt;/tvar&amp;gt;|percent encoding]]) for spaces and punctuation, the amount of data passed will subsequently be much smaller than the percent-encoded equivalent.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:33--&amp;gt; However, there is still some overhead added by &amp;lt;tvar name=1&amp;gt;&amp;lt;code&amp;gt;multipart/form-data&amp;lt;/code&amp;gt;&amp;lt;/tvar&amp;gt; -- roughly, 160 bytes per parameter.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:34--&amp;gt; For short messages that don&amp;#039;t require adding many escape characters, this amount of overhead can be inefficient, and percent-encoding is preferred.&amp;lt;/translate&amp;gt;&amp;lt;ref&amp;gt;&lt;br /&gt;
https://stackoverflow.com/a/4073451&lt;br /&gt;
&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:35--&amp;gt;&lt;br /&gt;
Note that in our [[&amp;lt;tvar name=1&amp;gt;#Example&amp;lt;/tvar&amp;gt;|Python sample code]], the request is percent-encoded by default.&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:36--&amp;gt; See [[&amp;lt;tvar name=1&amp;gt;devmo:Web/HTTP/Headers/Content-Type&amp;lt;/tvar&amp;gt;|the MDN web docs]] for a more technical discussion of content-type and POST requests.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:37--&amp;gt; See [&amp;lt;tvar name=url&amp;gt;http://docs.python-requests.org/en/master/user/quickstart/#more-complicated-post-requests&amp;lt;/tvar&amp;gt; the Python Requests documentation] for how to pass &amp;lt;tvar name=1&amp;gt;&amp;lt;code&amp;gt;multipart/form-data&amp;lt;/code&amp;gt;&amp;lt;/tvar&amp;gt; using syntax similar to our Python sample code.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== CAPTCHAs === &amp;lt;!--T:38--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:39--&amp;gt; If the wiki you are targeting uses , your request may return an error containing an ID number and a simple test, such as a question, a math problem, or a URL to an image.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:40--&amp;gt; In order to complete your edit, you must complete the test, then retry your request with the id and the correct answer(s) appended to the original query string, like so:&amp;lt;/translate&amp;gt; &amp;lt;code&amp;gt;captchaid=sampleId&amp;amp;captchaword=answer&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:41--&amp;gt; Other CAPTCHA systems and extensions may use different parameters for similar use.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:42--&amp;gt; In general, use the field names for the ID and test questions as the parameters in your second request.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== Possible errors == &amp;lt;!--T:43--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! &amp;lt;translate&amp;gt;&amp;lt;!--T:44--&amp;gt; Code&amp;lt;/translate&amp;gt; !! &amp;lt;translate&amp;gt;&amp;lt;!--T:45--&amp;gt; Info&amp;lt;/translate&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| notitle || &lt;br /&gt;
|-&lt;br /&gt;
| missingparam || appendtextundo|3}}&lt;br /&gt;
|-&lt;br /&gt;
| notoken || &lt;br /&gt;
|-&lt;br /&gt;
| invalidsection || &lt;br /&gt;
|-&lt;br /&gt;
| protectedpage || |en | | }}&lt;br /&gt;
|-&lt;br /&gt;
| cantcreate || &lt;br /&gt;
|-&lt;br /&gt;
| cantcreate-anon || &amp;lt;translate&amp;gt;&amp;lt;!--T:90--&amp;gt; Anonymous users can&amp;#039;t create new pages&amp;lt;/translate&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| articleexists || &lt;br /&gt;
|-&lt;br /&gt;
| noimageredirect-anon || &lt;br /&gt;
|-&lt;br /&gt;
| noimageredirect || &lt;br /&gt;
|-&lt;br /&gt;
| spamdetected || &lt;br /&gt;
|-&lt;br /&gt;
| abusefilter-warning || &amp;lt;translate&amp;gt;&amp;lt;!--T:102--&amp;gt; This action has been automatically identified as harmful.&amp;lt;/translate&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| abusefilter-disallowed || &amp;lt;translate&amp;gt;&amp;lt;!--T:103--&amp;gt; This action has been automatically identified as harmful, and therefore disallowed.&amp;lt;/translate&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| contenttoobig || &amp;lt;br /&amp;gt;Where &amp;#039;&amp;#039;&amp;#039;bytes&amp;#039;&amp;#039;&amp;#039; is the value of .&lt;br /&gt;
|-&lt;br /&gt;
| noedit-anon || &lt;br /&gt;
|-&lt;br /&gt;
| noedit || &lt;br /&gt;
|-&lt;br /&gt;
| pagedeleted || &lt;br /&gt;
|-&lt;br /&gt;
| emptypage || &lt;br /&gt;
|-&lt;br /&gt;
| emptynewsection || &lt;br /&gt;
|-&lt;br /&gt;
| editconflict || &lt;br /&gt;
|-&lt;br /&gt;
| revwrongpage || &amp;lt;br /&amp;gt;&amp;lt;translate&amp;gt;&amp;lt;!--T:93--&amp;gt; Thrown if an invalid revid is given for &amp;lt;tvar name=undo&amp;gt;&amp;lt;code&amp;gt;undo&amp;lt;/code&amp;gt;&amp;lt;/tvar&amp;gt; or &amp;lt;tvar name=undoafter&amp;gt;&amp;lt;code&amp;gt;undoafter&amp;lt;/code&amp;gt;&amp;lt;/tvar&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| undofailure&amp;lt;!--ApiBase.php removes dash from &amp;quot;undo-failure&amp;quot;--&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| missingtitle || &amp;lt;br /&amp;gt;&amp;lt;translate&amp;gt;&amp;lt;!--T:94--&amp;gt; (see above &amp;lt;tvar name=nocreate&amp;gt;&amp;lt;code&amp;gt;nocreate&amp;lt;/code&amp;gt;&amp;lt;/tvar&amp;gt; [[&amp;lt;tvar name=1&amp;gt;#Parameters&amp;lt;/tvar&amp;gt;|parameter]])&amp;lt;/translate&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| mustbeposted || &lt;br /&gt;
|-&lt;br /&gt;
| readapidenied || &lt;br /&gt;
|-&lt;br /&gt;
| writeapidenied || &lt;br /&gt;
|-&lt;br /&gt;
| noapiwrite || &lt;br /&gt;
|-&lt;br /&gt;
| badtoken || &lt;br /&gt;
|-&lt;br /&gt;
| missingparam || &lt;br /&gt;
|-&lt;br /&gt;
| invalidparammix || &lt;br /&gt;
|-&lt;br /&gt;
| invalidtitle || &lt;br /&gt;
|-&lt;br /&gt;
| invalid-content-data || &amp;lt;br/&amp;gt;&amp;lt;translate&amp;gt;&amp;lt;!--T:105--&amp;gt; occurs when trying to edit a JSON page with non-conforming data, or while trying to edit a &amp;lt;tvar name=1&amp;gt;MassMessageListContent&amp;lt;/tvar&amp;gt; page&amp;lt;/translate&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| nosuchpageid || &lt;br /&gt;
|-&lt;br /&gt;
| pagecannotexist || &lt;br /&gt;
|-&lt;br /&gt;
| nosuchrevid || &lt;br /&gt;
|-&lt;br /&gt;
| nosuchrevid || &lt;br /&gt;
|-&lt;br /&gt;
| badmd5 || &lt;br /&gt;
|-&lt;br /&gt;
| hookaborted || &lt;br /&gt;
|-&lt;br /&gt;
| parseerror || &lt;br /&gt;
|-&lt;br /&gt;
| summaryrequired || &lt;br /&gt;
|-&lt;br /&gt;
| blocked || &lt;br /&gt;
|-&lt;br /&gt;
| ratelimited || &lt;br /&gt;
|-&lt;br /&gt;
| unknownerror || &lt;br /&gt;
|-&lt;br /&gt;
| nosuchsection || &lt;br /&gt;
|-&lt;br /&gt;
| sectionsnotsupported || &lt;br /&gt;
|-&lt;br /&gt;
| editnotsupported || &amp;lt;translate&amp;gt;&amp;lt;!--T:98--&amp;gt; Editing of this type of page is not supported using the text based edit API.&amp;lt;/translate&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| appendnotsupported || &lt;br /&gt;
|-&lt;br /&gt;
| redirect-appendonly || &lt;br /&gt;
|-&lt;br /&gt;
| edit-invalidredirect || &lt;br /&gt;
|-&lt;br /&gt;
| badformat || &lt;br /&gt;
|-&lt;br /&gt;
| customcssprotected || &lt;br /&gt;
|-&lt;br /&gt;
| customjsprotected || &lt;br /&gt;
|-&lt;br /&gt;
| taggingnotallowed || &amp;lt;translate&amp;gt;&amp;lt;!--T:99--&amp;gt; You don&amp;#039;t have permission to set change tags&amp;lt;/translate&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| badtags || &amp;lt;br /&amp;gt; Tag2&amp;#039;&amp;#039;&amp;#039;}}&lt;br /&gt;
|-&lt;br /&gt;
| tpt-target-page || &amp;lt;br/&amp;gt;&amp;lt;translate&amp;gt;&amp;lt;!--T:100--&amp;gt; When using &amp;lt;tvar name=translate&amp;gt;&amp;lt;/tvar&amp;gt;, editing of a translated subpage is not allowed.&amp;lt;/translate&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== Parameter history == &amp;lt;!--T:46--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
* v1.35: &amp;lt;translate&amp;gt;&amp;lt;!--T:104--&amp;gt; Introduced &amp;lt;tvar name=1&amp;gt;&amp;lt;code&amp;gt;baserevid&amp;lt;/code&amp;gt;&amp;lt;/tvar&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
* v1.25: &amp;lt;translate&amp;gt;&amp;lt;!--T:77--&amp;gt; Introduced &amp;lt;tvar name=1&amp;gt;&amp;lt;code&amp;gt;tags&amp;lt;/code&amp;gt;&amp;lt;/tvar&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
* v1.21: &amp;lt;translate&amp;gt;&amp;lt;!--T:78--&amp;gt; Introduced &amp;lt;tvar name=1&amp;gt;&amp;lt;code&amp;gt;contentformat&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;contentmodel&amp;lt;/code&amp;gt;&amp;lt;/tvar&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
* v1.20: &amp;lt;translate&amp;gt;&amp;lt;!--T:79--&amp;gt; Introduced &amp;lt;tvar name=1&amp;gt;&amp;lt;code&amp;gt;pageid&amp;lt;/code&amp;gt;&amp;lt;/tvar&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
* v1.19: &amp;lt;translate&amp;gt;&amp;lt;!--T:80--&amp;gt; Introduced &amp;lt;tvar name=1&amp;gt;&amp;lt;code&amp;gt;sectiontitle&amp;lt;/code&amp;gt;&amp;lt;/tvar&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
* v1.18: &amp;lt;translate&amp;gt;&amp;lt;!--T:81--&amp;gt; Deprecated &amp;lt;tvar name=1&amp;gt;&amp;lt;code&amp;gt;captchaid&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;captchaword&amp;lt;/code&amp;gt;&amp;lt;/tvar&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
* v1.17: &amp;lt;translate&amp;gt;&amp;lt;!--T:82--&amp;gt; Introduced &amp;lt;tvar name=1&amp;gt;&amp;lt;code&amp;gt;redirect&amp;lt;/code&amp;gt;&amp;lt;/tvar&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
* v1.16: &amp;lt;translate&amp;gt;&amp;lt;!--T:83--&amp;gt; Deprecated &amp;lt;tvar name=1&amp;gt;&amp;lt;code&amp;gt;watch&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;unwatch&amp;lt;/code&amp;gt;&amp;lt;/tvar&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
* v1.16: &amp;lt;translate&amp;gt;&amp;lt;!--T:84--&amp;gt; Introduced &amp;lt;tvar name=1&amp;gt;&amp;lt;code&amp;gt;watchlist&amp;lt;/code&amp;gt;&amp;lt;/tvar&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
* v1.15: &amp;lt;translate&amp;gt;&amp;lt;!--T:85--&amp;gt; Introduced &amp;lt;tvar name=1&amp;gt;&amp;lt;code&amp;gt;undo&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;undoafter&amp;lt;/code&amp;gt;&amp;lt;/tvar&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
* v1.14: &amp;lt;translate&amp;gt;&amp;lt;!--T:86--&amp;gt; Introduced &amp;lt;tvar name=1&amp;gt;&amp;lt;code&amp;gt;starttimestamp&amp;lt;/code&amp;gt;&amp;lt;/tvar&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== Additional notes == &amp;lt;!--T:47--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:48--&amp;gt;&lt;br /&gt;
* Log in is not strictly required by the API, but it is needed to correctly attribute the edit to its author.&amp;lt;/translate&amp;gt; &amp;lt;translate&amp;gt;&amp;lt;!--T:49--&amp;gt; A successful edit from a user who is not logged in will be attributed to their IP address.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:50--&amp;gt;&lt;br /&gt;
* Bots that are not logged in may face restrictions on editing and other write requests; see  for more details.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:51--&amp;gt;&lt;br /&gt;
* Users who are not logged in will always be given the empty CSRF token, &amp;lt;tvar name=1&amp;gt;&amp;lt;code&amp;gt;+\&amp;lt;/code&amp;gt;&amp;lt;/tvar&amp;gt;.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:52--&amp;gt;&lt;br /&gt;
* The process for requesting a token has changed several times across versions.&amp;lt;/translate&amp;gt; &amp;lt;translate&amp;gt;&amp;lt;!--T:53--&amp;gt; See &amp;lt;tvar name=1&amp;gt;&amp;lt;/tvar&amp;gt; for more information.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:54--&amp;gt;&lt;br /&gt;
* &amp;lt;tvar name=1&amp;gt;&amp;lt;/tvar&amp;gt; provides a way to access edit tokens when running code within a wiki page.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:55--&amp;gt;&lt;br /&gt;
* You can use the same CSRF token for all edit operations across the same wiki, during a single login session.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:56--&amp;gt;&lt;br /&gt;
* It is a good practice to pass any tokens in your request at the end of the query string, or at least after the text parameter.&amp;lt;/translate&amp;gt; &amp;lt;translate&amp;gt;&amp;lt;!--T:57--&amp;gt; That way, if the connection is interrupted, the token will not be passed and the edit will fail.&amp;lt;/translate&amp;gt; &amp;lt;translate&amp;gt;&amp;lt;!--T:58--&amp;gt; If you are using the &amp;lt;tvar name=1&amp;gt;&amp;lt;/tvar&amp;gt; object to make requests, this is done automatically.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:59--&amp;gt;&lt;br /&gt;
* Although &amp;lt;tvar name=1&amp;gt;&amp;lt;code&amp;gt;captchaid&amp;lt;/code&amp;gt;&amp;lt;/tvar&amp;gt; and &amp;lt;tvar name=2&amp;gt;&amp;lt;code&amp;gt;captchaword&amp;lt;/code&amp;gt;&amp;lt;/tvar&amp;gt; have, technically, been removed from API:Edit since v1.18, &amp;lt;tvar name=3&amp;gt;&amp;lt;/tvar&amp;gt; extends API:Edit to work with CAPTCHAs.&amp;lt;/translate&amp;gt; &amp;lt;translate&amp;gt;&amp;lt;!--T:60--&amp;gt; Thus, with ConfirmEdit installed, these parameters are still available.&amp;lt;/translate&amp;gt; &amp;lt;translate&amp;gt;&amp;lt;!--T:61--&amp;gt; ConfirmEdit comes packaged with the MediaWiki software, v1.18+.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Limitations ==&lt;br /&gt;
* The API does not yet support editing [[Multi-Content Revisions|content slots]] (). You can do so instead with an extension like [[Extension:WSSlots]], which enables the &amp;lt;code&amp;gt;editslot&amp;lt;/code&amp;gt; API action.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== See also == &amp;lt;!--T:62--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
*  - &amp;lt;translate&amp;gt;&amp;lt;!--T:63--&amp;gt; contains useful links on editing articles.&amp;lt;/translate&amp;gt;&lt;br /&gt;
*  - &amp;lt;translate&amp;gt;&amp;lt;!--T:64--&amp;gt; describes how to log in using a simplified interface when accessing wikis via a script or application, rather than the GUI.&amp;lt;/translate&amp;gt;&lt;br /&gt;
*  - &amp;lt;translate&amp;gt;&amp;lt;!--T:65--&amp;gt; more details on using a bot to automatically edit pages.&amp;lt;/translate&amp;gt;&lt;br /&gt;
*  - &amp;lt;translate&amp;gt;&amp;lt;!--T:66--&amp;gt; provides a way to access edit tokens when running JavaScript within a MediaWiki page.&amp;lt;/translate&amp;gt;&lt;br /&gt;
*  - &amp;lt;translate&amp;gt;&amp;lt;!--T:67--&amp;gt; has more details on using tokens to log in or make POST requests.&amp;lt;/translate&amp;gt;&lt;br /&gt;
*  - &amp;lt;translate&amp;gt;&amp;lt;!--T:68--&amp;gt; a deprecated API, distinct from &amp;lt;tvar name=1&amp;gt;&amp;lt;/tvar&amp;gt;, for requesting tokens in earlier versions of MediaWiki.&amp;lt;/translate&amp;gt;&lt;br /&gt;
*  - &amp;lt;translate&amp;gt;&amp;lt;!--T:69--&amp;gt; allows you to diff between edits on a page.&amp;lt;/translate&amp;gt;&lt;br /&gt;
*  - &amp;lt;translate&amp;gt;&amp;lt;!--T:70--&amp;gt; alters tags on a page.&amp;lt;/translate&amp;gt;&lt;br /&gt;
*  - &amp;lt;translate&amp;gt;&amp;lt;!--T:71--&amp;gt; reverts a series of edits.&amp;lt;/translate&amp;gt;&lt;br /&gt;
*  - &amp;lt;translate&amp;gt;&amp;lt;!--T:72--&amp;gt; rolls back files to an earlier state.&amp;lt;/translate&amp;gt;&lt;br /&gt;
*  - &amp;lt;translate&amp;gt;&amp;lt;!--T:73--&amp;gt; deletes and restores revisions to a page.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== References == &amp;lt;!--T:74--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:MediaWiki API]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;Sample content adapted from [[mediawikiwiki:API:Edit]] on mediawiki.org, licensed under [https://creativecommons.org/licenses/by-sa/4.0/ CC BY-SA 4.0].&amp;#039;&amp;#039;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
</feed>