Skip to content
A web API for programming languages, code libraries and tutorials.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

Programming Languages Web API (Plapi)

Plapi is a web application programming interface (API) for curated data about programming languages, code libraries and tutorials.

This repository contains the source code for the web API. You do not need any code from here to access the API. This README provides a reference for learning about what the API contains.


There are currently three endpoints:

  1. /libraries - packages of reuseable code such as a web framework or data analysis tool

  2. /programming-languages - a named programming language such as Python or Elixir

  3. /tutorials - articles or blog posts that help readers learn about a programming language and/or code library

You can use these endpoints as an unauthenticated user at a rate of 15 requests per minute, or grab an API key (coming soon) to bump the limit up to 30 requests per minute.


Give the following examples a try to get an initial taste of what the API can do for you.

Adding new data

Issue a POST request to an endpoint with the required data. There is a quick manual approval process before the data is made visible. After the data is approved it'll be live for all Plapi requests.

FAQ / Meta

  1. Who created this API?

    Matt Makai, currently a Developer Evangelist @ Twilio.

  2. Is this API open source?

    Yup, MIT license. Fork and hack away. Submit a pull request when you improve the code.

  3. I'm learning about web APIs. What's another one I should use?

    Twilio :)

  4. Where can I learn more about building web apps and APIs with Python?

    Full Stack Python. Check out the table of contents for all topics or explore other links on the Best Python Resources page.

Future Work & Ideas

  1. A /change-log/ endpoint whenever something new is added.
  2. Retrieve random libraries and tutorials on specific tags.
  3. Edit existing data through POST requests.
You can’t perform that action at this time.