nekos.best

App · Images & Design · 9 actions

Safe-for-work anime images and reaction GIFs, every one credited to its artist or the anime it is from: four image categories and about sixty reactions such as hug, pat, wave and facepalm. Free and keyless.

Actions

ActionWhat it does
Check service statusCheck whether nekos.best is answering and how quickly, without failing the step when it is not, and read how many requests are left in the current rate-limit window.
Download an image or GIFDownload a file so a later step can attach it to an email, upload it to a chat or put it in storage.
Get a random imageGet one random safe-for-work anime image with the artist's name and a link to the original artwork, ready to post with credit.
Get a reaction GIFGet one random anime reaction GIF for a feeling or gesture, such as hug, pat, wave, facepalm or thumbsup, with the name of the anime it is taken from.
Get several random imagesGet up to twenty random anime images from one category in a single request, each with its artist's name and a link to the original artwork.
Get several reaction GIFsGet up to twenty random reaction GIFs for one feeling or gesture in a single request, each with the anime it is taken from.
List categoriesList every category the service offers, split into the image categories and the reaction GIF categories, each with the file format it serves and its address.
Look up a file by URLGet the credit for a file you already have the address of: the artist and a link to the original for an image, the anime for a GIF, plus the file's media type and size.
Search images and GIFsFind files by who made them: images are matched on the artist's name and GIFs on the title of the anime they are from, so 'Toradora' finds GIFs cut from Toradora!

Check service status

Check whether nekos.best is answering and how quickly, without failing the step when it is not, and read how many requests are left in the current rate-limit window. Put this in front of a workflow and branch on 'ok', or use 'rate_limit_remaining' to slow a loop down before it is throttled rather than after.

Inputs

None.

Outputs

latency_msnumber
messagetext
oktrue/false
rate_limit_remainingnumber
rate_limit_resettext
rate_limit_windowtext
rate_limitedtrue/false
status_codenumber
Example output
{
  "latency_ms": 118.0,
  "message": null,
  "ok": true,
  "rate_limit_remaining": 199,
  "rate_limit_reset": "2026-09-16T12:01:00.000Z",
  "rate_limit_window": "1m",
  "rate_limited": false,
  "status_code": 200
}

Download an image or GIF

Download a file so a later step can attach it to an email, upload it to a chat or put it in storage. Pass the address of a file from an earlier step for that exact one, or name a category to draw one at random and download it in the same step. The credit comes back with the file either way. The address alone is enough wherever a link will do; this is for the steps that need the bytes.

Inputs

File URLurltext
Optional. The address of a nekos.best file from an earlier step, to download that exact one. Only the service's own files are downloaded. Leave empty and give a category instead to draw one at random.
Or a random one fromcategorytext
Optional. A category to draw a random file from when no URL is given, such as 'neko' for an image or 'hug' for a GIF. Ignored when a URL is given.

Outputs

assetobject
asset_urltext
byte_sizenumber
content_typetext
credittext
document_reftext
documentslist
filenametext
urltext
Example output
{
  "asset": {
    "anime_name": null,
    "artist_href": "https://www.pixiv.net/en/users/1234567",
    "artist_name": "Rin Aoi",
    "category": "neko",
    "credit": "Art by Rin Aoi",
    "filename": "0b3a2d0e-6f6e-4d4b-9c3e-8f1a2b3c4d5e",
    "format": "png",
    "height": 1600,
    "kind": "image",
    "source_url": "https://www.pixiv.net/en/artworks/98765432",
    "url": "https://nekos.best/api/v2/neko/0b3a2d0e-6f6e-4d4b-9c3e-8f1a2b3c4d5e.png",
    "width": 1200
  },
  "asset_url": "https://nekos.best/api/v2/neko/0b3a2d0e-6f6e-4d4b-9c3e-8f1a2b3c4d5e.png",
  "byte_size": 842113,
  "content_type": "image/png",
  "credit": "Art by Rin Aoi",
  "document_ref": "doc_nekos_best_0b3a2d0e",
  "documents": [
    {
      "content_type": "image/png",
      "document_ref": "doc_nekos_best_0b3a2d0e",
      "filename": "nekos-best-neko-0b3a2d0e.png",
      "size_bytes": 842113,
      "url": "/actions/core/serve-document/doc_nekos_best_0b3a2d0e"
    }
  ],
  "filename": "nekos-best-neko-0b3a2d0e.png",
  "url": "/actions/core/serve-document/doc_nekos_best_0b3a2d0e"
}

