Nexus API
Nexus is the artifact registry that mur publishes to and installs from in remote registry mode. Pointing mur at an instance is covered in Registry selection rules.
Base path: /v1. Every request mur makes carries a 30-second total timeout.
Authentication is required on every endpoint:
Authorization: Bearer <NEXUS_API_KEY>
A missing or invalid key returns 401 {"error":"unauthorized"}. mur treats 401 and 403 alike and fails with E-IO-003 and the message registry authentication failed for <url>. Check NEXUS_API_KEY and try again. The codes named on this page are indexed in Diagnostics.
POST /v1/artifacts
Publish artifact bytes. Used by mur publish.
Query parameters
| Name | Required | Notes |
|---|---|---|
name |
yes | Artifact name |
version |
yes | Artifact version. latest, stable and edge are reserved |
runtime |
yes | wasm, native or static |
platform |
no | Platform tag for native artifacts, in os-arch form (e.g. darwin-aarch64). Repeatable for multiple variants |
Request body
Raw .mur.zip bytes, application/octet-stream.
Success — 201 Created
{
"artifact_id": "name@version",
"sha256": "..."
}
Error responses
| Status | Condition | mur reports |
|---|---|---|
400 Bad Request |
Bad input, invalid runtime, or invalid platform | E-IO-003 |
409 Conflict |
name@version already exists |
E-REG-003 |
422 Unprocessable Entity |
Reserved version. The body must read {"error":"reserved artifact version '<version>' is not allowed"} for mur to recognize it as one |
E-REG-004 |
GET /v1/artifacts/{name}/{version}
Download artifact bytes.
Query parameters
| Name | Required | Notes |
|---|---|---|
platform |
no | os-arch string (e.g. darwin-aarch64). Nexus returns the platform-specific variant when one exists, and the generic (untagged) file as a fallback. When absent, the generic file is returned |
Success — 200 OK
Raw artifact bytes, with two headers:
| Header | Value |
|---|---|
Content-Type |
application/octet-stream |
x-murmur-sha256 |
SHA-256 of the body |
x-murmur-sha256 is mandatory. mur fails the download when it is absent, and hashes the bytes it received against it; a mismatch is E-REG-002.
Error responses
| Status | Condition | mur reports |
|---|---|---|
401 Unauthorized |
Missing or invalid key | E-IO-003 |
404 Not Found |
No such artifact, or no variant for the requested platform. The error body names the requested platform: {"error":"artifact 'name@version' has no variant for platform 'os-arch'"} |
E-REG-001 |
GET /v1/artifacts
List registry index metadata. Returns 200 OK and a JSON array of objects:
| Field | Type | Required | Notes |
|---|---|---|---|
name |
string | yes | Artifact name |
version |
string | yes | Artifact version |
runtime |
string | yes | wasm, native or static |
artifact_runtime |
string | yes | The artifact's runtime role — tool, hook, driver, skill |
platforms |
list
|
no | Platform variants as [os, arch] pairs, e.g. [["darwin","aarch64"]]. Default: [] |
description |
string | null | no | Default: null |
tags |
list |
no | Default: [] |
An object that omits name, version, runtime or artifact_runtime fails to parse, and mur reports E-IO-003.
Server environment
| Variable | Required | Notes |
|---|---|---|
NEXUS_API_KEY |
yes | The bearer token clients must present |
NEXUS_BIND |
no | Address the server binds. Default: 127.0.0.1:7800 |