Skip to main content

Kaomojis Public API

A free, CORS-enabled JSON API to the largest Japanese kaomoji catalog (61,000+ entries, 12 languages, OpenAPI 3.0).

61,000+ entries · The largest Japanese kaomoji catalog online 12 languages · keywords / usage / note fully localized OpenAPI 3.0 · Works with Swagger UI, Redoc, Stoplight, Postman Free & CORS-enabled · No auth, call directly from the browser

Quick start (30 seconds)

No auth, no API key. Paste the commands below into your terminal.

# random kaomoji
curl "https://kaomojis.jp/api/v1/kaomojis/random?locale=en"

# search
curl "https://kaomojis.jp/api/v1/kaomojis/search?q=love&locale=en"

# paginated list of cute kaomojis
curl "https://kaomojis.jp/api/v1/kaomojis?category=cute&page=1&limit=20&locale=en"

# full category catalog
curl "https://kaomojis.jp/api/v1/categories?type=emotion&locale=en"

JavaScript / TypeScript SDK

@kaomojis/client runs in Node.js 18+ and modern browsers. Zero runtime deps, full TypeScript types.

// after public release
npm install @kaomojis/client

import { KaomojisClient } from '@kaomojis/client';
const client = new KaomojisClient({ defaultLocale: 'en' });
const { data } = await client.random({ count: 3 });
console.log(data[0].text); // e.g. "(*´ω`*)"

Source: sdk/javascript/ · License: MIT

Chrome Extension (PoC)
Prefer a no-code client? The Kaomojis extension uses the same public API in a one-click popup.
Use the Chrome Extension →
Discord Bot (PoC)
Drop the same API into any Discord server via slash commands — self-hostable in five minutes.
Add to Discord →

Demo apps

Three copy-paste minimal examples you can drop in today.

Browser (vanilla JS)

Random generator widget, drop-in HTML file.

research/phase558_demo_random.html

Node.js CLI

node demo.js random|search|categories|id

research/phase558_demo_cli.js

Discord bot

discord.js skeleton with 3 slash commands.

research/phase558_demo_discord_bot.js

Endpoints

All endpoints return JSON, use GET, and are CORS-enabled (`*`).

Method Path Description
GET /api/v1/kaomojis List kaomojis (paginated, filterable)
GET /api/v1/kaomojis/:id Get a kaomoji by numeric id
GET /api/v1/kaomojis/random Random kaomoji(s) (up to 10)
GET /api/v1/kaomojis/search Keyword search ranked by relevance
GET /api/v1/random Shorthand alias for /kaomojis/random
GET /api/v1/search Shorthand alias for /kaomojis/search
GET /api/v1/categories List categories with kaomoji counts
GET /api/v1/openapi.json OpenAPI 3.0 specification

Rate limits & caching

Current fair-use target: 60 req / min / IP. Please respect Cache-Control headers. Abuse is blocked by IP.

OpenAPI 3.0 spec

Full machine-readable spec at /api/v1/openapi.json — drop it into Swagger UI, Redoc, Stoplight or any OpenAPI tooling.

→ /api/v1/openapi.json

FAQ

Can I use this commercially?

Yes, under permissive MIT-like terms. A link back to kaomojis.jp is appreciated but not required.

Do I need an API key?

No. The API is public and unauthenticated today.

How often is data updated?

Daily to weekly. Respect Cache-Control headers to cache efficiently on your end.

Is the SDK on npm?

Currently pre-release / private. After public launch it will be published as @kaomojis/client.

Contribute & feedback

Open a GitHub issue or email [email protected]. We would love to hear what you build.

Last updated: 2026-04-15