Skip to main content
Public APIs thrives on community contributions. If you know of a free, public API that would benefit other developers, we’d love your help adding it to the directory.
This API list is not a marketing tool, but a resource to help the community build applications using free, public APIs quickly and easily. Pull requests identified as marketing attempts will not be accepted.

Before You Contribute

Important Requirements:Please make sure the API you want to add meets these criteria:
  • Has full, free access or at least a free tier
  • Does not depend on purchasing a device or service before use
  • Has proper documentation available publicly
  • Is not already listed in the directory (search first!)
Example of what would be rejected: An API that controls a smart outlet - the API may be free, but you must purchase the smart device first.

API Entry Format

All API entries follow a standardized table format with these columns:
APIDescriptionAuthHTTPSCORS
API Title(Link to API documentation)Description of APIAuthentication typeHTTPS supportCORS support

Example Entry

| [NASA](https://api.nasa.gov) | NASA data, including imagery | No | Yes | Yes |

Field Specifications

API (Column 1)
  • Format: [API Name](link-to-documentation)
  • Link to official API documentation
  • Do NOT include TLD in name: ✔ Gmail ❌ Gmail.com
  • Do NOT end with “API”: ✔ Gmail ❌ Gmail API
Description (Column 2)
  • Clear, concise description of what the API does
  • Maximum 100 characters
  • Focus on functionality, not marketing language
Auth (Column 3) Accepted values only:
  • No - No authentication required
  • apiKey - Requires API key or token
  • OAuth - Uses OAuth authentication
  • X-Mashape-Key - Requires Mashape/RapidAPI header
  • User-Agent - Requires User-Agent header
HTTPS (Column 4) Accepted values only:
  • Yes - Supports HTTPS
  • No - Does not support HTTPS
CORS (Column 5) Accepted values only:
  • Yes - Supports CORS (can be called from browsers)
  • No - Does not support CORS (server-side only)
  • Unknown - CORS support not verified
Without proper CORS configuration, an API will only be usable server-side. This is important information for developers.

Pull Request Guidelines

Follow these guidelines when submitting your contribution:

Submission Rules

1

Fork and Create Branch

  • Fork the repository and clone it locally
  • Connect your local repository to the original upstream repository by adding it as a remote
  • Create a branch for your edits
2

Add Your API Entry

  • Add one API per Pull Request
  • Place API in the correct category (e.g., Instagram goes under Social, not Photography)
  • Maintain alphabetical ordering within the category
  • Pad each table column with one space on either side
  • Follow the exact format shown above
3

Create Pull Request

Use proper naming conventions:PR Title Format:
Add API-name API
Example: Add Blockchain APICommit Message Format:
Add API-name API to Category-name
Add Blockchain API to Cryptocurrency
Update Readme.md
Target your Pull Request to the master branch
4

Squash Commits

  • Squash all commits together before opening a pull request
  • If changes are requested during review, squash additional commits as well

Additional Guidelines

  • No duplicate APIs: Never add an updated version of an API that’s already listed (the old version gets deprecated)
  • Search first: Check previous Pull Requests and Issues before submitting
  • No spam: Marketing-focused PRs will be rejected
  • Proper documentation: Ensure the API has accessible, complete documentation
  • Category placement: If an API fits multiple categories, choose the one most aligned with its primary purpose

Validation Process

After you submit your pull request:
  1. Automated build check will verify all links are valid
  2. Community review - collaborators and other contributors may provide feedback
  3. Requested changes - you may need to make adjustments based on feedback
  4. Final approval - collaborators will merge your contribution
Please ensure that the automated build has passed. If it fails, view the build logs and correct any errors found in your contribution.

Pull Request Pro Tips

Pull in changes from upstream often so that you stay up to date. This makes merge conflicts less likely when you submit your pull request.
git remote add upstream https://github.com/public-apis/public-apis.git
git fetch upstream
git merge upstream/master
See detailed syncing instructions.
Contribute in the style of the project:
  • Follow alphabetical ordering
  • Use consistent spacing in table columns
  • Keep descriptions concise (under 100 characters)
  • Use only accepted values for Auth, HTTPS, and CORS fields
This makes it easier for collaborators to merge and for others to maintain in the future.
During the pull request discussion, you may be asked to make changes:
  • Add more commits to your branch and push them
  • They will automatically appear in the existing pull request
  • Remember to squash all commits before the final merge

Example Contribution Flow

Here’s a complete example of adding a new API:
# 1. Fork and clone the repository
git clone https://github.com/YOUR-USERNAME/public-apis.git
cd public-apis

# 2. Create a new branch
git checkout -b add-example-api

# 3. Add your API entry to README.md
# (Edit the file, add your entry in alphabetical order)

# 4. Commit your changes
git add README.md
git commit -m "Add Example API to Development"

# 5. Push to your fork
git push origin add-example-api

# 6. Open a Pull Request on GitHub
# Title: "Add Example API"
# Description: Brief explanation of what the API does

Need Help?

If you have questions about contributing:
Thanks for being a part of this project, and we look forward to hearing from you soon!

Build docs developers (and LLMs) love