A free-to-use anime reaction GIF API :3
Every GIF is hand-picked and curated for quality: good resolution, nearly 16:9 aspect ratio, no bugged pixels and no annoying text. Each GIF includes the anime name in the response so you always know the source, and you can filter by gender pairing (girl x girl, boy > girl, etc.) which is something no other anime GIF API offers ^^
GIFs are stored on Cloudflare R2 and served via cdn.gifukai.com. The API is built with Go and uses Turso (libSQL) as the database.
Full documentation available at gifukai.com.
GET https://api.gifukai.com/v1/hug
Returns a random GIF for the given action. No API key, no signup, no rate limits ^^
All endpoints live under the /v1 prefix. The old unprefixed routes
(https://api.gifukai.com/hug) still work but are deprecated โ they respond
with Deprecation, Sunset and Link headers pointing at their /v1
successor, and will be removed on 25 October 2026. Please move to /v1.
| Action | Endpoint |
|---|---|
pat |
https://api.gifukai.com/v1/pat |
hug |
https://api.gifukai.com/v1/hug |
kiss |
https://api.gifukai.com/v1/kiss |
cry |
https://api.gifukai.com/v1/cry |
sleep |
https://api.gifukai.com/v1/sleep |
You can get the full list of actions from GET /v1/actions. It returns an
actions object keyed by action name, each carrying has_types so clients
know which actions support the ?type= filter:
{
"actions": {
"hug": { "has_types": false },
"kiss": { "has_types": true }
}
}You can filter GIFs by pairing type using the pairing query parameter. The first character represents who does the action:
| Pairing | Description | Example |
|---|---|---|
f |
Solo girl | https://api.gifukai.com/v1/sleep?pairing=f |
m |
Solo boy | https://api.gifukai.com/v1/sleep?pairing=m |
ff |
Girl > Girl | https://api.gifukai.com/v1/hug?pairing=ff |
mm |
Boy > Boy | https://api.gifukai.com/v1/hug?pairing=mm |
fm |
Girl > Boy | https://api.gifukai.com/v1/kiss?pairing=fm |
mf |
Boy > Girl | https://api.gifukai.com/v1/kiss?pairing=mf |
If no pairing is specified, a random GIF from any pairing will be returned.
You can optionally filter GIFs by a generic type query parameter:
| Example | Description |
|---|---|
| https://api.gifukai.com/v1/kiss?type=mouth | Only mouth kiss GIFs |
| https://api.gifukai.com/v1/kiss?type=cheek | Only cheek kiss GIFs |
| https://api.gifukai.com/v1/kiss?type=forehead | Only forehead kiss GIFs |
| https://api.gifukai.com/v1/kiss | All kiss GIFs |
When type is provided, only GIFs with that exact type are returned.
Type filtering is available only for actions where every GIF is typed.
Check documentation at gifukai.com for which actions support type filtering.
| Endpoint | Description |
|---|---|
GET /v1/actions |
List all available actions |
GET /v1/actions/{action}/types |
Check whether an action supports type filtering |
GET /v1/stats |
Total GIFs, actions, animes and size |
GET /v1/library |
Browse GIFs with filters (action, pairing, anime) |
GET /v1/leaderboard |
Top contributors |
GET /v1/healthz |
Health check |
/v1/stats, /v1/library and /v1/leaderboard require an X-Library-Key header.
GET /v1/kiss?type=cheek&pairing=fm might return:
{
"action": "kiss",
"type": "cheek",
"pairing": "fm",
"anime": "Tsuredure Children",
"url": "https://cdn.gifukai.com/kiss/52e7fa7d-b873-4e78-a6aa-eb1118c5281c.gif",
"filename": "52e7fa7d-b873-4e78-a6aa-eb1118c5281c.gif",
"content_type": "image/gif",
"size_bytes": 4201101
}type is optional and only appears in the response when that action is fully typed.
Thank you for using the API! If you have any suggestions, please let me know :3
The API is free to use. The source code is all rights reserved โ public
for reference, but not for copying or reuse. See LICENSE.
Copyright (C) 2026 lucialv.
By using the API you agree to the Terms of Service. See also the Privacy Policy and DMCA / Takedown Policy.