← All field notes
APIs & data / 2 MIN READ

Before connecting an API, ask these questions.

A working response is a starting point. Useful integrations also need clear data, failure states and ownership.

Patrick Lekumuk

The first successful response from an API is satisfying. It confirms that a connection is possible. The next step is to understand what that response means for the application and what happens when the response is missing, delayed or different from the example.

An integration is a relationship between two systems. A few questions at the start can make that relationship much easier to support.

Does the data match the product question?

Start with the exact fields the application needs. A provider may offer a large amount of data while still missing the one detail that makes a feature useful. Coverage, naming, freshness and identifiers deserve their own checks.

For comparison features, similar labels are not enough. Establish that the records refer to the same event, product or entity before presenting them side by side. Record the mapping instead of leaving it as an assumption in the interface.

Where does the trust boundary sit?

Decide which operations belong in the browser and which belong on the server. Secrets should be handled through the appropriate server-side configuration, and data from outside the application should be checked before the application relies on it.

The exact authentication and validation requirements depend on the provider. Its current documentation should be the reference for the implementation rather than a copied example from an unrelated integration.

What happens when the request does not finish?

List the states the application needs to represent: loading, no results, a rejected request and an uncertain outcome. A payment-related request, for example, should not be treated as successful simply because a browser returned to a particular screen.

Retry behaviour should follow the operation's semantics and the provider's documented rules. An action that changes a record deserves different treatment from an ordinary lookup. The interface should help the user understand what is known and what is still pending.

Who can investigate it later?

A useful integration is more than a request that works once. It has a clear purpose, understandable boundaries and a plan for the moments when the external system behaves differently from the happy path.

  • Document where configuration lives and how credentials are managed.
  • Record which provider fields map to the application's own model.
  • Describe the failure states that have been considered and tested.
  • Provide enough diagnostic context to investigate a request without exposing secrets.

Written by Patrick Lekumuk

IT systems administrator and developer based in Nairobi. Working across infrastructure, applications and the points where they connect.

More about Patrick