‹ Reports
The Dispatch

GitHub Repo Analysis: public-apis/public-apis


Executive Summary

The project under analysis is a GitHub repository named public-apis/public-apis, which serves as a curated list of free APIs for development, testing, and fun across various categories. The project does not specify a particular organization responsible for its maintenance but is supported by a community of contributors. The overall state of the project is healthy with consistent updates and maintenance, though the trajectory shows a significant slowdown in recent activity, with the most recent contributions occurring over two years ago.

Recent Activity

Team Members and Their Contributions (Reverse Chronological Order)

  1. APILayer (apilayer-admin):

    • Last active 66 days ago: Merged pull requests; updated README.md.
  2. Kyle Calica (stcalica):

    • Last active 113 days ago: Enhanced documentation; managed API categories.
  3. Matheus Felipe (matheusfelipeog) to William Faircloth:

    • Activities range from 841 to 884 days ago: Added new APIs across various categories; performed regular maintenance like removing broken links.

Patterns in Recent Issues and PRs

Risks

  1. Inactivity of Core Team: Most team members have not been active for over two years, which might impact the project's ability to keep up with technological advancements and community needs.
  2. Slow Response to Contributions: Open pull requests and issues indicate a lag in processing community contributions, which could deter future contributions and slow down the project's growth.
  3. Dependence on Community for Updates: Heavy reliance on community contributions for updating links and adding new APIs may lead to inconsistencies or delays in maintaining the quality of the repository.

Of Note

  1. Automated Validation Scripts: The use of Python scripts (scripts/validate/format.py and scripts/validate/links.py) for checking contributions is a notable strength, enhancing consistency and reliability in submissions.
  2. Detailed Contribution Guidelines: The CONTRIBUTING.md file provides clear, structured guidelines that help maintain high-quality contributions from the community.
  3. Comprehensive Documentation: The README.md file is exceptionally well-maintained, serving as an effective index of free APIs which is beneficial for developers at all levels.

Quantified Reports

Quantify commits



Quantified Commit Activity Over 14 Days

Developer Avatar Branches PRs Commits Files Changes
Deon Okonkwo (deondazy) 0 1/0/0 0 0 0
Kye Davey (kyedavey) 0 1/0/0 0 0 0
Matteo Redaelli (redaelli) 0 1/0/0 0 0 0
Brian S. (briansmith7) 0 1/0/0 0 0 0
None (tractorjuice) 0 0/0/1 0 0 0
None (Balram-Parmar) 0 1/0/0 0 0 0
SignNow (signnow-admin) 0 1/0/0 0 0 0

PRs: created by that dev and opened/merged/closed-unmerged during the period

Detailed Reports

Report On: Fetch commits



Development Team and Recent Activity

Team Members and Recent Commits

  1. APILayer (apilayer-admin):

    • Most recent activity: 66 days ago.
    • Activities: Merged pull requests, updated README.md, added new APIs, and managed files.
  2. Kyle Calica (stcalica):

    • Most recent activity: 113 days ago.
    • Activities: Added Postman logos, removed dead links, created popular APIs and categories section, updated copy.
  3. Matheus Felipe (matheusfelipeog):

    • Most recent activity: 845 days ago.
    • Activities: Removed broken links, added new APIs to various categories, managed pull requests.
  4. FayeNichols:

    • Most recent activity: 841 days ago.
    • Activities: Added new APIs to Text Analysis and Geocoding categories.
  5. Zaldy Pagaduan Jr. (zopagaduanjr):

    • Most recent activity: 841 days ago.
    • Activities: Added PRC Exam Schedule to Government category.
  6. Diego Parrilla (diegoparrilla):

    • Most recent activity: 845 days ago.
    • Activities: Added Threat Jammer to Security category.
  7. Avi Mamenko (amamenko):

    • Most recent activity: 848 days ago.
    • Activities: Added Owen Wilson Wow API to Video category.
  8. seanwlk:

    • Most recent activity: 851 days ago.
    • Activities: Added Warface to Games & Comics category.
  9. Roanna Victorio (roannav):

    • Most recent activity: 851 days ago.
    • Activities: Added National Park Service API to Government category.
  10. Agrim Prasad (AgrimPrasad):

    • Most recent activity: 852 days ago.
    • Activities: Added Lecto Translation to Text Analysis category.
  11. William Faircloth:

    • Most recent activity: 884 days ago.
    • Activities: Added OceanFacts to Math & Science category.

Patterns and Themes

  • The team has been actively managing the repository by adding new APIs, updating existing ones, and removing broken or outdated links.
  • There is a focus on expanding the API categories with relevant additions across various domains such as Text Analysis, Security, Video, Games & Comics, and Government.
  • Collaboration is evident from multiple team members contributing to the repository through pull requests and updates.
  • The repository maintenance includes regular checks for link validity and API functionality to ensure the quality and reliability of listed APIs.

Conclusions

From the analysis of the recent activities:

  • The development team is committed to keeping the repository updated and relevant for users by continuously adding new content and maintaining existing entries.
  • The team handles a wide range of API categories, showing versatility and broad coverage of different fields.
  • Regular maintenance activities like removing broken links and updating information are crucial for the reliability of the repository, which the team efficiently manages.

Report On: Fetch issues



Recent Activity Analysis

