Clients ask me why we don't just build our own model. It's a fair question, and most of the time the honest answer is that building our own would be the slowest and priciest route to a result slightly worse than an API hands us on day one.

Engineers like building, and 'we made our own' reads well in a pitch. So I put every AI capability through the same three gates before we commit: whether it's our actual edge, how fast it's changing, and what it costs at our real volume.

Call the API when the capability is a commodity

Text generation, transcription, translation, OCR, embeddings, general chat. These are commodities now. A hosted API from OpenAI, Anthropic, or Google gives you a better result on day one than a small team builds in a quarter, and someone else pays to keep it current.

We reach for an API when the capability isn't our differentiator and the vendor improves faster than we could. The trade you accept is a per-call price, a dependency on their uptime, and data leaving your walls. For most features that trade is worth it. Both risks are manageable: put the provider behind one interface so you can switch, and read the data-handling terms before anything sensitive goes over the wire.