For devs & agents · no signup to try
Read-only replicas (REST + GraphQL), already loaded with one deep, believable data set. Nothing real connected, so there's nothing real to leak or break.
What you skip
What you get
Repositories, issues, users, teams, commits, channel threads — all pre-populated and internally consistent.
The same people, PRs, issues and threads on every host we serve, with matching SHAs — so an integration that spans tools lines up.
Pinned snapshots regenerate byte-identically, so CI never flakes on the data and agent evals replay exactly.
Exercise the exact transport your integration uses today. Same data, provider-shaped semantics.
01 / Try it — no signup
curl https://gh.sandboxapis.dev/repos/olympus-labs/parthenon{
"id": 273073411,
"node_id": "UmVwb3NpdG9yeToyNzMwNzM0MTE",
"name": "parthenon",
"full_name": "olympus-labs/parthenon",
"private": true,
"description": "Monorepo for the Olympus Labs developer platform — the temple everything is built on.",
"default_branch": "main",
"language": "TypeScript",
"stargazers_count": 0,
"open_issues_count": 37,
"topics": [
"developer-tools",
"platform",
"typescript",
"monorepo"
],
"created_at": "2026-04-26T17:20:00Z",
"pushed_at": "2026-04-26T17:20:00Z",
"visibility": "private"
}…AND THIS COMES BACK. Real, provider-shaped JSON in <1s, with provider-conventional rate-limit headers showing the anonymous quota.
02 / The catalog
Providers
21
Across 7 categories, each on its own hostname, all telling one story.
Read surfaces
3,377
REST endpoints, GraphQL entities and git-transport routes in the coverage manifest — 2,033 served and verified today, the rest answering with an explicit coverage error.
Pinned snapshots
127
Frozen, byte-reproducible universes on their own hosts, so CI never flakes on the data.
2 categories are listed above with nothing in them yet — they are the lanes the provider-expansion program opens next, and they are named rather than hidden so this page reports what we do not serve as plainly as what we do.
03 / Adoption is a base-URL swap
import { Octokit } from "@octokit/rest";
// The only change: point baseUrl at SandboxAPIs.
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"Or stay anonymous at 60 req/hour. A free key raises that to 600 req/hour, burstable in a fixed hourly window and reported in the rate-limit headers your client already reads.
Point your client's base URL at the host you need. 7 categories — git host, issue tracker, AI telemetry, messaging, CI/CD, observability, CRM/support — all serve the same data set, and your auth, SDK and client code stay exactly as-is.
Exercise the happy path and the weird path against one deep, coherent data set that behaves like production — with nothing real connected.
05 / Look around
06 / Pricing
Every provider is served at every tier — a paid plan buys headroom, never an endpoint. Anonymous access stays free at 60 req/hour forever, and paid starts at $5/month for one developer.