{"id":15510427,"url":"https://github.com/ananace/dotnet-serestplugin","last_synced_at":"2026-06-11T22:31:35.887Z","repository":{"id":143078621,"uuid":"445938556","full_name":"ananace/dotnet-SERESTPlugin","owner":"ananace","description":"REST API Plugin for Space Engineers","archived":false,"fork":false,"pushed_at":"2024-01-19T09:30:17.000Z","size":177,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-11-15T02:22:42.802Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ananace.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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":"2022-01-08T22:05:11.000Z","updated_at":"2024-11-20T20:48:30.000Z","dependencies_parsed_at":"2024-11-10T01:23:10.299Z","dependency_job_id":"feb5acda-9499-437a-ae19-d85e80c61781","html_url":"https://github.com/ananace/dotnet-SERESTPlugin","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ananace/dotnet-SERESTPlugin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ananace%2Fdotnet-SERESTPlugin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ananace%2Fdotnet-SERESTPlugin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ananace%2Fdotnet-SERESTPlugin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ananace%2Fdotnet-SERESTPlugin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ananace","download_url":"https://codeload.github.com/ananace/dotnet-SERESTPlugin/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ananace%2Fdotnet-SERESTPlugin/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34221150,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-11T02:00:06.485Z","response_time":57,"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":[],"created_at":"2024-10-02T09:48:43.698Z","updated_at":"2026-06-11T22:31:35.864Z","avatar_url":"https://github.com/ananace.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"Space Engineers REST API Plugin\n===============================\n\nA small plugin that spins up a REST API server inside of Space Engineers, to ease the integration with external tools.\n\nCurrent functionality\n---------------------\n\n- Player access `/api/r0/player`\n  - Get health, oxygen, hydrogen(?)\n  - Read and set jetpack status `/jetpack`\n- GPS access `/api/r0/gps`\n  - Read list of player GPSes\n  - Create new GPSes\n  - CRUD access to GPS objects by name `/.*`\n- Chat access `/api/r0/chat`\n  - Post messages to chat (and run commands)\n    - Including with custom author `?author=.*`\n  - Get chat history `/history`\n- Grid access `/api/r0/grid`\n  - Local grid for the current player `/local`\n  - By grid ID `/id/.*`\n  - By grid name `/name/.*`\n\n- Block access on grids `/api/r0/grid/.*/block`\n  - By ID `/id/.*`\n  - By name `/name/.*`\n- Limited multiple nlock access on grids `/api/r0/grid/.*/blocks`\n  - By name `/name/.*`\n  - By group `/group/.*`\n\n- Several interfaces for communicating with blocks, some examples;\n\n```\n$ curl http://localhost:9000/api/r0/grid/local/block/name/Corner%20Light\n{\"functional\":true,\"id\":994836253988502996,\"interfaces\":[\"data\",\"functional\",\"light\",\"name\",\"upgradable\"],\"mass\":25,\"name\":\"Corner Light\",\"type\":\"Corner Light\",\"working\":true}\n$ curl http://localhost:9000/api/r0/grid/local/block/name/Corner%20Light/functional\nTrue\n$ curl http://localhost:9000/api/r0/grid/local/block/name/Corner%20Light/functional -d 'false'\n$ curl http://localhost:9000/api/r0/grid/local/block/name/Corner%20Light/functional\nFalse\n$ curl http://localhost:9000/api/r0/grid/local/block/name/Corner%20Light/light\n{\"blink_interval_seconds\":0,\"blink_length\":0,\"blink_offset\":0,\"color\":{\"a\":255,\"b\":255,\"g\":255,\"r\":255},\"falloff\":0,\"intensity\":4\",\"radius\":2}\n$ curl http://localhost:9000/api/r0/grid/local/block/name/Corner%20Light/light -d '{\"falloff\": 0.1, \"radius\": 10}'\n$ curl http://localhost:9000/api/r0/grid/local/block/name/Corner%20Light/light\n{\"blink_interval_seconds\":0,\"blink_length\":0,\"blink_offset\":0,\"color\":{\"a\":255,\"b\":255,\"g\":255,\"r\":255},\"falloff\":0,\"intensity\":4\",\"radius\":2}\n$ curl http://localhost:9000/api/r0/grid/local/block/name/Corner%20Light/name -d 'Corner Light - new name'\n$ curl http://localhost:9000/api/r0/grid/local/block/name/Corner%20Light%20-%20new%20name/data -d 'Custom Data'\n$ curl http://localhost:9000/api/r0/grid/local/block/name/Corner%20Light%20-%20new%20name\n{\"functional\":true,\"id\":994836253988502996,\"interfaces\":[\"data\",\"functional\",\"light\",\"name\",\"upgradable\"],\"mass\":25,\"name\":\"Corner Light - new name\",\"type\":\"Corner Light\",\"working\":false}\n$ curl http://localhost:9000/api/r0/grid/local/block/name/LCD%20Screen/text -d 'New screen text'\n$ curl http://localhost:9000/api/r0/grid/local/block/name/Ion%20Thruster/thrust -d '{\"override_perc\": 0.5}'\n$ curl http://localhost:9000/api/r0/grid/local/block/name/Gyroscope/gyro -d '{\"override\": true, \"yaw\": 1}'\n$ curl http://localhost:9000/api/r0/grid/local/block/name/Programmable%20block/script -d @script.cs\n$ curl http://localhost:9000/api/r0/grid/local/block/name/Programmable%20block\n{\"compile_errors\":false,\"running\":false}\n$ curl http://localhost:9000/api/r0/grid/local/block/name/Programmable%20block/run -X POST\n$ curl http://localhost:9000/api/r0/grid/local/block/name/Programmable%20block\n{\"compile_errors\":false,\"running\":true}\n```\n\nBuilding\n--------\n\nTo keep things reasonable, the project expects there to be a `Bin64` folder next to the solution, containing the SE DLLs.\nThis can be done with a symlink or similar, or the paths can be edited in the csproj for local builds.\n\nOn Windows, it should hopefully just build with Visual Studio.\n\nOn Linux, the `dotnet` CLI tool should be enough (from either the Core or 5+ SDKs).\n\nTODO\n----\n\n- Configuration for the server - port, hostname, etc\n- Handle dedicated servers (some endpoints are nonsensical on there, local player access etc)\n- Expose more data (in reasonable amounts)\n- Some kind of simple Web UI?\n- SSE streams? (chat? some other kind of events?)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fananace%2Fdotnet-serestplugin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fananace%2Fdotnet-serestplugin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fananace%2Fdotnet-serestplugin/lists"}