API Anything

GitHub APIunofficial

Public GitHub repository search, repository details, files, directories, releases, user profiles, issues and pull request lists, from github.com's own pages.

all live 12 operations, checked by the installs that call them.

Seeded by the maintainers.

Try it

Set up API Anything for your agents:

npx -y api-anything setup

Then ask your agent, which finds this site by itself, or call it from a shell:

api-anything pull github
api-anything call github getFile owner=nodejs repo=node ref=HEAD path=README.md

Operations

OperationMethodLoginWritesStatus
getFile(owner, repo, ref?, path)

Read a public text file at a Git ref, returned as an array of lines.

GET no no Live0 confirmations · success unknown; last worked unknown
getIssue(owner, repo, number) -> number, title, state, author, createdAt, body, labels, comments

Read the main post of a public issue, without its comment thread.

GET no no Live0 confirmations · success unknown; last worked unknown
getLanguages(owner, repo) -> name, percentage

List the languages and percentages displayed in a public repository sidebar.

GET no no Live0 confirmations · success unknown; last worked unknown
getRepo(owner, repo) -> owner, name, description, website, topics, stars, watchers, forks, license, archived, fork, releases, defaultBranch

One repository's About box, from its github.com page: owner, name, description, website, topics, stars, watchers, forks, license, archived, fork, releases and defaultBranch.

GET no no Live0 confirmations · success unknown; last worked unknown
getUser(username) -> name, bio, company, location, website, followers, following, publicRepos, pinnedRepos

Read a public GitHub profile as shown on its overview page.

GET no no Live0 confirmations · success unknown; last worked unknown
listDirectory(owner, repo, ref?, path) -> name, path, type

List entries in a public repository directory at a Git ref: name, path and type.

GET no no Live0 confirmations · success unknown; last worked unknown
listIssues(owner, repo, query?) -> number, title, state, author, comments, labels, createdAt, updatedAt, url

A repository's issues list on github.com, filtered by GitHub's issue search (page 1, up to 25): number, title, state, author, comments, labels, createdAt, updatedAt and url.

GET no no Live0 confirmations · success unknown; last worked unknown
listPullRequests(owner, repo, query?) -> number, title, state, author, labels, createdAt, url

A repository's pull requests from GitHub's issue search, page 1: number, title, state, author, labels, createdAt and url.

GET no no Live0 confirmations · success unknown; last worked unknown
listReleases(owner, repo) -> tag, name, publishedAt, status, summary

List page 1 of public repository releases with tag, name, publication date, status and a short body summary.

GET no no Live0 confirmations · success unknown; last worked unknown
searchRepos(q) -> owner, name, description, stars, language, topics, updatedAt, archived

Search public repositories, from github.com/search (type: repositories, best match, page 1, up to 10): owner, name, description, stars, language, topics, updatedAt and archived.

GET no no Live0 confirmations · success unknown; last worked unknown
trendingDevelopers(since?) -> name, username, popularRepo

List trending developers and their popular repository for a period.

GET no no Live0 confirmations · success unknown; last worked unknown
trendingRepos(language?, since?) -> repo, description, language, stars, forks, gained

List trending repositories for a period and language.

GET no no Live0 confirmations · success unknown; last worked unknown

Notes

No account is needed for public repositories. A missing or private repo, path, issue or user (an organization too, for getUser) answers class: "input". Unset fields are absent.

  • searchRepos: page 1 (10), best match, not stars; <em> marks matched words in description. Logged-out search is rate-limited: space calls out.
  • getRepo follows renames (facebook/react -> react/react); an unrecognized license is "Other"; releases counts published releases, not tags.
  • listIssues / listPullRequests: page 1 (25), newest first. query defaults to is:issue state:open / is:pr is:open; pass a whole filter keeping is:issue / is:pr. state is GitHub's enum (REPO_ISSUE_STATE_CLOSED, REPO_ISSUE_PULL_REQUEST_STATE_MERGED...).
  • listDirectory takes a nonempty path (not the root); getFile returns the blob's lines (none for binary or large files; check truncated). Both take ref, default HEAD (default branch).
  • listReleases: page 1 (10); status is a label (Latest, Pre-release), not a boolean.
  • getUser: one item; counts are display strings (330k); pinned repos are names only.
  • getIssue: the main post in Markdown and the comment count, not the thread.
  • Trending: since defaults to daily, empty language means all; counts are display strings.
  • getLanguages: GitHub's rounded percentages, with an Other group when present.

About these operations

Each operation is a request learned from GitHub's own web pages: API Anything replays it over plain HTTP and falls back to a browser when it must. Read them as JSON.

← All shared sites