Get a random image

Get one random safe-for-work anime image with the artist's name and a link to the original artwork, ready to post with credit. Pick one of the image categories, or leave it empty for a neko. The address it returns is a direct link to the PNG, so it can go straight into a message or a web page.

Inputs

Categorycategorytext
Which kind of picture to draw. The image categories are husbando, kitsune, neko and waifu; the list is read from the service when the connection is made, so anything added upstream appears here too. A GIF category such as 'hug' is refused, because it is not an image.

Outputs

categorytext
credittext
imageobject
urltext
Example output
{
  "category": "neko",
  "credit": "Art by Rin Aoi",
  "image": {
    "anime_name": null,
    "artist_href": "https://www.pixiv.net/en/users/1234567",
    "artist_name": "Rin Aoi",
    "category": "neko",
    "credit": "Art by Rin Aoi",
    "filename": "0b3a2d0e-6f6e-4d4b-9c3e-8f1a2b3c4d5e",
    "format": "png",
    "height": 1600,
    "kind": "image",
    "source_url": "https://www.pixiv.net/en/artworks/98765432",
    "url": "https://nekos.best/api/v2/neko/0b3a2d0e-6f6e-4d4b-9c3e-8f1a2b3c4d5e.png",
    "width": 1200
  },
  "url": "https://nekos.best/api/v2/neko/0b3a2d0e-6f6e-4d4b-9c3e-8f1a2b3c4d5e.png"
}

Get a reaction GIF

Get one random anime reaction GIF for a feeling or gesture, such as hug, pat, wave, facepalm or thumbsup, with the name of the anime it is taken from. There are about sixty reactions to choose from. The address it returns is a direct link to the GIF, so it can go straight into a chat message.

Inputs

ReactioncategorytextRequired
The reaction to draw a GIF for, such as hug, pat, wave or facepalm. The list is read from the service when the connection is made, so anything added upstream appears here too. An image category such as 'neko' is refused, because it is not a GIF.

Outputs

anime_nametext
categorytext
gifobject
urltext
Example output
{
  "anime_name": "Toradora!",
  "category": "hug",
  "gif": {
    "anime_name": "Toradora!",
    "artist_href": null,
    "artist_name": null,
    "category": "hug",
    "credit": "From Toradora!",
    "filename": "3e8f2a1b-9c4d-4f7e-8a2b-6d5c4e3f2a1b",
    "format": "gif",
    "height": 280,
    "kind": "gif",
    "source_url": null,
    "url": "https://nekos.best/api/v2/hug/3e8f2a1b-9c4d-4f7e-8a2b-6d5c4e3f2a1b.gif",
    "width": 498
  },
  "url": "https://nekos.best/api/v2/hug/3e8f2a1b-9c4d-4f7e-8a2b-6d5c4e3f2a1b.gif"
}

Get several random images

Get up to twenty random anime images from one category in a single request, each with its artist's name and a link to the original artwork. Use this over drawing one at a time when a step needs a set: it costs one request against the per-category limit rather than one per image.

Inputs

Categorycategorytext
Which kind of picture to draw. The image categories are husbando, kitsune, neko and waifu; the list is read from the service when the connection is made, so anything added upstream appears here too. A GIF category such as 'hug' is refused, because it is not an image.
Number of imagesamountnumber
How many files to return, from 1 to 20, which is the most the API returns in one request. Defaults to 1. Every file is a separate random draw, so the same one can appear twice in a large batch.From 1 to 20.

Outputs

