BYTETOOLS

Nekosia API

Free anime image API with no key. Every response carries a dominant colour palette, compressed and original variants, tags, artist attribution and source links. Tested example.

No API key requiredCORS enabledHTTPSFree tier

Endpoint tested and returned HTTP 200 on 2026-08-21

What is the Nekosia API?

Nekosia is a free anime image API needing no key. Alongside the image it returns a dominant colour and full palette, both an original and a pre-compressed variant with dimensions and byte sizes, descriptive tags, a safety rating and artist attribution linking back to the original post.

Most random-anime-image APIs hand you a URL and stop. Nekosia hands you the metadata you would otherwise compute yourself: a `colors.main` hex value and a fourteen-entry palette extracted from the picture, plus width, height and byte size for both the original and a compressed version. That combination solves a real front-end problem — you can paint the exact dominant colour as a placeholder, reserve the correct aspect ratio, and avoid layout shift entirely before a single byte of image data arrives.

It is also unusually careful about provenance. Each response includes a `source` block pointing at the original artwork post and an `attribution.artist` object with the artist's handle and profile URL, which makes it one of the few image APIs where crediting the illustrator is a field lookup rather than a research project. Categories sit in the path, and choosing an explicit one is the right call: category-specific endpoints keep the safety rating predictable rather than leaving it to chance.

Quick facts

Base URL
https://api.nekosia.cat/api/v1
Authentication
No key and no account. The service asks that you credit artists using the attribution block it returns.
Rate limit
The response carries `ratelimit: limit=300, remaining=299, reset=300` — 300 requests per 300-second window per address.
Pricing
Free.
CORS
Enabled — callable directly from browser JavaScript
Official docs
Read the docs

How to use the Nekosia API

Every request below was executed against the live API on 2026-08-21, and the response shown is the real body it returned — not an illustration.

1. Fetch a random catgirl image with its colour palette

GET https://api.nekosia.cat/api/v1/images/catgirl

curl
curl 'https://api.nekosia.cat/api/v1/images/catgirl'
JavaScript (fetch)
const res = await fetch("https://api.nekosia.cat/api/v1/images/catgirl");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);
Python (requests)
import requests

res = requests.get("https://api.nekosia.cat/api/v1/images/catgirl", timeout=20)
res.raise_for_status()
print(res.json())
Response — HTTP 200 (truncated)
{
  "success": true,
  "status": 200,
  "count": 961,
  "id": "66d63f5c5f1d6fa9825c2aff",
  "colors": {
    "main": "#D7D8E6",
    "palette": [
      "#EEDAD2",
      "#161512",
      "#232124",
      "#E1E3ED",
      "#666270",
      "#9A9EB9",
      "#78615A",
      "#E1E6E4",
      "#E6D8E4",
      "#B2B8CE",
      "#0F1311",
      "#DECFF6",
      "#E1EBEE",
      "#AE76B7"
    ]
  },
  "image": {
    "original": {
      "url": "https://cdn.nekosia.cat/images/catgirl/66d63f5c5f1d6fa9825c2aff.jpg",
      "extension": "jpeg"
    },
    "compressed": {
      "url": "https://cdn.nekosia.cat/images/catgirl/66d63f5c5f1d6fa9825c2aff-compressed.jpg",
      "extension": "jpeg"
    }
  },
  "metadata": {
    "original": {
      "width": 2088,
      "height": 3394,
      "size": 3742469,
      "extension": "jpeg"
    },
    "compressed": {
      "width": 1280,
      "height": 2081,
      "size": 621561,
      "extension": "jpeg"
    }
  },
  "category": "catgirl",
  "tags": [
    "catgirl",
    "cat-ears",
    "animal-ears",
    "tail",
    "cute",
    "thighs",
    "thigh-high-socks",
    "garter",
    "fishnets",
    "silver-hair",
    "gothic-lolita",
    "long-silver-hair",
    "yellow-eyes"
  ],
  "rating": "safe",
  "anime": {
    "title": null,
    "character": null
  },
  "source": {
    "url": "https://www.pixiv.net/en/artworks/121272102",
    "direct": "https://i.pximg.net/img-original/img/2024/08/07/21/30/45/121272102_p0.jpg"
  },
  "attribution": {
    "artist": {
      "username": "Pu_HT",
      "profile": "https://www.pixiv.net/en/users/16753826"
    },
    "copyrigh

Parameters

ParameterTypeRequiredDescription
categorypath segmentRequiredThe image category, appended to `/images/`. Choosing one explicitly keeps the safety rating predictable. catgirl
countqueryOptionalNumber of images to return in one call. 5
sessionqueryOptionalSession mode, used to avoid repeats across consecutive calls. id
additionalTagsqueryOptionalComma-separated tags to narrow the selection within a category. cat-ears,cute
blacklistedTagsqueryOptionalComma-separated tags to exclude. gothic-lolita

Response fields

statusinteger
The HTTP status repeated inside the body. Harmless, but do not mistake it for an application-level code.
countinteger
Total number of images available in the requested category, not the number returned.
colors.mainstring
Dominant colour as a hex string — ideal as a placeholder background while the image loads.
colors.palettearray of strings
Fourteen hex values extracted from the image, ordered by prominence.
image.original / image.compressedobject
Each holds a `url` and an `extension`. The compressed variant in our capture was roughly a sixth of the original's size.
metadata.original / metadata.compressedobject
`width`, `height`, `size` in bytes and `extension` for each variant — enough to reserve layout space before loading.
ratingstring
Safety rating, `safe` on the SFW categories. The service also hosts NSFW categories, so pin the category rather than relying on this.
anime.title / anime.characterstring | null
Source series and character where known. Frequently null.
attribution.artistobject
Artist `username` and `profile` URL, alongside a `source` block linking to the original post.

What you can build with the Nekosia API

  • Render an anime image with a matching placeholder colour and no layout shift
  • Build a themed page that derives its accent colours from the current image
  • Power a Discord bot image command with proper artist credit attached
  • Generate avatar or banner suggestions with a known dominant colour
  • Prototype an image gallery where dimensions are known before download

Common errors and how to fix them

404

Unknown category in the path.

Fix: Categories are lowercase and hyphenated. Fetch the category list first rather than guessing at plurals.

429

More than 300 requests inside the five-minute window.

Fix: Read `ratelimit` from the response headers and back off until `reset` elapses; the header reports the remaining allowance on every call.

Null anime.title

Not an error — the source series is simply unknown for that image.

Fix: Fall back to the `tags` array, which is always populated, when building a caption.

Nekosia API — frequently asked questions

Does the Nekosia API need an API key?

No. Every image endpoint works anonymously, rate-limited to 300 requests per five-minute window per address. The response headers report your remaining allowance so you can back off cleanly.

What are the colors returned by Nekosia for?

They are extracted from the image itself — `colors.main` is the dominant hex value and `colors.palette` holds fourteen more. Painting `colors.main` behind the image while it loads gives you a smooth placeholder that matches the artwork instead of a grey box.

Is Nekosia safe for work?

The category-specific SFW endpoints return images with a `rating` of `safe`, but the service also hosts NSFW categories. Always request a specific safe category rather than a general random endpoint if your app must stay SFW.

Does Nekosia provide artist attribution?

Yes, and it is a first-class field. Each response includes a `source` block linking to the original post and an `attribution.artist` object with the artist's username and profile URL, so crediting the illustrator needs no extra lookup.

Tools that pair with this API

Nekosia is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-21; always check the official documentation before relying on this API in production, as terms and limits can change.