Palettes API
Пошук у бібліотеці колірних палітр Jinero — 6 200+ добірних палітр із фільтрами за настроєм, гармонією, температурою, тоном і тегами, а також повні дані про кольори й SEO-метадані одразу.
API лише для читання над бібліотекою палітр Jinero. Шукайте за настроєм, гармонією, температурою, тоном, кількістю кольорів і тегами; отримуйте окремі палітри з повними даними про кольори, SEO-дружніми назвами й добіркою схожих палітр. На ньому працює і наш власний UI, і будь-який LLM-агент, якому потрібні добірні палітри.
# List 5 most popular palettes
curl "https://jinero.online/api/v1/palettes?per_page=5&order=popular"
# Fetch one palette by id
curl "https://jinero.online/api/v1/palettes/3798"
const r = await fetch("https://jinero.online/api/v1/palettes?mood=pastel&per_page=24");
const { data: palettes, last_page } = await r.json();
Усі ендпоінти публічні — ключ не потрібен. Лише читання й мінімальне навантаження, тож ліміти щедрі.
# Anonymous limits (per IP):
# GET /palettes 60 req/min
# GET /palettes/{id} 60 req/min
# Pagination: per_page max 100, default 24
Посторінковий пошук. Кожен фільтр необов'язковий, їх можна поєднувати. Без фільтрів повертається вся бібліотека, відсортована за обраним order.
https://jinero.online/api/v1/palettes
| Параметр | Тип | Опис |
|---|---|---|
name |
string | Нечіткий пошук за назвою (LIKE). Більшість палітр не мають назви — краще поєднуйте з іншими фільтрами. |
tone |
string | light · dark · mixed. |
temperature |
string | warm · cool · neutral. |
mood |
string | pastel · muted · earthy · vibrant · monochrome (та інші — перелік значень відкритий). |
harmony |
string | analogous · complementary · triadic · monochromatic · tetradic · split-complementary. |
color_count |
integer | Точна кількість (2–6) або 7+ для «багато кольорів». |
tags[] |
string[] | Slug-и обов'язкових тегів. Для кількох тегів повторіть параметр. |
order |
string | newest (за замовчуванням) · popular · name. |
per_page |
integer | 1–100, за замовчуванням 24. |
page |
integer | Номер сторінки, за замовчуванням 1. |
# Top 10 cool-pastel palettes
curl "https://jinero.online/api/v1/palettes?temperature=cool&mood=pastel&order=popular&per_page=10"
const url = new URL("https://jinero.online/api/v1/palettes");
url.searchParams.set("temperature", "warm");
url.searchParams.set("color_count", "5");
url.searchParams.set("order", "popular");
const r = await fetch(url);
const { data, total, last_page } = await r.json();
$res = Http::get("https://jinero.online/api/v1/palettes", [
"mood" => "vibrant",
"harmony" => "triadic",
"per_page" => 30,
]);
$palettes = $res->json("data");
{
"current_page": 1,
"data": [
{
"id": 3798,
"name": null,
"display_name": "4-Color Muted Palette",
"slug": "222831393e4600adb5eeeeee",
"colors": ["#222831", "#393e46", "#00adb5", "#eeeeee"],
"color_count": 4,
"tone": "mixed",
"temperature": "cool",
"mood": "muted",
"harmony": "analogous",
"source": "imported",
"source_url": "...",
"tags": [],
"likes_count": 71122,
"views_count": 0,
"url": "https://jinero.online/colors/palettes/3798"
}
],
"first_page_url": "...",
"last_page": 421,
"per_page": 24,
"total": 10103
}
Повертає одну палітру й 8 схожих (та сама температура й тон, за популярністю). Виклик цього ендпоінта також збільшує views_count.
https://jinero.online/api/v1/palettes/{id}
| Параметр | Тип | Опис |
|---|---|---|
id |
integer (path) | ID палітри з відповіді списку. |
curl "https://jinero.online/api/v1/palettes/3798"
const r = await fetch("https://jinero.online/api/v1/palettes/3798");
const { palette, related } = await r.json();
document.title = palette.seo_title;
$res = Http::get("https://jinero.online/api/v1/palettes/3798");
$palette = $res->json("palette");
{
"success": true,
"palette": {
"id": 3798,
"name": null,
"display_name": "4-Color Muted Palette",
"colors": ["#222831", "#393e46", "#00adb5", "#eeeeee"],
"color_count": 4,
"tone": "mixed",
"temperature": "cool",
"mood": "muted",
"harmony": "analogous",
"tags": [],
"likes_count": 71122,
"views_count": 1,
"url": "https://jinero.online/colors/palettes/3798",
"seo_title": "4-Color Muted Palette — Cool Mixed, Analogous Harmony | Jinero Online",
"seo_description": "4-color muted palette with cool temperature and analogous harmony. Hex codes: #222831, #393E46, #00ADB5, #EEEEEE..."
},
"related": [
{ "id": 1234, "display_name": "...", "colors": [...] }
]
}
Близько 65% імпортованої бібліотеки мають name: null. Ми виводимо зрозумілу display_name з mood + color_count через аксесор моделі — наприклад, безіменна приглушена палітра з 4 кольорів стає "4-Color Muted Palette". Поля seo_title і seo_description формуються так само, тож посилання й метатеги лишаються узгодженими, незалежно від того, чи мала палітра редакційну назву.
// Unnamed palette as it appears in the database
{ "id": 3798, "name": null, "mood": "muted", "color_count": 4 }
// What you actually receive from the API
{
"id": 3798,
"name": null,
"display_name": "4-Color Muted Palette",
"seo_title": "4-Color Muted Palette — Cool Mixed, Analogous Harmony | Jinero Online"
}
Стандартна семантика HTTP. Помилки повертають JSON із полем "message".
// 404 — palette id not found
{ "message": "Palette not found" }
// 422 — invalid filter value (e.g. unknown order)
{ "message": "The selected order is invalid." }
// 429 — rate limit exceeded
{ "message": "Too Many Attempts." }
Про Palettes API jinero.online
Безкоштовний REST API над бібліотекою з 6 200+ палітр — добірка за настроєм, гармонією, температурою й тоном, з готовими для SEO назвами й підказками схожих палітр.
6 200+ палітр
Добірні й імпортовані палітри з узгодженими метаданими — настрій, гармонія, температура, тон. Пошук за кожним важливим параметром.
Пагінація й фільтри
Стандартний контракт пагінації Laravel — current_page, last_page, total і типізовані параметри фільтрів. Жодних власних форматів курсорів, які треба вивчати.
Готово до SEO одразу
Кожна палітра має згенеровані display_name, seo_title і seo_description — вставляйте їх одразу в <title> і метатеги.
Схожі палітри
Відповідь для однієї палітри містить до 8 схожих (та сама температура й тон, за популярністю) — ідеально для блоків «вам також може сподобатися».
Часті запитання
Ні. Обидва ендпоінти публічні й мають ліміт 60 запитів/хв з одного IP. Якщо для пакетної роботи потрібні вищі ліміти, зареєструйтеся й отримайте API-токен.
Бібліотеку початково наповнено імпортом із публічних сайтів-добірок кольорів, які здебільшого публікують палітри без назв. Ми ніколи не вигадуємо фальшивих редакційних назв — натомість виводимо стабільну display_name з mood + color_count через аксесор моделі, тож API лишається узгодженим.
Так — повторіть параметр tags[]: ?tags[]=warm-tones&tags[]=monochrome. Мають бути присутні всі перелічені теги (семантика AND). Для поведінки OR надішліть два окремі запити й об'єднайте результати на клієнті.
likes_count, views_count і saves_count оновлюються в реальному часі — кожен виклик /palettes/{id} синхронно збільшує views_count. Order=popular сортує за likes_count.
Не у v1. Slug-и детерміновані (з'єднані hex-коди без #), тож їх можна зібрати на клієнті, але пошук працює лише за цілочисловим id. Якщо вам потрібне отримання за slug, відкрийте issue.