Skip to main content
Redhat Developers  Logo
  • AI

    Get started with AI

    • Red Hat AI
      Accelerate the development and deployment of enterprise AI solutions.
    • AI learning hub
      Explore learning materials and tools, organized by task.
    • AI interactive demos
      Click through scenarios with Red Hat AI, including training LLMs and more.
    • AI/ML learning paths
      Expand your OpenShift AI knowledge using these learning resources.
    • AI quickstarts
      Focused AI use cases designed for fast deployment on Red Hat AI platforms.
    • No-cost AI training
      Foundational Red Hat AI training.

    Featured resources

    • OpenShift AI learning
    • Open source AI for developers
    • AI product application development
    • Open source-powered AI/ML for hybrid cloud
    • AI and Node.js cheat sheet

    Red Hat AI Factory with NVIDIA

    • Red Hat AI Factory with NVIDIA is a co-engineered, enterprise-grade AI solution for building, deploying, and managing AI at scale across hybrid cloud environments.
    • Explore the solution
  • Learn

    Self-guided

    • Documentation
      Find answers, get step-by-step guidance, and learn how to use Red Hat products.
    • Learning paths
      Explore curated walkthroughs for common development tasks.
    • See all learning

    Hands-on

    • Developer Sandbox
      Spin up Red Hat's products and technologies without setup or configuration.
    • Interactive labs
      Learn by doing in these hands-on, browser-based experiences.
    • Interactive demos
      Click through product features in these guided tours.

    Browse by topic

    • AI/ML
    • Automation
    • Java
    • Kubernetes
    • Linux
    • See all topics

    Training & certifications

    • Courses and exams
    • Certifications
    • Skills assessments
    • Red Hat Academy
    • Learning subscription
    • Explore training
  • Build

    Get started

    • Red Hat build of Podman Desktop
      A downloadable, local development hub to experiment with our products and builds.
    • Developer Sandbox
      Spin up Red Hat's products and technologies without setup or configuration.

    Download products

    • Access product downloads to start building and testing right away.
    • Red Hat Enterprise Linux
    • Red Hat AI
    • Red Hat OpenShift
    • Red Hat Ansible Automation Platform
    • See all products

    Featured

    • Red Hat build of OpenJDK
    • Red Hat JBoss Enterprise Application Platform
    • Red Hat OpenShift Dev Spaces
    • Red Hat Developer Toolset

    References

    • E-books
    • Documentation
    • Cheat sheets
    • Architecture center
  • Community

    Get involved

    • Events
    • Live AI events
    • Red Hat Summit
    • Red Hat Accelerators
    • Community discussions

    Follow along

    • Articles & blogs
    • Developer newsletter
    • Videos
    • Github

    Get help

    • Customer service
    • Customer support
    • Regional contacts
    • Find a partner

    Join the Red Hat Developer program

    • Download Red Hat products and project builds, access support documentation, learning content, and more.
    • Explore the benefits

Building great APIs, part I: The gold standard

