stripe-inspired-api-design-rules

star 162

JSON HTTP API design rules distilled from Stripe — resource modeling, identifier schemes, URL structure, request/response wire format, pagination, errors, idempotency, versioning, naming, webhooks, and authentication. Triggers on tasks involving OpenAPI specs, API design reviews, schema decisions, endpoint shaping, error envelope design, webhook delivery, or any "is this API well-designed" question. Apply when designing, reviewing, or refactoring a JSON HTTP API — even when the user doesn't mention Stripe by name, since the rules are general API-design principles distilled from the industry's most-copied reference.

pproenca By pproenca schedule Updated 5/27/2026

name: stripe-inspired-api-design-rules description: JSON HTTP API design rules distilled from Stripe — resource modeling, identifier schemes, URL structure, request/response wire format, pagination, errors, idempotency, versioning, naming, webhooks, and authentication. Triggers on tasks involving OpenAPI specs, API design reviews, schema decisions, endpoint shaping, error envelope design, webhook delivery, or any "is this API well-designed" question. Apply when designing, reviewing, or refactoring a JSON HTTP API — even when the user doesn't mention Stripe by name, since the rules are general API-design principles distilled from the industry's most-copied reference.

Stripe-Inspired API Design Best Practices

A reference distillation of the design conventions behind Stripe's API — the most widely admired and copied JSON HTTP API in the industry. Contains 52 actionable rules across 8 categories, prioritised by how irreversibly a wrong decision cascades through every endpoint, every SDK, and every client integration. Each rule explains the WHY, shows incorrect-vs-correct code, and links to the canonical source.

When to Apply

Reach for this skill when:

  • Designing a new JSON HTTP API or a new endpoint on an existing one
  • Reviewing an API design proposal, OpenAPI spec, or PR that adds/changes endpoints
  • Debugging an integration where the "wrong" shape of the API is causing client bugs
  • Auditing an API for naming consistency, error shape uniformity, or compatibility risks
  • Producing an API design report (the kind your inspector tool emits — Critical / Warning / Suggestion / Positive)
  • Picking between two designs and looking for an authoritative source to back the choice
  • Onboarding to API design — these are the canonical patterns to internalise first

The rules are general — they apply to any JSON HTTP API, not just APIs imitating Stripe. Triggers include "API design", "OpenAPI", "endpoint", "schema", "webhook", "idempotency", "pagination", "API versioning", and reviews of YAML/JSON spec files.

Rule Categories by Priority

Priority Category Impact Prefix
1 Resource Modeling & Identifiers CRITICAL resource-
2 URL Structure & HTTP Semantics CRITICAL url-
3 Request & Response Format HIGH format-
4 Errors & Status Codes HIGH error-
5 Idempotency & Safe Retries HIGH idem-
6 Versioning & Backwards Compatibility HIGH ver-
7 Naming, Polymorphism & Metadata MEDIUM-HIGH naming-
8 Authentication, Webhooks & Search MEDIUM-HIGH ops-

Earlier categories cascade harder: a wrong choice in resource modeling (numeric IDs, no object discriminator) propagates to every endpoint forever; a wrong choice in webhook event naming is a single category to fix.

Quick Reference

1. Resource Modeling & Identifiers (CRITICAL)

2. URL Structure & HTTP Semantics (CRITICAL)

3. Request & Response Format (HIGH)

4. Errors & Status Codes (HIGH)

5. Idempotency & Safe Retries (HIGH)

6. Versioning & Backwards Compatibility (HIGH)

7. Naming, Polymorphism & Metadata (MEDIUM-HIGH)

8. Authentication, Webhooks & Search (MEDIUM-HIGH)

How to Use

For a focused question ("should this field be a boolean or an enum?"), jump directly to the relevant rule (naming-enums-over-booleans) — each rule is self-contained with the WHY, code examples, and the canonical source.

For a full API review or audit, work through the categories top-to-bottom. The order matches Stripe's own design priority: get resource modeling and URL structure right first; format, errors, idempotency, and versioning are the next layer; naming and operational surface come last because they're the easiest to evolve.

For producing a structured findings report (the kind an inspector tool emits), cite rules by their slug — resource-unix-seconds-timestamps, format-no-total-counts — so each finding traces back to a specific, defensible source.

Read section definitions for the cascade-impact rationale behind the category ordering, or the rule template when adding a new rule.

Reference Files

File Description
references/_sections.md Category definitions and ordering by design-propagation impact
assets/templates/_template.md Template for authoring new rules
metadata.json Version and reference URLs
gotchas.md Failure points discovered when applying the rules
Install via CLI
npx skills add https://github.com/pproenca/dot-skills --skill stripe-inspired-api-design-rules
Repository Details
star Stars 162
call_split Forks 12
navigation Branch main
article Path SKILL.md
More from Creator