😀

OSS統計データの取得方法

2020/03/06に公開

はじめに

OSSなどの統計データを取得するAPIの使い方をまとめた。

API

GitHub

仕様書

GitHub REST API v3

実行例

コマンド
curl -s https://api.github.com/repos/octocat/Hello-World | jq
実行結果
{
    "id": 1296269,
    "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5",
    "name": "Hello-World",
    "full_name": "octocat/Hello-World",
    "private": false,
    "owner": {
        "login": "octocat",
        "id": 583231,
        "node_id": "MDQ6VXNlcjU4MzIzMQ==",
        "avatar_url": "https://avatars3.githubusercontent.com/u/583231?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/octocat",
        "html_url": "https://github.com/octocat",
        "followers_url": "https://api.github.com/users/octocat/followers",
        "following_url": "https://api.github.com/users/octocat/following{/other_user}",
        "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}",
        "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}",
        "subscriptions_url": "https://api.github.com/users/octocat/subscriptions",
        "organizations_url": "https://api.github.com/users/octocat/orgs",
        "repos_url": "https://api.github.com/users/octocat/repos",
        "events_url": "https://api.github.com/users/octocat/events{/privacy}",
        "received_events_url": "https://api.github.com/users/octocat/received_events",
        "type": "User",
        "site_admin": false
    },
    "html_url": "https://github.com/octocat/Hello-World",
    "description": "My first repository on GitHub!",
    "fork": false,
    "url": "https://api.github.com/repos/octocat/Hello-World",
    "forks_url": "https://api.github.com/repos/octocat/Hello-World/forks",
    "keys_url": "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}",
    "collaborators_url": "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}",
    "teams_url": "https://api.github.com/repos/octocat/Hello-World/teams",
    "hooks_url": "https://api.github.com/repos/octocat/Hello-World/hooks",
    "issue_events_url": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}",
    "events_url": "https://api.github.com/repos/octocat/Hello-World/events",
    "assignees_url": "https://api.github.com/repos/octocat/Hello-World/assignees{/user}",
    "branches_url": "https://api.github.com/repos/octocat/Hello-World/branches{/branch}",
    "tags_url": "https://api.github.com/repos/octocat/Hello-World/tags",
    "blobs_url": "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}",
    "git_tags_url": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}",
    "git_refs_url": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}",
    "trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}",
    "statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}",
    "languages_url": "https://api.github.com/repos/octocat/Hello-World/languages",
    "stargazers_url": "https://api.github.com/repos/octocat/Hello-World/stargazers",
    "contributors_url": "https://api.github.com/repos/octocat/Hello-World/contributors",
    "subscribers_url": "https://api.github.com/repos/octocat/Hello-World/subscribers",
    "subscription_url": "https://api.github.com/repos/octocat/Hello-World/subscription",
    "commits_url": "https://api.github.com/repos/octocat/Hello-World/commits{/sha}",
    "git_commits_url": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}",
    "comments_url": "https://api.github.com/repos/octocat/Hello-World/comments{/number}",
    "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}",
    "contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/{+path}",
    "compare_url": "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}",
    "merges_url": "https://api.github.com/repos/octocat/Hello-World/merges",
    "archive_url": "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}",
    "downloads_url": "https://api.github.com/repos/octocat/Hello-World/downloads",
    "issues_url": "https://api.github.com/repos/octocat/Hello-World/issues{/number}",
    "pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}",
    "milestones_url": "https://api.github.com/repos/octocat/Hello-World/milestones{/number}",
    "notifications_url": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}",
    "labels_url": "https://api.github.com/repos/octocat/Hello-World/labels{/name}",
    "releases_url": "https://api.github.com/repos/octocat/Hello-World/releases{/id}",
    "deployments_url": "https://api.github.com/repos/octocat/Hello-World/deployments",
    "created_at": "2011-01-26T19:01:12Z",
    "updated_at": "2020-03-07T01:15:12Z",
    "pushed_at": "2020-02-28T13:21:20Z",
    "git_url": "git://github.com/octocat/Hello-World.git",
    "ssh_url": "git@github.com:octocat/Hello-World.git",
    "clone_url": "https://github.com/octocat/Hello-World.git",
    "svn_url": "https://github.com/octocat/Hello-World",
    "homepage": "",
    "size": 1,
    "stargazers_count": 1530,
    "watchers_count": 1530,
    "language": null,
    "has_issues": true,
    "has_projects": true,
    "has_downloads": true,
    "has_wiki": true,
    "has_pages": false,
    "forks_count": 1406,
    "mirror_url": null,
    "archived": false,
    "disabled": false,
    "open_issues_count": 380,
    "license": null,
    "forks": 1406,
    "open_issues": 380,
    "watchers": 1530,
    "default_branch": "master",
    "temp_clone_token": null,
    "network_count": 1406,
    "subscribers_count": 1682
}

