{"id":22599473,"url":"https://github.com/stewartpark/whalebox","last_synced_at":"2026-04-27T12:02:29.266Z","repository":{"id":139970912,"uuid":"225001716","full_name":"stewartpark/whalebox","owner":"stewartpark","description":"🐋 whalebox lets you run untrusted code easily via simple HTTP APIs.","archived":false,"fork":false,"pushed_at":"2019-11-30T11:44:10.000Z","size":5,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-28T19:50:01.367Z","etag":null,"topics":["api","docker","http","microservice","sandbox","untrusted-code"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/stewartpark.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-11-30T11:26:01.000Z","updated_at":"2019-11-30T11:44:12.000Z","dependencies_parsed_at":null,"dependency_job_id":"f906b6fd-630b-4b07-bc81-0e214dc15703","html_url":"https://github.com/stewartpark/whalebox","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/stewartpark/whalebox","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stewartpark%2Fwhalebox","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stewartpark%2Fwhalebox/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stewartpark%2Fwhalebox/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stewartpark%2Fwhalebox/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stewartpark","download_url":"https://codeload.github.com/stewartpark/whalebox/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stewartpark%2Fwhalebox/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32335297,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-26T23:26:28.701Z","status":"online","status_checked_at":"2026-04-27T02:00:06.769Z","response_time":128,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","docker","http","microservice","sandbox","untrusted-code"],"created_at":"2024-12-08T11:09:39.244Z","updated_at":"2026-04-27T12:02:29.261Z","avatar_url":"https://github.com/stewartpark.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# whalebox  [![](https://images.microbadger.com/badges/version/stewartpark/whalebox.svg)](https://microbadger.com/images/stewartpark/whalebox \"Get your own version badge on microbadger.com\") [![](https://images.microbadger.com/badges/image/stewartpark/whalebox.svg)](https://microbadger.com/images/stewartpark/whalebox \"Get your own image badge on microbadger.com\")\n\nwhalebox lets you run untrusted code easily via simple HTTP APIs.\n\nNote: this is pre-alpha quality software. Use at your own peril.\n\n\n## How to run locally\n\n```bash\n$ docker-compose up\n```\n\n\n## Usage\n\n```bash\n# Run code\n$ curl -XPOST -H'Content-Type: application/json' http://localhost:5000/ -d'{\"runtime\": \"ruby\", \"code\": \"print(\\\"Hello, world\\\")\"}'\n{\"id\":\"5b99000314\",\"labels\":{\"whalebox.created\":\"true\",\"whalebox.runtime\":\"ruby\"},\"status\":\"exited\"}\n\n# Get stdout\n$ curl http://localhost:5000/5b99000314\nHello, world\n\n# If your application expects stdin, you can write to stdin as well\n$ curl -XPOST 'http://localhost:5000/5b99000314?nl=1' -d'hello'\n\n# List containers\n$ curl http://localhost:5000/\n{\"containers\":[{\"id\":\"5b99000314\",\"labels\":{\"whalebox.created\":\"true\",\"whalebox.runtime\":\"ruby\"},\"status\":\"exited\"},{\"id\":\"5b79c7f4d8\",\"labe\nls\":{\"whalebox.created\":\"true\",\"whalebox.runtime\":\"ruby\"},\"status\":\"exited\"}]}\n\n# Run code with a user name tagged.\n$ curl -XPOST -H'Content-Type: application/json' 'http://localhost:5000/?user=john123' -d'{\"runtime\": \"ruby\", \"code\": \"print(\\\"Hello, world\\\")\"}'\n{\"id\":\"dce65099f6\",\"labels\":{\"whalebox.created\":\"true\",\"whalebox.runtime\":\"ruby\",\"whalebox.user\":\"john123\"},\"status\":\"exited\"}\n\n# List containers for a user\n$ curl 'http://localhost:5000/?user=john123'\n{\"containers\":[{\"id\":\"dce65099f6\",\"labels\":{\"whalebox.created\":\"true\",\"whalebox.runtime\":\"ruby\",\"whalebox.user\":\"john123\"},\"status\":\"exited\"\n}]}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstewartpark%2Fwhalebox","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstewartpark%2Fwhalebox","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstewartpark%2Fwhalebox/lists"}