‹ Reports
The Dispatch

GitHub Repo Analysis: public-apis/public-apis


Executive Summary

The Public APIs repository is a community-curated collection of free APIs across various domains, maintained by APILayer and community contributors. It serves as a resource for developers integrating public APIs into projects. The project is stable but faces challenges in maintaining API integrity and security.

Recent Activity

Team Members and Activities

Recent Commits and PRs

  1. PR #4020: Removed Codex API (0 days ago).
  2. PR #4019: Minor README update (0 days ago).
  3. PR #4018: Added Anime website (1 day ago).
  4. PR #4016: Added Appcircle API (3 days ago).

Patterns

Risks

Of Note

Quantified Reports

Quantify issues



Recent GitHub Issues Activity

Timespan Opened Closed Comments Labeled Milestones
7 Days 1 0 0 1 1
30 Days 9 0 5 9 1
90 Days 25 1 13 25 1
1 Year 125 100 80 117 1
All Time 631 605 - - -

Like all software activity quantification, these numbers are imperfect but sometimes useful. Comments, Labels, and Milestones refer to those issues opened in the timespan in question.

Rate pull requests



2/5
The pull request adds a single line to the README.md file, introducing a new API entry. While it follows the existing format and contributes to the list, it is a minor change with limited impact. The addition does not significantly enhance the documentation or provide substantial value to the project. Given its insignificance and lack of complexity, a rating of 2 is appropriate.
[+] Read More
2/5
The pull request removes a single line from the README.md file, specifically deleting the entry for 'Threat Jammer.' While this change may be necessary, it is minimal and lacks significance. The PR does not introduce any new functionality or improvements, nor does it address any bugs or security issues. It is a straightforward deletion with no complexity involved. Given the lack of substantial impact or complexity, this PR is rated as needing work.
[+] Read More
2/5
The pull request removes a single dead API entry from the README file, which is a minor change. While it adheres to the contribution guidelines and maintains the integrity of the file, it lacks significance or complexity. The change is straightforward and does not introduce any new functionality or improvements to the project. Therefore, it is rated as 'Needs work' due to its insignificance.
[+] Read More
2/5
The pull request adds a single line to the README.md file, introducing a new website for watching anime. While it follows the contribution guidelines and is formatted correctly, the change is minor and lacks significance or impact on the overall project. It does not introduce any notable improvements or features, making it an insignificant contribution. Therefore, it deserves a rating of 2.
[+] Read More
2/5
The pull request involves a minor change in the README.md file, altering 'Public APIs' to 'Public API'. This change is insignificant and does not add substantial value or improvement to the project. It lacks thoroughness and significance, which are necessary for a higher rating. Such minor documentation changes typically do not warrant more than a rating of 2.
[+] Read More
3/5
The pull request adds a new API entry to the README, following all contribution guidelines. The change is minimal, involving only a single line addition, and does not introduce any significant functionality or complexity. It is well-formatted and complete but lacks substantial impact or innovation, aligning with an average rating.
[+] Read More
3/5
This pull request adds a new entry to the public APIs list, specifically the SheetDB API. The submission is well-formatted and adheres to the contribution guidelines, including proper ordering and description length. However, it is a minor change involving only a single line addition to a README file, which limits its significance. While it meets all requirements, the impact of this change is minimal, making it an average contribution.
[+] Read More
3/5
The pull request adds a new entry for Appcircle to the README.md file in the Continuous Integration section. The addition is correctly formatted, alphabetically ordered, and adheres to the contribution guidelines. However, it is a minor change with limited impact, involving only a single line addition without any complex code or significant feature enhancement. This makes it an average contribution, deserving a rating of 3.
[+] Read More
3/5
The pull request adds a new API entry to a public list, which is a straightforward and minor change. The addition follows the format guidelines and does not introduce any errors or inconsistencies. However, it lacks significant impact or complexity, as it merely updates documentation with a single line. While the change is correct and useful, it is not substantial enough to warrant a higher rating.
[+] Read More
3/5
The pull request removes a non-functional API entry from a list, which is a necessary maintenance task but not particularly significant or complex. The change is straightforward, involving the deletion of a single line, and adheres to the repository's contribution guidelines. However, it lacks any additional improvements or enhancements to the project. Therefore, it is an average contribution that fulfills its purpose without any notable flaws or excellence.
[+] Read More

