An application programming interface (API) is a formally specified contract that defines how software components request services and exchange data with one another. It abstracts an implementation behind a stable set of operations, data types, and protocols, decoupling callers from internal details. APIs span in-process library interfaces, inter-process and network endpoints, and platform service boundaries.
- An application programming interface is a published contract through which software requests services without knowing the callee’s internals. It is a kind of Interface central to Software Architecture, typically delivered over HTTP for networked services.
Overview
- APIs establish a boundary: a producer commits to a set of operations and data shapes, and consumers code against that commitment rather than the implementation.
- This decoupling lets each side evolve independently, supports reuse across teams and organisations, and is the connective tissue of modern distributed systems.
- Styles range from in-process function and class interfaces to network APIs such as REST, RPC, and event-driven contracts.
Key aspects
- A contract specifies endpoints or methods, parameters, return types, error semantics, and authentication.
- Versioning and backward compatibility govern how an API may change without breaking consumers.
- REST API design, schema definitions, and machine-readable specifications make APIs discoverable and testable.
- Rate limiting, authentication, and observability are operational concerns layered around the contract.
Applications
- Service-to-service communication within Microservices architectures.
- Third-party platform Integration and developer ecosystems.
- Abstraction of cloud, payment, and AI capabilities behind stable endpoints.
- Internal libraries exposing reusable functionality across Software Engineering teams.