Translate this page; This page contains changes. Please contact a translation admin to mark them for translation.
Other languages:
Bahasa Indonesia • ‎Deutsch • ‎English • ‎dansk • ‎español • ‎français • ‎italiano • ‎magyar • ‎polski • ‎svenska • ‎беларуская (тарашкевіца)‎ • ‎русский • ‎українська • ‎հայերեն • ‎العربية • ‎മലയാളം • ‎中文 • ‎日本語

Icon used on Commons by templates that upload to Wikidata using QuickStatements
Eggbeater stencil narrow.svg
2019 Coolest Tool Award Winner
in the category

QuickStatements (QS) is a tool that can edit Wikidata items, based on a simple set of text commands. The tool can add and remove statements, labels, descriptions, and aliases; as well as add statements with optional qualifiers and sources. The command sequence can be typed in the import window or created in a spreadsheet, text editor and pasted in. It can also be created by external code like Lua called from a template and passed as URL. Data edited in OpenRefine can also be exported to QuickStatements format.

The toolsEdit

There are several QuickStatements versions available:

Syntax can vary:

  • version 1
  • version 2 with TAB (similar to version 1)
  • version 2 with "|" (instead of TAB) or "||" (instead of newline)
  • version 2 CSV (one line per entity, separated by comma)
  • version 2 URL

Command sequence syntaxEdit

Add simple statementEdit

You can specify the statements to add by typing/pasting one row per statement into the tool's text area. Different parts of the statement are separated by a TAB character, or in QuickStatements version 2 may also by "|". Each command is on a new line, or in QuickStatements version 2 may also be separated by "||". Hint: You can also use a spreadsheet software such as Excel or LibreOffice Calc; copying/pasting the cells should automatically insert TABs. Also text editors like Notepad++ allow replacement of any symbol by TAB character.

