A random article summary
Returns the summary of a random article.
Request
GEThttps://wikipedia-search.p.apihiver.com/v1/random
String. Wikipedia language code, e.g.
en, hi, mr, ta (default en). Language
Client
1curl --request GET \
2 --url 'https://wikipedia-search.p.apihiver.com/v1/random?lang=%7Blang%7D' \
3 --header 'Accept: application/json' \
4 --header 'X-API-Key: YOUR_API_KEY'A random article summary: Wikipedia Search API reference
Returns the summary of a random article. This endpoint is part of the Wikipedia Search API: Search Wikipedia in 300+ languages, get article summaries with images, 'on this day' events, random articles and autocomplete.
A random article summary: example requests in every language
GET /v1/random in Shell (cURL)
curl --request GET \
--url 'https://wikipedia-search.p.apihiver.com/v1/random?lang=%7Blang%7D' \
--header 'Accept: application/json' \
--header 'X-API-Key: YOUR_API_KEY'GET /v1/random in Shell (HTTPie)
http GET 'https://wikipedia-search.p.apihiver.com/v1/random?lang=%7Blang%7D' \
Accept:application/json \
X-API-Key:YOUR_API_KEYGET /v1/random in Shell (Wget)
wget --quiet \
--method GET \
--header 'Accept: application/json' \
--header 'X-API-Key: YOUR_API_KEY' \
--output-document \
- 'https://wikipedia-search.p.apihiver.com/v1/random?lang=%7Blang%7D'GET /v1/random in Node.js (http)
const http = require('https');
const options = {
method: 'GET',
hostname: 'wikipedia-search.p.apihiver.com',
port: null,
path: '/v1/random?lang=%7Blang%7D',
headers: {
Accept: 'application/json',
'X-API-Key': 'YOUR_API_KEY'
}
};
const req = http.request(options, function (res) {
const chunks = [];
res.on('data', function (chunk) {
chunks.push(chunk);
});
res.on('end', function () {
const body = Buffer.concat(chunks);
console.log(body.toString());
});
});
req.end();GET /v1/random in Node.js (Request)
const request = require('request');
const options = {
method: 'GET',
url: 'https://wikipedia-search.p.apihiver.com/v1/random',
qs: {lang: '{lang}'},
headers: {Accept: 'application/json', 'X-API-Key': 'YOUR_API_KEY'}
};
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});GET /v1/random in Node.js (Unirest)
const unirest = require('unirest');
const req = unirest('GET', 'https://wikipedia-search.p.apihiver.com/v1/random');
req.query({
lang: '{lang}'
});
req.headers({
Accept: 'application/json',
'X-API-Key': 'YOUR_API_KEY'
});
req.end(function (res) {
if (res.error) throw new Error(res.error);
console.log(res.body);
});GET /v1/random in Node.js (Axios)
const axios = require('axios').default;
const options = {
method: 'GET',
url: 'https://wikipedia-search.p.apihiver.com/v1/random',
params: {lang: '{lang}'},
headers: {Accept: 'application/json', 'X-API-Key': 'YOUR_API_KEY'}
};
try {
const { data } = await axios.request(options);
console.log(data);
} catch (error) {
console.error(error);
}GET /v1/random in Node.js (Fetch)
const fetch = require('node-fetch');
const url = 'https://wikipedia-search.p.apihiver.com/v1/random?lang=%7Blang%7D';
const options = {
method: 'GET',
headers: {Accept: 'application/json', 'X-API-Key': 'YOUR_API_KEY'}
};
try {
const response = await fetch(url, options);
const data = await response.json();
console.log(data);
} catch (error) {
console.error(error);
}GET /v1/random in JavaScript (XMLHttpRequest)
const data = null;
const xhr = new XMLHttpRequest();
xhr.withCredentials = true;
xhr.addEventListener('readystatechange', function () {
if (this.readyState === this.DONE) {
console.log(this.responseText);
}
});
xhr.open('GET', 'https://wikipedia-search.p.apihiver.com/v1/random?lang=%7Blang%7D');
xhr.setRequestHeader('Accept', 'application/json');
xhr.setRequestHeader('X-API-Key', 'YOUR_API_KEY');
xhr.send(data);GET /v1/random in JavaScript (Axios)
import axios from 'axios';
const options = {
method: 'GET',
url: 'https://wikipedia-search.p.apihiver.com/v1/random',
params: {lang: '{lang}'},
headers: {Accept: 'application/json', 'X-API-Key': 'YOUR_API_KEY'}
};
try {
const { data } = await axios.request(options);
console.log(data);
} catch (error) {
console.error(error);
}GET /v1/random in JavaScript (Fetch)
const url = 'https://wikipedia-search.p.apihiver.com/v1/random?lang=%7Blang%7D';
const options = {
method: 'GET',
headers: {Accept: 'application/json', 'X-API-Key': 'YOUR_API_KEY'}
};
try {
const response = await fetch(url, options);
const data = await response.json();
console.log(data);
} catch (error) {
console.error(error);
}GET /v1/random in JavaScript (jQuery)
const settings = {
async: true,
crossDomain: true,
url: 'https://wikipedia-search.p.apihiver.com/v1/random?lang=%7Blang%7D',
method: 'GET',
headers: {
Accept: 'application/json',
'X-API-Key': 'YOUR_API_KEY'
}
};
$.ajax(settings).done(function (response) {
console.log(response);
});GET /v1/random in Python (http.client)
import http.client
conn = http.client.HTTPSConnection("wikipedia-search.p.apihiver.com")
headers = {
'Accept': "application/json",
'X-API-Key': "YOUR_API_KEY"
}
conn.request("GET", "/v1/random?lang=%7Blang%7D", headers=headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))GET /v1/random in Python (Requests)
import requests
url = "https://wikipedia-search.p.apihiver.com/v1/random"
querystring = {"lang":"{lang}"}
headers = {
"Accept": "application/json",
"X-API-Key": "YOUR_API_KEY"
}
response = requests.get(url, headers=headers, params=querystring)
print(response.json())GET /v1/random in PHP (cURL)
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://wikipedia-search.p.apihiver.com/v1/random?lang=%7Blang%7D",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Accept: application/json",
"X-API-Key: YOUR_API_KEY"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}GET /v1/random in PHP (Guzzle)
<?php
$client = new \GuzzleHttp\Client();
$response = $client->request('GET', 'https://wikipedia-search.p.apihiver.com/v1/random?lang=%7Blang%7D', [
'headers' => [
'Accept' => 'application/json',
'X-API-Key' => 'YOUR_API_KEY',
],
]);
echo $response->getBody();GET /v1/random in PHP (PECL HTTP v1)
<?php
$request = new HttpRequest();
$request->setUrl('https://wikipedia-search.p.apihiver.com/v1/random');
$request->setMethod(HTTP_METH_GET);
$request->setQueryData([
'lang' => '{lang}'
]);
$request->setHeaders([
'Accept' => 'application/json',
'X-API-Key' => 'YOUR_API_KEY'
]);
try {
$response = $request->send();
echo $response->getBody();
} catch (HttpException $ex) {
echo $ex;
}GET /v1/random in PHP (PECL HTTP v2)
<?php
$client = new http\Client;
$request = new http\Client\Request;
$request->setRequestUrl('https://wikipedia-search.p.apihiver.com/v1/random');
$request->setRequestMethod('GET');
$request->setQuery(new http\QueryString([
'lang' => '{lang}'
]));
$request->setHeaders([
'Accept' => 'application/json',
'X-API-Key' => 'YOUR_API_KEY'
]);
$client->enqueue($request)->send();
$response = $client->getResponse();
echo $response->getBody();GET /v1/random in Java (AsyncHttp)
AsyncHttpClient client = new DefaultAsyncHttpClient();
client.prepare("GET", "https://wikipedia-search.p.apihiver.com/v1/random?lang=%7Blang%7D")
.setHeader("Accept", "application/json")
.setHeader("X-API-Key", "YOUR_API_KEY")
.execute()
.toCompletableFuture()
.thenAccept(System.out::println)
.join();
client.close();GET /v1/random in Java (java.net.http)
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://wikipedia-search.p.apihiver.com/v1/random?lang=%7Blang%7D"))
.header("Accept", "application/json")
.header("X-API-Key", "YOUR_API_KEY")
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());GET /v1/random in Java (OkHttp)
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://wikipedia-search.p.apihiver.com/v1/random?lang=%7Blang%7D")
.get()
.addHeader("Accept", "application/json")
.addHeader("X-API-Key", "YOUR_API_KEY")
.build();
Response response = client.newCall(request).execute();GET /v1/random in Java (Unirest)
HttpResponse<String> response = Unirest.get("https://wikipedia-search.p.apihiver.com/v1/random?lang=%7Blang%7D")
.header("Accept", "application/json")
.header("X-API-Key", "YOUR_API_KEY")
.asString();GET /v1/random in C# (HttpClient)
using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Get,
RequestUri = new Uri("https://wikipedia-search.p.apihiver.com/v1/random?lang=%7Blang%7D"),
Headers =
{
{ "Accept", "application/json" },
{ "X-API-Key", "YOUR_API_KEY" },
},
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}GET /v1/random in C# (RestSharp)
var client = new RestClient("https://wikipedia-search.p.apihiver.com/v1/random?lang=%7Blang%7D");
var request = new RestRequest("", Method.Get);
request.AddHeader("Accept", "application/json");
request.AddHeader("X-API-Key", "YOUR_API_KEY");
var response = client.Execute(request);GET /v1/random in Go (NewRequest)
package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://wikipedia-search.p.apihiver.com/v1/random?lang=%7Blang%7D"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Accept", "application/json")
req.Header.Add("X-API-Key", "YOUR_API_KEY")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(res)
fmt.Println(string(body))
}GET /v1/random in Ruby (net::http)
require 'uri'
require 'net/http'
url = URI("https://wikipedia-search.p.apihiver.com/v1/random?lang=%7Blang%7D")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Accept"] = 'application/json'
request["X-API-Key"] = 'YOUR_API_KEY'
response = http.request(request)
puts response.read_bodyGET /v1/random in Swift (NSURLSession)
import Foundation
let headers = [
"Accept": "application/json",
"X-API-Key": "YOUR_API_KEY"
]
let request = NSMutableURLRequest(url: NSURL(string: "https://wikipedia-search.p.apihiver.com/v1/random?lang=%7Blang%7D")! as URL,
cachePolicy: .useProtocolCachePolicy,
timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers
let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
if (error != nil) {
print(error as Any)
} else {
let httpResponse = response as? HTTPURLResponse
print(httpResponse)
}
})
dataTask.resume()GET /v1/random in Objective-C (NSURLSession)
#import <Foundation/Foundation.h>
NSDictionary *headers = @{ @"Accept": @"application/json",
@"X-API-Key": @"YOUR_API_KEY" };
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"https://wikipedia-search.p.apihiver.com/v1/random?lang=%7Blang%7D"]
cachePolicy:NSURLRequestUseProtocolCachePolicy
timeoutInterval:10.0];
[request setHTTPMethod:@"GET"];
[request setAllHTTPHeaderFields:headers];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
if (error) {
NSLog(@"%@", error);
} else {
NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *) response;
NSLog(@"%@", httpResponse);
}
}];
[dataTask resume];GET /v1/random in Kotlin (OkHttp)
val client = OkHttpClient()
val request = Request.Builder()
.url("https://wikipedia-search.p.apihiver.com/v1/random?lang=%7Blang%7D")
.get()
.addHeader("Accept", "application/json")
.addHeader("X-API-Key", "YOUR_API_KEY")
.build()
val response = client.newCall(request).execute()GET /v1/random in C (libcurl)
CURL *hnd = curl_easy_init();
curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(hnd, CURLOPT_URL, "https://wikipedia-search.p.apihiver.com/v1/random?lang=%7Blang%7D");
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Accept: application/json");
headers = curl_slist_append(headers, "X-API-Key: YOUR_API_KEY");
curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers);
CURLcode ret = curl_easy_perform(hnd);GET /v1/random in Clojure (clj-http)
(require '[clj-http.client :as client])
(client/get "https://wikipedia-search.p.apihiver.com/v1/random" {:headers {:X-API-Key "YOUR_API_KEY"}
:query-params {:lang "{lang}"}
:accept :json})GET /v1/random in OCaml (CoHTTP)
open Cohttp_lwt_unix
open Cohttp
open Lwt
let uri = Uri.of_string "https://wikipedia-search.p.apihiver.com/v1/random?lang=%7Blang%7D" in
let headers = Header.add_list (Header.init ()) [
("Accept", "application/json");
("X-API-Key", "YOUR_API_KEY");
] in
Client.call ~headers `GET uri
>>= fun (res, body_stream) ->
(* Do stuff with the result *)GET /v1/random in R (httr)
library(httr)
url <- "https://wikipedia-search.p.apihiver.com/v1/random"
queryString <- list(lang = "{lang}")
response <- VERB("GET", url, query = queryString, add_headers('X-API-Key' = 'YOUR_API_KEY'), content_type(""), accept("application/json"))
content(response, "text")GET /v1/random in PowerShell (Invoke-WebRequest)
$headers=@{}
$headers.Add("Accept", "application/json")
$headers.Add("X-API-Key", "YOUR_API_KEY")
$response = Invoke-WebRequest -Uri 'https://wikipedia-search.p.apihiver.com/v1/random?lang=%7Blang%7D' -Method GET -Headers $headersGET /v1/random in PowerShell (Invoke-RestMethod)
$headers=@{}
$headers.Add("Accept", "application/json")
$headers.Add("X-API-Key", "YOUR_API_KEY")
$response = Invoke-RestMethod -Uri 'https://wikipedia-search.p.apihiver.com/v1/random?lang=%7Blang%7D' -Method GET -Headers $headersGET /v1/random in HTTP (HTTP/1.1)
GET /v1/random?lang=%7Blang%7D HTTP/1.1
Accept: application/json
X-Api-Key: YOUR_API_KEY
Host: wikipedia-search.p.apihiver.com
Example response (200, application/json)
Success.
1{
2 "url": "https://en.wikipedia.org/wiki/Pondicherry_Lighthouse",
3 "title": "Pondicherry Lighthouse",
4 "extract": "Pondicherry Lighthouse is a central government institution under ministry of ports, shipping and waterways, providing navigational aids to the mariners. The old lighthouse was constructed in Pondicherry in the nineteenth century by the French rulers. A new lighthouse was constructed in 20th century by the government of India. The old lighthouse had first beamed light on 1 September 1836. The new l…",
5 "thumbnail": "https://thumb.wikimedia.org/wikipedia/commons/thumb/f/ff/New_and_old_lighthouses_-_Pondichery.jpg/330px-New_and_old_lighthouses_-_Pondichery.jpg?utm_source=en.wikipedia.org&utm_campaign=api&utm_content=thumbnail",
6 "attribution": "Content from Wikipedia, CC BY-SA 4.0",
7 "description": "Lighthouse in India"
8}Errors
- 400 — A required parameter is missing or a value has the wrong format.
1{ 2 "error": { 3 "code": "INVALID_INPUT", 4 "message": "A parameter has the wrong format — the message names it." 5 } 6}
Gateway errors (missing key, no subscription, rate limits) are listed in Error codes.