The Octri Blog
Product updates and practical writing on API documentation, SDKs, and developer experience.

Every error your generated SDK reports crosses a line: out of your process, over the wire, into our disk. Here is what is inside it, the two scrubbers it passes on the way, where it sleeps, when it dies, and how you make us forget someone.

A one-line spec edit can break every call site your users wrote. Here is the table of what is additive, what is breaking, and which ones your spec diff will not warn you about.

An operationId is not documentation metadata. It is the name your users type. Here is why uniqueness does not save you, and what actually collides.

The honest answer depends on how many languages you ship and how often your API changes. For one language and a stable API, hand-writing wins.

Schema drift is not usually a breaking change. It is a field nobody told you about, found by a test that failed in CI two weeks later.

Exposing your whole API to an agent makes it worse, not more capable. Tool choice is a selection problem, and every extra option makes the selection harder.

The comparison is framed as a replacement and it is not one. One describes an API to people and compilers. The other hands a running agent a set of things it may do.

A tool call is a real request against a real API. Before you connect one, the question is not which endpoints to expose. It is which ones an agent must never reach.

Most specs describe the happy path in detail and the failures not at all. That asymmetry lands on every consumer as one untyped catch block.

A file at your docs root that tells a model what your product is and where to look. Cheap to publish, easy to get wrong, and not a substitute for the thing it points at.

A security scheme is not documentation. It is the auth configuration your generated client ships with, and a spec that declares none produces a client with no way to authenticate.

Every client library needs them and almost no hand-written one has all three. The defaults matter more than the knobs, because most consumers never touch the knobs.

An agent asked to integrate your API will recite one it saw in training or guess from the name. Both produce code that looks right and does not run. The fix is not a better prompt.

Cursor, offset, page number, next URL. Your choice decides whether your users write a loop or you write it for them, and whether the loop is even correct.

Generated SDKs go dark the moment they ship. Here's why they fail silently in production, and the three pieces you need to de-minify their stack traces and see the failures.

Small, consistent choices in your OpenAPI document produce dramatically better generated docs and SDKs. Here are ten that pay off.