The API Economy
Zusammenfassung
The application programming interface is older than the web, but its transformation into an economic primitive happened in the early 2000s. When Salesforce launched its web API in 2000 and Amazon Web Services followed in 2002, they were not merely offering new products — they were proposing that software infrastructure itself could be consumed as a service, one function call at a time. Roy Fielding’s REST architecture gave developers a simple vocabulary. Stripe, Twilio, and SendGrid turned that vocabulary into a business model: infrastructure as a programmable interface, billed by the call. The API did not just change how software was built — it changed what a company could be.
The Pre-API World: Protocols, Sockets, and Pain
Software components have always needed to communicate. In the 1970s and 1980s, this happened through shared memory, operating system calls, and custom binary protocols negotiated between specific systems. If you wanted two pieces of enterprise software to exchange data, you hired an integration team, waited months, and paid a substantial sum for the resulting point-to-point connection. The connection was brittle, undocumented, and resistant to change.
The rise of networked computing in the 1990s created new pressure. Businesses wanted their accounting software to talk to their CRM, their CRM to talk to their shipping provider, their shipping provider to talk to the customs database. Each integration was its own project. The industry invented middleware platforms — CORBA (Common Object Request Broker Architecture), DCOM (Distributed Component Object Model), and eventually Enterprise Service Buses — to manage the chaos. These platforms were powerful, expensive, and required specialist knowledge to configure. Integration remained a project for large enterprises with dedicated IT departments.
For most of the 1990s, the web was a display layer for humans, not a communication layer for machines. HTML was rendered in browsers. Data crossed organizational boundaries by export, email, and manual re-entry.
SOAP and the XML Dream
The first attempt to standardize machine-to-machine communication over the web arrived in the late 1990s in the form of SOAP (Simple Object Access Protocol) and its companion WSDL (Web Services Description Language). The vision was appealing: a universal, standardized way for software systems to call each other’s functions over HTTP, with machine-readable contracts describing exactly what each service offered.
SOAP messages were written in XML. WSDL contracts were written in XML. Error responses were XML. Everything was XML, deeply nested, namespace-qualified XML, sometimes XML containing base64-encoded XML.
The WS- stack* that grew on top of SOAP — WS-Security, WS-ReliableMessaging, WS-AtomicTransaction, WS-Federation, and dozens more — represented the ambition of the enterprise software industry to solve every conceivable distributed computing problem through specification. The specifications were thorough, technically sophisticated, and nearly impossible to implement correctly in isolation. Two vendors claiming WS-* compliance frequently could not interoperate. Debugging a failed SOAP handshake required specialized tooling and a tolerance for multi-kilobyte error envelopes describing problems that could have been expressed in ten words.
SOAP was not wrong. It was comprehensive in ways that mattered for certain high-stakes enterprise contexts — banking, insurance, healthcare — where formal contracts, built-in security negotiation, and transactional guarantees justified the complexity. But it was profoundly hostile to casual use, and it arrived at precisely the moment when a new generation of developers, shaped by the open web, was expecting simplicity.
Salesforce and the First Commercial Web API
In February 2000, Salesforce launched its CRM product. Six months later, it did something unusual: it launched an API.
The Salesforce API was SOAP-based, not REST — this was 2000, and REST was still a dissertation draft — but its purpose was revolutionary. Salesforce was telling its customers: our product is not just a website you log into. It is a platform you can program against. Your internal systems can push data to Salesforce. Your reporting tools can pull data out. Salesforce can be a component in a larger system rather than an isolated application.
Marc Benioff understood this as a competitive strategy as much as a technical decision. By making Salesforce programmable, he made it sticky. Every integration a customer built deepened the switching cost. The API was not a feature; it was an architectural bet about how enterprise software ecosystems would evolve.
The API as Moat
Salesforce’s early insight — that an API creates lock-in deeper than a user interface — became a foundational principle of platform strategy. When a customer’s internal systems are woven into your API, migrating away requires not just retraining users but re-engineering integrations. The API economy created a new species of switching cost, invisible to end users but very visible to IT departments calculating migration projects.
Roy Fielding and the REST Dissertation
In 2000, Roy Fielding published his doctoral dissertation at the University of California, Irvine. Titled Architectural Styles and the Design of Network-based Software Architectures, it contained a chapter describing an architectural style he called REST — Representational State Transfer.
REST was not a protocol. It was a set of constraints describing how systems should communicate over HTTP: resources identified by URLs, interactions expressed as HTTP verbs (GET, POST, PUT, DELETE), stateless requests, responses that could be cached. Fielding had been one of the principal authors of the HTTP specification, and REST was his retrospective analysis of what made the web architecturally successful.
The dissertation was initially read by a small audience of academics and protocol designers. Its influence grew slowly, then suddenly. Developers struggling with SOAP’s complexity discovered that they could accomplish most of what they needed with far simpler conventions: send a GET request to /users/42, receive a JSON object representing user 42. No schema negotiation, no envelope, no WSDL. An API interaction that fit in a curl command.
By 2005, the programming community had largely adopted REST as its preferred style for web APIs. The shift was generational: a new wave of developers building web applications and early mobile backends found that REST matched the way they already thought about HTTP, while SOAP felt like a foreign imposition from enterprise consulting firms.
Amazon Web Services and the API-First Company
In 2002, Amazon launched Amazon Web Services — initially a modest set of tools for accessing product data and seller accounts. Four years later, it launched S3 (Simple Storage Service) and EC2 (Elastic Compute Cloud), and the modern cloud was born.
What distinguished AWS from competitors was not just the technology but the internal mandate that produced it. According to a leaked 2002 internal memo attributed to Jeff Bezos, Amazon’s teams were required to expose all functionality through service interfaces, with no exceptions. Every team had to design its services as if the customers were external developers. Interfaces had to be designed to be externalized. Teams that did not comply would be fired.
The mandate was not purely about external APIs. Bezos was reshaping Amazon’s internal architecture into a system of loosely coupled services — what would later be called microservices — where each team owned a service others could call. When Amazon eventually opened these services to paying customers, the product was essentially Amazon’s internal infrastructure made externally accessible. AWS was not built for the cloud market; it was an internal platform that became a market.
This pattern — building internal infrastructure as an API-first platform and later commercializing it — became a template. The API was the product, and the product was programmable by definition.
Stripe, Twilio, and the Developer-First Business Model
By 2008, processing online payments was possible but miserable. Developers integrating payment systems faced weeks of negotiations with payment processors, complex server-side libraries, sandbox environments that didn’t match production, and documentation written for compliance departments rather than engineers.
Patrick and John Collison launched Stripe in 2010 with a single premise: payments should work with seven lines of code. The Stripe API was designed first for the developer implementing it, not the product manager specifying it or the compliance team auditing it. Documentation showed working code examples in multiple languages. Error messages explained what went wrong and how to fix it. The sandbox environment behaved identically to production. Test credit card numbers were memorable: 4242 4242 4242 4242.
Stripe’s API design became a reference standard in the industry — discussed in engineering blogs, cited in developer experience research, and imitated by competitors. The company’s commercial success demonstrated that API quality was a product differentiator, not just a technical implementation detail.
Twilio, founded in 2008 by Jeff Lawson, applied the same philosophy to telephony. Before Twilio, adding SMS or voice calling to an application meant negotiating contracts with telecom carriers, integrating with hardware gateways, and managing complex telephony infrastructure. Twilio reduced this to an HTTP API and a phone number rentable by the month. A developer could send an SMS in under fifteen minutes. The company’s developer conference slogan — “Ask Your Developer” — asserted that infrastructure decisions had moved from procurement officers to the engineers who used the APIs.
SendGrid (email delivery), Plaid (financial data), Auth0 (authentication), Mapbox (maps), Algolia (search) — a generation of companies emerged with the same model: take a complex, painful infrastructure problem; solve it completely; expose the solution through a well-designed API; charge by usage. The company’s product was not software in the traditional sense — it was a capability, accessed programmatically.
The Stripe API as Gold Standard
Stripe’s API design principles — consistent naming conventions, predictable error formats, idempotency keys for safe retries, versioned endpoints, extensive language libraries, and documentation that reads like a tutorial — defined what “good developer experience” meant for a generation of API products. The principle behind them: the developer is the customer, the API is the user interface, and confusing the developer costs you revenue. Stripe’s success showed that DX (developer experience) was measurable in conversion rates, integration time, and support ticket volume.
REST vs. GraphQL: The Next Query
By 2012, REST had won — and its limitations were becoming visible at scale.
Facebook was building mobile clients that needed flexible data queries. A REST API returns a fixed data shape for each resource: GET /users/42 returns everything Facebook knew about user 42, whether the mobile client needed one field or fifty. Building efficient mobile experiences required either over-fetching (requesting more data than needed) or a proliferation of specialized endpoints, each returning exactly what one particular view needed.
In 2012, Facebook engineers began developing GraphQL as an internal solution. Rather than navigating a URL hierarchy of resources, a GraphQL client sends a query describing exactly what data it needs. The server returns exactly that data — no more, no less. Complex nested data (a user, their recent posts, the comments on those posts, the authors of those comments) could be fetched in a single request.
Facebook open-sourced GraphQL in 2015. Adoption followed the same developer-community trajectory as REST fifteen years earlier: initial skepticism from engineers who had invested in REST conventions, then rapid uptake for use cases where REST’s rigidity created real pain. GraphQL became standard at companies with complex, interconnected data graphs and multiple client platforms — GitHub’s API, Shopify’s storefront API, Airbnb’s internal services.
The REST vs. GraphQL debate that occupied developer conference talks in the late 2010s was, in retrospect, a sign of the API economy’s maturity: it had grown large and varied enough to support multiple design philosophies, each optimized for different trade-offs.
The API as Economic Infrastructure
By the mid-2010s, the API had become invisible infrastructure for the digital economy.
A consumer booking a flight on a travel website was touching dozens of APIs: the airline’s flight search API, a payment gateway API, an email delivery API, a fraud detection API, a mapping API for the airport location. None of this was visible to the traveler. The website’s developers had assembled these capabilities from third-party APIs the way an earlier generation of developers had imported libraries — except the libraries were now network services, billed by the call, maintained by separate organizations, evolving on their own schedules.
The economic model this created was new. Companies like Twilio, Stripe, and SendGrid had no perpetual licenses, no annual enterprise contracts in the traditional sense, no installed software. Revenue was consumption-based — every SMS sent, every payment processed, every email delivered. The API call was the unit of commerce.
This model had a name: API-first or API economy. It had investment patterns: venture capital firms tracked “developer-facing” or “infrastructure” companies as a distinct category. It had analysts and conferences and a vocabulary — developer evangelism, API keys, rate limits, versioning strategies, webhook versus polling.
The programmable internet that Salesforce gestured toward in 2000 had become the default assumption by 2015. Companies that did not expose APIs were increasingly difficult to integrate with — a competitive disadvantage in a world where software ecosystems compound.
Dead End: SOAP and WS-* — The Specification That Ate Itself
SOAP and the WS-* stack did not die. They retreated.
In healthcare, financial services, and government — domains with regulatory requirements for formal contracts, guaranteed delivery, and built-in security negotiation — SOAP remained in production. These systems were built at enormous cost, were deeply integrated into operations, and worked. There was no business case to rewrite them.
But SOAP failed completely in the domain it aspired to dominate: the general developer ecosystem. The failure was architectural and social simultaneously.
Architecturally, the WS-* committees responded to every real integration problem by adding a new specification. WS-Security addressed authentication. WS-ReliableMessaging addressed message delivery guarantees. WS-Coordination and WS-AtomicTransaction addressed distributed transactions. Each specification was technically thorough and independently reasonable. Their combination produced a stack of interdependent standards that no single developer could hold in their head, that no two vendors implemented identically, and that required purpose-built tooling even to inspect.
Socially, SOAP was designed by committee consensus across competing enterprise software vendors — IBM, Microsoft, BEA, Oracle — each with commercial interests in the complexity of the resulting standard. REST, by contrast, was the architectural observation of a single engineer who had helped build the web. REST’s simplicity was not accidental: it reflected the principle that good architecture should constrain, not enumerate, and that constraints should emerge from understanding, not committee negotiation.
The developer community’s verdict was delivered in adoption rates. By 2010, new APIs were almost universally REST-based. SOAP tooling was removed from popular frameworks. New engineers learned REST as the default and encountered SOAP only when inheriting legacy integrations.
The WS-* stack is a case study in how comprehensiveness can defeat usability — and in how the audience a standard is designed for shapes the standard itself.
📚 Sources
- Roy Fielding Dissertation: Architectural Styles and the Design of Network-based Software Architectures (2000)
- Salesforce — Wikipedia
- Amazon Web Services History — AWS Documentation
- Stripe API Documentation and Design Philosophy
- Twilio — Wikipedia
- GraphQL — Introduction and Facebook Origin (2015)
- Steve Yegge’s Google Platform Rant (2011) — the leaked Amazon API mandate memo commentary
- W3C SOAP Specification
- API — Wikipedia