The GitHub repository public-apis/public-apis has shown a consistent pattern of activity with a variety of issues being raised, mostly concerning updates and maintenance of API links in the README.md. The issues range from adding new APIs, updating existing ones, to removing non-functional or outdated APIs.

A notable trend is the frequent need to update or correct API links, such as the Google Maps API link which was incorrectly pointing to Notion's API documentation. This type of issue suggests either a lack of initial verification before merging or changes in the URLs post-integration. Another common theme is the addition of new APIs to the list, indicating an active community contributing to expanding the repository's offerings.

Issue Details

Most Recently Created Issue:

  • Issue #3888: Update Google Maps API link in README.md
    • Priority: Medium
    • Status: Open
    • Created: 6 days ago
    • Updated: 1 day ago

Most Recently Updated Issue:

  • Issue #3885: Add SignNow API
    • Priority: Medium
    • Status: Open
    • Created: 9 days ago
    • Updated: 3 days ago

These issues highlight the ongoing maintenance required to keep the repository's documentation accurate and up-to-date. The community's responsiveness in addressing such issues plays a crucial role in maintaining the reliability and utility of the repository for developers relying on it for API references.

Report On: Fetch pull requests



Analysis of Open and Recently Closed Pull Requests in the public-apis/public-apis Repository

Open Pull Requests

  1. PR #3888: Update Google Maps API link in README.md

    • Status: Open
    • Summary: Corrects an incorrect link for the Google Maps API which was mistakenly pointing to Notion's API documentation.
    • Notable: This PR addresses a simple but crucial fix in the documentation that directly impacts the usability and accuracy of the repository information. It is advisable to merge this PR swiftly to maintain the integrity of the documentation.
  2. PR #3886: Added urldna.io API

    • Status: Open
    • Summary: Adds a new API, urldna.io, to the repository.
    • Notable: This addition expands the repository's database with a new URL analysis tool, which could be beneficial for users needing such services.
  3. PR #3885: Add SignNow API

    • Status: Open
    • Summary: Introduces the SignNow API to the repository, which offers eSignature solutions.
    • Notable: This PR adds value by providing access to a service that facilitates digital signatures, expanding the utility of the repository for developers in need of such functionality.
  4. PR #3884: Removed bhagwatgeeta api which does not work anymore

    • Status: Open
    • Summary: Removes a non-functional API from the list, ensuring that the repository remains up-to-date with working links only.
    • Notable: Cleaning up non-functional APIs is crucial for maintaining the quality and reliability of the repository.
  5. PR #3883: Remove unavailable FishWatch API

    • Status: Open
    • Summary: Similar to PR #3884, this request removes an outdated link to the FishWatch API which no longer exists.
    • Notable: It’s important for the health of the project to remove dead links, ensuring users only have access to functional resources.

Recently Closed Pull Requests

  1. PR #3854: Remove GoTiny from URL Shorteners

    • Status: Closed without merge
    • Action Taken: The GoTiny API was removed because it was no longer available.
    • Notable: The closure without merging highlights a potential oversight or disagreement about how best to handle deprecated or unavailable services.
  2. PR #3837: Remove AniAPI

    • Status: Closed without merge

Report On: Fetch Files For Assessment



Analysis of Source Code Files

README.md

Structure

  • The README.md file serves as the main documentation for the repository.
  • It contains a detailed list of APIs categorized by topics such as Animals, Anime, Anti-Malware, etc.
  • Each API listing includes details like API name, description, authentication requirement, HTTPS support, CORS support, and a direct link to run the API in Postman.

Quality

  • Readability: The file is well-structured with clear categorization and consistent formatting which enhances readability.
  • Maintainability: Easy to update or add new API listings due to the markdown table format.
  • Scalability: Supports scaling as new categories or APIs can be added easily without affecting existing structure.

CONTRIBUTING.md

Structure

  • Provides guidelines on how to contribute to the project.
  • Includes instructions on formatting API entries in the README.
  • Describes how to create a pull request and the expected standards for contributions.

Quality

  • Clarity: Clear instructions on how contributions should be formatted and submitted.
  • Inclusivity: Emphasizes that only free or freemium APIs should be added, ensuring the utility of the repository for developers.
  • Control: Sets rules to prevent misuse of the repository for advertising paid services.

scripts/validate/format.py

Structure

  • Python script designed to validate the formatting of contributions in the README.md file.
  • Checks include validation for alphabetical order, title syntax, description length and format, authentication field values, HTTPS and CORS values.

Quality

  • Robustness: Implements comprehensive checks to ensure that all entries meet the repository's standards.
  • Extensibility: New validation rules can be added easily to the existing framework.
  • Automation: Can be integrated into CI/CD pipelines to automatically validate new contributions.

scripts/validate/links.py

Structure

  • Python script that checks for broken links and duplicate links in the README.md file.
  • Utilizes HTTP requests to validate each link and checks for unique entries.

Quality

  • Functionality: Effectively identifies not only broken links but also potential duplicates which maintain the integrity of the documentation.
  • Performance: Handles potential errors and exceptions gracefully, providing meaningful error messages.
  • Security: Includes user-agent spoofing to bypass certain access restrictions which might block a simple script's requests.

Overall Assessment

The repository is well-maintained with clear guidelines for contribution. The inclusion of validation scripts enhances the quality control process, ensuring that all entries meet specified standards. This setup not only maintains but also potentially improves the quality of the repository as it scales. The documentation is thorough and accessible, making it easy for new contributors to understand how to participate effectively.