YALA-BINA Developer Portal

Machine-readable resources, API documentation, and integration guides for Morocco's travel marketplace.

Quick Start

YALA-BINA is a travel marketplace connecting travelers with verified Moroccan travel agencies. The platform offers organized trips across Morocco, international destinations, and Omra pilgrimages.

1. Explore machine-readable resources

ResourceURLFormat
OpenAPI Spec/openapi.jsonJSON (OpenAPI 3.1)
Sitemap/sitemap.xmlXML
LLM Summary/llms.txtPlain text
Crawl Rules/robots.txtPlain text

2. Content negotiation

Request the homepage with Accept: text/markdown to receive a structured markdown summary with live trip and agency listings:

curl -H "Accept: text/markdown" https://yala-bina.com/

The response includes Vary: Accept, Accept-Encoding for correct CDN caching.

Public Pages

All pages are server-side rendered for search engine crawlers. Trip detail pages (/trips/:slug) return full structured data (JSON-LD) for bots.

Search GET /search

Filter trips by category, destination, departure city, date, and price.

ParameterTypeDescription
categoriesstringComma-separated: omra, morocco-domestic, international, adventure, desert, mountain, beach-coast, city-cultural
regionsstringComma-separated region filters
departure_citiesstringComma-separated city names (Casablanca, Marrakech, Fes, Rabat, Tanger, Agadir, Meknes, Tetouan, Essaouira, Chefchaouen)
destinationstringFree-text search
sortBystringnewest (default), price, price_desc, duration, popularity

Trip Details GET /trips/:slug

Full trip listing with itinerary, pricing matrix, photos, departure dates, and agency info. Returns JSON-LD structured data for search engine bots.

Agency Profiles GET /agencies/:slug

Public profile of a verified travel agency with their active trip listings and contact information.

Blog GET /blog GET /blog/:slug

Travel articles and guides about Morocco and international destinations.

Visa Services GET /visa

Visa assistance services for various destinations.

API Error Responses

All API endpoints return structured JSON errors:

{
  "error": {
    "code": "NOT_FOUND",
    "message": "The requested resource was not found.",
    "status": 404
  },
  "links": {
    "sitemap": "https://yala-bina.com/sitemap.xml",
    "openapi": "https://yala-bina.com/openapi.json",
    "developers": "https://yala-bina.com/developers"
  }
}

Data Backend

YALA-BINA uses Supabase (PostgreSQL + PostgREST) as its data layer. The Supabase API is authenticated and not publicly exposed. To access trip data programmatically, use the public pages and machine-readable resources listed above.

Rate Limits

ResourceLimit
Public pagesNo hard limit; observe Crawl-delay: 1 in robots.txt
SitemapCached for 1 hour
Markdown negotiationCached for 5 minutes

Content Languages

The platform supports French (primary), Arabic, and English. Use the Accept-Language header or URL prefixes (/en/, /ar/, /fr/) to request content in a specific language.