Skip to main content
If you’re building a food delivery app, a review platform, a hospitality product, or any tool that touches Nigerian food discovery, NaijaTaste has a public REST API for you.

What you get

Restaurant recommendations

POST city, food preference, price range, and persona. Get back ranked Nigerian restaurant picks from real Google Places data.

Pidgin review generation

POST a restaurant name, persona, and features. Get back an authentic Nigerian review with a tone label.

Top picks

GET top-rated Nigerian restaurants, filtered by GPS location and persona.

Place details

GET full restaurant details by Google Places ID — address, phone, hours, photos, open status.

Authentication

Core endpoints are publicly accessible. No API key. No token. No Authorization header.
curl -X POST https://naijataste-api-vcp4.onrender.com/recommend \
  -H "Content-Type: application/json" \
  -d '{
    "cold_start_signals": {
      "city": "Lagos",
      "preferred_food": "jollof rice",
      "price_range": "budget"
    }
  }'

Base URL

https://naijataste-api-vcp4.onrender.com
Interactive docs: naijataste-api-vcp4.onrender.com/docs

Endpoints at a glance

MethodEndpointDescription
POST/recommendGet restaurant recommendations
POST/simulate-reviewGenerate a Nigerian review
GET/places/top-picksTop-rated restaurants
GET/place-details/{place_id}Full restaurant details
GET/cache/statsView cached query stats
GET/healthCheck API health

Multilingual support

The recommendation and review engines understand input and produce output in:
  • English
  • Nigerian Pidgin
  • Yoruba
  • Hausa
  • Igbo
Pass your query or prompt text in the user’s language — the engine detects it and responds in kind.

Implicit learning via API

Pass past_adjustments in your simulate-review call to apply a user’s learned preferences:
{
  "persona": { ... },
  "item_name": "Restaurant Name",
  "past_adjustments": [
    { "action": "save", "tone": "pidgin-heavy", "rating": 5 },
    { "action": "regenerate", "tone": "formal" }
  ]
}
The engine extracts patterns from the last 50 signals and applies them silently to the generation.

Error handling

All errors return standard HTTP codes with a JSON body:
{
  "error": "invalid_persona",
  "message": "persona must include avg_rating and rating_tendency"
}
CodeMeaning
400Bad request — missing or invalid field
404Resource not found
422Validation error
500Server error — retry with backoff

API keys

How authentication works now and what the key tier will cover.

Rate limits

Per-IP limits and how to handle 429 responses.