openapi: 3.0.3
info:
title: MediaWiki Action articles Page content 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: Page content
description: page content in different formats
paths:
/page/:
get:
tags:
- Page content
summary: Wikimedia REST List Page-related API Entry Points.
description: 'Stability: [stable](https://www.mediawiki.org/wiki/API_versioning#Stable)
'
responses:
'200':
description: A list of page-related API end points.
content:
application/json:
schema:
$ref: '#/components/schemas/listing'
default:
description: Error
content:
application/problem+json:
schema:
$ref: '#/components/schemas/problem'
x-monitor: false
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/page/title/{title}:
get:
tags:
- Page content
summary: Wikimedia REST Get Revision Metadata for a Title.
description: 'Returns the revision metadata for the given title. If a revision ID is provided,
metadata for that revision is returned, otherwise the latest revision ID is assumed.
Stability: [stable](https://www.mediawiki.org/wiki/API_versioning#Stable).
'
parameters:
- name: title
in: path
description: 'Page title. Use underscores instead of spaces. Use percent-encoding. Example: `Main_Page`.'
required: true
schema:
type: string
responses:
'200':
description: The latest revision metadata for the provided title.
content:
application/json:
schema:
$ref: '#/components/schemas/revision'
'301':
description: 'A permanent redirect is returned if the supplied article title was not in the normalized form.
To avoid these redirects, you can use the [mediawiki-title](https://github.com/wikimedia/mediawiki-title) library to perform
title normalization client side.
Beware that redirected pre-flighted cross-origin requests (such as those sending custom request headers like `Api-User-Agent`)
will fail in most current browsers [due to a spec bug](https://github.com/whatwg/fetch/issues/204).
'
'302':
description: 'The page is a [redirect page](https://www.mediawiki.org/wiki/Help:Redirects).
The `location` header points to the redirect target.
If you would like to avoid automatically following redirect pages, set the `redirect=false` query parameter.
Beware that redirected pre-flighted cross-origin requests (such as those sending custom request headers like `Api-User-Agent`)
will fail in most current browsers [due to a spec bug](https://github.com/whatwg/fetch/issues/204).
'
'404':
description: Unknown page title or no revisions found.
content:
application/problem+json:
schema:
$ref: '#/components/schemas/problem'
default:
description: Error
content:
application/problem+json:
schema:
$ref: '#/components/schemas/problem'
x-monitor: true
x-amples:
- title: Get rev by title from storage
request:
params:
domain: en.wikipedia.org
title: User:BSitzmann_(WMF)/MCS/Test/Frankenstein
response:
status: 200
headers:
etag: /.+/
content-type: application/json
body:
items:
- title: User:BSitzmann_(WMF)/MCS/Test/Frankenstein
rev: /\d+/
tid: /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/
comment: /.*/
page_language: en
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/page/title/{title}/{revision}:
get:
tags:
- Page content
summary: Wikimedia REST Get Revision Metadata for a Title.
description: 'Returns the revision metadata for the given title. If a revision ID is provided,
metadata for that revision is returned, otherwise the latest revision ID is assumed.
Stability: [stable](https://www.mediawiki.org/wiki/API_versioning#Stable).
'
parameters:
- name: title
in: path
description: 'Page title. Use underscores instead of spaces. Use percent-encoding. Example: `Main_Page`.'
required: true
schema:
type: string
- name: revision
in: path
description: The revision id
required: true
schema:
type: integer
responses:
'200':
description: The latest revision metadata for the provided title.
content:
application/json:
schema:
$ref: '#/components/schemas/revision'
'301':
description: 'A permanent redirect is returned if the supplied article title was not in the normalized form.
To avoid these redirects, you can use the [mediawiki-title](https://github.com/wikimedia/mediawiki-title) library to perform
title normalization client side.
Beware that redirected pre-flighted cross-origin requests (such as those sending custom request headers like `Api-User-Agent`)
will fail in most current browsers [due to a spec bug](https://github.com/whatwg/fetch/issues/204).
'
'302':
description: 'The page is a [redirect page](https://www.mediawiki.org/wiki/Help:Redirects).
The `location` header points to the redirect target.
If you would like to avoid automatically following redirect pages, set the `redirect=false` query parameter.
Beware that redirected pre-flighted cross-origin requests (such as those sending custom request headers like `Api-User-Agent`)
will fail in most current browsers [due to a spec bug](https://github.com/whatwg/fetch/issues/204).
'
'404':
description: Unknown page title or no revisions found.
content:
application/problem+json:
schema:
$ref: '#/components/schemas/problem'
default:
description: Error
content:
application/problem+json:
schema:
$ref: '#/components/schemas/problem'
x-monitor: false
x-amples:
- title: Get rev by title from storage
request:
params:
domain: en.wikipedia.org
title: User:BSitzmann_(WMF)/MCS/Test/Frankenstein
response:
status: 200
headers:
etag: /.+/
content-type: application/json
body:
items:
- title: User:BSitzmann_(WMF)/MCS/Test/Frankenstein
rev: /\d+/
tid: /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/
comment: /.*/
page_language: en
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/page/html/{title}:
get:
tags:
- Page content
summary: Wikimedia REST Get Latest HTML for a Title.
description: 'Stability: [stable](https://www.mediawiki.org/wiki/API_versioning#Stable)
'
parameters:
- name: title
in: path
description: 'Page title. Use underscores instead of spaces. Use percent-encoding. Example: `Main_Page`.'
required: true
schema:
type: string
- name: redirect
in: query
description: 'Requests for [redirect pages](https://www.mediawiki.org/wiki/Help:Redirects) return HTTP 302 with a redirect target in `Location` header and content in the body.
To get a 200 response instead, supply `false` to the `redirect` parameter.
'
schema:
type: boolean
required: false
- name: stash
in: query
description: 'Whether to temporary stash data-parsoid metadata in order to support transforming the
modified content later. If this parameter is set, requests are rate-limited on
a per-client basis (max 5 requests per second per client)
'
schema:
type: boolean
- name: Accept-Language
in: header
description: 'The desired language variant code for wikis where LanguageConverter is enabled. Example: `sr-el` for Latin transcription of the Serbian language.
'
schema:
type: string
responses:
'200':
description: 'The latest HTML for the given page title.
See [the MediaWiki DOM
spec](https://www.mediawiki.org/wiki/Parsoid/MediaWiki_DOM_spec) for a
description of the MediaWiki-specific semantic markup in this HTML.
Note that additional metadata is available in the HTML head.
'
headers:
ETag:
description: 'ETag header indicating the revision and render timeuuid
separated by a slash:
"701384379/154d7bca-c264-11e5-8c2f-1b51b33b59fc"
This ETag can be passed to the HTML save end point (as
`base_etag` POST parameter), and can also be used to retrieve
the exact corresponding data-parsoid metadata, by requesting
the specific `revision` and `tid` indicated by the `ETag`.
'
schema:
type: string
content:
text/html; charset=utf-8; profile="https://www.mediawiki.org/wiki/Specs/HTML/2.1.0":
schema:
type: string
application/json:
schema:
type: object
'301':
description: 'A permanent redirect is returned if the supplied article title was not in the normalized form.
To avoid this kind of redirect, you can use the [mediawiki-title](https://github.com/wikimedia/mediawiki-title) library to perform
title normalization client-side.
Beware that redirected pre-flighted cross-origin requests (such as those sending custom request headers like `Api-User-Agent`)
will fail in most current browsers [due to a spec bug](https://github.com/whatwg/fetch/issues/204).
'
'302':
description: 'The page is a [redirect page](https://www.mediawiki.org/wiki/Help:Redirects).
The `location` header points to the redirect target, and the body contains the actual page contents as HTML.
If you would like to avoid automatically following redirect pages, set the `redirect=false` query parameter.
Beware that redirected pre-flighted cross-origin requests (such as those sending custom request headers like `Api-User-Agent`)
will fail in most current browsers [due to a spec bug](https://github.com/whatwg/fetch/issues/204).
'
'404':
description: Unknown page title
content:
application/problem+json:
schema:
$ref: '#/components/schemas/problem'
default:
description: Error
content:
application/problem+json:
schema:
$ref: '#/components/schemas/problem'
x-monitor: true
x-amples:
- title: Get html by title from storage
request:
params:
domain: en.wikipedia.org
title: User:BSitzmann_(WMF)/MCS/Test/Frankenstein
response:
status: 200
headers:
etag: /.+/
content-type: /^text\/html.+/
body: /^<!DOCTYPE html>.*/
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/page/html/{title}/{revision}:
get:
tags:
- Page content
summary: Wikimedia REST Get HTML for a Specific Title/revision & Optionally Timeuuid.
description: 'Stability: [stable](https://www.mediawiki.org/wiki/API_versioning#Stable)
'
operationId: getFormatRevision
parameters:
- name: title
in: path
description: 'Page title. Use underscores instead of spaces. Use percent-encoding. Example: `Main_Page`.'
required: true
schema:
type: string
- name: revision
in: path
description: The revision
required: true
schema:
type: integer
- name: redirect
in: query
description: 'Requests for [redirect pages](https://www.mediawiki.org/wiki/Help:Redirects) return HTTP 302 with a redirect target in `Location` header and content in the body.
To get a 200 response instead, supply `false` to the `redirect` parameter.
'
schema:
type: boolean
- name: stash
in: query
description: 'Whether to temporary stash data-parsoid metadata in order to support transforming the
modified content later. If this parameter is set, requests are rate-limited on
a per-client basis (max 5 requests per second per client)
'
schema:
type: boolean
- name: Accept-Language
in: header
description: 'The desired language variant code for wikis where LanguageConverter is enabled. Example: `sr-el` for Latin transcription of the Serbian language.
'
schema:
type: string
responses:
'200':
description: 'The html for the given page, revision and tid.
See [the MediaWiki DOM
spec](https://www.mediawiki.org/wiki/Parsoid/MediaWiki_DOM_spec) for a
description of the MediaWiki-specific semantic markup in this HTML.
Note that additional metadata is available in the HTML head.
This HTML can be edited using arbitrary HTML tools. The modified HTML
can be converted back to wikitext using the
[/transform/html/to/wikitext{/title}{/revision}](#!/Transforms/transform_html_to_wikitext__title___revision__post)
entry point.
'
headers:
ETag:
description: 'ETag header indicating the revision and render timeuuid
separated by a slash:
"701384379/154d7bca-c264-11e5-8c2f-1b51b33b59fc"
This ETag can be passed to the HTML save end point (as
`base_etag` POST parameter), and can also be used to retrieve
the exact corresponding data-parsoid metadata, by requesting
the specific `revision` and `tid` indicated by the `ETag`.
'
schema:
type: string
content:
text/html; charset=utf-8; profile="https://www.mediawiki.org/wiki/Specs/HTML/2.1.0":
schema:
type: string
application/json:
schema:
type: object
'301':
description: 'A permanent redirect is returned if the supplied article title was not in the normalized form.
To avoid this kind of redirect, you can use the [mediawiki-title](https://github.com/wikimedia/mediawiki-title) library to perform
title normalization client-side.
Beware that redirected pre-flighted cross-origin requests (such as those sending custom request headers like `Api-User-Agent`)
will fail in most current browsers [due to a spec bug](https://github.com/whatwg/fetch/issues/204).
'
'302':
description: 'The page is a [redirect page](https://www.mediawiki.org/wiki/Help:Redirects).
The `location` header points to the redirect target, and the body contains the actual page revision contents as HTML.
If you would like to avoid automatically following redirect pages, set the `redirect=false` query parameter.
Beware that redirected pre-flighted cross-origin requests (such as those sending custom request headers like `Api-User-Agent`)
will fail in most current browsers [due to a spec bug](https://github.com/whatwg/fetch/issues/204).
'
'400':
description: Invalid revision or tid
content:
application/problem+json:
schema:
$ref: '#/components/schemas/problem'
'403':
description: Access to the specific revision is restricted
content:
application/problem+json:
schema:
$ref: '#/components/schemas/problem'
'404':
description: Unknown page, revision or tid
content:
application/problem+json:
schema:
$ref: '#/components/schemas/problem'
default:
description: Error
content:
application/problem+json:
schema:
$ref: '#/components/schemas/problem'
x-monitor: false
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/page/lint/{title}:
get:
tags:
- Page content
summary: Wikimedia REST Get the Linter Errors for a Specific Title/revision.
description: 'Stability: [experimental](https://www.mediawiki.org/wiki/API_versioning#Experimental)
'
parameters:
- name: title
in: path
description: 'Page title. Use underscores instead of spaces. Use percent-encoding. Example: `Main_Page`.'
required: true
schema:
type: string
responses:
'200':
description: 'The lint errors for the given page and optionally revision.
See [the Linter extension docs](https://www.mediawiki.org/wiki/Extension:Linter) for more
details.
'
content:
application/json:
schema:
type: object
'301':
description: 'A permanent redirect is returned if the supplied article title was not in the normalized form.
To avoid this kind of redirect, you can use the [mediawiki-title](https://github.com/wikimedia/mediawiki-title) library to perform
title normalization client-side.
Beware that redirected pre-flighted cross-origin requests (such as those sending custom request headers like `Api-User-Agent`)
will fail in most current browsers [due to a spec bug](https://github.com/whatwg/fetch/issues/204).
'
'302':
description: 'The page is a [redirect page](https://www.mediawiki.org/wiki/Help:Redirects).
The `location` header points to the redirect target, and the body contains the actual page revision contents as HTML.
If you would like to avoid automatically following redirect pages, set the `redirect=false` query parameter.
Beware that redirected pre-flighted cross-origin requests (such as those sending custom request headers like `Api-User-Agent`)
will fail in most current browsers [due to a spec bug](https://github.com/whatwg/fetch/issues/204).
'
'400':
description: Invalid revision or tid
content:
application/problem+json:
schema:
$ref: '#/components/schemas/problem'
'403':
description: Access to the specific revision is restricted
content:
application/problem+json:
schema:
$ref: '#/components/schemas/problem'
'404':
description: Unknown page, revision or tid
content:
application/problem+json:
schema:
$ref: '#/components/schemas/problem'
default:
description: Error
content:
application/problem+json:
schema:
$ref: '#/components/schemas/problem'
x-monitor: false
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/page/lint/{title}/{revision}:
get:
tags:
- Page content
summary: Wikimedia REST Get the Linter Errors for a Specific Title/revision.
description: 'Stability: [experimental](https://www.mediawiki.org/wiki/API_versioning#Experimental)
'
parameters:
- name: title
in: path
description: 'Page title. Use underscores instead of spaces. Use percent-encoding. Example: `Main_Page`.'
required: true
schema:
type: string
- name: revision
in: path
description: The revision
required: true
schema:
type: integer
responses:
'200':
description: 'The lint errors for the given page and optionally revision.
See [the Linter extension docs](https://www.mediawiki.org/wiki/Extension:Linter) for more
details.
'
content:
application/json:
schema:
type: object
'301':
description: 'A permanent redirect is returned if the supplied article title was not in the normalized form.
To avoid this kind of redirect, you can use the [mediawiki-title](https://github.com/wikimedia/mediawiki-title) library to perform
title normalization client-side.
Beware that redirected pre-flighted cross-origin requests (such as those sending custom request headers like `Api-User-Agent`)
will fail in most current browsers [due to a spec bug](https://github.com/whatwg/fetch/issues/204).
'
'302':
description: 'The page is a [redirect page](https://www.mediawiki.org/wiki/Help:Redirects).
The `location` header points to the redirect target, and the body contains the actual page revision contents as HTML.
If you would like to avoid automatically following redirect pages, set the `redirect=false` query parameter.
Beware that redirected pre-flighted cross-origin requests (such as those sending custom request headers like `Api-User-Agent`)
will fail in most current browsers [due to a spec bug](https://github.com/whatwg/fetch/issues/204).
'
'400':
description: Invalid revision or tid
content:
application/problem+json:
schema:
$ref: '#/components/schemas/problem'
'403':
description: Access to the specific revision is restricted
content:
application/problem+json:
schema:
$ref: '#/components/schemas/problem'
'404':
description: Unknown page, revision or tid
content:
application/problem+json:
schema:
$ref: '#/components/schemas/problem'
default:
description: Error
content:
application/problem+json:
schema:
$ref: '#/components/schemas/problem'
x-monitor: false
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/page/summary/{title}:
get:
tags:
- Page content
summary: Wikimedia REST Get Basic Metadata and Simplified Article Introduction.
description: 'The summary response includes an extract of the first paragraph of the page in plain text
and HTML as well as the type of page. This is useful for page previews (fka. Hovercards,
aka. Popups) on the web and link previews in the apps.
Stability: [stable](https://www.mediawiki.org/wiki/Wikimedia_Product/Wikimedia_Product_Infrastructure_team/API_endpoint_stability_policy#Stable)
Please follow [wikitech-l](https://lists.wikimedia.org/mailman/listinfo/wikitech-l) or [mediawiki-api-announce](https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce) for announcements of breaking changes.
'
parameters:
- name: title
in: path
description: 'Page title. Use underscores instead of spaces. Use percent-encoding. Example: `Main_Page`.'
required: true
schema:
type: string
- name: redirect
in: query
description: 'Requests for [redirect pages](https://www.mediawiki.org/wiki/Help:Redirects) return HTTP 302 with a redirect target in `Location` header and content in the body.
To get a 200 response instead, supply `false` to the `redirect` parameter.
'
schema:
type: boolean
- name: Accept-Language
in: header
description: 'The desired language variant code for wikis where LanguageConverter is enabled. Example: `sr-el` for Latin transcription of the Serbian language.
'
schema:
type: string
responses:
'200':
description: The summary for the given page
headers:
ETag:
description: 'Syntax: "{revision}/{tid}". Example: "701384379/154d7bca-c264-11e5-8c2f-1b51b33b59fc"
'
schema:
type: string
content:
application/json; charset=utf-8; profile="https://www.mediawiki.org/wiki/Specs/Summary/1.4.2":
schema:
$ref: '#/components/schemas/summary'
'301':
description: 'A permanent redirect is returned if the supplied article title was not in the normalized form.
To avoid this kind of redirect, you can use the [mediawiki-title](https://github.com/wikimedia/mediawiki-title) library to perform
title normalization client-side.
Beware that redirected pre-flighted cross-origin requests (such as those sending custom request headers like `Api-User-Agent`)
will fail in most current browsers [due to a spec bug](https://github.com/whatwg/fetch/issues/204).
'
'302':
description: 'The page is a [redirect page](https://www.mediawiki.org/wiki/Help:Redirects).
The `location` header points to the redirect target.
If you would like to avoid automatically following redirect pages, set the `redirect=false` query parameter.
Beware that redirected pre-flighted cross-origin requests (such as those sending custom request headers like `Api-User-Agent`)
will fail in most current browsers [due to a spec bug](https://github.com/whatwg/fetch/issues/204).
'
'404':
description: Unknown page title
content:
application/problem+json:
schema:
$ref: '#/components/schemas/problem'
default:
description: Error
content:
application/problem+json:
schema:
$ref: '#/components/schemas/problem'
x-monitor: true
x-amples:
- title: Get summary from storage
request:
params:
domain: en.wikipedia.org
title: San_Francisco
response:
status: 200
headers:
etag: /.+/
content-type: /^application\/json/
body:
extract: /.+/
extract_html: /.+/
thumbnail:
source: /^https:/
originalimage:
source: /^https:/
lang: en
dir: ltr
description: /.+/
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/page/media-list/{title}:
get:
tags:
- Page content
summary: Wikimedia REST Get List of Media Files Used on a Page.
description: 'Gets the list of media items (images, audio, and video) in the order in which they appear on a
given wiki page.
Stability: [unstable](https://www.mediawiki.org/wiki/Wikimedia_Product/Wikimedia_Product_Infrastructure_team/API_endpoint_stability_policy#Unstable)
Please follow [wikitech-l](https://lists.wikimedia.org/mailman/listinfo/wikitech-l) or [mediawiki-api-announce](https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce) for announcements of breaking changes.
'
parameters:
- name: title
in: path
description: 'Page title. Use underscores instead of spaces. Use percent-encoding. Example: `Main_Page`.'
required: true
schema:
type: string
- name: redirect
in: query
description: 'Requests for [redirect pages](https://www.mediawiki.org/wiki/Help:Redirects) return HTTP 302 with a redirect target in `Location` header and content in the body.
To get a 200 response instead, supply `false` to the `redirect` parameter.
'
schema:
type: boolean
responses:
'200':
description: JSON containing metadata of media items appearing on the given page.
headers:
ETag:
description: 'Syntax: "{revision}/{tid}". Example: "701384379/154d7bca-c264-11e5-8c2f-1b51b33b59fc"
'
schema:
type: string
content:
application/json; charset=utf-8; profile="https://www.mediawiki.org/wiki/Specs/Media/1.3.1":
schema:
$ref: '#/components/schemas/media_list'
'301':
description: 'A permanent redirect is returned if the supplied article title was not in the normalized form.
To avoid this kind of redirect, you can use the [mediawiki-title](https://github.com/wikimedia/mediawiki-title) library to perform
title normalization client-side.
Beware that redirected pre-flighted cross-origin requests (such as those sending custom request headers like `Api-User-Agent`)
will fail in most current browsers [due to a spec bug](https://github.com/whatwg/fetch/issues/204).
'
'302':
description: 'The page is a [redirect page](https://www.mediawiki.org/wiki/Help:Redirects).
The `location` header points to the redirect target.
If you would like to avoid automatically following redirect pages, set the `redirect=false` query parameter.
Beware that redirected pre-flighted cross-origin requests (such as those sending custom request headers like `Api-User-Agent`)
will fail in most current browsers [due to a spec bug](https://github.com/whatwg/fetch/issues/204).
'
'404':
description: Unknown page title
content:
application/problem+json:
schema:
$ref: '#/components/schemas/problem'
default:
description: Error
content:
application/problem+json:
schema:
$ref: '#/components/schemas/problem'
operationId: getContent-media-list
x-monitor: true
x-amples:
- title: Get media-list from storage
request:
params:
domain: en.wikipedia.org
title: User:BSitzmann_(WMF)/MCS/Test/Frankens
# --- truncated at 32 KB (57 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/wikipedia/refs/heads/main/openapi/wikipedia-page-content-api-openapi.yml