Contribute a Stupid API

We host every pack on our own infrastructure. That means submissions are code we read and merge.

The bar

Specific. Dry. Confidently wrong. The voice is deadpan. No exclamation points. The joke is in the precision.

Two ways to submit

I have code

Open a pull request that adds a pack under apis/{your-slug}/, an entry in website/data/apis.json, and a SKILL.md. Our CI checks the security boundary automatically.

Read CONTRIBUTING.md Open a PR

I just have an idea

Open a GitHub issue with the "stupid API idea" template. Tell us what it is, what a single call returns, and why it's stupid. We may build it. We make no promises.

Submit an idea

The hard rules

These are the security boundary. CI rejects PRs that violate them.

  • No fetch() calls in pack source. Need a model? Import callHaiku from @stupid-apis/shared.
  • No external imports. The only allowed import is @stupid-apis/shared.
  • No eval, new Function, require, or process. Pure functions only.
  • No state outside the function. Each call is independent.
  • Deterministic where possible. A curated list of 20 hand-picked items beats a procedural template that produces 2000.

What we review for

  • Voice fit (specific, dry, deadpan)
  • Security boundary (the rules above)
  • Dedup vs existing packs
  • Whether it makes us laugh once

What happens if we accept

We assign a releaseDate and the pack drops on its day. You get attribution on the API page.

Starter template

Copy apis/dad-joke/ — it's the cleanest example of a deterministic pack. Replace the slug, the joke list, and the tool name.

...
Clippy