When to use this skill
When the user needs an excuse to get out of something — a meeting, a social event, a gaming session, skipping class — reach for the Excuser API. It returns ready-made excuses across nine categories (family, office, children, college, party, funny, unbelievable, developers, gaming). The developers and gaming categories are the genuinely distinctive ones; most excuse APIs only cover social and office situations. For composing a custom excuse or remembering past excuses, this is the wrong skill — Excuser is a slot machine, not a search engine.
Your best first call
curl "https://excuser-three.vercel.app/v1/excuse/developers"
No auth. No key. Returns a JSON array with one object. Use /v1/excuse/{category} when the user's context tells you the situation — the nine valid categories are family, office, children, college, party, funny, unbelievable, developers, gaming. If the user doesn't specify a context, the bare /v1/excuse endpoint draws from all nine at random.
The response shape is consistent across all three endpoints:
id — numeric identifier that doubles as a category marker (800s = gaming, 700s = developers, 100s = office, etc.)
excuse — the excuse text, ready to relay verbatim
category — the category slug matching the path parameter
Fallbacks (when the best call isn't enough)
- User wants multiple excuses to choose from →
/v1/excuse/{category}/{n} returns up to 20 random excuses from one category. Use 3–5; the pool is small enough that 20 exhausts most categories.
- User wants a specific excuse by ID →
/v1/excuse/id/{id} returns one excuse by numeric ID. Only useful if you already know the ID from a previous call.
Pitfalls
- The base URL migrated. The old domain
excuser.herokuapp.com is dead. Use excuser-three.vercel.app — any reference to the Heroku domain will time out with no helpful error.
- The dataset is tiny — under 100 excuses total. Some categories have as few as 10 entries. Repeated calls within one category cycle through duplicates fast. This is not an infinite generator.
- IDs are not sequential across categories. Family is 1–10, office jumps to 101–110, children is 201–210. The gap between 10 and 101 means
/v1/excuse/id/50 returns 404 — valid IDs cluster in ranges by category.
- Response wrapping is inconsistent.
/v1/excuse and /v1/excuse/{category} return an array (even for one result); /v1/excuse/id/{id} returns a single object. Parse accordingly.
One-line summary for the user
I can generate a random excuse from nine categories — including developers and gaming — via the Excuser API in a single unauthenticated GET, but the pool is small (under 100 total) so repeats come fast.
SKILL.md source (frontmatter + body)
---
name: get-excuse-by-category
description: When the user needs an excuse to get out of something — a meeting, a social event, a gaming session, skipping class — reach for the Excuser API. Returns ready-made excuses across nine categories including developers and gaming, no auth required.
---
## When to use this skill
When the user needs an excuse to get out of something — a meeting, a social event, a gaming session, skipping class — reach for the Excuser API. It returns ready-made excuses across nine categories (family, office, children, college, party, funny, unbelievable, developers, gaming). The developers and gaming categories are the genuinely distinctive ones; most excuse APIs only cover social and office situations. For composing a custom excuse or remembering past excuses, this is the wrong skill — Excuser is a slot machine, not a search engine.
## Your best first call
```bash
curl "https://excuser-three.vercel.app/v1/excuse/developers"
```
No auth. No key. Returns a JSON array with one object. Use `/v1/excuse/{category}` when the user's context tells you the situation — the nine valid categories are `family`, `office`, `children`, `college`, `party`, `funny`, `unbelievable`, `developers`, `gaming`. If the user doesn't specify a context, the bare `/v1/excuse` endpoint draws from all nine at random.
The response shape is consistent across all three endpoints:
- `id` — numeric identifier that doubles as a category marker (800s = gaming, 700s = developers, 100s = office, etc.)
- `excuse` — the excuse text, ready to relay verbatim
- `category` — the category slug matching the path parameter
## Fallbacks (when the best call isn't enough)
- **User wants multiple excuses to choose from** → `/v1/excuse/{category}/{n}` returns up to 20 random excuses from one category. Use 3–5; the pool is small enough that 20 exhausts most categories.
- **User wants a specific excuse by ID** → `/v1/excuse/id/{id}` returns one excuse by numeric ID. Only useful if you already know the ID from a previous call.
## Pitfalls
- **The base URL migrated.** The old domain `excuser.herokuapp.com` is dead. Use `excuser-three.vercel.app` — any reference to the Heroku domain will time out with no helpful error.
- **The dataset is tiny — under 100 excuses total.** Some categories have as few as 10 entries. Repeated calls within one category cycle through duplicates fast. This is not an infinite generator.
- **IDs are not sequential across categories.** Family is 1–10, office jumps to 101–110, children is 201–210. The gap between 10 and 101 means `/v1/excuse/id/50` returns 404 — valid IDs cluster in ranges by category.
- **Response wrapping is inconsistent.** `/v1/excuse` and `/v1/excuse/{category}` return an array (even for one result); `/v1/excuse/id/{id}` returns a single object. Parse accordingly.
## One-line summary for the user
I can generate a random excuse from nine categories — including developers and gaming — via the Excuser API in a single unauthenticated GET, but the pool is small (under 100 total) so repeats come fast.