Each statement must consist of an entity, a property, and a value. An entity can be an item, a property, a lexeme, a form, or a sense. A value can be another entity, a string, a time, a location, or a quantity, depending on the property type, or one of the special values somevalue or novalue (see Help:Statements#Unknown or no values).

Formatting of each part:

  • Items are always in the form Qxx. In QuickStatements version 1 one could use an article name instead of the q-code, if one filled in a xxwiki value in the input box above the text area; the correct item number (if available) was retrieved automatically.
    Example: Q4115189 TAB P31 TAB Q1
    Meaning: add to Wikidata Sandbox (Q4115189) instance of (P31) universe (Q1)
  • Properties in the form Pxx.
  • Lexemes in the form Lxxx.
  • Forms in the form Lxxx-Fyy.
  • Senses in the form Lxxx-Syy.
  • Strings (including URLs, and numerical values of text fields, for example external-ID property values) must be in "double quotes". Many statements take values in string format, including external identifiers (like VIAF ID (P214)), filenames (like image (P18)) or other page names (like Commons category (P373)).
    Example: Q41576278 TAB P373 TAB "Antoni Ignacy Mietelski"
    Meaning: add to Antoni Ignacy Mietelski (Q41576278) Commons category (P373) Antoni Ignacy Mietelski
    Caution: Some characters in the string seem to confuse the tool. Those include: "_" (underscore), " (double quote), " " (spaces), "=", and possibly more. Adding URLs with those characters, like this one or this might fail. String and URLs with those characters might work when interacting with the tool through the interface but fail when interacting through URL.
  • Monolingual text prefix text in "double quotes" with the language and a colon, e.g. en:"Some text"
    Example: Q1214098 TAB P1476 TAB pl:"Krzyżacy"
    Meaning: add to The Knights of the Cross (Q1214098) title (P1476) "Krzyżacy" (Polish)
  • Time values must be in format eg +1967-01-17T00:00:00Z/11, where /11 designates the precision. The precision is: 0 - billion years, 1 - hundred million years, ..., 6 - millennium, 7 - century, 8 - decade, 9 - year (default), 10 - month, 11 - day, 12 - hour, 13 - minute, 14 - second.
    Example: Q41576483 TAB P569 TAB +1839-00-00T00:00:00Z/9
    Meaning: add to Bronisław Podbielski (Q41576483) date of birth (P569) +1839
    Use "-" for dates BC; and use at least 4 digits.
  • Location coordinates in the form of @LAT/LON, with LAT and LON as decimal numbers. Note that you need to use leading zeroes: '4.938889' should be entered as '004.938889'.
    Example: Q3669835 TAB P625 TAB @043.26193/010.92708
    Meaning: add location to San Dalmazio (Q3669835)
  • Quantity in the form of amount~toleranceUxx (amount[lower,upper]Uxx in QuickStatements version 1), with amount, tolerance, lower and upper being a rational number and Uxx being the item number of a unit (Qxx).
    unit is optional.
    tolerance is optional.
    lower, upper are optional. lower and upper must be either both present or not present at all. When present, they should be enclosed in square brackets and separated by ,
    amount, lower and upper must use . as decimal separator, must not use any thousands separator and may be prefixed by + or -.
    Don't leave any space in the quantity.
    10, 10U11573, -10[-12.5,-7.5], 0[-5,5]U11573 are all valid quantities (where U11573 indicates metre (Q11573))
    Quantities with tolerance may be entered as 1.2~0.3 (in QuickStatements version 2), which is the same as 1.2[0.9,1.5] (in QuickStatements version 1) and means 1.2±0.3. Note that due to the way computers operate with floating-point numbers the input format of version 2 may produce undesired results when working with decimal numbers.
  • somevalue for unknown value Help
  • novalue for no value Help

Add statement with qualifiersEdit

Each statement "triplet" can be followed by an unlimited number of "qualifiers pairs" of property TAB value.

Example: Q41577083 TAB P570 TAB +1586-00-00T00:00:00Z/7 TAB P1319 TAB +1586-00-00T00:00:00Z/9
Meaning: add to Gian Federigo Bonzagna (Q41577083) date of death (P570) 16. century / earliest date (P1319) +1586

Add statement with sourcesEdit

Each statement can be followed by an unlimited number of "source pairs" of source property TAB value. The source property is identical to the "normal" property, except it uses the form Sxx instead of Pxx.

Example: Q22124656 TAB P21 TAB Q6581097 TAB S143 TAB Q24731821 TAB S813 TAB +2017-10-04T00:00:00Z/11
Meaning: add to Gotô Ichijô (Q22124656) sex or gender (P21) male (Q6581097) with reference imported from Wikimedia project (P143) Commons Creator page (Q24731821) / retrieved (P813)


  • Existing statements with an exact match (property and value) will not be added again; however additional references might be added to the statement.
  • You can mix qualifiers and references in the same statement. Just use Sxx instead of Pxx when using sources.
  • In QuickStatements version 1 each source claim represented an individual reference, i.e. they were not grouped within one reference; it works properly now in QuickStatements version 2.

Adding labels, aliases, descriptions and sitelinksEdit

As with adding simple text statements, each command must consist of an item, a command, and a string in double quotes.

  • To add a label in a specific language to an item, use "Lxx" instead of a property, with "xx" as the language code.
    Example: Q340122 TAB Lpl TAB "Cyprian Kamil Norwid"
    Meaning: add Polish label "Cyprian Kamil Norwid" to Cyprian Norwid (Q340122)
  • To add an alias in a specific language to an item, use "Axx" instead of a property, with "xx" as the language code.
    Example: Q340122 TAB Aen TAB "Cyprjan Kamil Norwid"
    Meaning: add English alias "Cyprjan Kamil Norwid" to Cyprian Norwid (Q340122)
    Tip: Multiple aliases can be added at the same time by separating them with the pipe character ("|").
  • To add a description in a specific language to an item, use "Dxx" instead of a property, with "xx" as the language code.
    Example: Q340122 TAB Dde TAB "polnischer Dichter"
    Meaning: add German description "polnischer Dichter" to Cyprian Norwid (Q340122)
  • To add a sitelink to a specific page on a site to an item, use "Sxxx" instead of a property, with "xxx" as the site (e.g. enwiki, commonswiki).
    Example: Q340122 TAB Szhwiki TAB "塞浦路斯·諾爾維特"
    Meaning: add sitelink to Chinese Wikipedia (塞浦路斯·諾爾維特) to Cyprian Norwid (Q340122)

If you want to remove a label/description/sitelink, the value has to be an empty string and the rest of the command will be the same.

Item creationEdit

You can create new items by inserting a line consisting only of the word "CREATE". To add statements to the newly created item, use the word "LAST" instead of the Q number, and the statement will be added to the last created item.

An example for creating a new item, adding a sitelink, and setting a label:

LAST TAB Sfrwiki TAB "Le croissant magnifique!"
LAST TAB Lfr TAB "Le croissant magnifique!"
Meaning: create a new item with a link to French Wikipedia w:fr:Le croissant magnifique! and with French label "Le croissant magnifique!"

Item mergingEdit

You can merge two items. The first item will be merged and (if successful) redirected into the second item.

MERGE TAB Qsource TAB Qdestination

Removing statementsEdit

You can remove specific statements by prefixing a line with "-".

Example: -Q4115189 TAB P31 TAB Q1
Meaning: remove from Wikidata Sandbox (Q4115189) instance of (P31) universe (Q1)

In addition you may remove statements with a specific statement ID using the following syntax:

-STATEMENT TAB Q1$00000000-0000-0000-0000-000000000000

The statement ID can be received by:

  • The source code of any entity page, where the ID may be find in <div> elements with "wikibase-statementview" class
  • API
  • name of statement node in RDF which may be queried by query service (you need to replace the - after entity ID with $)


Every command can have a comment at its end, which will be inserted into the edit summary for the command. Use the /* ... */ syntax. Before this a TAB may be inserted. Spaces around the comment will be removed before processing. The tool splits adding of a claim and its reference in two edits. When using the "version 1 format" import it seems not to be possible to add a comment for the edit adding the reference. The comment is added to the edit adding the claim (if the claim does not exist yet and is added at all).

Example: Q4115189 TAB P31 TAB Q1 /* This is a comment. */
Meaning: add to Wikidata Sandbox (Q4115189) instance of (P31) universe (Q1), with "This is a comment." in the edit summary.

Sample for use with LibreOffice:

string (input)language (input)itempropertyvalue (monolingual dataype)
Gode vibrationerdaQ12314076P1476=B2&":"""&A2&""""

CSV file syntaxEdit


In QuickStatements version 2, one can also cut and paste a properly structured CSV file as an alternative to the syntax introduced in QuickStatements version 1. The CSV file will specify commands to execute. The first row is a header describing how the columns are interpreted.

Always the first column: the item or entity to edit. If left empty, a new item will be created. See item creation sample below.

The other columns may specify the following commands:

A property ID (uppercase) begins a new statement. The column value specifies the main value of the statement, in QuickStatements version 1 syntax.
A lowercase "qal" followed by a property number (without "P") adds a qualifier to the current statement. The column value specifies the value of the qualifier, in QuickStatements version 1 syntax. There must be some "P" column before a "qal" column to specify which statement the qualifier is added to.
An uppercase "S" followed by a property number (without "P") begins a new source for the current statement. The column value specifies the value of the source, in QuickStatements version 1 syntax. There must be some "P" column before an "S" column to specify which statement the source is added to.
A lowercase "s" followed by a property number (without "P") adds another property-value pair to the current source. The column value specifies the value of the source, in QuickStatements version 1 syntax. There must be some "S" column before an "s" column to specify which source the property-value pair is added to.
An uppercase "L" followed by a language code sets the label in that language.
An uppercase "D" followed by a language code sets the description in that language.
An uppercase "A" followed by a language code adds an alias in that language.
An uppercase "S" followed by a site ID adds a sitelink to that site.
A number sign character sets the edit summary (comment) of the preceding command. The tool splits adding of a claim and its reference in two edits. A comment can be added to the edit summary of each of them. For the claim by putting a "#" column between the columns for the claim and its reference, for the reference by putting a "#" column behind its columns. For example:
Q22124656,Q6581097,comment to claim adding edit,Q24731821,+2017-10-04T00:00:00Z/11,comment to reference adding edit

Item creationEdit

To create a new item, the first element of the row needs to be empty, so the line starts with a ,.

For example
,Regina Phalange,fictional character,Q5

For example

creates a new item. Suitable for LibreOffice (paste in cell A1)

Mona Lisa - the Louvre.jpgMona Lisaoil painting by Leonardo da Vinci=",Q3305213,"""&B2&""","""&C2&""","""""""&A2&""""""""
Mona Lisa - the Louvre.jpgMona Lisaoil painting by Leonardo da Vinci,Q3305213,"Mona Lisa","oil painting by Leonardo da Vinci","""Mona Lisa - the Louvre.jpg"""

Statement removal commandsEdit

Statement column headers may also begin with - to remove the statement. (Note that this is only valid in the header for the whole column, not in individual values.) Removing other column types is not yet supported and will result in an error when the command is run; however, sitelinks and labels can be removed by setting them to the empty string (without - in the column header).


Adds to the sandbox item a P31 value of Wikimedia internal item (Q17442446) and then removes Wikidata internal entity (Q21281405).

Commas and double-quotesEdit

Labels, descriptions, aliases and sitelinks do not need to be in double quotes unless they itself contain commas (,) or double quotes (").

In this case, replace all double quotes with two double quotes (e.g. Toys "R" UsToys ""R"" Us) and then warp the string in a pair of double quotes (e.g. "Toys ""R"" Us").

Samples: Toys "R" Us and Patterns, Predictors, and Outcome

Q4115189,"Toys ""R"" Us"
Q4115189,"Patterns, Predictors, and Outcome"

To add a string value containing double quotes ("), replace all double quotes with two double quotes ("").

As any string value, then wrap it into three double quotes ("""), e.g. """Toys ""R"" Us""".

