Realtime and Batch Documentation

Receive realtime updates from the Wikimedia projects using the batch files updated hourly or the streaming endpoints. Store identifiers for the projects and namespaces you are able to receive batch updates using the utility endpoints.

For access to Realtime APIs, contact us.

Project Updates (Batch)

GET https://api.enterprise.wikimedia.com/v1/diffs/download/{date}/{namespace}/{project}

Downloadable bundle of updated articles by project, namespace, and date. Updated hourly starting at 00:00 UTC each day.

Parameters
Path parameters
date
string
Required
Date of the batch updates in YYYY-MM-DD
project
string
Required
Project identifier
namespace
number
Required
Pages namespace (currently supported 0, 6, 10, 14)
Response
  • redirect
    {}
  • application/json
    { "message": "string", "status": "integer" }
  • application/json
    { "message": "string", "status": "integer" }
  • application/json
    { "message": "string", "status": "integer" }

Available Projects (Batch)

GET https://api.enterprise.wikimedia.com/v1/diffs/meta/{date}/{namespace}

Returns a list of available Realtime (Batch) bundles by namespace and date. Includes identifiers, file sizes and other relevant metadata.

Parameters
Path parameters
date
string
Required
A datetime of diff (YYYY-MM-DD)
namespace
number
Required
Pages namespace (currently supported 0, 6, 14, 10)
Response
  • application/json
    [ { "date_modified": "string", "identifier": "string", "in_language": { "identifier": "string", "name": "string" }, "name": "string", "size": { "unit_text": "string", "value": "number" }, "url": "string", "version": "string" } ]
  • application/json
    { "message": "string", "status": "integer" }
  • application/json
    { "message": "string", "status": "integer" }

Project Bundle Info (Batch)

GET https://api.enterprise.wikimedia.com/v1/diffs/meta/{date}/{namespace}/{project}

Information on a specific Realtime (batch) bundle. Includes identifiers, file sizes and other relevant metadata.

Parameters
Path parameters
date
string
Required
A datetime of diff (YYYY-MM-DD)
namespace
number
Required
Pages namespace (currently supported 0, 6, 14, 10)
project
string
Required
Project identifier
Response
  • application/json
    { "date_modified": "string", "identifier": "string", "in_language": { "identifier": "string", "name": "string" }, "name": "string", "size": { "unit_text": "string", "value": "number" }, "url": "string", "version": "string" }
  • application/json
    { "message": "string", "status": "integer" }
  • application/json
    { "message": "string", "status": "integer" }

Available Namespaces (Batch)

GET https://api.enterprise.wikimedia.com/v1/namespaces

List of available namespaces. Includes name and identifier needed for the Realtime API.

Response
  • application/json
    [ { "identifier": "integer", "name": "string" } ]
  • application/json
    { "message": "string", "status": "integer" }
  • application/json
    { "message": "string", "status": "integer" }

Available Projects (Batch)

GET https://api.enterprise.wikimedia.com/v1/projects

List of available projects. Includes project identifiers, file sizes, and other relevant metadata needed for the Realtime API

Response
  • application/json
    [ { "date_modified": "string", "identifier": "string", "in_language": { "identifier": "string", "name": "string" }, "name": "string", "size": { "unit_text": "string", "value": "number" }, "url": "string", "version": "string" } ]
  • application/json
    { "message": "string", "status": "integer" }
  • application/json
    { "message": "string", "status": "integer" }

Article Updates (Streaming)

GET https://firehose.enterprise.wikimedia.com/v1/page-update

Returns a stream of new articles, updates, or name changes across all supported projects

Parameters
Query parameters
since
string
Optional
Since Date (in RFC3339 ‘2006-01-02T15:04:05Z07:00’ or as a timestamp in milliseconds)
Response
  • application/json
    { "additional_entities": "array", "article_body": { "html": "string", "wikitext": "string" }, "categories": "array", "date_modified": "string", "identifier": "integer", "in_language": { "identifier": "string", "name": "string" }, "is_part_of": { "date_modified": "string", "identifier": "string", "in_language": { "identifier": "string", "name": "string" }, "name": "string", "size": { "unit_text": "string", "value": "number" }, "url": "string", "version": "string" }, "license": "array", "main_entity": { "aspects": "array", "identifier": "string", "url": "string" }, "name": "string", "namespace": { "identifier": "integer", "name": "string" }, "protection": "array", "redirects": "array", "templates": "array", "url": "string", "version": { "comment": "string", "editor": { "date_started": "string", "edit_count": "integer", "groups": "array", "identifier": "integer", "is_anonymous": "boolean", "is_bot": "boolean", "name": "string" }, "identifier": "integer", "is_flagged_stable": "boolean", "is_minor_edit": "boolean", "scores": { "damaging": { "prediction": "boolean", "probability": "object" }, "good_faith": { "prediction": "boolean", "probability": "object" } }, "tags": "array" }, "visibility": { "comment": "boolean", "text": "boolean", "user": "boolean" } }
  • application/json
    { "message": "Internal Server Error", "status": 500 }
  • application/json
    { "message": "Internal Server Error", "status": 500 }
  • application/json
    { "message": "Internal Server Error", "status": 500 }
  • application/json
    { "message": "Internal Server Error", "status": 500 }

Article Deletions (Streaming) Returns stream of article delete events

GET https://firehose.enterprise.wikimedia.com/v1/page-delete

Returns a stream of article delete events across all supported projects

Parameters
Query parameters
since
string
Optional
Since Date (in RFC3339 ‘2006-01-02T15:04:05Z07:00’ or as a timestamp in milliseconds)
Response
  • application/json
    { "additional_entities": "array", "article_body": { "html": "string", "wikitext": "string" }, "categories": "array", "date_modified": "string", "identifier": "integer", "in_language": { "identifier": "string", "name": "string" }, "is_part_of": { "date_modified": "string", "identifier": "string", "in_language": { "identifier": "string", "name": "string" }, "name": "string", "size": { "unit_text": "string", "value": "number" }, "url": "string", "version": "string" }, "license": "array", "main_entity": { "aspects": "array", "identifier": "string", "url": "string" }, "name": "string", "namespace": { "identifier": "integer", "name": "string" }, "protection": "array", "redirects": "array", "templates": "array", "url": "string", "version": { "comment": "string", "editor": { "date_started": "string", "edit_count": "integer", "groups": "array", "identifier": "integer", "is_anonymous": "boolean", "is_bot": "boolean", "name": "string" }, "identifier": "integer", "is_flagged_stable": "boolean", "is_minor_edit": "boolean", "scores": { "damaging": { "prediction": "boolean", "probability": "object" }, "good_faith": { "prediction": "boolean", "probability": "object" } }, "tags": "array" }, "visibility": { "comment": "boolean", "text": "boolean", "user": "boolean" } }
  • application/json
    { "message": "Internal Server Error", "status": 500 }
  • application/json
    { "message": "Internal Server Error", "status": 500 }
  • application/json
    { "message": "Internal Server Error", "status": 500 }
  • application/json
    { "message": "Internal Server Error", "status": 500 }

Article Visibility Changes (Streaming)

GET https://firehose.enterprise.wikimedia.com/v1/page-visibility

Returns a stream of visibility change events removing public content across all supported projects

Parameters
Query parameters
since
string
Optional
Since Date (in RFC3339 ‘2006-01-02T15:04:05Z07:00’ or as a timestamp in milliseconds)
Response
  • application/json
    { "additional_entities": "array", "article_body": { "html": "string", "wikitext": "string" }, "categories": "array", "date_modified": "string", "identifier": "integer", "in_language": { "identifier": "string", "name": "string" }, "is_part_of": { "date_modified": "string", "identifier": "string", "in_language": { "identifier": "string", "name": "string" }, "name": "string", "size": { "unit_text": "string", "value": "number" }, "url": "string", "version": "string" }, "license": "array", "main_entity": { "aspects": "array", "identifier": "string", "url": "string" }, "name": "string", "namespace": { "identifier": "integer", "name": "string" }, "protection": "array", "redirects": "array", "templates": "array", "url": "string", "version": { "comment": "string", "editor": { "date_started": "string", "edit_count": "integer", "groups": "array", "identifier": "integer", "is_anonymous": "boolean", "is_bot": "boolean", "name": "string" }, "identifier": "integer", "is_flagged_stable": "boolean", "is_minor_edit": "boolean", "scores": { "damaging": { "prediction": "boolean", "probability": "object" }, "good_faith": { "prediction": "boolean", "probability": "object" } }, "tags": "array" }, "visibility": { "comment": "boolean", "text": "boolean", "user": "boolean" } }
  • application/json
    { "message": "Internal Server Error", "status": 500 }
  • application/json
    { "message": "Internal Server Error", "status": 500 }
  • application/json
    { "message": "Internal Server Error", "status": 500 }
  • application/json
    { "message": "Internal Server Error", "status": 500 }