Quote Management System - Public API

Self-hosted multilingual quote API built with Laravel + MySQL. No external APIs, no third-party data services.

Admin Login

Quick Setup

  1. Set database values in .env (DB_CONNECTION=mysql, host, db, user, password).
  2. Run migrations and seeders: php artisan migrate --seed.
  3. Run server: php artisan serve.
  4. Open admin: https://quotes.gamesnag.com/admin/login.

Default seeded users: [email protected] / password123, [email protected] / password123.

Core Details

JSON API Language Fallback Rate Limited Deterministic QOD
  • lang is optional (defaults to English).
  • Missing translation falls back to en.
  • Category filter supported in list endpoint.

API Endpoints

cURL Examples

curl "https://quotes.gamesnag.com/api/quote-of-the-day?lang=ta"

curl "https://quotes.gamesnag.com/api/random-quote?lang=en"

curl "https://quotes.gamesnag.com/api/quotes?lang=en&per_page=20"

curl "https://quotes.gamesnag.com/api/quotes?lang=ta&category=business"

JavaScript Example

const baseUrl = "https://quotes.gamesnag.com/api";

async function getQuoteOfTheDay(lang = "en") {
  const res = await fetch(`${baseUrl}/quote-of-the-day?lang=${lang}`);
  if (!res.ok) throw new Error("API error");
  return res.json();
}

getQuoteOfTheDay("ta").then(console.log).catch(console.error);

PHP Example

<?php
$endpoint = "https://quotes.gamesnag.com/api/random-quote?lang=en";
$response = file_get_contents($endpoint);
$data = json_decode($response, true);
print_r($data);

Sample Response

{
  "data": {
    "id": 12,
    "category": "motivation",
    "is_active": true,
    "language": "ta",
    "text": "தொடர்ச்சியான முயற்சி நம்பிக்கையை உருவாக்குகிறது.",
    "author": "Inspiration",
    "created_at": "2026-02-20T12:00:00+00:00"
  }
}