Query structured spec data via REST or MCP. Get exactly what your agent needs.
https://wikimedia.org/api/rest_v1
/metrics/bytes-difference/absolute/aggregate/{project}/{editor-type}/{page-type}/{granularity}/{start}/{end}
Given a Mediawiki project and a date range, returns a timeseries of absolute bytes
difference sums. You can filter by editors-type (all-editor-types, anonymous, group-bot,
name-bot, user) and page-type (all-page-types, content, non-content). You can choose
between daily and monthly granularity as well.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| project | path | required | string | The name of any Wikimedia project formatted like {language code}.{project name}, |
| editor-type | path | required | string | If you want to filter by editor-type, use one of anonymous, group-bot (registered |
| page-type | path | required | string | If you want to filter by page-type, use one of content (edits on pages in content |
| granularity | path | required | string | Time unit for the response data. As of today, supported values are daily and monthly |
| start | path | required | string | The date of the first day to include, in YYYYMMDD format |
| end | path | required | string | The date of the last day to include, in YYYYMMDD format |
Error
The list of values
GET /metrics/bytes-difference/absolute/aggregate/{project}/{editor-type}/{page-type}/{granularity}/{start}/{end}
/metrics/bytes-difference/absolute/per-page/{project}/{page-title}/{editor-type}/{granularity}/{start}/{end}
Given a Mediawiki project, a page-title prefixed with canonical namespace (for
instance ‘User:Jimbo_Wales’) and a date range, returns a timeseries of bytes
difference absolute sums. You can filter by editors-type (all-editor-types, anonymous,
group-bot, name-bot, user). You can choose between daily and monthly granularity as well.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| project | path | required | string | The name of any Wikimedia project formatted like {language code}.{project name}, |
| page-title | path | required | string | The page-title to request absolute bytes-difference for. Should be prefixed with the |
| editor-type | path | required | string | If you want to filter by editor-type, use one of anonymous, group-bot (registered |
| granularity | path | required | string | Time unit for the response data. As of today, supported values are daily and monthly |
| start | path | required | string | The date of the first day to include, in YYYYMMDD format |
| end | path | required | string | The date of the last day to include, in YYYYMMDD format |
Error
The list of values
GET /metrics/bytes-difference/absolute/per-page/{project}/{page-title}/{editor-type}/{granularity}/{start}/{end}
/metrics/bytes-difference/net/aggregate/{project}/{editor-type}/{page-type}/{granularity}/{start}/{end}
Given a Mediawiki project and a date range, returns a timeseries of bytes difference net
sums. You can filter by editors-type (all-editor-types, anonymous, group-bot, name-bot,
user) and page-type (all-page-types, content or non-content). You can choose between
daily and monthly granularity as well.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| project | path | required | string | The name of any Wikimedia project formatted like {language code}.{project name}, |
| editor-type | path | required | string | If you want to filter by editor-type, use one of anonymous, group-bot (registered |
| page-type | path | required | string | If you want to filter by page-type, use one of content (edits on pages in content |
| granularity | path | required | string | Time unit for the response data. As of today, supported values are daily and monthly |
| start | path | required | string | The date of the first day to include, in YYYYMMDD format |
| end | path | required | string | The date of the last day to include, in YYYYMMDD format |
Error
The list of values
GET /metrics/bytes-difference/net/aggregate/{project}/{editor-type}/{page-type}/{granularity}/{start}/{end}
/metrics/bytes-difference/net/per-page/{project}/{page-title}/{editor-type}/{granularity}/{start}/{end}
Given a Mediawiki project, a page-title prefixed with canonical namespace (for
instance ‘User:Jimbo_Wales’) and a date range, returns a timeseries of bytes
difference net sums. You can filter by editors-type (all-editor-types, anonymous,
group-bot, name-bot, user). You can choose between daily and monthly granularity as well.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| project | path | required | string | The name of any Wikimedia project formatted like {language code}.{project name}, |
| page-title | path | required | string | The page-title to request net bytes-difference for. Should be prefixed with the |
| editor-type | path | required | string | If you want to filter by editor-type, use one of anonymous, group-bot (registered |
| granularity | path | required | string | Time unit for the response data. As of today, supported values are daily and monthly |
| start | path | required | string | The date of the first day to include, in YYYYMMDD format |
| end | path | required | string | The date of the last day to include, in YYYYMMDD format |
Error
The list of values
GET /metrics/bytes-difference/net/per-page/{project}/{page-title}/{editor-type}/{granularity}/{start}/{end}
/metrics/edited-pages/aggregate/{project}/{editor-type}/{page-type}/{activity-level}/{granularity}/{start}/{end}
Given a Mediawiki project and a date range, returns a timeseries of its edited-pages counts.
You can filter by editor-type (all-editor-types, anonymous, group-bot, name-bot, user),
page-type (all-page-types, content or non-content) or activity-level (1..4-edits,
5..24-edits, 25..99-edits, 100..-edits). You can choose between daily and monthly
granularity as well.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| project | path | required | string | The name of any Wikimedia project formatted like {language code}.{project name}, |
| editor-type | path | required | string | If you want to filter by editor-type, use one of anonymous, group-bot (registered |
| page-type | path | required | string | If you want to filter by page-type, use one of content (edited-pages in content |
| activity-level | path | required | string | If you want to filter by activity-level, use one of 1..4-edits, 5..24-edits, |
| granularity | path | required | string | The time unit for the response data. As of today, supported values are |
| start | path | required | string | The date of the first day to include, in YYYYMMDD format |
| end | path | required | string | The date of the last day to include, in YYYYMMDD format |
Error
The list of values
GET /metrics/edited-pages/aggregate/{project}/{editor-type}/{page-type}/{activity-level}/{granularity}/{start}/{end}
/metrics/edited-pages/new/{project}/{editor-type}/{page-type}/{granularity}/{start}/{end}
Given a Mediawiki project and a date range, returns a timeseries of its new pages counts.
You can filter by editor type (all-editor-types, anonymous, group-bot, name-bot, user)
or page-type (all-page-types, content or non-content). You can choose between daily and
monthly granularity as well.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| project | path | required | string | The name of any Wikimedia project formatted like {language code}.{project name}, |
| editor-type | path | required | string | If you want to filter by editor-type, use one of anonymous, group-bot (registered |
| page-type | path | required | string | If you want to filter by page-type, use one of content (new pages in content |
| granularity | path | required | string | The time unit for the response data. As of today, supported values are |
| start | path | required | string | The date of the first day to include, in YYYYMMDD format |
| end | path | required | string | The date of the last day to include, in YYYYMMDD format |
Error
The list of values
GET /metrics/edited-pages/new/{project}/{editor-type}/{page-type}/{granularity}/{start}/{end}
/metrics/edited-pages/top-by-absolute-bytes-difference/{project}/{editor-type}/{page-type}/{year}/{month}/{day}
Given a Mediawiki project and a date (day or month), returns a timeseries of the top 100
edited-pages by absolute bytes-difference. You can filter by editor-type (all-editor-types,
anonymous, group-bot, name-bot, user) or page-type (all-page-types, content or non-content).
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| project | path | required | string | The name of any Wikimedia project formatted like {language code}.{project name}, |
| editor-type | path | required | string | If you want to filter by editor-type, use one of anonymous, group-bot (registered |
| page-type | path | required | string | If you want to filter by page-type, use one of content (edits on pages in content |
| year | path | required | string | The year of the date for which to retrieve top edited-pages, in YYYY format. |
| month | path | required | string | The month of the date for which to retrieve top edited-pages, in MM format. If you want to get the top edited-pages of a whole month, the day parameter should be all-days. |
| day | path | required | string | The day of the date for which to retrieve top edited-pages, in DD format, or all-days for a monthly value. |
Error
The list of values
GET /metrics/edited-pages/top-by-absolute-bytes-difference/{project}/{editor-type}/{page-type}/{year}/{month}/{day}
/metrics/edited-pages/top-by-edits/{project}/{editor-type}/{page-type}/{year}/{month}/{day}
Given a Mediawiki project and a date (day or month), returns a timeseries of the top
100 edited-pages by edits count. You can filter by editor-type (all-editor-types,
anonymous, group-bot, name-bot, user) or page-type (all-page-types, content or
non-content).
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| project | path | required | string | The name of any Wikimedia project formatted like {language code}.{project name}, |
| editor-type | path | required | string | If you want to filter by editor-type, use one of anonymous, group-bot (registered |
| page-type | path | required | string | If you want to filter by page-type, use one of content (edits on pages in content |
| year | path | required | string | The year of the date for which to retrieve top edited-pages, in YYYY format. |
| month | path | required | string | The month of the date for which to retrieve top edited-pages, in MM format. If you want to get the top edited-pages of a whole month, the day parameter should be all-days. |
| day | path | required | string | The day of the date for which to retrieve top edited-pages, in DD format, or all-days for a monthly value. |
Error
The list of values
GET /metrics/edited-pages/top-by-edits/{project}/{editor-type}/{page-type}/{year}/{month}/{day}
/metrics/edited-pages/top-by-net-bytes-difference/{project}/{editor-type}/{page-type}/{year}/{month}/{day}
Given a Mediawiki project and a date (day or month), returns a timeseries of the top 100
edited-pages by net bytes-difference. You can filter by editor-type (all-editor-types,
anonymous, group-bot, name-bot, user) or page-type (all-page-types, content or non-content).
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| project | path | required | string | The name of any Wikimedia project formatted like {language code}.{project name}, |
| editor-type | path | required | string | If you want to filter by editor-type, use one of anonymous, group-bot (registered |
| page-type | path | required | string | If you want to filter by page-type, use one of content (edits on pages in content |
| year | path | required | string | The year of the date for which to retrieve top edited-pages, in YYYY format. |
| month | path | required | string | The month of the date for which to retrieve top edited-pages, in MM format. If you want to get the top edited-pages of a whole month, the day parameter should be all-days. |
| day | path | required | string | The day of the date for which to retrieve top edited-pages, in DD format, or all-days for a monthly value. |
Error
The list of values
GET /metrics/edited-pages/top-by-net-bytes-difference/{project}/{editor-type}/{page-type}/{year}/{month}/{day}
/metrics/editors/aggregate/{project}/{editor-type}/{page-type}/{activity-level}/{granularity}/{start}/{end}
Given a Mediawiki project and a date range, returns a timeseries of its editors counts.
You can filter by editory-type (all-editor-types, anonymous, group-bot, name-bot, user),
page-type (all-page-types, content or non-content) or activity-level (1..4-edits,
5..24-edits, 25..99-edits or 100..-edits). You can choose between daily and monthly
granularity as well.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| project | path | required | string | The name of any Wikimedia project formatted like {language code}.{project name}, |
| editor-type | path | required | string | If you want to filter by editor-type, use one of anonymous, group-bot (registered |
| page-type | path | required | string | If you want to filter by page-type, use one of content (edits made in content |
| activity-level | path | required | string | If you want to filter by activity-level, use one of 1..4-edits, 5..24-edits, |
| granularity | path | required | string | The time unit for the response data. As of today, supported values are |
| start | path | required | string | The date of the first day to include, in YYYYMMDD format |
| end | path | required | string | The date of the last day to include, in YYYYMMDD format |
Error
The list of values
GET /metrics/editors/aggregate/{project}/{editor-type}/{page-type}/{activity-level}/{granularity}/{start}/{end}
/metrics/editors/top-by-absolute-bytes-difference/{project}/{editor-type}/{page-type}/{year}/{month}/{day}
Given a Mediawiki project and a date (day or month), returns a timeseries of the top 100
editors by absolute bytes-difference. You can filter by editor-type (all-editor-types,
anonymous, group-bot, name-bot, user) or page-type (all-page-types, content or non-content).
The user_text returned is either the mediawiki user_text if the user is registered, or
null if user is anonymous.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| project | path | required | string | The name of any Wikimedia project formatted like {language code}.{project name}, |
| editor-type | path | required | string | If you want to filter by editor-type, use one of anonymous, group-bot (registered |
| page-type | path | required | string | If you want to filter by page-type, use one of content (edits on pages in content |
| year | path | required | string | The year of the date for which to retrieve top editors, in YYYY format. |
| month | path | required | string | The month of the date for which to retrieve top editors, in MM format. If you want to get the top editors of a whole month, the day parameter should be all-days. |
| day | path | required | string | The day of the date for which to retrieve top editors, in DD format, or all-days for a monthly value. |
Error
The list of values
GET /metrics/editors/top-by-absolute-bytes-difference/{project}/{editor-type}/{page-type}/{year}/{month}/{day}
/metrics/editors/top-by-edits/{project}/{editor-type}/{page-type}/{year}/{month}/{day}
Given a Mediawiki project and a date (day or month), returns a timeseries of the top
100 editors by edits count. You can filter by editor-type (all-editor-types,
anonymous, group-bot, name-bot, user) or page-type (all-page-types, content or
non-content). The user_text returned is either the mediawiki user_text if the user is
registered, or null if user is anonymous.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| project | path | required | string | The name of any Wikimedia project formatted like {language code}.{project name}, |
| editor-type | path | required | string | If you want to filter by editor-type, use one of anonymous, group-bot (registered |
| page-type | path | required | string | If you want to filter by page-type, use one of content (edits on pages in content |
| year | path | required | string | The year of the date for which to retrieve top editors, in YYYY format. |
| month | path | required | string | The month of the date for which to retrieve top editors, in MM format. If you want to get the top editors of a whole month, the day parameter should be all-days. |
| day | path | required | string | The day of the date for which to retrieve top editors, in DD format, or all-days for a monthly value. |
Error
The list of values
GET /metrics/editors/top-by-edits/{project}/{editor-type}/{page-type}/{year}/{month}/{day}
/metrics/editors/top-by-net-bytes-difference/{project}/{editor-type}/{page-type}/{year}/{month}/{day}
Given a Mediawiki project and a date (day or month), returns a timeseries of the top 100
editors by net bytes-difference. You can filter by editor-type (all-editor-types, anonymous,
group-bot, name-bot, user) or page-type (all-page-types, content or non-content). The
user_text returned is either the mediawiki user_text if the user is registered, or
“Anonymous Editor” if user is anonymous.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| project | path | required | string | The name of any Wikimedia project formatted like {language code}.{project name}, |
| editor-type | path | required | string | If you want to filter by editor-type, use one of anonymous, group-bot (registered |
| page-type | path | required | string | If you want to filter by page-type, use one of content (edits on pages in content |
| year | path | required | string | The year of the date for which to retrieve top editors, in YYYY format. |
| month | path | required | string | The month of the date for which to retrieve top editors, in MM format. If you want to get the top editors of a whole month, the day parameter should be all-days. |
| day | path | required | string | The day of the date for which to retrieve top editors, in DD format, or all-days for a monthly value. |
Error
The list of values
GET /metrics/editors/top-by-net-bytes-difference/{project}/{editor-type}/{page-type}/{year}/{month}/{day}
/metrics/edits/aggregate/{project}/{editor-type}/{page-type}/{granularity}/{start}/{end}
Given a Mediawiki project and a date range, returns a timeseries of edits counts.
You can filter by editors-type (all-editor-types, anonymous, bot, registered) and
page-type (all-page-types, content or non-content). You can choose between daily and
monthly granularity as well.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| project | path | required | string | The name of any Wikimedia project formatted like {language code}.{project name}, |
| editor-type | path | required | string | If you want to filter by editor-type, use one of anonymous, group-bot (registered |
| page-type | path | required | string | If you want to filter by page-type, use one of content (edits on pages in content |
| granularity | path | required | string | The time unit for the response data. As of today, supported values are |
| start | path | required | string | The date of the first day to include, in YYYYMMDD format |
| end | path | required | string | The date of the last day to include, in YYYYMMDD format |
Error
The list of values
GET /metrics/edits/aggregate/{project}/{editor-type}/{page-type}/{granularity}/{start}/{end}
/metrics/edits/per-page/{project}/{page-title}/{editor-type}/{granularity}/{start}/{end}
Given a Mediawiki project, a page-title prefixed with its canonical namespace (for
instance ‘User:Jimbo_Wales’) and a date range, returns a timeseries of edit counts.
You can filter by editors-type (all-editor-types, anonymous, group-bot, name-bot, user).
You can choose between daily and monthly granularity as well.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| project | path | required | string | The name of any Wikimedia project formatted like {language code}.{project name}, |
| page-title | path | required | string | The page-title to request edits for. It should be prefixed with canonical namespace. |
| editor-type | path | required | string | If you want to filter by editor-type, use one of anonymous, group-bot (registered |
| granularity | path | required | string | Time unit for the response data. As of today, supported values are daily and monthly |
| start | path | required | string | The date of the first day to include, in YYYYMMDD format |
| end | path | required | string | The date of the last day to include, in YYYYMMDD format |
Error
The list of values
GET /metrics/edits/per-page/{project}/{page-title}/{editor-type}/{granularity}/{start}/{end}
/feed/availability
Gets availability of featured feed content for the apps by wiki domain.
Stability: experimental
Error
JSON containing lists of wiki domains for which feed content is available.
GET /feed/availability
/metrics/legacy/pagecounts/aggregate/{project}/{access-site}/{granularity}/{start}/{end}
Given a project and a date range, returns a timeseries of pagecounts.
You can filter by access site (mobile or desktop) and you can choose between monthly,
daily and hourly granularity as well.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| project | path | required | string | The name of any Wikimedia project formatted like {language code}.{project name}, |
| access-site | path | required | string | If you want to filter by access site, use one of desktop-site or mobile-site. If you are interested in pagecounts regardless of access site use all-sites. |
| granularity | path | required | string | The time unit for the response data. As of today, the supported granularities for |
| start | path | required | string | The timestamp of the first hour/day/month to include, in YYYYMMDDHH format. |
| end | path | required | string | The timestamp of the last hour/day/month to include, in YYYYMMDDHH format. |
Error
The list of values
GET /metrics/legacy/pagecounts/aggregate/{project}/{access-site}/{granularity}/{start}/{end}
/media/math/check/{type}
Checks the supplied TeX formula for correctness and returns the
normalised formula representation as well as information about
identifiers. Available types are tex and inline-tex. The response
contains the x-resource-location header which can be used to retrieve
the render of the checked formula in one of the supported rendering
formats. Just append the value of the header to /media/math/{format}/
and perform a GET request against that URL.
Stability: stable.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| type | path | required | string | The input type of the given formula; can be tex or inline-tex |
application/x-www-form-urlencoded
MathCheckFormulaRequest
| Property | Type | Required |
|---|---|---|
| q | string | required |
Error
Information about the checked formula
Invalid type
POST /media/math/check/{type}
/media/math/formula/{hash}
Returns the previously-stored formula via /media/math/check/{type} for
the given hash.
Stability: stable.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| hash | path | required | string | The hash string of the previous POST data |
Error
Information about the checked formula
Data for the given hash cannot be found
GET /media/math/formula/{hash}
/media/math/render/{format}/{hash}
Given a request hash, renders a TeX formula into its mathematic
representation in the given format. When a request is issued to the
/media/math/check/{format} POST endpoint, the response contains the
x-resource-location header denoting the hash ID of the POST data. Once
obtained, this endpoint has to be used to obtain the actual render.
Stability: stable.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| format | path | required | string | The output format; can be svg or mml |
| hash | path | required | string | The hash string of the previous POST data |
Error
The rendered formula
Unknown format or hash ID
GET /media/math/render/{format}/{hash}
/metrics/pageviews/aggregate/{project}/{access}/{agent}/{granularity}/{start}/{end}
Given a date range, returns a timeseries of pageview counts. You can filter by project,
access method and/or agent type. You can choose between daily and hourly granularity
as well.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| project | path | required | string | If you want to filter by project, use the domain of any Wikimedia project, |
| access | path | required | string | If you want to filter by access method, use one of desktop, mobile-app or mobile-web. |
| agent | path | required | string | If you want to filter by agent type, use one of user or spider. If you are interested |
| granularity | path | required | string | The time unit for the response data. As of today, the supported granularities for this |
| start | path | required | string | The timestamp of the first hour/day/month to include, in YYYYMMDDHH format |
| end | path | required | string | The timestamp of the last hour/day/month to include, in YYYYMMDDHH format |
Error
The list of values
GET /metrics/pageviews/aggregate/{project}/{access}/{agent}/{granularity}/{start}/{end}
/metrics/pageviews/per-article/{project}/{access}/{agent}/{article}/{granularity}/{start}/{end}
Given a Mediawiki article and a date range, returns a daily timeseries of its pageview
counts. You can also filter by access method and/or agent type.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| project | path | required | string | If you want to filter by project, use the domain of any Wikimedia project, |
| access | path | required | string | If you want to filter by access method, use one of desktop, mobile-app |
| agent | path | required | string | If you want to filter by agent type, use one of user, bot or spider. If you are |
| article | path | required | string | ‘The title of any article in the specified project. Any spaces should be replaced |
| granularity | path | required | string | The time unit for the response data. As of today, the only supported granularity for |
| start | path | required | string | The date of the first day to include, in YYYYMMDD or YYYYMMDDHH format |
| end | path | required | string | The date of the last day to include, in YYYYMMDD or YYYYMMDDHH format |
Error
The list of values
GET /metrics/pageviews/per-article/{project}/{access}/{agent}/{article}/{granularity}/{start}/{end}
/metrics/pageviews/top-by-country/{project}/{access}/{year}/{month}
Lists the pageviews to this project, split by country of origin for a given month.
Because of privacy reasons, pageviews are given in a bucketed format, and countries
with less than 100 views do not get reported.
Stability: experimental
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| project | path | required | string | If you want to filter by project, use the domain of any Wikimedia project, |
| access | path | required | string | If you want to filter by access method, use one of desktop, mobile-app or mobile-web. |
| year | path | required | string | The year of the date for which to retrieve top countries, in YYYY format. |
| month | path | required | string | The month of the date for which to retrieve top countries, in MM format. |
Error
The list of top countries by pageviews in the project
GET /metrics/pageviews/top-by-country/{project}/{access}/{year}/{month}
/metrics/pageviews/top/{project}/{access}/{year}/{month}/{day}
Lists the 1000 most viewed articles for a given project and timespan (month or day).
You can filter by access method.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| project | path | required | string | If you want to filter by project, use the domain of any Wikimedia project, |
| access | path | required | string | If you want to filter by access method, use one of desktop, mobile-app or mobile-web. |
| year | path | required | string | The year of the date for which to retrieve top articles, in YYYY format. |
| month | path | required | string | The month of the date for which to retrieve top articles, in MM format. If you want |
| day | path | required | string | The day of the date for which to retrieve top articles, in DD format. |
Error
The list of top articles in the project
GET /metrics/pageviews/top/{project}/{access}/{year}/{month}/{day}
/metrics/registered-users/new/{project}/{granularity}/{start}/{end}
Given a Mediawiki project and a date range, returns a timeseries of its newly registered
users counts. You can choose between daily and monthly granularity. The newly registered
users value is computed with self-created users only, not auto-login created ones.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| project | path | required | string | The name of any Wikimedia project formatted like {language code}.{project name}, |
| granularity | path | required | string | The time unit for the response data. As of today, supported values are |
| start | path | required | string | The date of the first day to include, in YYYYMMDD format |
| end | path | required | string | The date of the last day to include, in YYYYMMDD format |
Error
The list of values
GET /metrics/registered-users/new/{project}/{granularity}/{start}/{end}
/transform/html/from/{from_lang}/to/{to_lang}
Fetches the machine translation for the posted content from the source
to the destination language.
Stability: unstable
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| from_lang | path | required | string | The source language code |
| to_lang | path | required | string | The target language code |
application/x-www-form-urlencoded
TransformContentMachineTranslateRequest
| Property | Type | Required |
|---|---|---|
| html | string | required |
Error
The translated content
POST /transform/html/from/{from_lang}/to/{to_lang}
/transform/html/from/{from_lang}/to/{to_lang}/{provider}
Fetches the machine translation for the posted content from the source
to the destination language.
Stability: unstable
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| from_lang | path | required | string | The source language code |
| to_lang | path | required | string | The target language code |
| provider | path | required | string | The machine translation provider id |
application/x-www-form-urlencoded
TransformContentMachineTranslateRequest
| Property | Type | Required |
|---|---|---|
| html | string | required |
Error
The translated content
POST /transform/html/from/{from_lang}/to/{to_lang}/{provider}
/transform/list/languagepairs
Fetches the list of language pairs the back-end service can translate
Stability: unstable
the list of source and target languages supported by the API
GET /transform/list/languagepairs
/transform/list/pair/{from}/{to}
Fetches the list of tools that are available for the given pair of languages.
Stability: unstable
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| from | path | required | string | The source language code |
| to | path | required | string | The target language code |
Error
the list of tools available for the language pair
GET /transform/list/pair/{from}/{to}
/transform/list/tool/{tool}
Fetches the list of tools and all of the language pairs it can translate
Stability: unstable
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| tool | path | required | string | The tool category to list tools and language pairs for |
Error
the list of language pairs available for a given translation tool
GET /transform/list/tool/{tool}
/transform/list/tool/{tool}/{from}
Fetches the list of tools and all of the language pairs it can translate
Stability: unstable
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| tool | path | required | string | The tool category to list tools and language pairs for |
| from | path | required | string | The source language code |
Error
the list of language pairs available for a given translation tool
GET /transform/list/tool/{tool}/{from}
/transform/list/tool/{tool}/{from}/{to}
Fetches the list of tools and all of the language pairs it can translate
Stability: unstable
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| tool | path | required | string | The tool category to list tools and language pairs for |
| from | path | required | string | The source language code |
| to | path | required | string | The target language code |
Error
the list of language pairs available for a given translation tool
GET /transform/list/tool/{tool}/{from}/{to}
/transform/word/from/{from_lang}/to/{to_lang}/{word}
Fetches the dictionary meaning of a word from a language and displays
it in the target language.
Stability: unstable
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| from_lang | path | required | string | The source language code |
| to_lang | path | required | string | The target language code |
| word | path | required | string | The word to lookup |
Error
the dictionary translation for the given word
GET /transform/word/from/{from_lang}/to/{to_lang}/{word}
/transform/word/from/{from_lang}/to/{to_lang}/{word}/{provider}
Fetches the dictionary meaning of a word from a language and displays
it in the target language.
Stability: unstable
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| from_lang | path | required | string | The source language code |
| to_lang | path | required | string | The target language code |
| word | path | required | string | The word to lookup |
| provider | path | required | string | The dictionary provider id |
Error
the dictionary translation for the given word
GET /transform/word/from/{from_lang}/to/{to_lang}/{word}/{provider}
/metrics/unique-devices/{project}/{access-site}/{granularity}/{start}/{end}
Given a project and a date range, returns a timeseries of unique devices counts.
You need to specify a project, and can filter by accessed site (mobile or desktop).
You can choose between daily and hourly granularity as well.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| project | path | required | string | If you want to filter by project, use the domain of any Wikimedia project, |
| access-site | path | required | string | If you want to filter by accessed site, use one of desktop-site or mobile-site. |
| granularity | path | required | string | The time unit for the response data. As of today, the supported granularities |
| start | path | required | string | The timestamp of the first day/month to include, in YYYYMMDD format |
| end | path | required | string | The timestamp of the last day/month to include, in YYYYMMDD format |
Error
The list of values
GET /metrics/unique-devices/{project}/{access-site}/{granularity}/{start}/{end}
BytesDifferenceDataGetAbsoluteAggregateByProjectAndDateRangeResponse
{
"type": "object",
"example": {},
"properties": {}
}
BytesDifferenceDataGetAbsolutePerPageResponse
{
"type": "object",
"example": {},
"properties": {}
}
BytesDifferenceDataGetNetAggregateByProjectAndDateRangeResponse
{
"type": "object",
"example": {},
"properties": {}
}
BytesDifferenceDataGetSumNetTextBytesDifferencePerPageResponse
{
"type": "object",
"example": {},
"properties": {}
}
EditedPagesDataGetAggregateByProjectAndDateRangeResponse
{
"type": "object",
"example": {},
"properties": {}
}
EditedPagesDataGetNewPagesCountsForProjectResponse
{
"type": "object",
"example": {},
"properties": {}
}
EditedPagesDataGetTopByAbsoluteBytesDifferenceResponse
{
"type": "object",
"example": {},
"properties": {}
}
EditedPagesDataGetTopByEditsCountResponse
{
"type": "object",
"example": {},
"properties": {}
}
EditedPagesDataGetTopByNetBytesDifferenceResponse
{
"type": "object",
"example": {},
"properties": {}
}
EditorsDataGetEditorsCountsForProjectResponse
{
"type": "object",
"example": {},
"properties": {}
}
EditorsDataGetTopByAbsoluteBytesDifferenceResponse
{
"type": "object",
"example": {},
"properties": {}
}
EditorsDataGetTopByNetBytesDifferenceResponse
{
"type": "object",
"example": {},
"properties": {}
}
EditorsDataGetTopEditorsByEditsCountResponse
{
"type": "object",
"example": {},
"properties": {}
}
EditsDataGetEditsCountsForProjectResponse
{
"type": "object",
"example": {},
"properties": {}
}
EditsDataGetPageEditCountsResponse
{
"type": "object",
"example": {},
"properties": {}
}
LegacyDataGetPagecountsAggregateByProjectAndDateRangeResponse
{
"type": "object",
"example": {},
"properties": {}
}
MathCheckFormulaRequest
{
"type": "object",
"required": [
"q"
],
"properties": {
"q": {
"type": "string",
"description": "The formula to check"
}
}
}
PageviewsDataGetPageviewCountsByArticleDateRangeResponse
{
"type": "object",
"example": {},
"properties": {}
}
PageviewsDataGetPageviewCountsByProjectResponse
{
"type": "object",
"example": {},
"properties": {}
}
PageviewsDataListByCountryAndAccessResponse
{
"type": "object",
"example": {},
"properties": {}
}
PageviewsDataListMostViewedArticlesByProjectAndTimespanResponse
{
"type": "object",
"example": {},
"properties": {}
}
RegisteredUsersDataGetNewUserCountsByProjectAndDateRangeResponse
{
"type": "object",
"example": {},
"properties": {}
}
TransformContentMachineTranslateRequest
{
"type": "object",
"required": [
"html"
],
"properties": {
"html": {
"type": "string",
"x-textarea": true,
"description": "The HTML content to translate"
}
}
}
TransformGetListToolLanguagePairsResponse
{
"type": "object",
"example": {},
"properties": {}
}
TransformToolLanguagePairsList200Response
{
"type": "object",
"example": {},
"properties": {}
}
TransformToolLanguagePairsListResponse
{
"type": "object",
"example": {},
"properties": {}
}
UniqueDevicesDataGetByProjectAndDateRangeResponse
{
"type": "object",
"example": {},
"properties": {}
}
absolute-bytes-difference
{
"properties": {
"items": {
"type": "array",
"items": {
"properties": {
"project": {
"type": "string"
},
"results": {
"type": "array",
"items": {
"properties": {
"timestamp": {
"type": "string"
},
"abs_bytes_diff": {
"type": "integer",
"format": "int64"
}
}
}
},
"page-type": {
"type": "string"
},
"editor-type": {
"type": "string"
},
"granularity": {
"type": "string"
}
}
}
}
}
}
absolute-bytes-difference-per-editor
{
"properties": {
"items": {
"type": "array",
"items": {
"properties": {
"project": {
"type": "string"
},
"results": {
"type": "array",
"items": {
"properties": {
"timestamp": {
"type": "string"
},
"abs_bytes_diff": {
"type": "integer",
"format": "int64"
}
}
}
},
"page-type": {
"type": "string"
},
"user-text": {
"type": "string"
},
"granularity": {
"type": "string"
}
}
}
}
}
}
absolute-bytes-difference-per-page
{
"properties": {
"items": {
"type": "array",
"items": {
"properties": {
"project": {
"type": "string"
},
"results": {
"type": "array",
"items": {
"properties": {
"timestamp": {
"type": "string"
},
"abs_bytes_diff": {
"type": "integer",
"format": "int64"
}
}
}
},
"page-title": {
"type": "string"
},
"editor-type": {
"type": "string"
},
"granularity": {
"type": "string"
}
}
}
}
}
}
availability
{
"type": "object",
"required": [
"todays_featured_article",
"most_read",
"picture_of_the_day",
"in_the_news",
"on_this_day"
],
"properties": {
"most_read": {
"type": "array",
"items": {
"type": "string"
},
"description": "domains for wikis with this feature enabled, or [ '*.<project>.org' ] for all wikis in a project"
},
"in_the_news": {
"type": "array",
"items": {
"type": "string"
},
"description": "domains for wikis with this feature enabled, or [ '*.<project>.org' ] for all wikis in a project"
},
"on_this_day": {
"type": "array",
"items": {
"type": "string"
},
"description": "domains for wikis with this feature enabled, or [ '*.<project>.org' ] for all wikis in a project"
},
"picture_of_the_day": {
"type": "array",
"items": {
"type": "string"
},
"description": "domains for wikis with this feature enabled, or [ '*.<project>.org' ] for all wikis in a project"
},
"todays_featured_article": {
"type": "array",
"items": {
"type": "string"
},
"description": "domains for wikis with this feature enabled, or [ '*.<project>.org' ] for all wikis in a project"
}
}
}
by-country
{
"properties": {
"items": {
"type": "array",
"items": {
"properties": {
"year": {
"type": "string"
},
"month": {
"type": "string"
},
"access": {
"type": "string"
},
"project": {
"type": "string"
},
"countries": {
"type": "array",
"items": {
"properties": {
"rank": {
"type": "integer",
"format": "int32"
},
"views": {
"type": "integer",
"format": "int64"
},
"country": {
"type": "string"
}
}
}
}
}
}
}
}
}
cx_dict
{
"type": "object",
"properties": {
"source": {
"type": "string",
"description": "the original word to look up"
},
"translations": {
"type": "array",
"items": {
"type": "object",
"properties": {
"info": {
"type": "string",
"description": "extra information about the phrase"
},
"phrase": {
"type": "string",
"description": "the translated phrase"
},
"sources": {
"type": "string",
"description": "the source dictionary used for the translation"
}
}
},
"description": "the translations found"
}
}
}
cx_languagepairs
{
"type": "object",
"properties": {
"source": {
"type": "array",
"items": {
"type": "string",
"description": "one source language"
},
"description": "the list of available source languages"
},
"target": {
"type": "array",
"items": {
"type": "string",
"description": "one destination language"
},
"description": "the list of available destination languages"
}
}
}
cx_list_pairs_for_tool
{
"type": "object"
}
cx_list_tools
{
"type": "object",
"properties": {
"tools": {
"type": "array",
"items": {
"type": "string",
"description": "the tool available"
},
"description": "the list of tools available for the given language pair"
}
}
}
cx_mt
{
"type": "object",
"properties": {
"contents": {
"type": "string",
"description": "the translated content"
}
}
}
edited-pages
{
"properties": {
"items": {
"type": "array",
"items": {
"properties": {
"project": {
"type": "string"
},
"results": {
"type": "array",
"items": {
"properties": {
"timestamp": {
"type": "string"
},
"edited_pages": {
"type": "integer",
"format": "int32"
}
}
}
},
"page-type": {
"type": "string"
},
"editor-type": {
"type": "string"
},
"granularity": {
"type": "string"
},
"activity-level": {
"type": "string"
}
}
}
}
}
}
editors
{
"properties": {
"items": {
"type": "array",
"items": {
"properties": {
"project": {
"type": "string"
},
"results": {
"type": "array",
"items": {
"properties": {
"editors": {
"type": "integer",
"format": "int32"
},
"timestamp": {
"type": "string"
}
}
}
},
"page-type": {
"type": "string"
},
"editor-type": {
"type": "string"
},
"granularity": {
"type": "string"
},
"activity-level": {
"type": "string"
}
}
}
}
}
}
edits
{
"properties": {
"items": {
"type": "array",
"items": {
"properties": {
"project": {
"type": "string"
},
"results": {
"type": "array",
"items": {
"properties": {
"edits": {
"type": "integer",
"format": "int64"
},
"timestamp": {
"type": "string"
}
}
}
},
"page-type": {
"type": "string"
},
"editor-type": {
"type": "string"
},
"granularity": {
"type": "string"
}
}
}
}
}
}
edits-per-editor
{
"properties": {
"items": {
"type": "array",
"items": {
"properties": {
"project": {
"type": "string"
},
"results": {
"type": "array",
"items": {
"properties": {
"edits": {
"type": "integer",
"format": "int64"
},
"timestamp": {
"type": "string"
}
}
}
},
"page-type": {
"type": "string"
},
"user-text": {
"type": "string"
},
"granularity": {
"type": "string"
}
}
}
}
}
}
edits-per-page
{
"properties": {
"items": {
"type": "array",
"items": {
"properties": {
"project": {
"type": "string"
},
"results": {
"type": "array",
"items": {
"properties": {
"edits": {
"type": "integer",
"format": "int64"
},
"timestamp": {
"type": "string"
}
}
}
},
"page-title": {
"type": "string"
},
"editor-type": {
"type": "string"
},
"granularity": {
"type": "string"
}
}
}
}
}
}
listing
{
"required": [
"items"
],
"properties": {
"items": {
"type": "array",
"items": {
"type": "string"
}
}
},
"description": "The result format for listings"
}
net-bytes-difference
{
"properties": {
"items": {
"type": "array",
"items": {
"properties": {
"project": {
"type": "string"
},
"results": {
"type": "array",
"items": {
"properties": {
"timestamp": {
"type": "string"
},
"net_bytes_diff": {
"type": "integer",
"format": "int64"
}
}
}
},
"page-type": {
"type": "string"
},
"editor-type": {
"type": "string"
},
"granularity": {
"type": "string"
}
}
}
}
}
}
net-bytes-difference-per-editor
{
"properties": {
"items": {
"type": "array",
"items": {
"properties": {
"project": {
"type": "string"
},
"results": {
"type": "array",
"items": {
"properties": {
"timestamp": {
"type": "string"
},
"net_bytes_diff": {
"type": "integer",
"format": "int64"
}
}
}
},
"page-type": {
"type": "string"
},
"user-text": {
"type": "string"
},
"granularity": {
"type": "string"
}
}
}
}
}
}
net-bytes-difference-per-page
{
"properties": {
"items": {
"type": "array",
"items": {
"properties": {
"project": {
"type": "string"
},
"results": {
"type": "array",
"items": {
"properties": {
"timestamp": {
"type": "string"
},
"net_bytes_diff": {
"type": "integer",
"format": "int64"
}
}
}
},
"page-title": {
"type": "string"
},
"editor-type": {
"type": "string"
},
"granularity": {
"type": "string"
}
}
}
}
}
}
new-pages
{
"properties": {
"items": {
"type": "array",
"items": {
"properties": {
"project": {
"type": "string"
},
"results": {
"type": "array",
"items": {
"properties": {
"new_pages": {
"type": "integer",
"format": "int32"
},
"timestamp": {
"type": "string"
}
}
}
},
"page-type": {
"type": "string"
},
"editor-type": {
"type": "string"
},
"granularity": {
"type": "string"
}
}
}
}
}
}
new-registered-users
{
"properties": {
"items": {
"type": "array",
"items": {
"properties": {
"project": {
"type": "string"
},
"results": {
"type": "array",
"items": {
"properties": {
"timestamp": {
"type": "string"
},
"new_registered_users": {
"type": "integer",
"format": "int32"
}
}
}
},
"granularity": {
"type": "string"
}
}
}
}
}
}
originalimage
{
"type": "object",
"required": [
"source",
"width",
"height"
],
"properties": {
"width": {
"type": "integer",
"description": "Original image width"
},
"height": {
"type": "integer",
"description": "Original image height"
},
"source": {
"type": "string",
"description": "Original image URI"
}
}
}
pagecounts-project
{
"properties": {
"items": {
"type": "array",
"items": {
"properties": {
"count": {
"type": "integer",
"format": "int64"
},
"project": {
"type": "string"
},
"timestamp": {
"type": "string"
},
"access-site": {
"type": "string"
},
"granularity": {
"type": "string"
}
}
}
}
}
}
| Version | Endpoints | Schemas | Ingested | Status |
|---|---|---|---|---|
| 1.0.0 | 35 | 63 | 2026-05-11 | current |
| 1.0.0 | 35 | 63 | 2026-04-16 |