Developer & API

SDK

Also known as: Software Development Kit, Client library

3 min read·Updated 2026-05-06

Quick definition

An SDK (Software Development Kit) is a packaged collection of code, tools, and documentation that lets developers integrate with an API in a specific programming language without writing low-level HTTP requests directly. Most modern APIs ship official SDKs in popular languages (TypeScript, Python, Go) for faster integration.

Contents
  1. 1. What is an SDK?
  2. 2. SDK vs raw HTTP
  3. 3. Auto-generated vs hand-written SDKs
  4. API example
  5. FAQ

What is an SDK?

An SDK (Software Development Kit) is a packaged client library that wraps an HTTP API in a specific programming language, exposing API operations as native functions or method calls. Instead of constructing HTTP requests, parsing responses, and handling auth headers manually, you import the SDK, instantiate a client with your API key, and call methods like `client.posts.create({ ... })`. The SDK handles the underlying HTTP transport, JSON serialization, error handling, retry logic, and (often) type safety.

Most serious APIs ship official SDKs in popular languages — TypeScript / JavaScript (npm), Python (PyPI), Go, Ruby, Java, .NET. CodivUpload publishes both TypeScript and Python SDKs, both auto-generated from the OpenAPI specification. Stripe famously maintains hand-written SDKs in 7+ languages (a higher quality bar but more maintenance burden). Most modern APIs choose auto-generation for speed and consistency.

SDK vs raw HTTP

SDKs are not strictly necessary — every API can be called via raw HTTP (curl, fetch, requests). But SDKs offer four practical advantages. (1) Type safety — TypeScript SDKs catch wrong field names at compile time; raw HTTP would error at runtime. (2) Auto-completion — IDEs surface available methods and parameters. (3) Ergonomic auth — SDKs handle Bearer tokens, header construction, and signature schemes automatically. (4) Built-in retries — production-grade SDKs implement exponential backoff for 429 and 5xx responses. The tradeoff: another dependency in your project, plus the SDK's own bugs to potentially work around.

The right call: use the SDK when one exists in your language and is well-maintained; drop to raw HTTP when no SDK is available, when you need a feature the SDK doesn't expose, or when SDK overhead is a real performance concern.

Auto-generated vs hand-written SDKs

Two production approaches. (1) Auto-generated — the SDK is generated from the API's OpenAPI spec via tools like openapi-generator, swagger-codegen, or Stainless. New API features automatically appear in the SDK on the next release. Trade-off: less ergonomic interfaces, larger generated code. (2) Hand-written — engineers maintain the SDK manually, optimizing for ergonomics and idioms native to each language. Trade-off: higher quality interfaces, but slower to update when the API changes.

Most modern startups (CodivUpload, Postiz, Resend) use auto-generation for breadth and speed. Mature companies (Stripe, GitHub) use hand-written for the developer-experience polish.

Use the CodivUpload TypeScript SDK

typescript

// npm install codivupload
import { Codivupload } from 'codivupload';

const client = new Codivupload({
  apiKey: process.env.CODIVUPLOAD_API_KEY!,  // never hardcode
});

// Type-safe call — TypeScript catches wrong field names at compile time
const post = await client.posts.create({
  profile_name: 'main',
  platforms: ['tiktok', 'instagram', 'youtube'],
  post_type: 'reel',
  media_urls: ['https://cdn.example.com/launch.mp4'],
  description: 'Behind the scenes of build week.',
  scheduled_date: '2026-05-08T14:00:00Z',
  tiktok_privacy_level: 0,
  instagram_media_type: 'REELS',
});

console.log(post.id, post.scheduled_for);

// Auto-generated from OpenAPI — every API parameter is exposed.
// Same SDK in Python (codivupload on PyPI) with identical method names.

Frequently asked questions

Should I use the SDK or call the API directly?+

Use the SDK if one exists in your language. SDKs handle auth, retries, and type safety in a way raw HTTP doesn't. Drop to raw HTTP when no SDK exists or when you need features the SDK doesn't expose.

Are auto-generated SDKs as good as hand-written ones?+

Different tradeoffs. Auto-generated SDKs are broader (every API endpoint covered), faster to update, but less ergonomic. Hand-written SDKs are more polished but slower to evolve. Most users don't notice the difference for typical use cases.

How do I pin SDK versions?+

Use semantic versioning in your package.json or requirements.txt — pin to a specific version (1.2.3) or a minor-version range (^1.2.0). Avoid pinning to 'latest' in production; SDK breaking changes can ship unexpectedly.

Do SDKs work with MCP and AI Skills?+

SDKs are for direct programmatic integration. MCP and Skills are for AI-agent-driven integration. They serve different audiences but call the same underlying API. CodivUpload publishes all three: TypeScript + Python SDKs, MCP server, AI Skills npm package.

TypeScript + Python SDKs auto-generated from OpenAPI

npm install codivupload (TypeScript) or pip install codivupload (Python). Auto-regenerated on every API release. Type-safe, retry-aware, idiomatic.

See SDK docs

Read next

Related glossary terms

Back to all 209 glossary terms