awesome-api
A curated list of awesome resources for design and implement RESTful API's.
Top Related Projects
A collective list of free APIs
๐ A public list of APIs from round the web.
:octocat: A collection of APIs
API Documentation Browser
Quick Overview
Kikobeats/awesome-api is a curated list of resources and tools for building and documenting APIs. It serves as a comprehensive guide for developers working with APIs, covering various aspects such as design, testing, security, and documentation. The repository aims to be a one-stop reference for API-related information and best practices.
Pros
- Extensive collection of resources covering multiple aspects of API development
- Regularly updated with new and relevant content
- Well-organized structure, making it easy to find specific information
- Includes both free and paid tools, catering to different needs and budgets
Cons
- May be overwhelming for beginners due to the large amount of information
- Some listed resources might become outdated over time
- Lacks detailed explanations or comparisons of the listed tools
- Primarily focuses on RESTful APIs, with less coverage of other API types
Getting Started
To use this resource:
- Visit the GitHub repository: https://github.com/Kikobeats/awesome-api
- Browse through the table of contents to find the section you're interested in
- Click on the links to explore specific resources or tools
- Consider starring or watching the repository to stay updated with new additions
Note: This is not a code library, so there are no code examples or installation instructions.
Competitor Comparisons
A collective list of free APIs
Pros of public-apis
- Larger collection of APIs, offering more variety and options
- Better organized with categories and subcategories
- More frequently updated and maintained
Cons of public-apis
- Less focus on API best practices and design principles
- Lacks detailed descriptions and usage examples for each API
Code Comparison
While both repositories primarily consist of lists and don't contain much code, public-apis includes a simple Python script for API entry validation:
def check_ssl(url):
try:
requests.get(url, verify=True, timeout=5)
return True
except:
return False
awesome-api doesn't include any code samples, focusing solely on curating a list of APIs and related resources.
Summary
public-apis offers a more extensive collection of APIs with better organization, making it easier for developers to find suitable APIs for their projects. However, awesome-api provides a more curated list with a focus on API design and best practices, which can be valuable for developers looking to improve their API development skills.
Both repositories serve as valuable resources for developers working with APIs, but they cater to slightly different needs. public-apis is better for those seeking a wide variety of ready-to-use APIs, while awesome-api is more suitable for developers interested in API design and implementation best practices.
๐ A public list of APIs from round the web.
Pros of Public-APIs
- Larger collection of APIs, offering a more extensive range of options
- Categorized structure makes it easier to find specific types of APIs
- Includes additional details like authentication requirements and HTTPS support
Cons of Public-APIs
- Less curated, potentially including lower-quality or outdated APIs
- Minimal description for each API, requiring users to visit external links for more information
- Lacks focus on best practices or API design principles
Code Comparison
While both repositories primarily consist of markdown files listing APIs, Public-APIs includes a JSON file containing all the API data:
Public-APIs:
{
"API": "API Name",
"Description": "Brief description",
"Auth": "API Key",
"HTTPS": true,
"Cors": "yes",
"Link": "https://api.example.com",
"Category": "Category Name"
}
Awesome-api doesn't include structured data files, focusing solely on markdown content.
Summary
Public-APIs offers a more extensive list of APIs with better categorization, while Awesome-api provides a more curated selection with a focus on API design and best practices. Public-APIs is better suited for those seeking a wide variety of API options, while Awesome-api is more beneficial for developers looking to learn about API design and industry standards.
:octocat: A collection of APIs
Pros of Awesome_APIs
- More comprehensive list of APIs, covering a wider range of categories
- Better organization with clear categorization and subcategories
- Includes a section for API development tools and resources
Cons of Awesome_APIs
- Less frequently updated compared to awesome-api
- Lacks detailed descriptions for some APIs
- Some links may be outdated or no longer maintained
Code Comparison
While both repositories primarily consist of curated lists rather than code, here's a comparison of their README structure:
Awesome_APIs:
## Index
- [Animals](#animals)
- [Anime](#anime)
- [Anti-Malware](#anti-malware)
...
## Animals
- [Petfinder](https://www.petfinder.com/developers/api-docs)
- [RescueGroups](https://userguide.rescuegroups.org/display/APIDG/API+Developers+Guide+Home)
...
awesome-api:
# Awesome API [](https://github.com/sindresorhus/awesome)
A curated list of awesome resources for design and implement RESTful APIs.
* [Design](#design)
* [Standards](#standards)
...
Both repositories use a similar structure, but Awesome_APIs has a more detailed categorization system, while awesome-api focuses on API design and implementation resources.
API Documentation Browser
Pros of devdocs
- Comprehensive documentation for multiple programming languages and frameworks in one place
- Offline access to documentation, improving accessibility and speed
- User-friendly interface with search functionality and customizable settings
Cons of devdocs
- Requires more maintenance to keep documentation up-to-date across various technologies
- May have a steeper learning curve for contributors due to its complex structure
- Limited to official documentation, lacking community-contributed resources
Code comparison
devdocs:
class Doc
include Instrumentable
class << self
include Instrumentable
attr_accessor :all
end
def initialize(store, attrs = {})
@store = store
@attrs = attrs
end
end
awesome-api:
# Awesome API [](https://github.com/sindresorhus/awesome)
A curated list of awesome resources for design and implement RESTful APIs.
* [API Design](#api-design)
* [API Development](#api-development)
* [API Testing](#api-testing)
* [API Documentation](#api-documentation)
* [API Clients](#api-clients)
The code comparison shows that devdocs is a Ruby-based application with more complex functionality, while awesome-api is a curated list in Markdown format, focusing on organizing and presenting information about API resources.
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
Awesome API

A curated list of awesome resources for design and implement RESTful APIs.
Design
Overview
REST allows us to create services and applications that can be used by any device or client who understands HTTP.
- Best Practices for Designing a Pragmatic RESTful API [spanish version].
- Ideal REST API Design.
- StackOverflow best REST API Design.
- Heroku API Reference.
- API Terms Glossary.
- HTTP API Design by Heroku.
- Learn REST: A RESTful Tutorial.
- RAPIS: A REST API Standard for the 21th century.
- IBM Watson REST API Guidelines.
- Microsoft REST API Guidelines.
- Zalando RESTful API and Event Scheme Guidelines
- gov.uk API technical and data standards
- How to (and how not to) design REST APIs
Status Code
When you are using a REST design you have to provide the HTTP status code that are the more appropriated to respond to the request.
- HTTP Status code table in RESTAPITutorial.
- httpstatuses.com
- Status code definition in W3C.
- HTTP Status Code Guides
Authentication
- Auth Boss รขยย Learn about different authentication methodologies on the web.
- Authentication Cheat Sheet.
- The Problem With API Authentication in Express.
- Web Authentication Methods Explained.
JWT
JSON Web Token (JWT) is a compact, URL-safe means of representing claims to be transferred between two parties.
- 10 Things You Should Know about Tokens.
- Cookies vs Tokens.
- JWT Draft in IETF.
- JWT.io.
- Using JSON Web Tokens as API Keys.
- Why Meteor doesn't use session cookies.
- Guide on API authentication and authorization.
Authorization
OAuth
An open protocol to allow secure authorization in a simple and standard method from web, mobile and desktop applications
Caching
- Caching best practices & max-age gotchas.
- Increasing Application Performance with HTTP Cache Headers.
- Using Cloudflare with your API.
Security
- Helmet, help secure Express/Connect apps with various HTTP headers.
- APISecurityBestPractices.
- Node Security Project.
- Node.js Security Checklist.
Format
- HAL รขยย Simple format that gives a consistent and easy way to hyperlink between resources in your API (see: HATEOAS).
- Hydra รขยย Vocabulary for Hypermedia-Driven Web APIs (W3C).
- JSend รขยย Simple specification that lays down some rules for how JSON responses from web servers should be formatted.
- JSON API รขยย Standard for building APIs in JSON.
- JSON-LD รขยย Standard for describing Linked Data and hypermedia relations in JSON (W3C).
- OData รขยย Open protocol to allow the creation and consumption of queryable and interoperable RESTful APIs. Quite complex.
- RAML รขยย Simple and succinct way to describe RESTful API.
- Schema.org รขยย Collection of schemas describing common data models.
Discover
Need a API for your projects?
Curated list
- Awesome APIs Directory รขยย A public list of APIs from round the web.
- public apis รขยย A collective list of public JSON APIs for use in web development.
Directory
- apis.io รขยย API Search service to help discover APIs on the web.
- ProgrammableWeb.
Testing
Querying
- Firecamp รขยย Protocol agnostic API testing client which help you test and manage RestAPIs, GraphQL, Websocket and many more.
- httpie รขยย Command line HTTP client, far more dev-friendly than
curl
. - HttpMaster รขยย GUI tool for testing REST APIs and services. Windows OS only.
- jq รขยย Command line JSON processor, to use in combination with a command-line HTTP client like cURL.
- Insomina รขยย A Fancy HTTP REST Client.
- resty รขยย Little command line REST client that you can use in pipelines (bash or zsh).
- TestMace รขยย A modern powerful crossplatform tool for working with API and creating automated API tests.
Mocking
- Beeceptor - Beeceptor helps intercepting API calls and mocking them selectively. Creates an endpoint for wrapping original API and routes requests.
- FakeRest รขยย Patch XMLHttpRequest to fake a REST API client-side.
- JSON Placeholder รขยย Free online REST service that you can use whenever you need some fake data.
- json-server รขยย Get a full fake REST API with zero coding in less than 30 seconds.
- Mocky.io รขยย Free online service to create fake HTTP responses.
- FakeQL รขยย Mainly focused on GraphQL, but can mock RESTful APIs, as well.
- PIPL API รขยย Free and public API that generates random and fake people's data in JSON
- API Mocha - Free online service providing fake REST API endpoints, create customizable responses and download rules as a Postman collection.
Response
- httpstat.us รขยย A super simple service for generating different HTTP codes.
- httpbin รขยย httpbin(1): HTTP Request & Response Service.
- badssl รขยย Testing clients against bad SSL configs.
Documentation
One of the most important part of your API is have a good documentation and updated with the code.
Free
Services
Logging
- PM2 by keymetrics.
- morgan for expressjs.
- Moesif API Analytics. Log and Understand API Traffic.
Modeling and SaaS
Based in DDD (Domain Driven Development). Generates automatically API's in different languages.
- Alteranatives to API Plug รขยย 9 alternative and related products to api plug.
- Apiary รขยย Collaborative design, instant API mock, generated documentation, integrated code samples, debugging and automated testing.
- wrapAPI, Build an API on top of any website.
- import.io, turn web pages into Data.
- RAML, RESTful API Modeling Language.
- Runscope รขยย Automated API Monitoring & Testing.
- swagger.io.
Libraries
Used it to improve your workflow
- async-ratelimiter รขยย Rate limit made simple, easy, async, backed in Redis.
- hashids รขยย A small JavaScript library to generate YouTube-like ids from numbers.
- typeid-js รขยย Type-safe, K-sortable, and globally unique identifiers inspired by Stripe IDs
Frameworks
Designed specifically for building RESTful API's Quickly.
Gateways
Manage API infrastructure concerns such as authentication/authorization, rate limiting, scaling, analytics, etc.
Open Source / Self-hosted
Top Related Projects
A collective list of free APIs
๐ A public list of APIs from round the web.
:octocat: A collection of APIs
API Documentation Browser
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot