SuperAPI AI Directory

stripe-inspired-api-design-rules

Coding & development

View repository

Updated 10-16 03:46

About this skill

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