# What is SDK? Also called software development kit, client library. An SDK, or software development kit, is a package that makes a service usable from a specific programming language, wrapping its network interface in native functions, types, and error classes. A good one handles authentication, retries, pagination, and streaming, so that developers write ordinary code instead of assembling HTTP requests by hand. Beyond the client itself, kits usually ship type definitions, generated data models, worked examples, and sometimes local testing helpers. Many are generated from a machine readable specification of the underlying interface, which is why their method names often mirror endpoint paths and why they can be regenerated quickly whenever the service adds a capability. The real value is accumulated detail: which errors are worth retrying, how long to wait between attempts, how to iterate a paginated list, how to consume a streamed response, and how to keep connections alive. Reimplementing all of that per project is where subtle production bugs come from, particularly around timeouts and partial failures that only appear under load. Two errors recur. One is assuming a kit is required, when it is a convenience over an interface anyone can call directly, so a plain HTTP request is perfectly acceptable where no kit exists or the available one is unmaintained. The other is pinning an old major version indefinitely, which quietly accumulates missing features until the upgrade becomes a project of its own. Model providers ship kits in the common languages, and they are usually where new capabilities first appear in usable form. They also tend to encode a provider's preferred patterns for tool definitions and streaming. That convenience carries a portability cost, since code written against one vendor's kit is more tightly bound to that vendor than code written against the raw interface. ## Key points - Language specific package wrapping a service's network interface. - Handles authentication, retries, pagination, and streaming. - Often generated from a machine readable API specification. - Optional convenience, since the underlying interface is still callable. - Convenience trades against portability between vendors. ## In practice Without a kit, calling a model means constructing a JSON body, setting headers, posting it, checking the status code, parsing the response, and writing your own backoff for when the service is busy. With one, it is a single function call returning a typed object, retrying transient failures automatically and exposing streamed tokens as an iterable. The same request, with roughly forty lines of infrastructure removed. ## Related terms - [API](/en/glossary/api) - [REST API](/en/glossary/rest-api) - [API Key](/en/glossary/api-key) - [Integration](/en/glossary/integration) - [Structured Output](/en/glossary/structured-output) [Back to the AI Glossary](/en/glossary)