Animiso API Docs
Simple, edge-fast website intelligence APIs: metadata, clean-text, slugify.
Base URL
https://api.animiso.fun
Quickstart
Authenticate using your API key in the
x-api-key header. Example uses the public test key test_12345.Example — Metadata (curl)
curl -H "x-api-key: test_12345" "https://api.animiso.fun/api/metadata?url=https://github.com"
Authentication
All endpoints require an API key. Pass it as a header:
curl -H "x-api-key: YOUR_KEY" "https://api.animiso.fun/api/metadata?url=https://example.com"
Best practices:
- Keep secret keys on server-side only.
- Use restricted keys for browser apps (domain whitelist).
- Rotate keys periodically and revoke unused keys.
Endpoints
Returns page title, description, og:image and favicon for a given URL.
Parameters
url — full target URL (required)
Example
curl -H "x-api-key: test_12345" "https://api.animiso.fun/api/metadata?url=https://github.com"
Cleans input text: strips HTML, URLs, emojis, returns keywords and slug.
Parameters
text — raw text (required)mode — optional: normal (default), lower, upper
Example
curl -G -H "x-api-key: test_12345" --data-urlencode "text=Hello world" "https://api.animiso.fun/api/clean"
Returns a safe URL-friendly slug for a given text/title.
Example
curl -H "x-api-key: test_12345" "https://api.animiso.fun/api/slugify?text=Hello%20World"
Client Examples
Replace
YOUR_KEY with your API key.Fetch (browser)
fetch("https://api.animiso.fun/api/metadata?url=https://github.com", {
headers: { "x-api-key": "YOUR_KEY" }
})
.then(r => r.json())
.then(console.log)
.catch(console.error);
Node / Axios
import axios from "axios";
const res = await axios.get("https://api.animiso.fun/api/metadata", {
params: { url: "https://github.com" },
headers: { "x-api-key": "YOUR_KEY" }
});
console.log(res.data);
Python (requests)
import requests
r = requests.get("https://api.animiso.fun/api/clean",
params={"text":"Hello world"},
headers={"x-api-key":"YOUR_KEY"})
print(r.json())
Sample Responses
Metadata success response:
{
"url":"https://github.com/",
"title":"GitHub · Change is constant. GitHub keeps you ahead.",
"description":"Join the world's most widely ...",
"image":"https://...png",
"favicon":"https://...ico",
"extractedAt":"2025-11-28T22:27:20.991Z"
}
Clean text response:
{
"original":"Hello!!! Visit https://google.com NOW",
"cleaned":"Hello Visit NOW",
"keywords":["hello","visit","now"],
"slug":"hello-visit-now",
"profanityDetected":false,
"badWords":[]
}
Errors & Rate Limits
- 400 — Bad Request (missing params / invalid URL)
- 401 — Unauthorized (missing or invalid API key)
- 429 — Rate limit exceeded
- 502 — Upstream fetch blocked or failed
- 504 — Upstream timeout
Rate limits
Free: 100 req/day. Starter: 50k/month. Pro: 300k/month.
Limits are enforced per API key and visible under Usage.
Security & Best Practices
- Store secret keys server-side only. Use restricted keys with domain or IP allowances for client code.
- Respect target sites' robots.txt and terms when fetching metadata.
- Cache results client-side for 1 hour when possible to reduce cost and latency.
- Rotate and revoke keys that are exposed or unused.
Changelog (short)
- 2025-11-28 — Initial public alpha: metadata, clean, slugify endpoints, KV caching, demo keys.