Docker

仕様書

Docker API

実行例

コマンド
curl -s https://hub.docker.com/v2/repositories/jenkins/jenkins/ | jq
実行結果
{
    "user": "jenkins",
    "name": "jenkins",
    "namespace": "jenkins",
    "repository_type": "image",
    "status": 1,
    "description": "The leading open source automation server",
    "is_private": false,
    "is_automated": false,
    "can_edit": false,
    "star_count": 1937,
    "pull_count": 194630068,
    "last_updated": "2020-03-08T02:58:17.921665Z",
    "is_migrated": false,
    "has_starred": true,
    "full_description": "## Jenkins Continuous Integration and Delivery server.\n\nThis is a fully functional Jenkins server, based on the weekly and LTS releases .\n\n![logo](http://jenkins-ci.org/sites/default/files/jenkins_logo.png)\n\n\n* To use the latest LTS: `docker pull jenkins/jenkins:lts`\n* To use the latest weekly: `docker pull jenkins/jenkins`\n* Lighter alpine based image also available\n\n\nRead [documentation](https://github.com/jenkinsci/docker/blob/master/README.md) for usage",
    "affiliation": null,
    "permissions": {
        "read": true,
        "write": false,
        "admin": false
    }
}

npm

仕様書

npm registry api

実行例

