Find an API

Search public APIs with auth details & Postman guides

← All APIs

Wikimedia

wikimedia · Media

Media No Auth Free & Open media

This API provides cacheable and straightforward access to Wikimedia content and data, in machine-readable formats. ### Global Rules - Limit your clients to no more than 200 requests/s to this API. Each API endpoint's documentation may detail more specific usage limits. - Set a unique `User-Agent` or `Api-User-Agent` header that allows us to contact you quickly. Email addresses or URLs of contact pages work well. By using this API, you agree to Wikimedia's [Terms of Use](https://wikimedia

Authentication

No authentication requiredFree to use with no key needed.

Sample Requests

GET Gets availability of featured feed content for the apps by wiki domain.

Gets availability of featured feed content for the apps by wiki domain. Stability: [experimental](https://www.mediawiki.org/wiki/API_versioning#Experimental)

https://api.apis.guru/v2/specs/wikimedia.org/1.0.0/feed/availability

Hover any highlighted part to learn what it does

curl -X GET "https://api.apis.guru/v2/specs/wikimedia.org/1.0.0/feed/availability"
import requests
response = requests.get(
    "https://api.apis.guru/v2/specs/wikimedia.org/1.0.0/feed/availability",
)
print(response.json())
const url = 'https://api.apis.guru/v2/specs/wikimedia.org/1.0.0/feed/availability';

const response = await fetch(url); 
const data = await response.json();
console.log(data);
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	targetURL := "https://api.apis.guru/v2/specs/wikimedia.org/1.0.0/feed/availability"
	req, _ := http.NewRequest("GET", targetURL, nil)

	client := &http.Client{}
	resp, _ := client.Do(req)
	defer resp.Body.Close()
	body, _ := io.ReadAll(resp.Body)
	fmt.Println(string(body))
}
require "net/http"
require "json"

uri = URI("https://api.apis.guru/v2/specs/wikimedia.org/1.0.0/feed/availability")

http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"

req = Net::HTTP::Get.new(uri)

res = http.request(req)
puts JSON.parse(res.body)
<?php
$url = "https://api.apis.guru/v2/specs/wikimedia.org/1.0.0/feed/availability";
$opts = ["http" => [
    "method" => "GET",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));
GET Lists the language pairs supported by the back-end

Fetches the list of language pairs the back-end service can translate Stability: [unstable](https://www.mediawiki.org/wiki/API_versioning#Unstable)

https://api.apis.guru/v2/specs/wikimedia.org/1.0.0/transform/list/languagepairs

Hover any highlighted part to learn what it does

curl -X GET "https://api.apis.guru/v2/specs/wikimedia.org/1.0.0/transform/list/languagepairs/"
import requests
response = requests.get(
    "https://api.apis.guru/v2/specs/wikimedia.org/1.0.0/transform/list/languagepairs/",
)
print(response.json())
const url = 'https://api.apis.guru/v2/specs/wikimedia.org/1.0.0/transform/list/languagepairs/';

const response = await fetch(url); 
const data = await response.json();
console.log(data);
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	targetURL := "https://api.apis.guru/v2/specs/wikimedia.org/1.0.0/transform/list/languagepairs/"
	req, _ := http.NewRequest("GET", targetURL, nil)

	client := &http.Client{}
	resp, _ := client.Do(req)
	defer resp.Body.Close()
	body, _ := io.ReadAll(resp.Body)
	fmt.Println(string(body))
}
require "net/http"
require "json"

uri = URI("https://api.apis.guru/v2/specs/wikimedia.org/1.0.0/transform/list/languagepairs/")

http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"

req = Net::HTTP::Get.new(uri)

res = http.request(req)
puts JSON.parse(res.body)
<?php
$url = "https://api.apis.guru/v2/specs/wikimedia.org/1.0.0/transform/list/languagepairs/";
$opts = ["http" => [
    "method" => "GET",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));
GET Get a previously-stored formula

Returns the previously-stored formula via `/media/math/check/{type}` for the given hash. Stability: [stable](https://www.mediawiki.org/wiki/API_versioning#Stable).

https://api.apis.guru/v2/specs/wikimedia.org/1.0.0/media/math/formula/{hash}

Hover any highlighted part to learn what it does

curl -X GET "https://api.apis.guru/v2/specs/wikimedia.org/1.0.0/media/math/formula/{hash}"
import requests
response = requests.get(
    "https://api.apis.guru/v2/specs/wikimedia.org/1.0.0/media/math/formula/{hash}",
)
print(response.json())
const url = 'https://api.apis.guru/v2/specs/wikimedia.org/1.0.0/media/math/formula/{hash}';

const response = await fetch(url); 
const data = await response.json();
console.log(data);
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	targetURL := "https://api.apis.guru/v2/specs/wikimedia.org/1.0.0/media/math/formula/{hash}"
	req, _ := http.NewRequest("GET", targetURL, nil)

	client := &http.Client{}
	resp, _ := client.Do(req)
	defer resp.Body.Close()
	body, _ := io.ReadAll(resp.Body)
	fmt.Println(string(body))
}
require "net/http"
require "json"

uri = URI("https://api.apis.guru/v2/specs/wikimedia.org/1.0.0/media/math/formula/{hash}")

http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"

req = Net::HTTP::Get.new(uri)

res = http.request(req)
puts JSON.parse(res.body)
<?php
$url = "https://api.apis.guru/v2/specs/wikimedia.org/1.0.0/media/math/formula/{hash}";
$opts = ["http" => [
    "method" => "GET",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));

Postman Setup Guide

Get Postman ↗
  1. See official documentation for authentication and setup.

What can you build with Wikimedia?

Wikimedia is a Media API. Developers commonly use media APIs for:

  • storing and delivering images, video, and audio
  • building digital asset management and media libraries
  • transcoding and optimising media for the web
  • adding video streaming and playback to your app
  • automating content tagging and metadata extraction

No authentication required. This API is open — no signup or key needed. Ideal for quick prototypes and public-facing features. Wikimedia is free to use, making it a low-risk choice to experiment with.

New to APIs? Read our beginner's guide · Learn about API keys · What is REST?

Open documentation ↗