Skip to main content

SDK

Software Development Kit

Pronunciation
es-dee-KAY
Updated 2 min read

Share this page

Send the link, quote the definition with a link back, or show it as a card on your own site.

https://softwaredictionary.org/terms/sdk

In short

An SDK (software development kit) is a package of tools, libraries, documentation and examples for building software for a particular platform or service.

What is an SDK?

An SDK gathers everything a developer needs to work with one platform. The Android SDK includes the libraries for the Android APIs, build tools, an emulator and debugging tools. A cloud or service SDK, such as the AWS SDK or Stripe's SDK, mostly provides client libraries that wrap the service's API in ordinary functions for each language.

Service SDKs save a lot of repeated work. Instead of building HTTP requests, signing them, handling pagination and parsing JSON yourself, you call stripe.customers.create(...) and get a typed object back. Good SDKs also handle retries, timeouts and authentication, and are generated or kept in sync with the API so new features arrive quickly.

Platform SDKs are often tied to versions of the platform. Android and iOS apps choose a target SDK version, which decides which system features they can use and how the system treats them, and app stores require apps to keep up with recent versions over time.

A common misconception is that an SDK and an API are the same thing. The API is the interface the service offers, such as its HTTP endpoints; the SDK is a toolkit that makes using that API convenient in a particular language. You can always call the API directly without the SDK.

Key takeaways

  • An SDK bundles libraries, tools, docs and examples for one platform or service.
  • Platform SDKs, like Android's, include build tools and emulators.
  • Service SDKs wrap an API in native functions, with auth and retries built in.
  • Mobile apps target a specific SDK version of the platform.
  • The API is the interface; the SDK is a toolkit for using it.

Example

The same request with and without an SDK (Node.js)javascript
// Without the SDK: build the HTTP request yourself
await fetch("https://api.stripe.com/v1/customers", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.STRIPE_SECRET_KEY}`,
    "Content-Type": "application/x-www-form-urlencoded",
  },
  body: new URLSearchParams({ email: "ada@example.com" }),
});

// With Stripe's SDK: auth, encoding, retries and types are handled
import Stripe from "stripe";
const stripe = new Stripe(process.env.STRIPE_SECRET_KEY);
const customer = await stripe.customers.create({ email: "ada@example.com" });

Readers ask

What is the difference between an SDK and an API?

An API is the set of operations a platform or service exposes. An SDK is a kit of libraries and tools that makes calling that API easier in a specific language or platform.

What is the difference between an SDK and a library?

A library is a single piece of reusable code. An SDK is a bigger bundle that usually includes one or more libraries plus tools, documentation and samples for a platform.

Do I have to use a service's SDK?

No. Any language that can make HTTP requests can use a web API directly. SDKs simply save time and handle details such as authentication, retries and pagination for you.

Often compared

See also

Spotted a mistake or something missing on this page?Suggest an edit

Read a random page
Open today's review
Switch to the dark theme
Read this page in Türkçe

More

Settings