Skip to content

Latest commit

 

History

History
116 lines (83 loc) · 8.45 KB

File metadata and controls

116 lines (83 loc) · 8.45 KB

Contributing to public-apis

❗️ The /db folder is auto-generated, so please do not edit it. Changes related to public APIs should happen on the README.md file.

While the masses of pull requests and community involvement are appreciated, some pull requests are opened purely to market a product rather than to share a usable API. This list is not a billboard: every entry must point at a publicly documented, self-serve API that others can actually connect to. Paid, freemium and free APIs are all equally welcome - "public" means anyone can sign up and call it, not that it costs nothing.

Thanks for understanding! :)

What we accept

Before submitting, make sure the API meets all of the following criteria:

  • Any use case — the product can serve any audience or subject matter. What matters is that it exposes an API others can connect to
  • Free or paid — "public" means anyone can sign up and call it, not that it costs nothing. Paid and freemium APIs are welcome
  • Self-serve — no waitlists, betas behind closed signups, "coming soon" products, partner-approval processes, or "contact sales" gates. A stranger must be able to go from the docs to a working call on their own
  • Publicly reachable and documented — the API must be publicly reachable right now and have proper documentation. If its Auth, HTTPS and CORS behaviour cannot be determined from the docs, it does not qualify
  • Main product only — the submission must be a product in its own right; internal tools or features of a larger product are not accepted. The API itself does not have to be the product's main offering
  • Custom domain required — APIs hosted on shared subdomains (vercel.app, netlify.app, herokuapp.com, github.io, pages.dev and similar) are not accepted
  • Clean URLs — the URL must not contain query parameters (anything after ?); link to the plain page instead
  • Quality bar — low-effort projects are not accepted

Apps, libraries, CLIs, SDKs and websites with no connectable API do not belong here. If your product is a tool developers use to build software, it belongs in dev-resources — and if it also exposes a public API, it belongs in both; the two directories overlap on purpose, and a listing in one is not a duplicate of the other.

Submissions are reviewed by an automated reviewer first — a bot account may comment on, approve, or close your pull request — and by the maintainer for the final merge.

Formatting

Current API entry format:

API Description Auth HTTPS CORS
API Title(Link to the API's homepage) Description of API Does this API require authentication? * Does the API support HTTPS? Does the API support CORS? *

Example entry:

| [Cataas](https://cataas.com) | Cat as a service (cats pictures and gifs) | No | Yes | No |

The URL must start with http:// or https://, and should point at the API's homepage — the page you'd send someone to first. Avoid deep links to docs pages, endpoints or subdomains when the product has a homepage of its own: the linked page becomes your listing's screenshot on publicapis.dev, and visitors can reach the docs from there.

Currently, the only accepted inputs for the Auth field are as follows:

  • OAuth - the API supports OAuth
  • apiKey - the API uses a private key string/token for authentication - try and use the correct parameter
  • X-Mashape-Key - the name of the header which may need to be sent
  • No - the API requires no authentication to run
  • User-Agent - the name of the header to be sent with requests to the API

Currently, the only accepted inputs for the CORS field are as follows:

  • Yes - the API supports CORS
  • No - the API does not support CORS
  • Unknown - it is unknown if the API supports CORS

Without proper CORS configuration an API will only be usable server side.

After you've created a branch on your fork with your changes, it's time to make a pull request.

Please follow the guidelines given below while making a Pull Request to the Public APIs

Pull Request Guidelines

  • Never put an update/new version of an API that is already listed, the old version of the API gets deprecated.
  • Continue to follow the alphabetical ordering that is in place per section.
  • Each table column should be padded with one space on either side.
  • If an API seems to fall into multiple categories, please place the listing within the section most in line with the services offered through the API. For example, the Instagram API is listed under Social since it is mainly a social network, even though it could also apply to Photography.
  • Add one link per Pull Request.
  • Make sure the PR title is in the format of Add Api-name API for e.g.: Add Blockchain API
  • Use a short descriptive commit message. for e.g.: ❌Update Readme.mdAdd Blockchain API to Cryptocurrency
  • Search previous Pull Requests or Issues before making a new one, as yours may be a duplicate.
  • Don't mention the TLD(Top Level Domain) in the name of the API. for e.g.: ❌Gmail.com ✔Gmail
  • Please make sure the API name does not end with API. for e.g.: ❌Gmail API ✔Gmail
  • Please make sure the API has proper documentation.
  • Link the API's homepage rather than a deep docs page, endpoint or subdomain, when one exists.
  • Keep the description under 160 characters so it fits the listing card.
  • Please make sure you squash all commits together before opening a pull request. If your pull request requires changes upon review, please be sure to squash all additional commits as well. This wiki page outlines the squash process.
  • Target your Pull Request to the main branch of the public-apis

Once you’ve submitted a pull request, the collaborators can review your proposed changes and decide whether or not to incorporate (pull in) your changes.

Pull Request Pro Tips

  • Fork the repository and clone it locally. Connect your local repository to the original upstream repository by adding it as a remote. Pull in changes from upstream often so that you stay up to date and so when you submit your pull request, merge conflicts will be less likely. See more detailed instructions here.
  • Create a branch for your edits.
  • Contribute in the style of the project as outlined above. This makes it easier for the collaborators to merge and for others to understand and maintain in the future.

Open Pull Requests

Once you’ve opened a pull request, a discussion will start around your proposed changes.

Other contributors and users may chime in, but ultimately the decision is made by the collaborators.

During the discussion, you may be asked to make some changes to your pull request.

If so, add more commits to your branch and push them – they will automatically go into the existing pull request. But don't forget to squash them.

Opening a pull request will trigger a build to check the validity of all links in the project. After the build completes, please ensure that the build has passed. If the build did not pass, please view the build logs and correct any errors that were found in your contribution.

Thanks for being a part of this project, and we look forward to hearing from you soon!