Use when designing, reviewing, or implementing HTTP APIs — error and warning handling, resource state and lifecycle, read-endpoint structure, pagination, and authentication. Triggers on error responses and formats, response envelopes, webhook payloads, how an endpoint should fail; modelling a resource lifecycle (status fields, state machines, webhook event names, enum vs parseable string); structuring read endpoints (screen-shaped/BFF vs canonical resource, aggregation, cursor vs offset pagination); and auth design (security schemes, API keys vs bearer tokens, stepped-up tokens). Apply whenever an API surfaces a failure, state change, view of data, or auth requirement to a client.
96
90%
Does it follow best practices?
Impact
99%
1.70xAverage score across 8 eval scenarios
Passed
No known issues
We have a payments API and we're adding 3D Secure. When a charge needs the cardholder to complete a 3DS challenge, the payment pauses until they do it. I was going to add a requires_action status (copying Stripe) and have the frontend check for it to know when to pop the challenge. The status field is currently an enum: pending, succeeded, failed. How should I model the 3DS-pause state and tell the frontend to show the challenge?