BYTETOOLS

Cataas (Cat as a Service) API

Free cat image API with no key: random cats, tag filtering, text overlays and on-the-fly resizing, as an image or as JSON metadata. Tested example included.

No API key requiredCORS enabledHTTPSFree tier

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

What is the Cataas (Cat as a Service) API?

Cataas (Cat as a Service) is a free, key-free API serving random cat photos and GIFs. Any request returns an image directly, or JSON metadata when you add `json=true`, and the URL can filter by tag, add caption text and resize or filter the picture on the fly.

Cataas is the cat equivalent of a placeholder image service, and it has become a staple of tutorials, demos and test fixtures because it needs nothing at all — no key, no account, no query language. Point an `img` tag at the base URL and you get a cat.

What makes it more useful than a plain placeholder is that the whole feature set lives in the URL. You can append `/says/Hello` to burn a caption into the image, add `/gif` for animations, filter by tag, and control size and image filters with query parameters. Adding `json=true` flips the response from the image itself to a metadata object with the cat's id, tags and a canonical URL — which is the form you want when you are storing a reference rather than displaying it once.

Quick facts

Base URL
https://cataas.com
Authentication
No API key, no account and no quota to register for. The project is open source.
Rate limit
No published limit. Images are cached, so repeat requests are cheap.
Pricing
Free.
CORS
Enabled — callable directly from browser JavaScript
Official docs
Read the docs

How to use the Cataas (Cat as a Service) 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 metadata for a random cat

GET https://cataas.com/cat?json=true

curl
curl 'https://cataas.com/cat?json=true'
JavaScript (fetch)
const res = await fetch("https://cataas.com/cat?json=true");
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://cataas.com/cat?json=true", timeout=20)
res.raise_for_status()
print(res.json())
Response — HTTP 200
{
  "id": "Vrn6StQZRbXigMs8",
  "tags": [],
  "created_at": "2020-12-06T00:06:29.500Z",
  "url": "https://cataas.com/cat/Vrn6StQZRbXigMs8?position=center",
  "mimetype": "image/jpeg"
}

Parameters

ParameterTypeRequiredDescription
jsonqueryOptionalReturn JSON metadata instead of the image bytes. This is what makes the endpoint scriptable. true
tagsqueryOptionalFilter to cats carrying a tag, such as `cute`, `orange` or `sleeping`. Fetch `/api/tags` for the full list. cute
sayspath segmentOptionalAppending `/says/Your+Text` renders a caption onto the image. Hello
width / heightqueryOptionalResize the returned image in pixels. 400
filterqueryOptionalApply an image filter such as `mono`, `sepia`, `negate` or `blur`. mono
typequeryOptionalSize variant of the stored image: `square`, `medium`, `small` or `xsmall`. medium

Response fields

idstring
Stable identifier for that specific cat. Use it to request the same image again via `/cat/{id}`.
urlstring
Canonical URL for the image, already including the position parameter used to crop it.
tagsarray
Tags attached to the cat. Frequently empty — most images are untagged, so do not rely on this for filtering.
mimetypestring
`image/jpeg`, `image/png` or `image/gif`, so you know what you are about to render.
created_atstring
ISO timestamp for when the image was added to the collection.
(without json=true)image
The raw image bytes, which is why the bare URL works directly in an `img` tag.

What you can build with the Cataas (Cat as a Service) API

  • Fill a UI mockup or design prototype with real images instead of grey boxes
  • Provide a reliable image fixture for front-end tests and tutorials
  • Add a random-cat command to a Discord or Slack bot
  • Generate captioned images for a meme or greeting-card feature

Common errors and how to fix them

404

No cat matches the requested tag or id.

Fix: Tags are lowercase. Fetch `/api/tags` first rather than guessing, since most images carry no tags at all.

Empty tags array

Not an error — the majority of cats are untagged.

Fix: Treat tag filtering as best-effort and always have a fallback to an untagged random cat.

Slow first response

The image is being resized or filtered on demand.

Fix: Requests without `filter` and resize parameters are served from cache and return much faster.

Cataas (Cat as a Service) API — frequently asked questions

Is the Cataas API free and does it need a key?

It is completely free with no API key, no account and no registration. The project is open source, so you can also self-host it if you want guaranteed availability.

How do I get JSON instead of an image from Cataas?

Add `json=true` to the query string. Without it the response body is the image itself, which is what lets the plain URL work inside an `img` tag; with it you get an object containing the cat's id, tags, mimetype and canonical URL.

Can I add text to a Cataas image?

Yes. Append `/says/Your+Text` to the path and the caption is rendered onto the picture. Additional query parameters control font size, colour and position.

Can I use Cataas images commercially?

Be careful here. The service is free to call, but the individual photographs are user-contributed and Cataas does not assert a licence for each one. For commercial work use a stock library with clear licensing, and treat Cataas as a development and prototyping tool.

Tools that pair with this API

Cataas (Cat as a Service) 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.