GitHub quickstart

Everything you need for your first call is on this screen.

Base URL

Point your GitHub client at https://gh.sandboxapis.dev. Paths, JSON, headers, and status codes mirror api.github.com.

shell
curl https://gh.sandboxapis.dev/repos/olympus-labs/parthenon

Drop in your client

The only change is the base URL — Octokit and everything built on it work unmodified.

javascript
import { Octokit } from "@octokit/rest";

const octokit = new Octokit({ baseUrl: "https://gh.sandboxapis.dev" });

const { data } = await octokit.repos.get({ owner: "olympus-labs", repo: "parthenon" });
console.log(data.full_name);        // "olympus-labs/parthenon"

const pulls = await octokit.pulls.list({ owner: "olympus-labs", repo: "parthenon", state: "all" });

A real response

This is live from the universe — every reference (owner, branches, commits) resolves.

json — GET /repos/olympus-labs/parthenon
{
  "id": 273073411,
  "node_id": "UmVwb3NpdG9yeToyNzMwNzM0MTE",
  "name": "parthenon",
  "full_name": "olympus-labs/parthenon",
  "owner": {
    "login": "olympus-labs",
    "id": 674901807,
    "node_id": "T3JnYW5pemF0aW9uOjY3NDkwMTgwNw",
    "avatar_url": "http://gh.internal/avatars/u/674901807?v=4",
    "gravatar_id": "",
    "url": "http://gh.internal/users/olympus-labs",
    "html_url": "http://gh.internal/olympus-labs",
    "followers_url": "http://gh.internal/users/olympus-labs/followers",
    "following_url": "http://gh.internal/users/olympus-labs/following{/other_user}",
    "gists_url": "http://gh.internal/users/olympus-labs/gists{/gist_id}",
    "starred_url": "http://gh.internal/users/olympus-labs/starred{/owner}{/repo}",
    "subscriptions_url": "http://gh.internal/users/olympus-labs/subscriptions",
    "organizations_url": "http://gh.internal/users/olympus-labs/orgs",
    "repos_url": "http://gh.internal/users/olympus-labs/repos",
    "events_url": "http://gh.internal/users/olympus-labs/events{/privacy}",
    "received_events_url": "http://gh.internal/users/olympus-labs/received_events",
    "type": "Organization",
    "site_admin": false
  },
  "private": true,
  "description": "Monorepo for the Olympus Labs developer platform — the temple everything is built on.",
  "fork": false,
  "url": "http://gh.internal/repos/olympus-labs/parthenon",
  "html_url": "http://gh.internal/olympus-labs/parthenon",
  "archive_url": "http://gh.internal/repos/olympus-labs/parthenon/{archive_format}{/ref}",
  "assignees_url": "http://gh.internal/repos/olympus-labs/parthenon/assignees{/user}",
  "blobs_url": "http://gh.internal/repos/olympus-labs/parthenon/git/blobs{/sha}",
  "branches_url": "http://gh.internal/repos/olympus-labs/parthenon/branches{/branch}",
  "collaborators_url": "http://gh.internal/repos/olympus-labs/parthenon/collaborators{/collaborator}",
  "comments_url": "http://gh.internal/repos/olympus-labs/parthenon/comments{/number}",
  "commits_url": "http://gh.internal/repos/olympus-labs/parthenon/commits{/sha}",
  "compare_url": "http://gh.internal/repos/olympus-labs/parthenon/compare/{base}...{head}",
  "contents_url": "http://gh.internal/repos/olympus-labs/parthenon/contents/{+path}",
  "contributors_url": "http://gh.internal/repos/olympus-labs/parthenon/contributors",
  "deployments_url": "http://gh.internal/repos/olympus-labs/parthenon/deployments",
  "downloads_url": "http://gh.internal/repos/olympus-labs/parthenon/downloads",
  "events_url": "http://gh.internal/repos/olympus-labs/parthenon/events",
  "forks_url": "http://gh.internal/repos/olympus-labs/parthenon/forks",
  "git_commits_url": "http://gh.internal/repos/olympus-labs/parthenon/git/commits{/sha}",
  "git_refs_url": "http://gh.internal/repos/olympus-labs/parthenon/git/refs{/sha}",
  "git_tags_url": "http://gh.internal/repos/olympus-labs/parthenon/git/tags{/sha}",
  "git_url": "git://gh.internal/olympus-labs/parthenon.git",
  "hooks_url": "http://gh.internal/repos/olympus-labs/parthenon/hooks",
  "issue_comment_url": "http://gh.internal/repos/olympus-labs/parthenon/issues/comments{/number}",
  "issue_events_url": "http://gh.internal/repos/olympus-labs/parthenon/issues/events{/number}",
  "issues_url": "http://gh.internal/repos/olympus-labs/parthenon/issues{/number}",
  "keys_url": "http://gh.internal/repos/olympus-labs/parthenon/keys{/key_id}",
  "labels_url": "http://gh.internal/repos/olympus-labs/parthenon/labels{/name}",
  "languages_url": "http://gh.internal/repos/olympus-labs/parthenon/languages",
  "merges_url": "http://gh.internal/repos/olympus-labs/parthenon/merges",
  "milestones_url": "http://gh.internal/repos/olympus-labs/parthenon/milestones{/number}",
  "notifications_url": "http://gh.internal/repos/olympus-labs/parthenon/notifications{?since,all,participating}",
  "pulls_url": "http://gh.internal/repos/olympus-labs/parthenon/pulls{/number}",
  "releases_url": "http://gh.internal/repos/olympus-labs/parthenon/releases{/id}",
  "ssh_url": "git@gh.internal:olympus-labs/parthenon.git",
  "stargazers_url": "http://gh.internal/repos/olympus-labs/parthenon/stargazers",
  "statuses_url": "http://gh.internal/repos/olympus-labs/parthenon/statuses/{sha}",
  "subscribers_url": "http://gh.internal/repos/olympus-labs/parthenon/subscribers",
  "subscription_url": "http://gh.internal/repos/olympus-labs/parthenon/subscription",
  "tags_url": "http://gh.internal/repos/olympus-labs/parthenon/tags",
  "teams_url": "http://gh.internal/repos/olympus-labs/parthenon/teams",
  "trees_url": "http://gh.internal/repos/olympus-labs/parthenon/git/trees{/sha}",
  "clone_url": "http://gh.internal/olympus-labs/parthenon.git",
  "svn_url": "http://gh.internal/olympus-labs/parthenon",
  "homepage": null,
  "language": "TypeScript",
  "forks_count": 0,
  "forks": 0,
  "stargazers_count": 0,
  "watchers_count": 0,
  "watchers": 0,
  "size": 4096,
  "default_branch": "main",
  "open_issues_count": 6,
  "open_issues": 6,
  "is_template": false,
  "topics": [
    "developer-tools",
    "platform",
    "typescript",
    "monorepo"
  ],
  "has_issues": true,
  "has_projects": true,
  "has_wiki": false,
  "has_pages": false,
  "has_downloads": true,
  "has_discussions": false,
  "archived": false,
  "disabled": false,
  "visibility": "private",
  "mirror_url": null,
  "license": {
    "key": "mit",
    "name": "MIT License",
    "spdx_id": "MIT",
    "url": "http://gh.internal/licenses/mit",
    "node_id": "MDc6TGljZW5zZTEz"
  },
  "allow_forking": true,
  "web_commit_signoff_required": false,
  "pushed_at": "2026-06-25T17:20:00Z",
  "created_at": "2026-06-25T17:20:00Z",
  "updated_at": "2026-06-25T17:20:00Z",
  "network_count": 0,
  "subscribers_count": 0
}

Pin a snapshot for CI

Same env-var swap, a *.snap. host — the universe regenerates byte-identically on every request, so pinned tests never drift.

shell
# reproducible in CI
export GITHUB_API_URL=https://gh-2026-03.snap.sandboxapis.dev