Spectre<_ INDEX
// PUBLISHED02.05.26
// TIME6 MINS
// TAGS
#API#FOUNDERS#BACKEND#SYSTEM DESIGN
// AUTHOR
Spectre Command

E

very time your app loads a user's order history, processes a payment, sends a verification SMS, or checks whether a promo code is still valid — an API is doing that work.

You've heard the word hundreds of times. API. Application Programming Interface. The definition your engineers give you is technically correct and practically useless: "it's how systems talk to each other." That's true the way "a car is a vehicle" is true. Accurate. Not enough to make decisions with.

Here's what you actually need to know: what an API is, why the quality of yours matters more than most founders realise, and what goes wrong when nobody's paying attention to it.

What an API actually is

Your product is not one thing. It's a collection of parts that need to exchange information.

The frontend — the screen your users see — needs data. Where does that data come from? The backend. How does the frontend ask for it? Through an API.

The API is the defined contract between those parts. It says: if you send me a request in this format, I'll send back a response in that format. Nothing more, nothing less.

A simple example. Your app shows an order history screen. The frontend sends a request to your API: "give me the last 10 orders for user ID 4821." The API receives that request, queries the database, and sends back a list of orders formatted as JSON — a structured text format that the frontend knows how to read and display.

That exchange happens dozens of times per page load, across every feature in your product. Login, search, checkout, notifications, payment status — all API calls.

APIs also connect your product to external services. When your app processes a card payment, it's calling Stripe's API. When it sends an SMS, it's calling Twilio's. When it fetches a map, it's calling Google Maps. Your product is a network of these contracts — some internal, some external — and the quality of those contracts determines a lot about how reliable your product is.

Why API quality matters more than you think

A poorly designed API is one of the most expensive forms of technical debt there is. Not because it breaks immediately, but because every feature your team builds has to work around it.

Here's what "poorly designed" looks like in practice: an API that returns more data than the frontend needs (slow), one that requires five separate calls to load a single screen (slower), one with no versioning so you can't update it without breaking existing clients (dangerous), or one with no rate limiting so a single misbehaving client can take the whole system down (very bad).

None of these kill you at 1,000 users. At 100,000, they become your most urgent problems. Tokopedia, before their major infrastructure overhaul, dealt with exactly this — APIs designed for their early scale that buckled under Harbolnas traffic because they weren't built with load limits or caching in mind.

The design decisions that make APIs reliable at high throughput — rate limiting, idempotency, versioning — aren't difficult to implement early. They're very difficult to retrofit later without breaking things.

[→ Read: API Design for High-Throughput Systems: Rate Limiting, Versioning, Idempotency]

What REST and other API styles mean

You'll hear your engineers say things like "we use a REST API" or "we're moving to GraphQL." These are architectural styles — conventions for how the contract between requester and responder is structured.

REST is the most common. It uses standard web conventions: specific URLs for specific resources, standard verbs (GET to fetch, POST to create, PUT to update, DELETE to remove). It's predictable and widely understood, which is why most external APIs — Stripe, Twilio, SendGrid — are REST.

GraphQL is an alternative developed by Meta. Instead of fixed endpoints, the frontend specifies exactly what data it needs in each request. Good for products with complex data requirements and multiple clients (web, mobile) that need different shapes of data. Harder to secure and cache properly.

gRPC is a high-performance style built for internal service-to-service communication, popular in Go-based systems. Faster than REST for high-frequency internal calls; not built for direct browser consumption.

You don't need to know which is right for your product. You do need to know that this decision has long-term consequences — switching API styles at scale is a multi-month project — and that your team should be able to explain the reasoning behind their choice in plain terms. If they can't, push back.

The part most founders get wrong

Treating the API as purely an engineering concern.

It isn't. Your API is a product decision.

Every mobile app you release, every third-party integration you enable, every partner who connects to your platform — they're all building on your API contract. When you change that contract without versioning, you break their integrations. When you deprecate an endpoint without notice, you break your own mobile app for users who haven't updated yet.

The founders who understand this start thinking about their API the way they think about their user interface: with consistency, versioning, and some consideration for what it's like to be on the receiving end. Those who don't end up with a brittle system where every backend change requires a simultaneous forced update to every client — a coordination nightmare that slows the whole team down.

There's also a business model angle that surprises people. If you ever want to open your platform to third-party developers or build partner integrations, your API is the product you're selling them access to. OVO, GoPay, and every Indonesian payment gateway sells API access as its core commercial offering. The quality of that API directly determines the quality of the developer experience, which determines adoption.

Real-world example: the hidden cost of API sprawl

A marketplace startup, two years in, eight engineers. No one had owned the API design from the start — each engineer added endpoints as features were built, in whatever style made sense to them at the time.

The result: 140 endpoints with no consistent naming convention. Some returned dates as Unix timestamps, some as ISO strings, some as formatted Indonesian date text. The mobile team had written custom parsing logic for each one. When the backend team changed a date format on one endpoint for a new feature, it silently broke the mobile app's display for orders placed in the last 30 days.

The bug took four days to trace because nobody knew which endpoint the mobile app was calling for that specific screen — the documentation was three months out of date.

That's not a testing failure. It's a design failure. A well-designed API has consistent conventions enforced across every endpoint, documented automatically from the code, and versioned so that changes don't break existing clients unexpectedly.

FAQ

Q: What's the difference between an API and a website?

A: A website is designed for humans to read and navigate — it returns HTML that a browser renders visually. An API is designed for software to read — it returns structured data (usually JSON) that another program processes. Your app's frontend is essentially a very sophisticated API client.

Q: Do I need to understand what my API returns?

A: At a high level, yes. If your team tells you "this call is slow because we're returning the full order object when the screen only needs the order ID and status," you should understand what that means. You don't need to read the JSON — you need to understand the principle that fetching more than you need wastes time and money.

Q: What is API documentation and why does it matter?

A: Documentation is the written spec of your API contract — what each endpoint accepts, what it returns, what errors it produces. Without it, every engineer has to read the source code to understand how to use it. Good documentation saves hours per week across a team of five engineers. Bad or missing documentation is a tax you pay forever.

Q: What does "our API is down" actually mean?

A: Your backend stopped responding to requests — or is responding with errors. Since every screen in your app depends on API calls, this usually means the whole product appears broken to users, even if the frontend code itself is fine. When your app shows a spinning loader forever, the API is almost always the thing to check first.

Q: Should I care about public vs. private APIs?

A: Yes. A private API is internal — only your own frontend and backend services use it. A public API is exposed to external developers or partners. Public APIs need stricter versioning, better documentation, rate limiting, and authentication. Private APIs still need those things, but the tolerance for a breaking change is higher when you control every client.


Your API is the connective tissue of your product. It's invisible to users and indispensable to everything they do. Getting it right early is significantly cheaper than fixing it later — ask any engineer who's had to migrate a live production API without breaking mobile clients who haven't updated.

The next concept worth understanding is what software architecture actually means — the structural decisions that determine how everything, including your API, holds together.

[→ Read: What Is Software Architecture? A Plain-Language Guide for Founders]
// END_OF_LOGSPECTRE_SYSTEMS_V1

Need this architecture?

We deploy elite engineering squads to materialize this vision.

Initialize Sequence