M. Revi Ramadhan

M. Revi Ramadhan

Software EngineerSoftware Engineer

Based in Indonesia with 4+ years of experience in software engineering. Have completed 20+ projects for clients worldwide.

API Documentation

Free GitHub API proxy + code playground. No GitHub token needed — just your API key.

Authentication

All endpoints require an API key. Include it in the request header:

x-api-key: your_api_key_here

How to get an API Key:

  1. Login at revy.my.id/profile
  2. Scroll to "API Authentication" section
  3. Your API key is auto-generated on first visit
  4. Copy and store it securely — full key is only shown once

Base URL

https://api.revy.my.id

GitHub API Proxy

Access GitHub API for free using the proxy. Supports user info, repos, search, orgs, gists, and rate limit.

GET/api/github

Pass path param to target a GitHub API endpoint.

Parameters

ParamRequiredDescription
pathYesGitHub API path (see examples below)
qNoSearch query (for search endpoints)
sortNoSort field (stars, updated, created, etc.)
per_pageNoResults per page (default: 30, max: 100)

Allowed Paths & Examples

user — Authenticated user info

GET https://api.revy.my.id/api/github?path=user

curl -H "x-api-key: YOUR_KEY" \
  "https://api.revy.my.id/api/github?path=user"

users/{username} — Public user profile

GET https://api.revy.my.id/api/github?path=user/revyfachryza

curl -H "x-api-key: YOUR_KEY" \
  "https://api.revy.my.id/api/github?path=user/revyfachryza"

user/repos — Authenticated user's repos

GET https://api.revy.my.id/api/github?path=user/repos&per_page=10

curl -H "x-api-key: YOUR_KEY" \
  "https://api.revy.my.id/api/github?path=user/repos&per_page=10"

users/{username}/repos — User's public repos

GET https://api.revy.my.id/api/github?path=user/revyfachryza/repos&sort=updated&per_page=5

search/repositories — Search repositories

GET https://api.revy.my.id/api/github?path=search/repositories&q=nextjs+typescript&sort=stars&per_page=10

curl -H "x-api-key: YOUR_KEY" \
  "https://api.revy.my.id/api/github?path=search/repositories&q=nextjs&sort=stars"

search/users — Search users

GET https://api.revy.my.id/api/github?path=search/users&q=revy

user/orgs — Authenticated user's organizations

GET https://api.revy.my.id/api/github?path=user/orgs

users/{username}/gists — User's gists

GET https://api.revy.my.id/api/github?path=user/revyfachryza/gists&per_page=5

rate_limit — Check API rate limit status

GET https://api.revy.my.id/api/github?path=rate_limit

Response Format

{
  "status": "ok",
  "data": { ... },
  "meta": {
    "path": "user/repos",
    "authenticated": true,
    "rateLimit": "59",
    "rateLimitReset": "1711929600"
  }
}

Code Playground

Execute code in Go, Rust, or PHP via sandboxed containers. No outbound network from sandbox.

POST/api/playground

Supported Languages

gorustphp

Request Body

{
  "lang": "go",
  "code": "package main\nimport \"fmt\"\nfunc main() { fmt.Println(\"Hello!\") }"
}

Example

curl -X POST https://api.revy.my.id/api/playground \
  -H "Content-Type: application/json" \
  -H "x-api-key: your_api_key_here" \
  -d '{"lang":"go","code":"package main\nimport \"fmt\"\nfunc main() { fmt.Println(\"Hello from Go!\") }"}'

Response

{
  "error": false,
  "output": "Hello from Go!"
}

Sandbox Features

JavaScript

Runs natively in your browser with real fetch and response.

Python

Real CPython via Pyodide (WebAssembly); requests patched to use browser network.

TypeScript

Transpiles to JS via official TS compiler, then runs natively.

cURL

Parses curl commands and executes via server proxy — no CORS restrictions.

Go / Rust / PHP

Compiles & runs via glot.io (server-side). No outbound network from sandbox.

Code Persistence

Your code stays until you hit Reset. Switching languages preserves your edits.

Error Responses

401 Unauthorized
{ "error": "API key required" }
{ "error": "Invalid API key" }
{ "error": "API key is inactive" }
{ "error": "API key expired" }
403 Forbidden
{ "error": "/secret-path not allowed. Use: user, users, repos, orgs, gists, search/repositories, search/users, search/code, search/issues, rate_limit" }
429 Too Many Requests
{ "error": "Rate limit exceeded" }

Rate Limits

Rate limits are enforced per API key on an hourly basis. The response includes GitHub's rate limit info in meta.rateLimit.

Support

Questions? Contact me through the contact form.