categorytext
image_countnumber
imageslist
requested_countnumber
Example output
{
  "category": "neko",
  "image_count": 2,
  "images": [
    {
      "anime_name": null,
      "artist_href": "https://www.pixiv.net/en/users/1234567",
      "artist_name": "Rin Aoi",
      "category": "neko",
      "credit": "Art by Rin Aoi",
      "filename": "0b3a2d0e-6f6e-4d4b-9c3e-8f1a2b3c4d5e",
      "format": "png",
      "height": 1600,
      "kind": "image",
      "source_url": "https://www.pixiv.net/en/artworks/98765432",
      "url": "https://nekos.best/api/v2/neko/0b3a2d0e-6f6e-4d4b-9c3e-8f1a2b3c4d5e.png",
      "width": 1200
    },
    {
      "anime_name": null,
      "artist_href": "https://www.pixiv.net/en/users/7654321",
      "artist_name": "Haru Mizuki",
      "category": "neko",
      "credit": "Art by Haru Mizuki",
      "filename": "7c1d9a4f-2b8e-4e61-a5d3-1f0c9b2e8d77",
      "format": "png",
      "height": 1414,
      "kind": "image",
      "source_url": "https://www.pixiv.net/en/artworks/12345678",
      "url": "https://nekos.best/api/v2/neko/7c1d9a4f-2b8e-4e61-a5d3-1f0c9b2e8d77.png",
      "width": 1000
    }
  ],
  "requested_count": 2
}

Get several reaction GIFs

Get up to twenty random reaction GIFs for one feeling or gesture in a single request, each with the anime it is taken from. Use this to offer a choice, or to fill a week of scheduled posts from one step rather than one request each.

Inputs

ReactioncategorytextRequired
The reaction to draw a GIF for, such as hug, pat, wave or facepalm. The list is read from the service when the connection is made, so anything added upstream appears here too. An image category such as 'neko' is refused, because it is not a GIF.
Number of GIFsamountnumber
How many files to return, from 1 to 20, which is the most the API returns in one request. Defaults to 1. Every file is a separate random draw, so the same one can appear twice in a large batch.From 1 to 20.

Outputs

categorytext
gif_countnumber
gifslist
requested_countnumber
Example output
{
  "category": "hug",
  "gif_count": 2,
  "gifs": [
    {
      "anime_name": "Toradora!",
      "artist_href": null,
      "artist_name": null,
      "category": "hug",
      "credit": "From Toradora!",
      "filename": "3e8f2a1b-9c4d-4f7e-8a2b-6d5c4e3f2a1b",
      "format": "gif",
      "height": 280,
      "kind": "gif",
      "source_url": null,
      "url": "https://nekos.best/api/v2/hug/3e8f2a1b-9c4d-4f7e-8a2b-6d5c4e3f2a1b.gif",
      "width": 498
    },
    {
      "anime_name": "Clannad",
      "artist_href": null,
      "artist_name": null,
      "category": "hug",
      "credit": "From Clannad",
      "filename": "9a7b6c5d-4e3f-4a2b-9c8d-7e6f5a4b3c2d",
      "format": "gif",
      "height": 281,
      "kind": "gif",
      "source_url": null,
      "url": "https://nekos.best/api/v2/hug/9a7b6c5d-4e3f-4a2b-9c8d-7e6f5a4b3c2d.gif",
      "width": 500
    }
  ],
  "requested_count": 2
}

List categories

List every category the service offers, split into the image categories and the reaction GIF categories, each with the file format it serves and its address. This is the list the API asks callers to read rather than hard-code, so use it to pick a reaction at run time or to check one exists before asking for it.

Inputs

None.

Outputs

