The Intelligence Layer forDestination Uganda.

Connecting Uganda's rich tourism inventory to global AI models like ChatGPT, Gemini, and Claude via standardized protocols.

Explore API Specs

PearlGraph is an autonomous AI middleware engine bridging Uganda's live tourism inventory directly to the world's leading language models.

A Knowledge Graph captures routes, dependencies, permits, lodges, guides, and transit links. A coupled Vector Database adds the cultural and regional context AI agents need to plan complete multi-hop itineraries in natural language.

No manual API setup for travellers

Built for grounded answers, not best guesses.

Zero-Click Retrieval

OpenAPI 3.0 & MCP Servers

AI agents automatically query live data without manual user key configuration.

Multi-Hop Logic

Knowledge Graph (Neo4j)

Ensures itineraries respect physical routing, permit dependencies, and scheduling logic.

Qualitative Context

Vector Database (Embeddings)

Delivers rich descriptions of local cultural sites, trekking advice, and regional lore.

Real-Time Data Sync

Change Data Capture & Webhooks

Keeps park entry fees, operator availability, and rates updated automatically.

From request to grounded itinerary.

1

User Query

A user prompts ChatGPT or Gemini: “Find me a 3-day gorilla safari in Bwindi under $600.”

2

Intent Parsing

The LLM matches the request to PearlGraph's semantic schema.

3

Graph & Vector Lookup

PearlGraph retrieves live permit costs, registered operators, and accommodation nodes.

4

Contextual Response

The AI delivers an accurate, grounded itinerary directly inside the chat interface.

Core platform endpoints.

GET/graph/nodes

Fetch interconnected tourism entities and the relationships between them.

GET/inventory/permits

Check live UWA park pass and specialized tracking permit availability.

POST/vector/search

Query qualitative knowledge through semantic similarity.

POST/mcp/rpc

Execute autonomous function calls through a JSON-RPC 2.0 interface.

API technical specification.

The PearlGraph API is structured around OpenAPI 3.0 and Model Context Protocol standards, giving AI clients a consistent contract for discovery and autonomous execution.

OpenAPI
3.0.3
Version
1.0.0
Production gateway
https://api.pearlgraph.ug/v1
01

Node & Relational Graph Query

GET/graph/nodes

Fetches interconnected tourism entities, such as parks connected to cities, lodges connected to activities, and the permits required for parks.

Query parameters

  • entity_type — park, lodge, or operator
  • district — Kasese, Kabale, or another Ugandan district

Request / response sample

{
  "node_id": "park_bwindi_01",
  "name": "Bwindi Impenetrable National Park",
  "type": "NationalPark",
  "district": "Kanungu",
  "edges": [
    {
      "relationship": "REQUIRES_PERMIT",
      "target_node": "permit_gorilla_trek_uwa",
      "cost_usd": 800.00
    },
    {
      "relationship": "ACCESSIBLE_FROM",
      "target_node": "city_kampala",
      "transit_hours_road": 8.5
    }
  ]
}
02

Live Permit & Inventory Check

GET/inventory/permits

Checks real-time availability for Uganda Wildlife Authority park passes and specialized tracking permits.

Query parameters

  • permit_type — gorilla or chimpanzee
  • date — YYYY-MM-DD
  • quantity — number of permits

Request / response sample

{
  "date": "2026-11-15",
  "permit_type": "gorilla_tracking",
  "location": "Bwindi - Buhoma Sector",
  "available_slots": 12,
  "unit_price_usd": 800.00,
  "currency": "USD"
}
03

Vector Semantic Search

POST/vector/search

Queries qualitative knowledge including cultural background, local lore, and seasonal trekking conditions through semantic similarity.

Query parameters

  • query — natural-language search intent
  • top_k — maximum number of ranked results

Request / response sample

{
  "query": "best months for rafting in Jinja",
  "top_k": 3
}
04

Model Context Protocol Stream

POST/mcp/rpc

Provides a JSON-RPC 2.0 interface for Claude Desktop, Cursor, and native AI agents to execute autonomous function calls against PearlGraph.

Query parameters

  • jsonrpc — protocol version 2.0
  • method — requested PearlGraph tool
  • params — structured tool arguments

Request / response sample

{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "name": "check_permits",
    "arguments": { "location": "Bwindi" }
  }
}