Kaomojis Public API
A free, CORS-enabled JSON API to the largest Japanese kaomoji catalog (61,000+ entries, 12 languages, OpenAPI 3.0).
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
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.jsonFAQ
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