Quantify commits



Quantified Commit Activity Over 14 Days

Developer Avatar Branches PRs Commits Files Changes
Dmitry Vakhnin (JSBmanD) 0 1/0/0 0 0 0
Nawaz (lizardX) 0 1/0/0 0 0 0
None (Romik194) 0 1/0/0 0 0 0
None (soursize) 0 1/0/0 0 0 0
None (swist666) 0 1/0/0 0 0 0
Mouli Varma Sagi (Varma0604) 0 1/0/0 0 0 0
Swapneel Patnekar (pswapneel) 0 1/0/0 0 0 0
Anubhab Chowdhury (Anubhab2003) 0 1/0/0 0 0 0
Peter Gallwas (Husky-Devel) 0 0/0/1 0 0 0
Flame Coders (flamecoders) 0 1/0/0 0 0 0
Jordan Prescott (Jordan-Prescott) 0 0/0/1 0 0 0
None (casual-user-asm) 0 1/0/0 0 0 0
Dan Collins (dan-collins-dev) 0 1/0/0 0 0 0

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

Quantify risks



Project Risk Ratings

Risk Level (1-5) Rationale
Delivery 4 The project faces significant delivery risks due to a backlog of open issues and pull requests. Only 1 out of 25 issues have been closed in the last 90 days, indicating inefficiencies in issue resolution. The backlog of 328 open pull requests suggests bottlenecks in the review and merge process, further hindering progress. Additionally, the lack of substantial commits over the past 16 days highlights stagnation in development activity, which could delay project goals.
Velocity 5 The project's velocity is critically low, with no commits recorded in the past 16 days. This stagnation indicates a halt in development work, potentially due to team disengagement or process inefficiencies. The backlog of unresolved issues and pull requests further exacerbates this risk, as it suggests that contributions are not being integrated swiftly.
Dependency 4 Dependency risks are high due to compromised APIs (#3984, #3977) and deprecated APIs (#3987, #4000). These issues highlight vulnerabilities in external dependencies that could disrupt project delivery if not addressed promptly. The presence of malware-related issues further emphasizes the need for enhanced security measures and regular audits.
Team 3 The team faces moderate risks related to communication and prioritization challenges. The low number of comments on recent issues suggests limited collaboration, which might point to communication gaps or insufficient prioritization of issue resolution. However, adherence to contribution guidelines indicates some level of team discipline.
Code Quality 2 Code quality appears to be well-maintained through adherence to contribution guidelines and comprehensive validation scripts like format.py and links.py. These scripts enforce strict formatting rules and catch errors early, maintaining high standards of code quality.
Technical Debt 3 Technical debt risks are moderate due to unresolved issues related to broken links and deprecated APIs. While validation scripts help mitigate some risks by ensuring data integrity, the accumulation of unresolved issues could lead to increased technical debt if not managed effectively.
Test Coverage 2 Test coverage is strong for specific modules like test_validate_format.py and test_validate_links.py, which provide comprehensive unit tests for validation functions. This focus on testing reduces the risk of bugs and technical debt in these areas, but it's unclear if similar coverage exists across the entire codebase.
Error Handling 2 Error handling is robustly implemented in validation scripts such as format.py and links.py, which provide detailed error messages and capture various exceptions. This thorough approach minimizes the risk of errors propagating into production, supporting reliable project delivery.

Detailed Reports

Report On: Fetch issues



GitHub Issues Analysis

Recent Activity Analysis

Recent activity in the public-apis repository shows a mix of new issues and updates to existing ones, with a focus on API functionality and security concerns. Notably, several issues highlight compromised APIs or broken links, indicating potential security risks and maintenance challenges.

Notable Anomalies and Themes

  1. Compromised APIs: Issues like #3984 (Pixel Encounter API) and #3977 (AniApi) report APIs being used for malicious purposes or malvertising. This is a significant concern as it affects user trust and the integrity of the repository.

  2. Broken Links and Deprecated APIs: Multiple issues (#3987, #4000) mention outdated or non-functional APIs due to changes in hosting services like Heroku. This indicates a need for regular audits to maintain the list's reliability.

  3. Security Concerns: The presence of malware-related issues suggests an urgent need for enhanced security measures and verification processes for listed APIs.

  4. Communication Gaps: Comments on issues such as #4011 and #4010 show a lack of clarity in problem descriptions, which can hinder effective resolution.

  5. Recurring Themes: Many issues revolve around API accessibility, security, and link validity, reflecting ongoing challenges in maintaining a large, community-driven project.

Issue Details

Most Recently Created Issues

  • #4017: Organizing payment

    • Priority: Unknown
    • Status: Open
    • Created: 1 day ago
  • #4012: Threat Jammer routes to random casino website

    • Priority: High (due to security implications)
    • Status: Open
    • Created: 8 days ago

Most Recently Updated Issues

  • #4011: Yes

    • Priority: Unknown
    • Status: Open
    • Updated: 7 days ago
  • #3984: Pixel Encounter API is compromised

    • Priority: High (security risk)
    • Status: Open
    • Updated: 7 days ago

These issues highlight the critical need for timely responses and updates to ensure the repository remains a trusted resource for developers.

Report On: Fetch pull requests



Analysis of Pull Requests for Public APIs Repository

Open Pull Requests

Recent and Notable Open PRs

  1. PR #4020: Removed Codex

    • State: Open
    • Created: 0 days ago
    • Details: This PR removes the Codex API as it is no longer functional. It is well-formatted but lacks squashing of commits.
    • Significance: Important to ensure the list remains accurate by removing non-functional APIs.
  2. PR #4019: Updated README.md

    • State: Open
    • Created: 0 days ago
    • Details: Minor update to the README, but none of the checklist items are completed, indicating a lack of adherence to contribution guidelines.
    • Significance: Needs attention to ensure quality control in documentation updates.
  3. PR #4018: Update README.md

    • State: Open
    • Created: 1 day ago
    • Details: Adds a new website for Anime. All checklist items are completed, showing good adherence to guidelines.
    • Significance: Enhances the Anime category with a new resource.
  4. PR #4016: Adding Appcircle

    • State: Open
    • Created: 3 days ago
    • Details: Adds Appcircle API for mobile CI/CD. Mostly follows guidelines but has minor formatting issues.
    • Significance: Expands the Continuous Integration category with a relevant tool.
  5. PR #4015: PR to add Shreshta domain whois free API

    • State: Open
    • Created: 3 days ago
    • Details: Checklist is incomplete, indicating potential issues with contribution standards.
    • Significance: Needs review for compliance with repository standards.

Older Open PRs

  • Several older PRs (e.g., #3980, #4002) have been open for over a month without resolution, indicating potential backlog or lack of priority.

Closed Pull Requests

Recently Closed PRs

  1. PR #3993: Add The Dobby Club API

    • State: Closed (Not merged)
    • Closed: 1 day ago
    • Details: Added an API related to the UK sitcom Peep Show but was not merged.
    • Significance: Indicates possible issues with relevance or quality that need addressing before resubmission.
  2. PR #3775: Remove git.io from the list

    • State: Closed (Not merged)
    • Closed: 1 day ago
    • Details: Attempted to remove a deprecated service but was not merged.
    • Significance: Highlights the need for clarity on deprecation policies within the repository.
  3. PR #4003 and PR #3990

    • Both were closed without merging shortly after creation, suggesting they may not have met contribution standards or were duplicates.

Observations

  • There is a noticeable number of PRs closed without merging, which could indicate issues with submission quality or relevance.
  • Many open PRs lack complete checklists, suggesting contributors may need more guidance on submission requirements.
  • The repository maintains a high level of community engagement, as seen in the number of stars and forks, which underscores the importance of maintaining high-quality contributions.

Recommendations

  • Implement stricter review processes to ensure all checklist items are completed before accepting PRs.
  • Provide clearer guidelines or templates to assist contributors in meeting repository standards.
  • Regularly review older open PRs to address any backlog and prioritize based on relevance and quality.

This analysis highlights areas for improvement in managing contributions and maintaining the quality of the Public APIs repository.

Report On: Fetch Files For Assessment



Source Code Assessment

File: CONTRIBUTING.md

  • Purpose: Provides guidelines for contributing to the project.
  • Content:
    • Emphasizes the non-commercial nature of the API list.
    • Details the format for API entries, including specific fields like Auth, HTTPS, and CORS.
    • Lists pull request guidelines, such as maintaining alphabetical order and limiting description length.
    • Encourages good practices like squashing commits and using descriptive commit messages.
  • Quality:
    • Well-structured with clear instructions.
    • Provides links to resources for further guidance (e.g., creating a pull request).
    • Could benefit from a table of contents for easier navigation.

File: .github/workflows/test_of_push_and_pull.yml

  • Purpose: Defines CI/CD workflow for testing on push and pull requests.
  • Content:
    • Triggers on push and pull requests to the master branch.
    • Validates changes in README.md using Python scripts.
    • Checks for duplicate links on push events.
  • Quality:
    • Efficient use of GitHub Actions with clear job steps.
    • Uses environment variables effectively.
    • Could include more detailed comments for clarity.

File: .github/workflows/validate_links.yml

  • Purpose: Workflow for validating links in the repository.
  • Content:
    • Scheduled to run daily using cron syntax.
    • Validates all links in README.md.
  • Quality:
    • Simple and focused on link validation.
    • Lacks error handling or reporting mechanisms for failed validations.

File: scripts/validate/links.py

  • Purpose: Script for validating links in markdown files.
  • Content:
    • Functions to find links, check duplicates, and verify link functionality.
    • Uses regex for link extraction and requests library for HTTP checks.
  • Quality:
    • Comprehensive with clear function definitions and docstrings.
    • Handles various exceptions during HTTP requests.
    • Could improve performance by parallelizing network requests.

File: scripts/tests/test_validate_links.py

  • Purpose: Unit tests for the link validation script.
  • Content:
    • Tests functions like find_links_in_text, check_duplicate_links, and has_cloudflare_protection.
    • Uses unittest framework with setup methods and test cases.
  • Quality:
    • Thorough coverage of key functionalities with assertions.
    • Includes edge cases and error handling scenarios.
    • Could be enhanced by testing more complex link patterns.

Overall, the repository is well-organized with clear guidelines and robust automation through GitHub Actions. The validation scripts are well-written, though there is room for optimization in performance. The contribution guide is comprehensive but could be improved with better navigation aids.

Report On: Fetch commits



Development Team and Recent Activity

Team Members and Activities

  • APILayer (apilayer-admin)

    • Recent activity includes updating the README.md file 16 days ago.
    • Previous updates to README.md were made 70 and 94 days ago.
    • Last significant feature update was 165 days ago, involving a merge that added Postman logos, removed dead links, and created sections for popular APIs and categories.
  • Kyle Calica (stcalica)

    • Contributed to the major update 212 days ago by adding Postman logos, removing dead links, and creating new sections.
  • Matheus Felipe (matheusfelipeog)

    • Active in removing broken APIs and updating links around 940 days ago.
    • Added several APIs across different categories such as Video, Government, Text Analysis, etc.
  • Zaldy Pagaduan Jr. (zopagaduanjr)

    • Added PRC Exam Schedule to Government category around 940 days ago.
  • FayeNichols

    • Added APIs related to Text Analysis and Geocoding around 940 days ago.
  • Diego Parrilla (diegoparrilla)

    • Added Threat Jammer to Security category around 944 days ago.
  • Arne Stittrich (Stitti)

    • Added MFaaS to Video category around 944 days ago.
  • S.G. Sudhakar (sudhakar76)

    • Added WhatJobs to Jobs category around 944 days ago.
  • Yann Bertrand (yannbertrand)

    • Reverted several commits related to README.md updates around 945 days ago.

Patterns, Themes, and Conclusions

  • Maintenance Focus: The recent activities primarily focus on maintaining the repository by updating the README.md file and ensuring the accuracy of API links.

  • Collaboration: There is evidence of collaboration among team members for significant updates, such as the addition of new sections and removal of dead links.

  • Long-term Inactivity: Many contributors have not been active recently, with most substantial contributions occurring over a year ago.

  • Community Contributions: The repository benefits from community contributions, as seen in the diverse range of APIs added by different contributors.

Overall, the development team has been focused on maintaining the quality and relevance of the API list through periodic updates and community collaboration.