コマンド
curl -s http://registry.npmjs.com/jquery/3.4.1
実行結果
{
    "name": "jquery",
    "title": "jQuery",
    "description": "JavaScript library for DOM operations",
    "version": "3.4.1",
    "main": "dist/jquery.js",
    "homepage": "https://jquery.com",
    "author": {
        "name": "JS Foundation and other contributors",
        "url": "https://github.com/jquery/jquery/blob/3.4.1/AUTHORS.txt"
    },
    "repository": {
        "type": "git",
        "url": "git+https://github.com/jquery/jquery.git"
    },
    "keywords": [
        "jquery",
        "javascript",
        "browser",
        "library"
    ],
    "bugs": {
        "url": "https://github.com/jquery/jquery/issues"
    },
    "license": "MIT",
    "dependencies": {},
    "devDependencies": {
        "@babel/core": "7.3.3",
        "@babel/plugin-transform-for-of": "7.2.0",
        "commitplease": "3.2.0",
        "core-js": "2.6.5",
        "eslint-config-jquery": "1.0.1",
        "grunt": "1.0.3",
        "grunt-babel": "8.0.0",
        "grunt-cli": "1.3.2",
        "grunt-compare-size": "0.4.2",
        "grunt-contrib-uglify": "3.4.0",
        "grunt-contrib-watch": "1.1.0",
        "grunt-eslint": "21.0.0",
        "grunt-git-authors": "3.2.0",
        "grunt-jsonlint": "1.1.0",
        "grunt-karma": "3.0.1",
        "grunt-newer": "1.3.0",
        "grunt-npmcopy": "0.1.0",
        "gzip-js": "0.3.2",
        "husky": "1.3.1",
        "insight": "0.10.1",
        "jsdom": "13.2.0",
        "karma": "4.0.1",
        "karma-browserstack-launcher": "1.4.0",
        "karma-chrome-launcher": "2.2.0",
        "karma-firefox-launcher": "1.1.0",
        "karma-ie-launcher": "1.0.0",
        "karma-jsdom-launcher": "7.1.0",
        "karma-qunit": "3.0.0",
        "load-grunt-tasks": "4.0.0",
        "native-promise-only": "0.8.1",
        "promises-aplus-tests": "2.1.2",
        "q": "1.5.1",
        "qunit": "2.9.2",
        "raw-body": "2.3.3",
        "requirejs": "2.3.6",
        "sinon": "2.3.7",
        "sizzle": "2.3.4",
        "strip-json-comments": "2.0.1",
        "testswarm": "1.1.0",
        "uglify-js": "3.4.7"
    },
    "scripts": {
        "build": "npm install && grunt",
        "start": "grunt watch",
        "test:browserless": "grunt && grunt test:slow",
        "test:browser": "grunt && grunt karma:main",
        "test": "grunt && grunt test:slow && grunt karma:main",
        "jenkins": "npm run test:browserless"
    },
    "commitplease": {
        "nohook": true,
        "components": [
            "Docs",
            "Tests",
            "Build",
            "Support",
            "Release",
            "Core",
            "Ajax",
            "Attributes",
            "Callbacks",
            "CSS",
            "Data",
            "Deferred",
            "Deprecated",
            "Dimensions",
            "Effects",
            "Event",
            "Manipulation",
            "Offset",
            "Queue",
            "Selector",
            "Serialize",
            "Traversing",
            "Wrap"
        ],
        "markerPattern": "^((clos|fix|resolv)(e[sd]|ing))|^(refs?)",
        "ticketPattern": "^((Closes|Fixes) ([a-zA-Z]{2,}-)[0-9]+)|^(Refs? [^#])"
    },
    "husky": {
        "hooks": {
            "commit-msg": "node node_modules/commitplease",
            "pre-commit": "grunt lint:newer qunit_fixture"
        }
    },
    "gitHead": "15bc73803f76bc53b654b9fdbbbc096f56d7c03d",
    "_id": "jquery@3.4.1",
    "_npmVersion": "6.4.1",
    "_nodeVersion": "8.16.0",
    "_npmUser": {
        "name": "timmywil",
        "email": "4timmywil@gmail.com"
    },
    "dist": {
        "integrity": "sha512-36+AdBzCL+y6qjw5Tx7HgzeGCzC81MDDgaUP8ld2zhx58HdqXGoBd+tHdrBMiyjGQs0Hxs/MLZTu/eHNJJuWPw==",
        "shasum": "714f1f8d9dde4bdfa55764ba37ef214630d80ef2",
        "tarball": "https://registry.npmjs.org/jquery/-/jquery-3.4.1.tgz",
        "fileCount": 125,
        "unpackedSize": 1295318,
        "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcyg1rCRA9TVsSAnZWagAAeOEP/2+ykv0pLlPLU8YLeOoS\nUTBRx0TwY8fcGwZfsxB2JERZfrQQM7l1l3aS7Rb5XYmL4rlHrnGq571H2ogF\ntuEPsLjSGbM+3eM6Y1MRCTXn4cp3KXVKU+oBuFrA6gSQkhPB9nYjaf0jUl5L\nVYMjB6CiqB5Pxy0j3hCrT7iMkoxY6b+V/3rN7HqRj1pL1N71QLrVyYv9AiHU\nuXaKlsI4xWg1RDrt4+Ef8xe4n5bwfWxn8hNIBwlldvexknA+FGz/LY42FOl7\n9alWTyfJMmK15ggMD02W8iCLTaUxC4Hz16ZeoGnnOZkPaZCSZEpAHCJSh5BV\n9J7GGhpiEtlQRQQbhRYl2nAb5Z02APUIJ7tQt1JYAtb1WJNJgOjDITvFqpxj\nbOc47BP+7pcWF4rqWviIjWts4mU3w0Yl+ZUaTSB6lOjBSH/ONC4CspyfKlQg\nu1Kcrk8skTT4fDNQcXLTDdXXCssqrU8nRtzKarLjuBvd0Cs0ZPSZqEJQG6OA\nJ7zdqnqwzfRrfbQwWi7OozkjSrnS2mLwFTxiuAsO86AgzwKYZQrMwEV89LXQ\n8cRPhH1jvPgh2RcLraKTuQsSZ2o/h+mrq8lhIDNBVJXmUZKNRSW9GNoD8QEY\na52Ygcu8lCFbtJ1gUvHwOzHaRmNqZb7dwMGV5zbTMSFViGSN1qabM8jNOwl4\nCp1s\r\n=n88a\r\n-----END PGP SIGNATURE-----\r\n"
    },
    "maintainers": [{
            "name": "dmethvin",
            "email": "dave.methvin@gmail.com"
        },
        {
            "name": "mgol",
            "email": "m.goleb@gmail.com"
        },
        {
            "name": "scott.gonzalez",
            "email": "scott.gonzalez@gmail.com"
        },
        {
            "name": "timmywil",
            "email": "4timmywil@gmail.com"
        }
    ],
    "directories": {},
    "_npmOperationalInternal": {
        "host": "s3://npm-registry-packages",
        "tmp": "tmp/jquery_3.4.1_1556745578228_0.09546423386966585"
    },
    "_hasShrinkwrap": false
}