Samples for Q4115189#P370, notably Toys "R" Us

Q4115189,"""Toys ""R"" Us"""
Q4115189,"""Patterns, Predictors, and Outcome"""
Q4115189,"""Wikidata sandbox item 1"""

Combined sampleEdit

Q4115189,Douglas Adams,author,Douglas Noël Adams,Q5,Q36180,Q6581097,Q463035,"""1""",Q54919,"""113230702""",Q328,Douglas Adams
Q4115189,"Toys ""R"" Us",testin sample,Toys R Us,Q5,Q36180,Q6581097,Q463035,"""1""",Q54919,"""113230702""",Q328,"Toys ""R"" Us"

Samples by value typeEdit

Samples use the sandbox item (Q4115189) and can be pasted directly into Quickstatements for testing. Should be risk-free.

Q4115189,"Patterns, Predictors, and Outcome"
Q4115189,"Toys ""R"" Us"
Q4115189,Wikidata item for tests
Q4115189,"sample for Patterns, Predictors, and Outcome"
Q4115189,"description sample for Toys ""R"" Us"
Q4115189,Wikidata sandbox
Q4115189,"Predictors, Patterns, and Outcome"
Q4115189,"Toys ""4"" You"

somevalue is for unknown value Help, novalue for no value Help. F1 and S1 on Lexeme:L123 would have to exist for it to work.

