# African Food Database API
A comprehensive REST API for African cuisine — covering foods, recipes, nutrition, countries, regions, and ethnic groups across all 54 African nations. Built with **Node.js / Express** and **Firebase Firestore**.
> **Live Base URL**: `
african-food-database-produ…`
>
> Try it: `GET
african-food-database-produ…`
---
## Table of Contents
- Base URL
- Authentication
- Rate Limiting
- Response Format
- Foods
- Search
- Countries
- Regions
- Tribes / Ethnic Groups
- Food Requests
- External Data & Enrichment
- Data Models
- Error Codes
- Running Locally
- Quick Start Examples
---
## Base URL
```
african-food-database-produ…
```
Local development:
```
localhost
```
Confirm the API is live:
```
GET
african-food-database-produ…
```
```json
{
"success": true,
"message": "African Food Database API 🍲",
"version": "1.0.0",
"endpoints": {
"countries": "/api/countries",
"regions": "/api/regions",
"tribes": "/api/tribes",
"foods": "/api/foods",
"search": "/api/search",
"foodRequests": "/api/food-requests",
"external": "/api/external"
}
}
```
Health check:
```
GET /api/health
```
---
## Authentication
The API is currently **open** — no API key is required.
---
## Rate Limiting
| Window | Max Requests |
|--------|-------------|
| 15 minutes | 100 requests per IP |
When exceeded:
```json
{
"success": false,
"error": "Too many requests, please try again later."
}
```
---
## Response Format
All endpoints return a consistent JSON envelope:
```json
{
"success": true,
"data": { }
}
```
Errors:
```json
{
"success": false,
"error": "Descriptive error message"
}
```
Paginated list responses include:
```json
{
"success": true,
"data": {
"items": [ ],
"page": 1,
"limit": 20,
"total": 358
}
}
```
---
## Foods
### List all foods
```
GET /api/foods
```
**Query parameters**
| Parameter | Ty …