November 2, 2012
Hugo Guerrero Steven Willmott
Related topics:
Containers
Related products:
Developer Toolset

    Back in July, John Musser wrote an excellent post over at ProgrammableWeb on what it takes to build great APIs (also check out his OSCON slides on Slideshare). John boils what’s needed down to five key elements—value, plan and business model, flexibility, good management, and great support.

    Together with perhaps just one more–stability (an unreliable API is as good as unusable)–these points arguably should represent an “API Gold Standard” for almost any API program. Getting these right goes a long way to running a great API program and we advise anybody running an API to think about them.

    How to build a great API: 5 steps

    Looking back at the 5 (or 6) keys, however, the challenge is how to implement them and succeed in every area? To try to answer this question, we wanted to detail each of the elements a little and uppack what it takes to get them right. This post deals with the first two and we’ll follow up with others. These are our interpretations, but hopefully we’re close to John’s original intent! John Musser’s list is:

    • Provide a valuable service.
    • Have a plan and a business model.
    • Make it simple, flexible and easily adopted.
    • It should be managed and measured.
    • Provide great developer support.

    [Credit also goes to Adam Duvander for the post which teased out the 5 items.]

    We’ll tackle the first two items on the list. These seem easy to get right, but they are often the most challenging. What makes an API valuable may not be obvious and many APIs don’t quite hit the mark with developers. Further, why would a business model be a critical element? Often business model decisions are delayed or postponed (although this is happening less and less)–but having the business model early can be critical to success.

    Provide a valuable service

    Justifying an API program is often a challenging sell initially in an organization, and there is usually plenty of discussion around the value proposition of an API to customers/partners and the organization itself. However, this can still be challenging to get right:

    • It can be hard to establish the true audience of the API: is it developers at hackathons? Technical staff at customer companies? Partners who are expected to become resellers?
    • There is often a focus on the API itself, rather than what parts of the business the API is driving.
    • Discussion of “API Metrics” can get in the way of what really matters–developer/customer success.

    Looking at such discussions closely, the key thing to identify for an API is generally not the value of the API per se but the value of the effect of the API (e.g., delivering SMS, retrieving valuable content, making a booking, retrieving a record in a SAAS application, getting a package delivered, etc.). That is, it is the organization’s core business which is valuable and the API is a channel into this. So, for example, an API opened by a Pizza company is:

    Successful for the company: if it drives more Pizza sales.

    and it is:

    Successful for customers/partners/developers: if it makes it easy to purchase and deliver Pizza.

    Further, for third parties, it may only be successful if:

    The purchasing and delivery of Pizza provides revenue flow (either direct or indirect).

    In other words, the API often exists to provide new types of access to the existing value an organization provides. Sometimes the advantage of an API can be spectacular and make entirely new business models and products possible (such as for Twitter for example, or Netflix in enabling clients on many platforms), sometimes it is simply a new gateway that extends old channels.

    This thinking has a number of important consequences:

    1. API specific metrics such as the number of API calls, number of apps, number of developers etc., while useful for operational management are likely to be a distraction when it comes to measuring the actual value the API is delivering. A particularly chatty API may result in many API Calls, but it rarely leads to a meaningful transaction it is likely failing in its core purpose.
    2. When designing an API, it is important to support complete useful use cases where possible. For example, an eCommerce API which permits the retrieval of catalog listings but does not support either actual purchases or embedding of affiliate links to drive web traffic is unlikely to be particularly valuable.
    3. The benefit to users of the API needs to be clear and ongoing, as well as most likely built into the API. Whether this takes the form of the user of the API gaining direct benefit (e.g., Great Data/Content or Payment for referrals) or indirect benefit (e.g. visibility in an ecosystem), this needs to be clear from the outset.

    A final common misconception is that for an API to be valuable, users must be prepared to pay for it. Also here, this is only true if the API itself is the product, in most cases where API calls are driving some other metric (Pizza Sales, Affiliate referrals etc.) and hence the value of the API to the organization is measured by other metrics and value to users of the API is the effect of the API call, rather than the call itself.

    There may be value in the API itself if it makes something which was previously time-consuming or expensive cheaper or something new possible (e.g. importing/exporting information from a SAAS CRM) and customers of an existing product might be willing to “pay” for API usage itself (e.g., if API access is only available on higher tiers of a SAAS service–hence driving upgrades). However, also in these cases, the ultimate value of the API is likely to be to get at the core functionality being delivered and drive more volume, reduce costs for driving that volume, etc.

    The good news is that almost any company with an existing product (digital or physical) can likely provide a valuable API since it links to their existing offering and enhances it. As long as the API is structured in such a way that it can genuinely cover meaningful use cases for developers it will deliver value.

    Have a plan and a business model

    Having a strong plan and business model are two elements of the same question, and in some sense the flipside of the API having value. Starting with the business model, this determines the value of the API to the organization operating it. While there are a wide variety of business models in use for APIs, the question “What Business Model should I adopt for my API” is arguably a misleading one. In fact, the question should more properly instead be:

    “What is the API for my Business Model?”

    In other words, the question starts with the existing core business the organization has and then extends to how an API can be used to accelerate this or augment it. Sometimes, APIs can lead to entirely new business opportunities – but even here, they generally leverage existing assets or expertise to do so in new ways.

    The reasons that business models are important for a great API are:

    1. Determining the business model brings into focus the value of the API to the organization and hence drives the decision to make long term commitments to the API program, without which there is rarely the resource in place to complete many of the other tasks needed for a great API program.
    2. Determining the business model also helps define what functionality is needed to enable third parties to actually execute the full cycle of what is needed to actually drive the business model.
    3. Lastly, the business model forces the conversation about who retains which parts of the value generated by the API. In other words, what do users of the APIs gain / retain and how does that balance with what the API provider gains?

    It is also valuable and important to communicate the business model to customers, partners, etc., since it will help them understand the depth of the commitment to the API as well as the areas which may be “out of bounds” for third parties since they interfere with the key business models in place.

    This bridges neatly to the second part of John’s point–the need for plans. While this could have several meanings, the one which stands out is:

    the need to have a clear development roadmap, commitment to features/versions and rules of engagement.

    A clearly articulated roadmap for the API is invaluable in increasing developer confidence in the API. The plan should be not only technical but also (where possible) contain business elements. Large platforms such as Twitter have now become much more focused on posting such future plans in order to avoid developer anger. A roadmap also engages users of the API in conversation on what might be important to them. Choosing an API to use is a long term commitment – a good roadmap builds confidence that it will be a great relationship.

    Up next

    In the next post, we’ll cover what it means to make your API flexible and well managed.

    Read more
    Building great APIs, part I: The gold standard
    Building great APIs, part II: Simplicity, flexibility, and TTFHW
    Building great APIs, part III: The need for API management and infrastructure
    Building great APIs, part IV: Great developer support
    Last updated: February 7, 2024

    Recent Posts

    • Federated identity across the hybrid cloud using zero trust workload identity manager

    • Confidential virtual machine storage attack scenarios

    • Introducing virtualization platform autopilot

    • Integrate zero trust workload identity manager with Red Hat OpenShift GitOps

    • Best Practice Configuration and Tuning for Linux and Windows VMs

    Red Hat Developers logo LinkedIn YouTube Twitter Facebook

    Platforms

    • Red Hat AI
    • Red Hat Enterprise Linux
    • Red Hat OpenShift
    • Red Hat Ansible Automation Platform
    • See all products

    Build

    • Developer Sandbox
    • Developer tools
    • Interactive tutorials
    • API catalog

    Quicklinks

    • Learning resources
    • E-books
    • Cheat sheets
    • Blog
    • Events
    • Newsletter

    Communicate

    • About us
    • Contact sales
    • Find a partner
    • Report a website issue
    • Site status dashboard
    • Report a security problem

    RED HAT DEVELOPER

    Build here. Go anywhere.

    We serve the builders. The problem solvers who create careers with code.

    Join us if you’re a developer, software engineer, web designer, front-end designer, UX designer, computer scientist, architect, tester, product manager, project manager or team lead.

    Sign me up

    Red Hat legal and privacy links

    • About Red Hat
    • Jobs
    • Events
    • Locations
    • Contact Red Hat
    • Red Hat Blog
    • Inclusion at Red Hat
    • Cool Stuff Store
    • Red Hat Summit
    © 2026 Red Hat

    Red Hat legal and privacy links

    • Privacy statement
    • Terms of use
    • All policies and guidelines
    • Digital accessibility

    Chat Support

    Please log in with your Red Hat account to access chat support.