String or external-id
Q4115189,"""Patterns, Predictors, and Outcome"""
Q4115189,"""Toys ""R"" Us"""
Monolingual text
Q4115189,en:"Toys "R" Us"
Q4115189,"en:""Toys ""R"" Us"""
Q4115189,"en:""Patterns, Predictors, and Outcome"""

en is for English


Precisions are 9=year, 10=month, 11=day, so the dates are 1856, January 1856 and 1 January 1856.

Image/Commons media file
Q4115189,"""Frans Breydel - A merry company.jpg"""
Q4115189,"""'Girl Reading' by Mary Colman Wheeler, El Paso Museum of Art.JPG"""
Q4115189,"""Kaubalaeva ""E. Russ"" vrakk.jpg"""
Q4115189,"""''L'empereur Napoleon III'' de Franz-Xaver Winterhalter.jpg"""

Images are:


U11573 is for metre (Q11573), U11574 for second (Q11574). Note the odd result of 1.2~0.3.

Running QuickStatementsEdit

Using QuickStatements version 2Edit

Here is how to use QuickStatements (version 2) in basic mode:

  1. Go to
  2. Make sure you are logged in OAuth and your name is visible in the upper right corner. If not then log in.
  3. Click "New batch".
  4. Cut and paste your commands. See the syntax in the section above.
  5. When you are done, click "Import V1 commands" or "Import CSV commands".
  6. The tool will convert your commands into human-readable form. Inspect them and click "Run" to execute.
  7. As your commands are being processed, double-check the results, and press "STOP" if you detect a problem.
  8. The user interface will tell you when all commands have been processed.

Using QuickStatements version 1Edit

Screenshot of using QuickStatements version 1

QuickStatements version 1 is still available, but no longer maintained. It stopped working for some users, while still working fine for others.

  1. Go to
  2. Cut and paste your commands into the window
  3. Click "Do it"
  4. The user interface will tell you when all statements have been processed.

Using QuickStatements version 2 in batch modeEdit

Warning: As of May 2020 duplicated items may be created in batch mode. Please make sure you can find and merge them! This does not affect frontend mode.

When to use batch mode?Edit

QuickStatements version 2 has "Run in background" button

Note: QuickStatements V2 has a new interface, for the new interface parts of the following doesn't apply any more!

Batch mode (also known as running in the background) means your statements are executed from a Wikimedia server, rather than from your Web browser. This has several advantages:

  • Even if you close your browser or if your computer crashes, the statements will be executed until the last one.
  • You can launch several batches in parallel, without slowing down your computer.
  • You get a unique URL for your batch, to which you can refer later. This page shows some statistics about your run.
  • You or an admin can stop your batch by going to this URL. For instance, if it is realized that your batch is erroneous and you are sleeping, an admin can stop it immediately (by going to the individual batch page), rather than having to block you.