npmダウンロード件数

仕様書

npm download counts api

実行例

コマンド
curl https://api.npmjs.org/downloads/point/last-year/jquery | jq
実行結果
{
    "downloads": 145671916,
    "start": "2019-03-07",
    "end": "2020-03-05",
    "package": "jquery"
}

pip

仕様書

pip JSON API

実行例

コマンド
curl -s https://pypi.org/pypi/sampleproject/json | jq
実行結果
{
    "info": {
        "author": "The Python Packaging Authority",
        "author_email": "pypa-dev@googlegroups.com",
        "bugtrack_url": null,
        "classifiers": [
            "Development Status :: 3 - Alpha",
            "Intended Audience :: Developers",
            "License :: OSI Approved :: MIT License",
            "Programming Language :: Python :: 2",
            "Programming Language :: Python :: 2.7",
            "Programming Language :: Python :: 3",
            "Programming Language :: Python :: 3.5",
            "Programming Language :: Python :: 3.6",
            "Programming Language :: Python :: 3.7",
            "Programming Language :: Python :: 3.8",
            "Topic :: Software Development :: Build Tools"
        ],
        "description": "# A sample Python project\n\nA sample project that exists as an aid to the [Python Packaging User\nGuide][packaging guide]'s [Tutorial on Packaging and Distributing\nProjects][distribution tutorial].\n\nThis project does not aim to cover best practices for Python project\ndevelopment as a whole. For example, it does not provide guidance or tool\nrecommendations for version control, documentation, or testing.\n\n[The source for this project is available here][src].\n\nMost of the configuration for a Python project is done in the `setup.py` file,\nan example of which is included in this project. You should edit this file\naccordingly to adapt this sample project to your needs.\n\n----\n\nThis is the README file for the project.\n\nThe file should use UTF-8 encoding and can be written using\n[reStructuredText][rst] or [markdown][md use] with the appropriate [key set][md\nuse]. It will be used to generate the project webpage on PyPI and will be\ndisplayed as the project homepage on common code-hosting services, and should be\nwritten for that purpose.\n\nTypical contents for this file would include an overview of the project, basic\nusage examples, etc. Generally, including the project changelog in here is not a\ngood idea, although a simple “What's New” section for the most recent version\nmay be appropriate.\n\n[packaging guide]: https://packaging.python.org\n[distribution tutorial]: https://packaging.python.org/tutorials/packaging-projects/\n[src]: https://github.com/pypa/sampleproject\n[rst]: http://docutils.sourceforge.net/rst.html\n[md]: https://tools.ietf.org/html/rfc7764#section-3.5 \"CommonMark variant\"\n[md use]: https://packaging.python.org/specifications/core-metadata/#description-content-type-optional\n\n\n",
        "description_content_type": "text/markdown",
        "docs_url": null,
        "download_url": "",
        "downloads": {
            "last_day": -1,
            "last_month": -1,
            "last_week": -1
        },
        "home_page": "https://github.com/pypa/sampleproject",
        "keywords": "sample setuptools development",
        "license": "",
        "maintainer": "",
        "maintainer_email": "",
        "name": "sampleproject",
        "package_url": "https://pypi.org/project/sampleproject/",
        "platform": "",
        "project_url": "https://pypi.org/project/sampleproject/",
        "project_urls": {
            "Bug Reports": "https://github.com/pypa/sampleproject/issues",
            "Funding": "https://donate.pypi.org",
            "Homepage": "https://github.com/pypa/sampleproject",
            "Say Thanks!": "http://saythanks.io/to/example",
            "Source": "https://github.com/pypa/sampleproject/"
        },
        "release_url": "https://pypi.org/project/sampleproject/1.3.1/",
        "requires_dist": [
            "peppercorn",
            "check-manifest ; extra == 'dev'",
            "coverage ; extra == 'test'"
        ],
        "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4",
        "summary": "A sample Python project",
        "version": "1.3.1"
    },
    "last_serial": 6077467,
    "releases": {
        "1.0": [],
        "1.2.0": [{
                "comment_text": "",
                "digests": {
                    "md5": "bab8eb22e6710eddae3c6c7ac3453bd9",
                    "sha256": "7a7a8b91086deccc54cac8d631e33f6a0e232ce5775c6be3dc44f86c2154019d"
                },
                "downloads": -1,
                "filename": "sampleproject-1.2.0-py2.py3-none-any.whl",
                "has_sig": false,
                "md5_digest": "bab8eb22e6710eddae3c6c7ac3453bd9",
                "packagetype": "bdist_wheel",
                "python_version": "2.7",
                "requires_python": null,
                "size": 3795,
                "upload_time": "2015-06-14T14:38:05",
                "upload_time_iso_8601": "2015-06-14T14:38:05.875222Z",
                "url": "https://files.pythonhosted.org/packages/30/52/547eb3719d0e872bdd6fe3ab60cef92596f95262e925e1943f68f840df88/sampleproject-1.2.0-py2.py3-none-any.whl"
            },
            {
                "comment_text": "",
                "digests": {
                    "md5": "d3bd605f932b3fb6e91f49be2d6f9479",
                    "sha256": "3427a8a5dd0c1e176da48a44efb410875b3973bd9843403a0997e4187c408dc1"
                },
                "downloads": -1,
                "filename": "sampleproject-1.2.0.tar.gz",
                "has_sig": false,
                "md5_digest": "d3bd605f932b3fb6e91f49be2d6f9479",
                "packagetype": "sdist",
                "python_version": "source",
                "requires_python": null,
                "size": 3148,
                "upload_time": "2015-06-14T14:37:56",
                "upload_time_iso_8601": "2015-06-14T14:37:56.383366Z",
                "url": "https://files.pythonhosted.org/packages/eb/45/79be82bdeafcecb9dca474cad4003e32ef8e4a0dec6abbd4145ccb02abe1/sampleproject-1.2.0.tar.gz"
            }
        ],
        "1.3.0": [{
                "comment_text": "",
                "digests": {
                    "md5": "de98c6cdd6962d67e7368d2f9d9fa934",
                    "sha256": "ab855ea282734dd216e8be4a42899a6fa8d2ce8f65b41c6379b69c1f804d6b1c"
                },
                "downloads": -1,
                "filename": "sampleproject-1.3.0-py2.py3-none-any.whl",
                "has_sig": false,
                "md5_digest": "de98c6cdd6962d67e7368d2f9d9fa934",
                "packagetype": "bdist_wheel",
                "python_version": "py2.py3",
                "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, <4",
                "size": 3988,
                "upload_time": "2019-05-28T20:23:12",
                "upload_time_iso_8601": "2019-05-28T20:23:12.721927Z",
                "url": "https://files.pythonhosted.org/packages/a1/fd/3564a5176430eac106c27eff4de50b58fc916f5083782062cea3141acfaa/sampleproject-1.3.0-py2.py3-none-any.whl"
            },
            {
                "comment_text": "",
                "digests": {
                    "md5": "3dd8fce5e4e2726f343de4385ec8d479",
                    "sha256": "ee67ab9c8b445767203e7d9523d029287f737c60524a3c0e0c36cc504e0f24d7"
                },
                "downloads": -1,
                "filename": "sampleproject-1.3.0.tar.gz",
                "has_sig": false,
                "md5_digest": "3dd8fce5e4e2726f343de4385ec8d479",
                "packagetype": "sdist",
                "python_version": "source",
                "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, <4",
                "size": 5913,
                "upload_time": "2019-05-28T20:23:13",
                "upload_time_iso_8601": "2019-05-28T20:23:13.940627Z",
                "url": "https://files.pythonhosted.org/packages/a6/aa/0090d487d204f5de30035c00f6c71b53ec7f613138d8653eebac50f47f45/sampleproject-1.3.0.tar.gz"
            }
        ],
        "1.3.1": [{
                "comment_text": "",
                "digests": {
                    "md5": "0cf94b45deeeb876f1619d9c27cff120",
                    "sha256": "26c9172e08244873b0e09c574a229bf2c251c67723a05e08fd3ec0c5ee423796"
                },
                "downloads": -1,
                "filename": "sampleproject-1.3.1-py2.py3-none-any.whl",
                "has_sig": false,
                "md5_digest": "0cf94b45deeeb876f1619d9c27cff120",
                "packagetype": "bdist_wheel",
                "python_version": "py2.py3",
                "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4",
                "size": 3991,
                "upload_time": "2019-11-04T20:36:25",
                "upload_time_iso_8601": "2019-11-04T20:36:25.256613Z",
                "url": "https://files.pythonhosted.org/packages/a4/95/7398f8a08a0e83dc39dd4cbada9d22c65bcbb41c36626b2c54a1db83c710/sampleproject-1.3.1-py2.py3-none-any.whl"
            },
            {
                "comment_text": "",
                "digests": {
                    "md5": "76ddb449e0e9ef3f55b880f566fcb700",
                    "sha256": "3593ca2f1e057279d70d6144b14472fb28035b1da213dde60906b703d6f82c55"
                },
                "downloads": -1,
                "filename": "sampleproject-1.3.1.tar.gz",
                "has_sig": false,
                "md5_digest": "76ddb449e0e9ef3f55b880f566fcb700",
                "packagetype": "sdist",
                "python_version": "source",
                "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4",
                "size": 5920,
                "upload_time": "2019-11-04T20:36:26",
                "upload_time_iso_8601": "2019-11-04T20:36:26.798325Z",
                "url": "https://files.pythonhosted.org/packages/6f/5b/2f3fe94e1c02816fe23c7ceee5292fb186912929e1972eee7fb729fa27af/sampleproject-1.3.1.tar.gz"
            }
        ]
    },
    "urls": [{
            "comment_text": "",
            "digests": {
                "md5": "0cf94b45deeeb876f1619d9c27cff120",
                "sha256": "26c9172e08244873b0e09c574a229bf2c251c67723a05e08fd3ec0c5ee423796"
            },
            "downloads": -1,
            "filename": "sampleproject-1.3.1-py2.py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "0cf94b45deeeb876f1619d9c27cff120",
            "packagetype": "bdist_wheel",
            "python_version": "py2.py3",
            "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4",
            "size": 3991,
            "upload_time": "2019-11-04T20:36:25",
            "upload_time_iso_8601": "2019-11-04T20:36:25.256613Z",
            "url": "https://files.pythonhosted.org/packages/a4/95/7398f8a08a0e83dc39dd4cbada9d22c65bcbb41c36626b2c54a1db83c710/sampleproject-1.3.1-py2.py3-none-any.whl"
        },
        {
            "comment_text": "",
            "digests": {
                "md5": "76ddb449e0e9ef3f55b880f566fcb700",
                "sha256": "3593ca2f1e057279d70d6144b14472fb28035b1da213dde60906b703d6f82c55"
            },
            "downloads": -1,
            "filename": "sampleproject-1.3.1.tar.gz",
            "has_sig": false,
            "md5_digest": "76ddb449e0e9ef3f55b880f566fcb700",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4",
            "size": 5920,
            "upload_time": "2019-11-04T20:36:26",
            "upload_time_iso_8601": "2019-11-04T20:36:26.798325Z",
            "url": "https://files.pythonhosted.org/packages/6f/5b/2f3fe94e1c02816fe23c7ceee5292fb186912929e1972eee7fb729fa27af/sampleproject-1.3.1.tar.gz"
        }
    ]
}

Qiita

仕様書

Qiita API v2ドキュメント

実行結果

コマンド
curl -s https://qiita.com/api/v2/tags/amqp | jq
実行結果
{
  "followers_count": 4,
  "icon_url": null,
  "id": "amqp",
  "items_count": 15
}

Discussion