Software Development Kit (SDK): What It Is, With Examples
A software development kit (SDK) is a packaged set of tools for building software for one specific platform or service: code libraries, documentation, command-line tools, and sample code, released together by the platform's owner. The Android SDK lets you build Android apps; the AWS SDK lets your code talk to AWS; the Stripe SDK wraps Stripe's payments API. If an API is the contract a service exposes, the SDK is the kit that makes using that contract easy in your language.
This guide explains what's inside an SDK, how it differs from an API, a library and a framework, real SDK examples (including AI SDKs and developer toolkits for LLMs), and how to pick a good one. Versions and package names are current as of October 2026.
What's inside a software developers kit
Not every SDK has every piece, but most contain some mix of:
| Component | What it does | Example |
|---|---|---|
| Libraries / client code | Code you import that wraps the platform's features or API | @aws-sdk/client-s3, stripe on npm |
| Platform headers or APIs | The interfaces you compile against | Android SDK Platform, one per Android API level |
| Build tools | Compile, package and sign your output | Android aapt2, apksigner |
| Debugging tools | Talk to devices, read logs, profile | adb, logcat, Xcode Instruments |
| Emulators / simulators | Run your code without real hardware | Android Emulator, iOS Simulator |
| Documentation | API reference, guides | developer.android.com, AWS docs |
| Samples | Working example projects | Official sample repos on GitHub |
| CLI | Manage SDK packages, auth, deploys | sdkmanager, aws, stripe CLI |
Google's own Android SDK tools page is a good picture of a "big" SDK: separate packages for command-line tools (sdkmanager, avdmanager, lint), build tools (aapt2, apksigner, zipalign), platform tools (adb, fastboot) and the emulator. A "small" SDK, like a payments client, may be one npm package plus docs.
SDK vs API vs library vs framework
These terms overlap, which is why "SDK vs API" is one of the most searched questions about SDKs.
- API (application programming interface): the contract. A list of operations, their inputs and outputs. A web API is usually HTTP endpoints, such as
POST /v1/charges. You can call an API with nothing butcurl. - SDK: a kit for one platform that usually includes client libraries for its API, plus tools and docs. You use the SDK so you don't have to hand-write HTTP requests, authentication, retries and pagination.
- Library: reusable code you call. An SDK typically contains one or more libraries, but a library on its own (say,
lodash) isn't tied to a platform and isn't an SDK. - Framework: code that calls your code. You fill in the pieces it defines (React components, Django views). Some SDKs ship frameworks (Apple's iOS SDK includes UIKit and SwiftUI).
- IDE: the editor you write code in (Android Studio, Xcode, VS Code). An IDE often bundles or downloads an SDK, but it isn't one.
A concrete comparison, listing your S3 buckets two ways:
# Raw API: you'd have to build AWS Signature V4 headers yourself. Painful.
curl "https://s3.amazonaws.com/" -H "Authorization: AWS4-HMAC-SHA256 Credential=..."
// SDK: credentials, signing, retries and parsing are handled for you.
import { S3Client, ListBucketsCommand } from "@aws-sdk/client-s3";
const s3 = new S3Client({ region: "us-east-1" });
const { Buckets } = await s3.send(new ListBucketsCommand({}));
console.log(Buckets.map((b) => b.Name));
That is the practical difference: the SDK turns a signed HTTP request into one typed function call. Our AWS SDK v3 getting-started guide goes further with S3 and DynamoDB.
SDK examples you'll actually meet
Platform SDKs (build apps for an OS or device)
- Android SDK: installed through Android Studio's SDK Manager or
sdkmanager. Contains platform APIs per Android version, build tools,adband the emulator. Step-by-step setup is in how to download the Android SDK. - iOS / Apple platform SDKs: ship inside Xcode from the Mac App Store. You don't download them separately; each Xcode release bundles the SDKs for iOS, macOS, watchOS, tvOS and visionOS.
- Windows SDK: headers, libraries and tools for building Windows apps, installed via the Visual Studio Installer or as a standalone download from Microsoft.
- Java Development Kit (JDK) and .NET SDK: language SDKs. The JDK has the compiler (
javac), runtime and tools; the .NET SDK provides thedotnetCLI, compilers and runtime.
Service SDKs (talk to a cloud or SaaS API)
- AWS SDKs: one per language; in JavaScript v3 you install one package per service (
@aws-sdk/client-s3,@aws-sdk/client-dynamodb). - Stripe SDKs:
stripefor Node, Python, Ruby and others, plus Stripe.js and mobile SDKs for collecting payment details safely in the client. - Firebase SDKs: web, iOS, Android and admin SDKs for auth, Firestore and messaging.
- Supabase client (
@supabase/supabase-js): wraps Supabase's REST, auth, storage and realtime APIs. If you'd rather hit the endpoints directly, see the Supabase REST API quickstart.
AI SDKs and AI developer toolkits
Most AI developer toolkits in 2026 fall into three groups.
1. Provider SDKs call one model vendor's API. Anthropic publishes official client SDKs for Python, TypeScript, C#, Go, Java, PHP and Ruby; OpenAI publishes official libraries including openai on npm and PyPI. A minimal call with Anthropic's TypeScript SDK (npm install @anthropic-ai/sdk, key in ANTHROPIC_API_KEY):
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic(); // reads ANTHROPIC_API_KEY
const message = await client.messages.create({
model: "claude-opus-5-5",
max_tokens: 1024,
messages: [{ role: "user", content: "Explain what an SDK is in one sentence." }],
});
for (const block of message.content) {
if (block.type === "text") console.log(block.text);
}
What the SDK gives you over raw fetch: types for every request and response, streaming helpers, automatic retries on 429 and 5xx errors (2 retries by default), and timeouts (TypeScript SDK docs).
2. Multi-provider SDKs give you one interface for many models. The Vercel AI SDK (npm install ai) is the common choice in TypeScript:
import { generateText } from "ai";
const { text } = await generateText({
model: "anthropic/claude-sonnet-5.5", // "provider/model" string, routed via Vercel AI Gateway
prompt: "List three SDKs a web developer uses every week.",
});
console.log(text);
Plain model strings go through Vercel's AI Gateway; you can also install a provider package (such as @ai-sdk/anthropic) and call the provider directly. Switching models becomes a one-line change, which matters when prices move. Compare current per-token prices on our AI model pricing page.
3. Agent and tool SDKs sit one level higher: the Claude Agent SDK and OpenAI's Agents SDK run the agent loop for you, and the Model Context Protocol (MCP) has official SDKs (such as @modelcontextprotocol/sdk) for building tool servers that any MCP-aware assistant can use. More beginner-level examples are in AI with JavaScript.
How to choose an SDK
- Prefer the official SDK. It tracks API changes first. Community SDKs go stale when the maintainer moves on.
- Check release activity. Look at the package's release history and open issues. A payments or cloud SDK with no release in a year is a red flag.
- Check runtime support. For example, Anthropic's TypeScript SDK supports Node.js 20+, Deno, Bun and edge runtimes, but disables browser use by default so you don't leak your API key.
- Check bundle size for front-end use. Modular SDKs (AWS v3, Firebase v9+) let you import only what you use.
- Read the error-handling and retry docs. Good SDKs expose typed errors, request IDs and configurable retries. If you need to tune these, you'll want to know where the knobs are.
- Know when to skip it. For one or two simple endpoints, a plain HTTP call may be less code than an extra dependency. See how to make an API call for that route.
Browse more developer tools by category in DevHunt's API tools and AI tools directories, or the broader software development tools roundup.
Limitations of SDKs
- Version lag. New API features sometimes reach the HTTP API before the SDK. Most official SDKs let you send raw or undocumented requests as an escape hatch.
- Dependency weight. Each SDK is code you ship and keep updated, including security patches.
- Lock-in. Provider SDKs shape your code around one vendor. A multi-provider layer reduces that at the cost of an abstraction.
- Hidden behavior. Automatic retries and timeouts are helpful until they double-charge a non-idempotent call. Read what is retried by default.
FAQ
What does SDK stand for?
SDK stands for software development kit (sometimes written "software developers kit" or "software developer kit"). It is the set of tools, libraries, docs and samples you need to build for a particular platform or service.
Is an SDK the same as an API?
No. An API is the interface a service exposes; an SDK is a toolkit that usually includes a client library for that API plus tools and docs. You can use an API without its SDK, but an SDK almost always uses an API underneath.
What is the SDK in Android?
The Android SDK is Google's set of packages for building Android apps: platform APIs for each Android version, build tools (aapt2, apksigner), platform tools (adb, fastboot), command-line tools (sdkmanager) and the Android Emulator. Android Studio installs and updates it for you.
Do I need to download an SDK separately?
Often not. Xcode includes Apple's SDKs, Android Studio downloads the Android SDK on first run, and service SDKs install through your package manager (npm install stripe, pip install anthropic). Standalone downloads exist mainly for CI servers and command-line-only setups.
What is an AI SDK?
An AI SDK is a client library for calling language models: either one vendor's API (Anthropic, OpenAI) or many vendors through one interface (Vercel AI SDK). It handles authentication, streaming, tool calling and retries so you write a function call instead of raw HTTP.