Developer Hub

Build with Tunisia's Knowledge

Public API, MCP server, structured datasets. No auth required. First successful call in under 5 minutes.

Choose Your Path

Consumer Answers

Journalists, researchers, curious minds

< 5 min
API Integrator

Developers building apps & dashboards

< 15 min
MCP Integrator

AI/LLM developers connecting agents

  • MCP endpoint: /mcp
  • 16 tools, Streamable HTTP
  • Works with Claude, GPT, custom agents
< 20 min

Quickstart — 3 Calls

No API key. No auth. No rate limit on GET (POST limited to 10 req/min).

1. Search knowledge
# Unified search across all content
curl -s https://welovetunisia.com/api/v1/search?q=carthage | python -m json.tool
2. Get verified facts
# All verified facts with sources
curl -s https://welovetunisia.com/api/v1/facts | python -m json.tool
3. Browse entities
# UNESCO World Heritage Sites
curl -s "https://welovetunisia.com/api/v1/entities?type=UNESCOSite" | python -m json.tool
Python SDK (no dependency needed)
import requests

BASE = "https://welovetunisia.com/api/v1"

# Search
results = requests.get(f"{BASE}/search", params={"q": "renewable energy"}).json()
print(f"Found {results['total']} results")

# Get all UNESCO sites
sites = requests.get(f"{BASE}/entities", params={"type": "UNESCOSite"}).json()
for s in sites:
    print(f"  {s['title']['en']} — {s['properties'].get('governorate', '')}")
JavaScript / Node.js
const BASE = "https://welovetunisia.com/api/v1";

// Search for facts about tourism
const res = await fetch(`${BASE}/search?q=tourism`);
const data = await res.json();
console.log(`Found ${data.total} results`);

API Reference

Base URL: https://welovetunisia.com/api/v1 — All endpoints are GET, read-only, no auth.

EndpointDescriptionParams
GET /api/v1/API index & module listing-
GET /api/v1/searchUnified search across all typesq (required), lang, limit
GET /api/v1/factsVerified factsq, category, limit
GET /api/v1/facts/{id}Single fact-
GET /api/v1/entitiesKnowledge entitiesquery, type, limit
GET /api/v1/entities/{id}Single entity-
GET /api/v1/answersPre-built Q&Aq, limit
GET /api/v1/answers/{id}Answer with resolved evidence-
GET /api/v1/datasetsDataset registry-
Histoire (12 000 years)
GET /api/v1/histoire/periods7 historical periods-
GET /api/v1/histoire/timelineTimeline eventsstart, end, period, limit
GET /api/v1/histoire/placesHistorical places & UNESCOtype, period, unesco
GET /api/v1/histoire/charactersHistorical figuresperiod
GET /api/v1/histoire/objectsMuseum artifactsperiod, type
GET /api/v1/histoire/storiesHistorical stories-
GET /api/v1/histoire/references546 reference documentscategory, q, limit
GET /api/v1/histoire/searchSearch historical dataq
Diaspora & Modules
GET /api/v1/annuaire/searchDiaspora membersq, country, sector, limit
GET /api/v1/chaptersRegional chapterscountry
GET /api/v1/tokten/briefsExpertise needssector
GET /api/v1/volontariat/missionsVolunteer missionstype, sector, gov
GET /api/v1/hub/offersTourism offers-
GET /api/v1/hub/statsTourism statistics-
Rate Limits & Errors
  • GET requests: No rate limit
  • POST requests: 10 req/min per IP
  • 429 Too Many Requests: Wait 60 seconds
  • 404 Not Found: {"error": "not found", "id": "..."}

MCP Server Guide

welovetunisia.com exposes a Model Context Protocol server with 16 tools.

Connection
  • Endpoint: https://welovetunisia.com/mcp
  • Transport: Streamable HTTP (JSON-RPC)
  • Auth: None required (Phase 1)
  • Supports: tools/list, tools/call
Claude Desktop Config
{
  "mcpServers": {
    "tunisia-knowledge": {
      "url": "https://welovetunisia.com/mcp"
    }
  }
}
Available Tools (16) — Detailed
ToolPurposeInputLatency
search_tunisia_knowledgeHybrid search across all contentquery (required), language, limit<200ms
get_verified_answerPre-built answer with evidencequestion (required), audience, language<100ms
get_entityCanonical entity with relationsentity_id (required)<50ms
get_factsVerified facts by categorycategory (optional)<50ms
compare_optionsCompare destinations/investmentstype, constraints<200ms
build_trip_planGenerate tourism itinerarypreferences (required)<300ms
search_historyHistorical content searchquery (required)<200ms
get_timeline12 000 years of eventsstart, end, period<200ms
get_historical_placesPlaces & UNESCO sitestype, unesco<100ms
search_diaspora_membersDiaspora directory searchquery<200ms
get_diaspora_chaptersRegional chapters listcountry (optional)<100ms
get_volunteer_missionsActive volunteer missionstype, sector<100ms
get_tokten_needsInstitutional expertise needssector (optional)<100ms
get_datasetsAvailable datasets registrynone<50ms

All tools are read-only. No quotas in Phase 1. Errors return {"error": "description"} in content.

Service Status

Check /health for real-time service status (DB, Redis, LLM, TTS, payments).

Changelog

License: CC-BY-4.0 — Attribution required: welovetunisia.com | Contact: contact@welovetunisia.com