{"id":34911,"url":"https://github.com/eric-erki/awesome-api","name":"awesome-api","description":"A curated list of awesome resources for design and implement RESTful API's.","projects_count":86,"last_synced_at":"2026-06-05T16:00:18.754Z","repository":{"id":99090876,"uuid":"237772586","full_name":"eric-erki/awesome-api","owner":"eric-erki","description":"A curated list of awesome resources for design and implement RESTful API's.","archived":false,"fork":false,"pushed_at":"2020-02-02T13:07:40.000Z","size":34,"stargazers_count":0,"open_issues_count":1,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-05-20T02:59:28.773Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/eric-erki.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2020-02-02T13:07:16.000Z","updated_at":"2020-02-02T13:07:48.000Z","dependencies_parsed_at":"2023-07-07T22:31:51.524Z","dependency_job_id":null,"html_url":"https://github.com/eric-erki/awesome-api","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/eric-erki/awesome-api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eric-erki%2Fawesome-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eric-erki%2Fawesome-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eric-erki%2Fawesome-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eric-erki%2Fawesome-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eric-erki","download_url":"https://codeload.github.com/eric-erki/awesome-api/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eric-erki%2Fawesome-api/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33949039,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-05T02:00:06.157Z","response_time":120,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"created_at":"2024-01-13T12:59:12.651Z","updated_at":"2026-06-05T16:00:18.754Z","primary_language":null,"list_of_lists":false,"displayable":true,"categories":["Testing","Modeling and SaaS","Gateways","Design","Caching","Security","Format","Libraries","Discover","Logging","Documentation"],"sub_categories":["Querying","Services","Open Source / Self-hosted","Overview","Authentication","Authorization","Mocking","Directory","Curated list","Free","Response","Status Code"],"readme":"# Awesome API [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome) [![Build Status](https://img.shields.io/travis/Kikobeats/awesome-api/master.svg?style=flat-square)](https://travis-ci.org/Kikobeats/awesome-api) [![Donate](https://img.shields.io/badge/donate-paypal-blue.svg?style=flat-square)](https://paypal.me/kikobeats)\n\n\u003e A curated list of awesome resources for design and implement RESTful APIs.\n\n## Design\n\n### Overview\n\n\u003e REST allows us to create services and applications that can be used by any device or client who understands HTTP.\n\n* [Best Practices for Designing a Pragmatic RESTful API](http://www.vinaysahni.com/best-practices-for-a-pragmatic-restful-api) [[spanish version](https://elbauldelprogramador.com/buenas-practicas-para-el-diseno-de-una-api-restful-pragmatica/)].\n* [Ideal REST API Design](https://betimdrenica.wordpress.com/2015/03/09/ideal-rest-api-design/).\n* [Heroku API Reference](https://devcenter.heroku.com/articles/platform-api-reference).\n* [API Terms Glossary](https://github.com/Mashape/apiglossary).\n* [HTTP API Design](https://github.com/interagent/http-api-design) – Guide extracted from work on the Heroku Platform API.\n* [Learn REST: A RESTful Tutorial](http://www.restapitutorial.com).\n* [RAPIS: A REST API Standard for the 21th century](https://github.com/lambda2/rapis).\n* [IBM Watson REST API Guidelines](https://github.com/watson-developer-cloud/api-guidelines).\n* [Microsoft REST API Guidelines](https://github.com/Microsoft/api-guidelines).\n* [Zalando RESTful API and Event Scheme Guidelines](http://zalando.github.io/restful-api-guidelines/)\n* [gov.uk API technical and data standards](https://www.gov.uk/guidance/gds-api-technical-and-data-standards)\n\n### Status Code\n\n\u003e 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.\n\n* [HTTP Status code table in RESTAPITutorial](http://www.restapitutorial.com/httpstatuscodes.html).\n* [httpstatuses.com](https://httpstatuses.com/)\n* [Status code definition in W3C](http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html).\n\n### Authentication\n\n* [Auth Boss](https://github.com/teesloane/Auth-Boss) – Learn about different authentication methodologies on the web.\n* [Authentication Cheat Sheet](https://www.owasp.org/index.php/Authentication_Cheat_Sheet).\n* [The Problem With API Authentication in Express](https://stormpath.com/blog/the-problem-with-api-authentication-in-express/).\n* [Web Authentication Methods Explained](https://blog.risingstack.com/web-authentication-methods-explained/).\n\n#### JWT\n\n\u003e JSON Web Token (JWT) is a compact, URL-safe means of representing claims to be transferred between two parties.\n\n* [10 Things You Should Know about Tokens](https://auth0.com/blog/2014/01/27/ten-things-you-should-know-about-tokens-and-cookies/).\n* [Cookies vs Tokens](https://auth0.com/blog/2014/01/07/angularjs-authentication-with-cookies-vs-token/).\n* [JWT Draft in IETF](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token).\n* [JWT.io](http://jwt.io/).\n* [Using JSON Web Tokens as API Keys](https://auth0.com/blog/2014/12/02/using-json-web-tokens-as-api-keys/).\n* [Why Meteor doesn't use session cookies](http://info.meteor.com/blog/session-cookies).\n* [JWTinspector.io](https://www.jwtinspector.io).\n\n### Authorization\n\n#### OAuth\n\n\u003e An open protocol to allow secure authorization in a simple and standard method from web, mobile and desktop applications\n\n* [The OAuth Bible by Mashape](http://oauthbible.com/).\n\n## Caching\n\n* [Caching best practices \u0026 max-age gotchas](https://jakearchibald.com/2016/caching-best-practices/).\n* [Increasing Application Performance with HTTP Cache Headers](https://devcenter.heroku.com/articles/increasing-application-performance-with-http-cache-headers).\n* [Using Cloudflare with your API](https://support.cloudflare.com/hc/en-us/articles/200504045-Using-Cloudflare-with-your-API).\n\n## Security\n\n* [Helmet, help secure Express/Connect apps with various HTTP headers](https://www.npmjs.com/package/helmet).\n* [Node Security Project](https://nodesecurity.io/).\n* [Node.js Security Checklist](https://blog.risingstack.com/node-js-security-checklist/).\n\n## Format\n\n* [HAL](http://stateless.co/hal_specification.html) – Simple format that gives a consistent and easy way to hyperlink between resources in your API (see: [HATEOAS](#hateoas)).\n* [Hydra](http://www.hydra-cg.com/) – Vocabulary for Hypermedia-Driven Web APIs (W3C).\n* [JSend](http://labs.omniti.com/labs/jsend) – Simple specification that lays down some rules for how JSON responses from web servers should be formatted.\n* [JSON API](http://jsonapi.org/) – Standard for building APIs in JSON.\n* [JSON-LD](http://json-ld.org/) – Standard for describing Linked Data and hypermedia relations in JSON (W3C).\n* [OData](http://www.odata.org/) – Open protocol to allow the creation and consumption of queryable and interoperable RESTful APIs. Quite complex.\n* [RAML](http://raml.org/) – Simple and succinct way to describe RESTful API.\n* [Schema.org](http://schema.org) – Collection of schemas describing common data models.\n\n## Discover\n\n\u003e Need a API for your projects?\n\n### Curated list\n\n* [Awesome APIs Directory](https://github.com/Abhishaker17/Awesome-APIs) – A public list of APIs from round the web.\n* [public apis](https://github.com/toddmotto/public-apis) – A collective list of public JSON APIs for use in web development.\n\n### Directory\n\n* [apis.io](http://apis.io) – API Search service to help discover APIs on the web.\n* [Mashape](https://market.mashape.com/explore).\n\n## Testing\n\n### Querying\n\n* [httpie](https://github.com/jkbrzt/httpie) – Command line HTTP client, far more dev-friendly than `curl`.\n* [HttpMaster](http://www.httpmaster.net) – GUI tool for testing REST APIs and services. Windows OS only.\n* [jq](https://github.com/stedolan/jq) – Command line JSON processor, to use in combination with a command-line HTTP client like cURL.\n* [Insomina](https://insomnia.rest/) – A Fancy HTTP REST Client.\n* [resty](https://github.com/micha/resty) – Little command line REST client that you can use in pipelines (bash or zsh).\n\n### Mocking\n\n* [Beeceptor](https://beeceptor.com) - Beeceptor helps intercepting API calls and mocking them selectively. Creates an endpoint for wrapping original API and routes requests.\n* [FakeRest](https://github.com/marmelab/FakeRest) – Patch XMLHttpRequest to fake a REST API client-side.\n* [JSON Placeholder](http://jsonplaceholder.typicode.com/) – Free online REST service that you can use whenever you need some fake data.\n* [json-server](https://github.com/typicode/json-server) – Get a full fake REST API with zero coding in less than 30 seconds.\n* [Mocky.io](http://www.mocky.io/) – Free online service to create fake HTTP responses.\n* [Swagger API Mock](https://github.com/bulkismaslom/swagger-api-mock) – Mock RESTful API based on swagger schema\n\n### Response\n\n* [httpstat.us](https://httpstat.us) – A super simple service for generating different HTTP codes.\n* [httpbin](https://httpbin.org) – httpbin(1): HTTP Request \u0026 Response Service.\n* [badssl](https://badssl.com) – Testing clients against bad SSL configs.\n\n## Documentation\n\n\u003e One of the most important part of your API is have a good documentation and updated with the code.\n\n### Free\n\n* [docbox](https://github.com/tmcw/docbox) ([demo](https://67-53007065-gh.circle-artifacts.com/0/tmp/circle-artifacts.NCC9T6a/index.html#our-api)).\n* [slate](https://github.com/tripit/slate) ([demo](https://lord.github.io/slate/#introduction)).\n* [whiteboard](https://github.com/mpociot/whiteboard) ([demo](http://marcelpociot.de/whiteboard)).\n\n### Services\n\n* [RapidAPI](https://docs.rapidapi.com/docs).\n* [Readme.io](https://readme.io/).\n\n## Logging\n\n* [keymetrics.io](https://keymetrics.io).\n* [morgan for expressjs](https://github.com/expressjs/morgan).\n\n## Modeling and SaaS\n\n\u003e Based in DDD (Domain Driven Development). Generates automatically API's in different languages.\n\n* [Alteranatives to API Plug](https://www.producthunt.com/alternatives/api-plug) – 9 alternative and related products to api plug.\n* [Apiary](https://apiary.io/) – Collaborative design, instant API mock, generated documentation, integrated code samples, debugging and automated testing.\n* [wrapAPI, Build an API on top of any website](https://wrapapi.com).\n* [import.io, turn web pages into Data](https://www.import.io/).\n* [RAML, RESTful API Modeling Language](http://raml.org).\n* [Runscope](https://www.runscope.com/) – Automated API Monitoring \u0026 Testing.\n* [swagger.io](http://swagger.io).\n\n## Libraries\n\n\u003e Used it to improve your workflow\n\n* [hello.js](http://adodson.com/hello.js/#hellojs) – A client-side Javascript SDK for authenticating with OAuth2.\n* [nock](https://www.npmjs.com/package/nock) – HTTP Server mocking for Node.js\n* [node-ratelimiter](https://github.com/tj/node-ratelimiter) – Rate limiter for Node.js backed by Redis.\n* [node-uuid](https://github.com/broofa/node-uuid) – Simple and fast generation of UUIDS.\n* [Supertest](https://www.npmjs.com/package/supertest) – Super-agent driven library for testing HTTP servers.\n* [Unirest](http://unirest.io) – Lightweight HTTP Request Client Libraries.\n\n## Frameworks\n\n\u003e Designed specifically for building RESTful API's Quickly.\n\n* [Loopback](http://loopback.io).\n* [Sails.js](http://sailsjs.org).\n\n## Gateways\n\n\u003e Manage API infrastructure concerns such as authentication/authorization, rate limiting, scaling, analytics, etc.\n\n### Open Source / Self-hosted\n\n* [API Umbrella](http://apiumbrella.io/).\n* [ApiAxle](http://apiaxle.com).\n* [KrakenD](http://krakend.io).\n* [Mashape Kong](https://getkong.org/).\n* [Tyk](https://tyk.io/).\n* [WSO2 API Manager](http://wso2.com/api-management/try-it/).\n","projects_url":"https://awesome.ecosyste.ms/api/v1/lists/eric-erki%2Fawesome-api/projects"}