But there are also drawbacks:

  • It takes a few more clicks, so as a rule of thumb if you only have 10 or fewer statements, then better run them in normal mode.
  • Depending on how busy the server is it might take a time for your batch to start so that checking the results might not be possible immediately.

Prior to , batch edits would also be made as User:QuickStatementsBot instead of as the user submitting the batch.

Before running a batch, it can be a good idea to run a few commands directly in non-batch mode to get a good view of what is being done.

Using batch modeEdit

  1. Prepare your statement normally as described in Using QuickStatements version 2 section above
  2. Instead of pressing "Run", press "Run in background" button.
  3. "Your last batches" will show a list of the most recent batches run by you, with statistics.

The following statistics values are available:

  • DONE: The number of statements that were successful run
  • ERROR: The number of statements that failed
  • INIT: The number of statements left to run
  • RUN: The number of statements being run right now

Running QuickStatements through URLEdit

An alternative way of communicating with QuickStatements is to use URL instead of cutting and pasting commands into import window. That approach worked for QuickStatements V1 and original V2, but no longer works in V2 rewrite. For example in original original V2, if we import Q37887397 TAB P214 TAB "96480189" TAB S143 TAB Q565 statement using cut-and-past method (image #1 below), it will show the parsed statement and in URL field QS will show https: //"96480189"%09S143%09Q565 or (image #2 below)(Statement is to add to Emile Justin Merlot (Q37887397) VIAF ID (P214) "96480189" with source imported from Wikimedia project (P143) Wikimedia Commons (Q565)). Creating the URL through some other means can skip the initial step. Many templates on Commons, like c:Template:Creator or c:Template:Authority control use that technique to package information that can be imported to Wikidata into a clickable URL.


  • The URL cannot have any spaces. Replace TAB with "%09", double quote with "%22", space with "%20", end-of-line (newline) with "%0A", and slash "/" with "%2F".
  • Statements with URL inputs that have "_" or " " can be added through regular interface but not through URL. For example this URL was produced by the tool and it works; however if you click or cut-and-paste it you will end up on a page with slightly different URL, which does not work.
  • [[File:Commons to Wikidata QuickStatements.svg|20px|link=]] will encode the URL within a handy clickable icon:   (click it but do not click "run"; pressing it will not work since that item already has that property).
  • Pages with QuickStatements URLs may be located through Special:LinkSearch (see here) or through a database query calling externallinks table (see for example here).


QuickStatements version 2 currently cannot:

  • create multiple items that are linked each other
  • set ranks for statements
  • set comments when removing statements
  • specify calendar for a date statement
  • specify precision or globe for a location statement
  • add URLs with some characters like "_" or "="
  • add statements to redirected items
  • add second statement with the same property and value but with different qualifiers, since additional qualifiers will be added to the first statement
  • remove qualifier or reference only (without removing statement itself) and aliases
  • update badges
  • create lexemes

Note that for using QuickStatements an account needs to be autoconfirmed.


Can QuickStatements add reference statements with more than one claim?
Yes, current QuickStatements can add references that have for example both imported from Wikimedia project (P143) and retrieved (P813) (see here) or both stated in (P248) and page(s) (P304).
How do I experiment with QuickStatements?
Use Wikidata Sandbox (Q4115189).
How do I report issues with the tool?
Check with other users at the talk page or at Wikidata:Project chat. Confirmed bugs should be reported on Phabricator after reading mw:How to report a bug.
Where do I suggest new features?
You can ask at tool's Bitbucket page or at User:Magnus Manske/quick statements2, but be aware that we keep Magnus busy!
What is the maximum number of commands I can enter at once?
Not documented. It was already tested with over 11,000 commands. But note that such large batch runs will take several hours to complete.

Best practicesEdit

  • QuickStatements allows edits ranging from single statement to multi-thousand-item batch runs. Very large runs or potentially-controversial runs should go through approval process described in Wikidata:Bots.
  • Users should avoid creating duplicate items.
  • All statements should have references as per Help:Sources. That might be less important for identifiers, like VIAF ID (P214) or RKDartists ID (P650), etc.
  • Users doing the edits are responsible for fixing or undoing their changes if issues are found. See about statement removal.

Using the API to start batchesEdit

If you are logged in on QuickStatements, you can get a token on your user page. That page also contains information about how to use the token to submit batches programmatically. You need to have submitted at least one server-side batch manually before for this to work!

See alsoEdit