openapi: 3.0.3 info: title: MediaWiki Action articles wikidata API description: 'The MediaWiki Action API is the original programmatic interface to MediaWiki, exposed under /w/api.php on every MediaWiki installation. All operations dispatch via the ?action= query parameter. The API supports JSON, XML, and PHP serialization; JSON is the recommended format. Wikimedia projects strongly recommend serial (not parallel) calls, the use of maxlag for non-interactive jobs, and a contactable User-Agent header. The Action API remains the primary write interface (edit, upload, login, patrol) even where the Core REST API is also available.' version: '1.45' x-generated-from: documentation x-source-url: https://www.mediawiki.org/wiki/API:Main_page x-last-validated: '2026-05-29' contact: name: Wikimedia Foundation url: https://www.mediawiki.org/wiki/API:Etiquette license: name: CC BY-SA 4.0 url: https://creativecommons.org/licenses/by-sa/4.0/ servers: - url: https://en.wikipedia.org/w description: English Wikipedia - url: https://{lang}.wikipedia.org/w description: Per-language Wikipedia variables: lang: default: en description: Language code - url: https://commons.wikimedia.org/w description: Wikimedia Commons - url: https://www.wikidata.org/w description: Wikidata - url: https://www.mediawiki.org/w description: MediaWiki.org tags: - name: wikidata paths: /v2/wikidata/items/{identifier}: summary: Wikidata Item Lookup (Beta) description: Returns data and metadata about the last revision of a given Wikidata Item identifier (Q-number, e.g. Q42). Only gives access to the Main Wikidata graph. get: tags: - wikidata parameters: - in: path name: identifier description: Wikidata Item identifier (Q-number, e.g. Q42). required: true schema: type: string minLength: 1 example: Q42 - in: query name: fields description: Select which fields to receive in your response, using JSON dot notation. schema: type: array items: type: string example: name responses: 200: description: OK content: application/json: schema: type: array format: json items: $ref: '#/components/schemas/wikidata_article' application/x-ndjson: schema: type: array format: ndjson items: $ref: '#/components/schemas/wikidata_article' 401: description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/error' application/x-ndjson: schema: type: string format: ndjson example: '{"message":"string","status": 401} ' 403: description: Forbidden content: application/json: schema: $ref: '#/components/schemas/error' application/x-ndjson: schema: type: string format: ndjson example: '{"message":"string","status": 403} ' 404: description: Not Found content: application/json: schema: $ref: '#/components/schemas/error' application/x-ndjson: schema: type: string format: ndjson example: '{"message":"string","status": 404} ' 422: description: Unprocessable Entity content: application/json: schema: $ref: '#/components/schemas/error' application/x-ndjson: schema: type: string format: ndjson example: '{"message":"string","status":422} ' 500: description: Internal Server Error, Retry Request content: application/json: schema: $ref: '#/components/schemas/error' application/x-ndjson: schema: type: string format: ndjson example: '{"message":"string","status":500} ' x-microcks-operation: delay: 0 dispatcher: FALLBACK post: tags: - wikidata parameters: - in: path name: identifier description: Wikidata Item identifier (Q-number, e.g. Q42). required: true schema: type: string minLength: 1 example: Q42 requestBody: content: application/json: schema: type: object properties: fields: type: array example: '["name","identifier"]' description: Select which fields to receive in your response, using JSON dot notation. items: type: string responses: 200: description: OK content: application/json: schema: type: array format: json items: $ref: '#/components/schemas/wikidata_article' application/x-ndjson: schema: type: array format: ndjson items: $ref: '#/components/schemas/wikidata_article' 401: description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/error' application/x-ndjson: schema: type: string format: ndjson example: '{"message":"string","status": 401} ' 403: description: Forbidden content: application/json: schema: $ref: '#/components/schemas/error' application/x-ndjson: schema: type: string format: ndjson example: '{"message":"string","status": 403} ' 404: description: Not Found content: application/json: schema: $ref: '#/components/schemas/error' application/x-ndjson: schema: type: string format: ndjson example: '{"message":"string","status": 404} ' 422: description: Unprocessable Entity content: application/json: schema: $ref: '#/components/schemas/error' application/x-ndjson: schema: type: string format: ndjson example: '{"message":"string","status":422} ' 500: description: Internal Server Error, Retry Request content: application/json: schema: $ref: '#/components/schemas/error' application/x-ndjson: schema: type: string format: ndjson example: '{"message":"string","status":500} ' x-microcks-operation: delay: 0 dispatcher: FALLBACK /v2/wikidata/properties/{identifier}: summary: Wikidata Property Lookup (Beta) description: Returns data and metadata about the last revision of a given Wikidata Property identifier (P-number, e.g. P31). get: tags: - wikidata parameters: - in: path name: identifier description: Wikidata Property identifier (P-number, e.g. P31). required: true schema: type: string minLength: 1 example: P31 - in: query name: fields description: Select which fields to receive in your response, using JSON dot notation. schema: type: array items: type: string example: name responses: 200: description: OK content: application/json: schema: type: array format: json items: $ref: '#/components/schemas/wikidata_article' application/x-ndjson: schema: type: array format: ndjson items: $ref: '#/components/schemas/wikidata_article' 401: description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/error' application/x-ndjson: schema: type: string format: ndjson example: '{"message":"string","status": 401} ' 403: description: Forbidden content: application/json: schema: $ref: '#/components/schemas/error' application/x-ndjson: schema: type: string format: ndjson example: '{"message":"string","status": 403} ' 404: description: Not Found content: application/json: schema: $ref: '#/components/schemas/error' application/x-ndjson: schema: type: string format: ndjson example: '{"message":"string","status": 404} ' 422: description: Unprocessable Entity content: application/json: schema: $ref: '#/components/schemas/error' application/x-ndjson: schema: type: string format: ndjson example: '{"message":"string","status":422} ' 500: description: Internal Server Error, Retry Request content: application/json: schema: $ref: '#/components/schemas/error' application/x-ndjson: schema: type: string format: ndjson example: '{"message":"string","status":500} ' x-microcks-operation: delay: 0 dispatcher: FALLBACK post: tags: - wikidata parameters: - in: path name: identifier description: Wikidata Property identifier (P-number, e.g. P31). required: true schema: type: string minLength: 1 example: P31 requestBody: content: application/json: schema: type: object properties: fields: type: array example: '["name","identifier"]' description: Select which fields to receive in your response, using JSON dot notation. items: type: string responses: 200: description: OK content: application/json: schema: type: array format: json items: $ref: '#/components/schemas/wikidata_article' application/x-ndjson: schema: type: array format: ndjson items: $ref: '#/components/schemas/wikidata_article' 401: description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/error' application/x-ndjson: schema: type: string format: ndjson example: '{"message":"string","status": 401} ' 403: description: Forbidden content: application/json: schema: $ref: '#/components/schemas/error' application/x-ndjson: schema: type: string format: ndjson example: '{"message":"string","status": 403} ' 404: description: Not Found content: application/json: schema: $ref: '#/components/schemas/error' application/x-ndjson: schema: type: string format: ndjson example: '{"message":"string","status": 404} ' 422: description: Unprocessable Entity content: application/json: schema: $ref: '#/components/schemas/error' application/x-ndjson: schema: type: string format: ndjson example: '{"message":"string","status":422} ' 500: description: Internal Server Error, Retry Request content: application/json: schema: $ref: '#/components/schemas/error' application/x-ndjson: schema: type: string format: ndjson example: '{"message":"string","status":500} ' x-microcks-operation: delay: 0 dispatcher: FALLBACK /v2/wikidata/labels/{identifier}: summary: Wikidata Labels List (Beta) description: Returns a single JSON object of key-value pairs, where the key is the Wikimedia language code and the value is the label for that language code. Works for Wikidata item identifiers (Q-number) and property identifiers (P-number). Only gives access to the Main Wikidata graph for item identifiers. Gives access to all property identifiers. get: tags: - wikidata parameters: - in: path name: identifier description: Wikidata item identifier (Q-number, e.g. Q42), or property identifier (P-number, e.g. P31) required: true schema: type: string minLength: 1 example: Q42 - in: query name: fields description: Select which fields to receive in your response, using JSON dot notation. schema: type: array items: type: string example: name responses: 200: description: OK content: application/json: schema: type: array format: json items: $ref: '#/components/schemas/wikidata_labels' application/x-ndjson: schema: type: array format: ndjson items: $ref: '#/components/schemas/wikidata_labels' 401: description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/error' application/x-ndjson: schema: type: string format: ndjson example: '{"message":"string","status": 401} ' 403: description: Forbidden content: application/json: schema: $ref: '#/components/schemas/error' application/x-ndjson: schema: type: string format: ndjson example: '{"message":"string","status": 403} ' 404: description: Not Found content: application/json: schema: $ref: '#/components/schemas/error' application/x-ndjson: schema: type: string format: ndjson example: '{"message":"string","status": 404} ' 422: description: Unprocessable Entity content: application/json: schema: $ref: '#/components/schemas/error' application/x-ndjson: schema: type: string format: ndjson example: '{"message":"string","status":422} ' 500: description: Internal Server Error, Retry Request content: application/json: schema: $ref: '#/components/schemas/error' application/x-ndjson: schema: type: string format: ndjson example: '{"message":"string","status":500} ' x-microcks-operation: delay: 0 dispatcher: FALLBACK post: tags: - wikidata parameters: - in: path name: identifier description: Wikidata item identifier (Q-number, e.g. Q42), or property identifier (P-number, e.g. P31) required: true schema: type: string minLength: 1 example: Q42 requestBody: content: application/json: schema: type: object properties: fields: type: array example: '["name","identifier"]' description: Select which fields to receive in your response, using JSON dot notation. items: type: string responses: 200: description: OK content: application/json: schema: type: array format: json items: $ref: '#/components/schemas/wikidata_labels' application/x-ndjson: schema: type: array format: ndjson items: $ref: '#/components/schemas/wikidata_labels' 401: description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/error' application/x-ndjson: schema: type: string format: ndjson example: '{"message":"string","status": 401} ' 403: description: Forbidden content: application/json: schema: $ref: '#/components/schemas/error' application/x-ndjson: schema: type: string format: ndjson example: '{"message":"string","status": 403} ' 404: description: Not Found content: application/json: schema: $ref: '#/components/schemas/error' application/x-ndjson: schema: type: string format: ndjson example: '{"message":"string","status": 404} ' 422: description: Unprocessable Entity content: application/json: schema: $ref: '#/components/schemas/error' application/x-ndjson: schema: type: string format: ndjson example: '{"message":"string","status":422} ' 500: description: Internal Server Error, Retry Request content: application/json: schema: $ref: '#/components/schemas/error' application/x-ndjson: schema: type: string format: ndjson example: '{"message":"string","status":500} ' x-microcks-operation: delay: 0 dispatcher: FALLBACK components: schemas: wikidata_entity_property: type: object required: - identifier - data_type properties: identifier: type: string description: Wikidata Property identifier (P-number, e.g. P31). example: P31 data_type: type: string description: The expected data type of the value for this property, e.g. time, quantity, wikibase-item, url, string. The actual data type of the value for this property is found in statements.PID.property.value.type example: time labels: type: object description: Key-value pairs with property labels in different languages example: en: instance of de: Instanz von fr: instance de article_namespace: type: object properties: identifier: type: number example: 0 language: type: object properties: identifier: type: string example: en name: type: string example: English alternate_name: type: string example: English direction: type: string example: ltr event: type: object properties: identifier: type: string example: f7c737db-4b50-4982-8804-7c2b9fa89020 type: type: string example: update enum: - update - delete date_created: type: string example: 2026-03-18 12:38:23.437225+00:00 error: type: object properties: message: type: string status: type: integer wikidata_article: type: object required: - name - identifier - url - protection - redirects - license properties: name: type: string example: P31 description: Wikidata item identifier (Q-number, e.g. Q42), or property identifier (P-number, e.g. P31) identifier: type: integer format: uuid description: unique numeric identifier of the article example: 104546757 date_created: type: string format: date-time description: ISO 8601 timestamp of when the article was first created example: '2024-04-01T12:00:00Z' date_modified: type: string format: date-time description: ISO 8601 timestamp of when the article was last modified example: '2024-06-01T12:00:00Z' date_previously_modified: type: string format: date-time description: Timestamp of the before-last revision in RFC3339 format example: '2024-05-01T12:00:00Z' protection: $ref: '#/components/schemas/protection' url: type: string format: uri description: URL to the article example: https://www.wikidata.org/wiki/Q109388644 namespace: $ref: '#/components/schemas/article_namespace' is_part_of: $ref: '#/components/schemas/project' entity: $ref: '#/components/schemas/wikidata_entity' visibility: $ref: '#/components/schemas/visibility' license: $ref: '#/components/schemas/license' event: $ref: '#/components/schemas/event' wikidata_statement: type: object description: Statement connecting a value to a Wikidata entity through a property. Each statement corresponds to a single claim on the Wikidata entity, and includes the value of the claim and metadata about the claim such as references, qualifiers, and ranks required: - identifier - rank - property - value - qualifiers - references properties: identifier: type: string format: uuid description: Unique identifier for the statement example: Q56603478$B070CCDB-B608-492C-B15A-4ABC5CED7AF6 rank: type: string description: Rank of the statement among other similar statements. Possible values are normal, preferred, and deprecated enum: - normal - preferred - deprecated example: normal property: $ref: '#/components/schemas/wikidata_entity_property' value: $ref: '#/components/schemas/wikidata_entity_value' qualifiers: $ref: '#/components/schemas/wikidata_entity_qualifier' references: $ref: '#/components/schemas/wikidata_entity_statement_reference' wikidata_entity_reference_part: type: object required: - property - value properties: property: description: The property this reference part refers to. Has the same substructure as statements.PID.property $ref: '#/components/schemas/wikidata_entity_property' value: description: The value of the reference part. Has the same substructure as statements.PROPERTYID.value $ref: '#/components/schemas/wikidata_entity_value' wikidata_sitelinks: type: object description: Mapping of this Wikidata item to other Wikimedia project site URLs required: - title - badges - url properties: title: type: string description: Title of the linked page example: Pentominium badges: type: array description: Badge identifiers for this sitelink example: - Q17437796 - Q6540326 url: type: string format: uri description: URL to the linked page example: https://de.wikipedia.org/wiki/Pentominium wikidata_entity_statement_reference: type: object description: Reference supporting a Wikidata statement required: - identifier - parts properties: identifier: type: string description: unique identifier for the reference example: 63309730314f4c20bf6b1008fe8ffd2b155272b3 parts: type: array description: Parts that make up this reference items: $ref: '#/components/schemas/wikidata_entity_reference_part' wikidata_entity: type: object required: - identifier - type properties: identifier: type: string description: Wikidata item identifier (Q-number, e.g. Q42), or property identifier (P-number, e.g. P31) example: Q42 type: type: string enum: - item - property description: The type of entity, either "item" or "property" example: item labels: $ref: '#/components/schemas/wikidata_labels' descriptions: type: object description: Key-value pairs with descriptions in different languages example: en: Championship held at Balbir Singh Juneja Indoor Stadium aliases: type: object description: Key-value pairs with aliases in different languages. Every language may have multiple aliases example: eo: - Douglas ADAMS - Douglas Noel ADAMS statements: $ref: '#/components/schemas/wikidata_statements' sitelinks: $ref: '#/components/schemas/wikidata_sitelinks' visibility: type: object properties: comment: type: boolean example: true text: type: boolean example: true user: type: boolean example: false license: type: object properties: identifier: type: string example: CC-BY-SA-4.0 name: type: string example: Creative Commons Attribution-ShareAlike License 4.0 url: type: string example: https://creativecommons.org/licenses/by-sa/4.0/ wikidata_entity_qualifier: type: object description: Qualifier further describing or refining the value of a property in a statement required: - property - value properties: property: $ref: '#/components/schemas/wikidata_entity_property' value: $ref: '#/components/schemas/wikidata_entity_value' project: type: object properties: identifier: type: string example: enwiki code: type: string example: wiki name: type: string example: Wikipedia url: type: string example: https://en.wikipedia.org in_language: $ref: '#/components/schemas/language' wikidata_statements: type: array description: Array of statement objects for this property items: $ref: '#/components/schemas/wikidata_statement' wikidata_labels: type: object description: key-value pairs with labels in different languages example: ce: Оьзлер en: Özler wikidata_entity_value: type: object description: This object represents the actual value in a statement or qualifier required: - type - labels properties: content: type: string description: String representation of the value. If the value is too complex to represent as a string or integer, this will be replaced by statements.PID.value.content_data example: Adams, Douglas (1952-2001) type: type: string description: The actual data type of the value for this property. Should match statements.PID.property.data_type, but might not. example: wikibase-item content_data: type: object description: An object holding the representation of the value. If the value can be represented simply as a string or integer, this will be replaced by statements.PID.value.content example: after: '0' before: '0' Calendarmodel: http://www.wikidata.org/entity/Q1985727 precision: '9' Time: +1861-00-00T00:00:00Z timezone: '0' labels: $ref: '#/components/schemas/wikidata_labels' protection: type: object properties: expiry: type: string enum: - infinite - indefinite - infinity - never example: infinity level: type: string example: extendedconfirmed type: type: string example: edit securitySchemes: BearerAuth: type: http scheme: bearer description: OAuth 2.0 bearer token from meta.wikimedia.org CookieAuth: type: apiKey in: cookie name: '{wiki}wikiUserID' description: Session cookie obtained via action=login or action=clientlogin