Individual skill
stripe-inspired-api-design-rules
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.
skills/.experimental/stripe-inspired-api-design-rules/SKILL.md
Source commit cf93c57cac89d6fc3e4194686000411567f5caf3
What was checked
- Matches the observed repository HEAD
- Yes
- Scanner rules are current
- Yes
- Repository scan complete
- No
- Skill scan complete
- No
- Observed behavior
- Network or broad shell
- Last checked
- Nov 5, 2026
These are observations at the recorded commit, not a guarantee of safety. Review the source before running it.
Install this skill
Choose an agent in your Stack or copy a command below. Commands fetch the pinned commit and copy only this skill directory. Existing destinations are refused. Copying a command does not install anything.
An install command is unavailable: current rules, complete repository and skill scans, an eligible behavior level and a permitted license are required.
Repository context
- Repository stars (not skill ratings)
- 221
- Repository last updated
- Aug 15, 2026
- License
- MIT
Observed agent integration: codex
Files and excerpt
File metadata and permitted, redacted excerpts come from the recorded scan. Source links are pinned to that commit.
Browse files
AGENTS.mddoc · 13,386 bytesSKILL.mdcore · 11,653 bytesSKILL.mdcore · 11,653 bytesassets/templates/_template.mddoc · 3,740 bytesgotchas.mddoc · 550 bytesmetadata.jsonasset · 1,479 bytesreferences/_sections.mddoc · 3,282 bytesreferences/error-doc-url-on-every-error.mddoc · 3,740 bytesreferences/error-four-type-enum.mddoc · 4,236 bytesreferences/error-http-status-mapping.mddoc · 4,084 bytesreferences/error-lowercase-snake-case-codes.mddoc · 2,833 bytesreferences/error-message-mandatory-code-optional.mddoc · 3,787 bytesreferences/error-top-level-object.mddoc · 3,561 bytesreferences/format-bracket-notation-nesting.mddoc · 3,015 bytesreferences/format-cursor-pagination.mddoc · 3,101 bytesreferences/format-dot-notation-expansion.mddoc · 3,192 bytesreferences/format-expand-parameter.mddoc · 3,649 bytesreferences/format-form-encoded-requests.mddoc · 3,174 bytesreferences/format-list-envelope.mddoc · 3,039 bytesreferences/format-no-total-counts.mddoc · 2,651 bytesreferences/idem-24h-ttl.mddoc · 3,584 bytesreferences/idem-fail-on-key-reuse.mddoc · 4,705 bytesreferences/idem-key-header.mddoc · 3,936 bytesreferences/idem-recovery-points.mddoc · 5,025 bytesreferences/idem-scoped-per-account.mddoc · 3,332 bytesreferences/naming-american-english.mddoc · 3,965 bytesreferences/naming-boolean-past-tense.mddoc · 3,475 bytesreferences/naming-enums-over-booleans.mddoc · 4,450 bytesreferences/naming-metadata-pattern.mddoc · 4,647 bytesreferences/naming-simple-unambiguous.mddoc · 4,163 bytesreferences/naming-snake-case-wire-format.mddoc · 3,454 bytesreferences/naming-type-discriminator-polymorphism.mddoc · 4,708 bytesreferences/ops-https-only-basic-auth.mddoc · 4,034 bytesreferences/ops-on-behalf-of-header.mddoc · 4,671 bytesreferences/ops-prefixed-api-keys.mddoc · 4,812 bytesreferences/ops-webhook-at-least-once-handlers-idempotent.mddoc · 6,426 bytesreferences/ops-webhook-event-envelope.mddoc · 5,032 bytesreferences/ops-webhook-event-naming.mddoc · 5,169 bytesreferences/ops-webhook-signature.mddoc · 5,584 bytesreferences/resource-birthdate-hash.mddoc · 2,521 bytesreferences/resource-currency-field-not-name.mddoc · 2,534 bytesreferences/resource-decimal-suffix-strings.mddoc · 2,623 bytesreferences/resource-integer-minor-units.mddoc · 2,686 bytesreferences/resource-iso-date-only.mddoc · 2,343 bytesreferences/resource-object-discriminator.mddoc · 2,136 bytesreferences/resource-opaque-ids.mddoc · 2,332 bytesreferences/resource-prefixed-string-ids.mddoc · 2,316 bytesreferences/resource-unix-seconds-timestamps.mddoc · 2,270 bytesreferences/url-action-verbs-as-subpaths.mddoc · 2,858 bytesreferences/url-dedicated-search-endpoint.mddoc · 2,969 bytesreferences/url-no-bulk-endpoints.mddoc · 3,006 bytesreferences/url-plural-collections.mddoc · 2,280 bytesreferences/url-post-for-updates.mddoc · 2,661 bytesreferences/url-version-in-path-and-header.mddoc · 2,792 bytesreferences/ver-account-pinning.mddoc · 3,775 bytesreferences/ver-additive-changes.mddoc · 4,996 bytesreferences/ver-dated-versions.mddoc · 3,451 bytesreferences/ver-tolerate-unknown.mddoc · 5,385 bytesreferences/ver-version-change-modules.mddoc · 5,114 bytes
Read excerpt
# 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