Best Practices for Building Great API Developer Portals
Tags: ux, api
Published: 2018-02-16 03:02:12

---
title: "Best Practices for Building Great API Developer Portals"
published: true
description: This guide documents best practices to having a great API Developer Portal.
tags: 
- ux
- api
---

![](https://i.imgur.com/mr5xBjP.png)

An API without proper documentation is no better than no API at all.
Having a great developer portal is critical part of your API's developer experience and is instrumental in driving adoption.

The user experience of a developer portal, the completeness of the API documentation, the ease with which you can search for the right solution for their needs, and the speed at which developers can start calling your endpoints are all fundamental to the success of an API product.

This guide documents best practices to having a great API Developer Portal.

> Check out [apidocs.gallery](https://apidocs.gallery/) for a showcase of the best API developer portals!

## Elements of a Great Developer Portal

- [Guides and Tutorials](#guides-and-tutorials)
- [Client SDKs](#client-sdks)
- [API Reference](#api-reference)
- [API Explorer](#api-explorer)
- [Use cases](#use-cases)
- [Showcase](#showcase)
- [Changelog](#changelog)
- [Support](#support)
- [Status](#status)

## Guides and Tutorials

Your developer portal should dedicate a Guides section that describes in plain-English what your API does. Share about benefits, not features.
Explaining in clear terms the capabilities of your API enables decision makers to evaluate whether or not your API serves their exact needs and use cases.

![](https://apidocs.gallery/images/asana/1.png)

Tutorials go into more details: step-by-step instructions and explanations of what the various API resources are and how to manipulate them to achieve a certain use case. Tutorials should strive to be clear, concise and evenly spaced across steps.

![](https://apidocs.gallery/images/trello/1.png)

![](https://apidocs.gallery/images/twilio/1.png)

Guides can also go deep into advanced topics.

![](https://apidocs.gallery/images/digitalocean/1.png)

Use plenty of code examples to encourage copy/pasting. 

> You can make this process even easier by having a Copy button that saves the contents of a code block to the user's clipboard.

Examples: 

- [Asana developer documentation](https://asana.com/developers/documentation/examples-tutorials/overview)
- [Trello API get started guides](https://trello.readme.io/docs/get-started)
- [Digital Ocean developer guides](https://developers.digitalocean.com/guides/)

## Client SDKs

While writing and maintaining robust, idiomatic client libraries for many programming languages is non-trivial, they can be very helpful for the majority of developers who want to use your API. Having a client SDK greatly reduces the effort required for someone to integrate with an API, especially for developers new to to a specific programming language.

![](https://i.imgur.com/IpNcxrQ.png)

Provide SDKs which developers can download and begin using immediately.

Examples:

- [Stripe API libraries](https://stripe.com/docs/libraries)
- [Digital Ocean API libraries](https://developers.digitalocean.com/libraries/)

## API Reference

The API Reference section documents each and every endpoint: HTTP routes, input requests, output responses, and what each domain object and its attributes mean.

![](https://apidocs.gallery/images/clearbit/1.png)

You should aim to represent client use of your API for multiple client technologies, including cURL and the most popular programming languages in use by web and native client developers. That means showing example client code for multiple programming languages: C#, Java, JavaScript, Go, Objective-C, PHP, Python, Ruby, Swift, etc.

![The Mailgun API docs allows you to pick the programming language code samples are shown in](https://i.imgur.com/s28y6Iw.png)

The goal of including code examples is to help bridge the gap between the abstract concept of an API call and concrete usage in a language with which a developer is familiar with. Aim to make your docs more approachable to developers with a wide range of experience levels.

Examples:

- [Clearbit API reference](https://clearbit.com/docs)
- [Plaid API reference](https://plaid.com/docs/api/)

## API Explorer

An API playground is an interactive API console that developers can make calls from and view sample responses from each of the API's endpoints.

![](https://apidocs.gallery/images/trello/2.png)

Developers learn by doing.
An API explorer provides live testing facilities to enable exploration and discovery. This allows a a developer to immediately jump in and interact with the system directly, instead of reading pages and pages of documentation.

Examples:

- [Readme.io API Explorer](https://readmeio.github.io/api-explorer/)
- [Swagger UI](https://swagger.io/swagger-ui/)

## Use cases

When a developer comes to a developer portal, the question that’s likely at the top of their mind is “Why do I care about this API?” You need to let them know right up front what's possible with your API. 

![](https://i.imgur.com/t63U487.png)

Showing use cases will start a developer’s brain churning with the possibilities and help get them excited about what they can build with your API.

Examples:

- [Uber API use cases](https://developer.uber.com/solutions) and [solutions](https://developer.uber.com/solutions)
- [Clearbit use cases](https://clearbit.com/marketing)

## Showcase

Highlight some of your partners' work and shower them with additional marketing to spread the word and encourage more developers to integrate with your API.

![](https://apidocs.gallery/images/spotify/2.png)

Examples:

- [Spotify developer showcase](https://beta.developer.spotify.com/community/showcase/)
- [Uber API developer showcase](https://developer.uber.com/showcase)

## Changelog

Don't leave your users in the dark! Keep developers notified of notable changes about your API: breaking changes, new endpoints, improvements, and so on.

![](https://i.imgur.com/h6LmLo5.png)

Set up an RSS feed or mailing list so developers can be notified of changes.

Examples:

- [Github API changelog](https://developer.github.com/changes/)
- [Digital Ocean changelog](https://developers.digitalocean.com/documentation/changelog/)

## Support

Maintain a dedicated support site containing *Frequently Asked Questions* and an active channel for users to send queries to.

![](https://apidocs.gallery/images/twilio/3.png)

You can also set up a community Q&A site for your users to answer each other's questions.

![](https://i.imgur.com/u0hVKmF.png)

Examples:

- [Twilio support](https://support.twilio.com/hc/en-us)
- [Uber developer support](https://developer.uber.com/support)

## Status

A public uptime monitoring section inspires developers' confidence in the reliability and availability of your API.

![](https://i.imgur.com/j9VNu3Z.png)

This page shows the operational status of various sections of your: API. In s addition, you can show an incident history section with postmortems of any previous downtimes.

Examples:

- [Asana status page](https://trust.asana.com/)
- [Github status page](https://status.github.com/messages)

# In closing

Having a great developer portal is critical part of your API's developer experience and is instrumental in driving adoption.

Thanks for reading!