categorieslist
category_countnumber
gif_categorieslist
gif_category_countnumber
image_categorieslist
image_category_countnumber
Example output
{
  "categories": [
    {
      "format": "gif",
      "kind": "gif",
      "name": "hug",
      "url": "https://nekos.best/api/v2/hug"
    },
    {
      "format": "png",
      "kind": "image",
      "name": "neko",
      "url": "https://nekos.best/api/v2/neko"
    },
    {
      "format": "gif",
      "kind": "gif",
      "name": "pat",
      "url": "https://nekos.best/api/v2/pat"
    },
    {
      "format": "png",
      "kind": "image",
      "name": "waifu",
      "url": "https://nekos.best/api/v2/waifu"
    }
  ],
  "category_count": 4,
  "gif_categories": [
    "hug",
    "pat"
  ],
  "gif_category_count": 2,
  "image_categories": [
    "neko",
    "waifu"
  ],
  "image_category_count": 2
}

Look up a file by URL

Get the credit for a file you already have the address of: the artist and a link to the original for an image, the anime for a GIF, plus the file's media type and size. The service keeps this in the file's own response headers, so the file is opened and closed without downloading it. For a workflow that stored an address earlier and wants to credit the artist when it posts.

Inputs

File URLurltextRequired
The address of a nekos.best file, as returned by any step here: https://nekos.best/api/v2/<category>/<id>.png or .gif. Only the service's own files are looked up.

Outputs

assetobject
categorytext
content_typetext
credittext
kindtext
size_bytesnumber
urltext
Example output
{
  "asset": {
    "anime_name": null,
    "artist_href": "https://www.pixiv.net/en/users/1234567",
    "artist_name": "Rin Aoi",
    "category": "neko",
    "credit": "Art by Rin Aoi",
    "filename": "0b3a2d0e-6f6e-4d4b-9c3e-8f1a2b3c4d5e",
    "format": "png",
    "height": null,
    "kind": "image",
    "source_url": "https://www.pixiv.net/en/artworks/98765432",
    "url": "https://nekos.best/api/v2/neko/0b3a2d0e-6f6e-4d4b-9c3e-8f1a2b3c4d5e.png",
    "width": null
  },
  "category": "neko",
  "content_type": "image/png",
  "credit": "Art by Rin Aoi",
  "kind": "image",
  "size_bytes": 842113,
  "url": "https://nekos.best/api/v2/neko/0b3a2d0e-6f6e-4d4b-9c3e-8f1a2b3c4d5e.png"
}

Search images and GIFs

Find files by who made them: images are matched on the artist's name and GIFs on the title of the anime they are from, so 'Toradora' finds GIFs cut from Toradora! and an artist's name finds their drawings. Say which of the two you want, narrow to a category if you like, and take up to twenty at once. Nothing matching is an empty result, not a failed step. Search is the tightest-limited route the service has, at 7 requests per 5 seconds.

Inputs

Search forquerytextRequired
An artist's name when searching images, or an anime's title when searching GIFs. Part of a name is enough.
Searchsearch_typetextRequired
Whether to search images, which are matched on their artist, or GIFs, which are matched on their anime. The API requires one or the other.One of: gifs (GIFs, by anime title), images (Images, by artist name).
Only in this categorycategorytext
Optional. Keep only files from one category, such as 'hug' for GIFs or 'neko' for images. The category has to serve the kind of file being searched for: 'hug' with images selected is refused rather than sent.
Maximum resultsamountnumber
How many files to return, from 1 to 20, which is the most the API returns in one request. Defaults to 1. Every file is a separate random draw, so the same one can appear twice in a large batch.From 1 to 20.

Outputs

categorytext
kindtext
querytext
requested_countnumber
result_countnumber
resultslist
Example output
{
  "category": "hug",
  "kind": "gif",
  "query": "Toradora",
  "requested_count": 2,
  "result_count": 1,
  "results": [
    {
      "anime_name": "Toradora!",
      "artist_href": null,
      "artist_name": null,
      "category": "hug",
      "credit": "From Toradora!",
      "filename": "3e8f2a1b-9c4d-4f7e-8a2b-6d5c4e3f2a1b",
      "format": "gif",
      "height": 280,
      "kind": "gif",
      "source_url": null,
      "url": "https://nekos.best/api/v2/hug/3e8f2a1b-9c4d-4f7e-8a2b-6d5c4e3f2a1b.gif",
      "width": 498
    }
  ]
}

On this page