WikiRest Docs

SDKs & Libraries

Official and community client libraries for WikiRest API.

Official SDKs

We're working on official SDKs for popular languages. Sign up for updates:

🐍

Python

Coming soon

Full async support, Pydantic models, automatic retries.

📦

TypeScript/JavaScript

Coming soon

Full TypeScript types, works in Node.js, Deno, and browsers.

🐹

Go

Coming soon

Idiomatic Go with context support and connection pooling.

💎

Ruby

Planned

Ruby gem with Faraday HTTP client.

Using HTTP directly

WikiRest uses a simple REST API that works with any HTTP client.

Python (requests)

import requests

API_KEY = "your_api_key"
BASE_URL = "https://api.wikirest.com/v1"

def search_wikipedia(query, limit=10):
    response = requests.get(
        f"{BASE_URL}/search",
        headers={"X-API-Key": API_KEY},
        params={"q": query, "limit": limit}
    )
    response.raise_for_status()
    return response.json()

# Example usage
results = search_wikipedia("machine learning", limit=5)
for hit in results["hits"]:
    print(f"{hit['title']}: {hit['text'][:100]}...")

Python (httpx async)

import httpx
import asyncio

API_KEY = "your_api_key"
BASE_URL = "https://api.wikirest.com/v1"

async def search_wikipedia(query, limit=10):
    async with httpx.AsyncClient() as client:
        response = await client.get(
            f"{BASE_URL}/search",
            headers={"X-API-Key": API_KEY},
            params={"q": query, "limit": limit}
        )
        response.raise_for_status()
        return response.json()

# Example usage
results = asyncio.run(search_wikipedia("artificial intelligence"))

JavaScript (fetch)

const API_KEY = "your_api_key";
const BASE_URL = "https://api.wikirest.com/v1";

async function searchWikipedia(query, limit = 10) {
  const params = new URLSearchParams({ q: query, limit: String(limit) });
  const response = await fetch(`${BASE_URL}/search?${params}`, {
    headers: { "X-API-Key": API_KEY }
  });

  if (!response.ok) {
    throw new Error(`HTTP ${response.status}: ${await response.text()}`);
  }

  return response.json();
}

// Example usage
const results = await searchWikipedia("neural networks", 5);
results.hits.forEach(hit => console.log(hit.title));

Go

package main

import (
	"encoding/json"
	"fmt"
	"net/http"
	"net/url"
)

const (
	apiKey  = "your_api_key"
	baseURL = "https://api.wikirest.com/v1"
)

type SearchResponse struct {
	Hits []struct {
		ID    string `json:"id"`
		Title string `json:"title"`
		Text  string `json:"text"`
	} `json:"hits"`
	Query string `json:"query"`
}

func searchWikipedia(query string, limit int) (*SearchResponse, error) {
	u, _ := url.Parse(baseURL + "/search")
	q := u.Query()
	q.Set("q", query)
	q.Set("limit", fmt.Sprintf("%d", limit))
	u.RawQuery = q.Encode()

	req, _ := http.NewRequest("GET", u.String(), nil)
	req.Header.Set("X-API-Key", apiKey)

	resp, err := http.DefaultClient.Do(req)
	if err != nil {
		return nil, err
	}
	defer resp.Body.Close()

	var result SearchResponse
	json.NewDecoder(resp.Body).Decode(&result)
	return &result, nil
}

cURL

# Search
curl -H "X-API-Key: YOUR_KEY" \
  "https://api.wikirest.com/v1/search?q=quantum+computing&limit=5"

# Get specific chunk
curl -H "X-API-Key: YOUR_KEY" \
  "https://api.wikirest.com/v1/chunk/12345_3"

# Get full page
curl -H "X-API-Key: YOUR_KEY" \
  "https://api.wikirest.com/v1/page/12345?format=concat"

LLM Framework Integrations

LangChain

Use WikiRest as a retriever in LangChain:

from langchain.retrievers import WikiRestRetriever  # Coming soon

# Or use the generic API wrapper
from langchain.utilities import WikiRestAPIWrapper

wiki = WikiRestAPIWrapper(api_key="your_key")
docs = wiki.search("quantum computing", k=5)

LlamaIndex

from llama_index.readers import WikiRestReader  # Coming soon

reader = WikiRestReader(api_key="your_key")
documents = reader.load_data(query="machine learning", limit=10)

See LangChain examples for detailed integration guides.

Community libraries

Community-maintained libraries (not officially supported):

  • wikirest-php - PHP client (coming soon)
  • wikirest-rust - Rust client (coming soon)

Want to build a client library? Check our API reference and let us know!

Was this page helpful?

Help us improve our documentation