Create
Create a new release.
curl --request POST \
--url https://api.mirurobotics.com/beta/releases \
--header 'Content-Type: application/json' \
--header 'Miru-Version: <miru-version>' \
--header 'X-API-Key: <api-key>' \
--data '
{
"version": "v1.0.0",
"config_schema_ids": [
"cfg_sch_123"
],
"git_commit_ref": {
"id": "git_cmt_123",
"sha": "1a2b3c4d..."
}
}
'import requests
url = "https://api.mirurobotics.com/beta/releases"
payload = {
"version": "v1.0.0",
"config_schema_ids": ["cfg_sch_123"],
"git_commit_ref": {
"id": "git_cmt_123",
"sha": "1a2b3c4d..."
}
}
headers = {
"Miru-Version": "<miru-version>",
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'Miru-Version': '<miru-version>',
'X-API-Key': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
version: 'v1.0.0',
config_schema_ids: ['cfg_sch_123'],
git_commit_ref: {id: 'git_cmt_123', sha: '1a2b3c4d...'}
})
};
fetch('https://api.mirurobotics.com/beta/releases', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.mirurobotics.com/beta/releases",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'version' => 'v1.0.0',
'config_schema_ids' => [
'cfg_sch_123'
],
'git_commit_ref' => [
'id' => 'git_cmt_123',
'sha' => '1a2b3c4d...'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"Miru-Version: <miru-version>",
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.mirurobotics.com/beta/releases"
payload := strings.NewReader("{\n \"version\": \"v1.0.0\",\n \"config_schema_ids\": [\n \"cfg_sch_123\"\n ],\n \"git_commit_ref\": {\n \"id\": \"git_cmt_123\",\n \"sha\": \"1a2b3c4d...\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Miru-Version", "<miru-version>")
req.Header.Add("X-API-Key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.mirurobotics.com/beta/releases")
.header("Miru-Version", "<miru-version>")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"version\": \"v1.0.0\",\n \"config_schema_ids\": [\n \"cfg_sch_123\"\n ],\n \"git_commit_ref\": {\n \"id\": \"git_cmt_123\",\n \"sha\": \"1a2b3c4d...\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.mirurobotics.com/beta/releases")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Miru-Version"] = '<miru-version>'
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"version\": \"v1.0.0\",\n \"config_schema_ids\": [\n \"cfg_sch_123\"\n ],\n \"git_commit_ref\": {\n \"id\": \"git_cmt_123\",\n \"sha\": \"1a2b3c4d...\"\n }\n}"
response = http.request(request)
puts response.read_body{
"object": "release",
"id": "rls_123",
"version": "v1.0.0",
"git_commit_id": "git_commit_123",
"created_at": "2024-01-01T00:00:00Z",
"updated_at": "2024-01-01T00:00:00Z"
}| Scope | Required |
|---|---|
releases:write | Yes |
Authorizations
The API key to use for authentication.
Headers
The API version the client was built against.
"2026-08-17.everglades"
Query Parameters
Fields to expand on the release resource.
config_schemas ["config_schemas"]
Body
The version of the release.
"v1.0.0"
The IDs of the config schemas included in the release.
A reference to a git commit. At least one of id or sha must be provided. When both are provided, id takes precedence and sha is ignored.
Show child attributes
Show child attributes
Response
Successfully created the release.
The object type, which is always release.
release "release"
ID of the release.
"rls_123"
The version of the release.
"v1.0.0"
The ID of the git commit associated with this release.
"git_commit_123"
Timestamp of when the release was created.
"2024-01-01T00:00:00Z"
Timestamp of when the release was last updated.
"2024-01-01T00:00:00Z"
Expand the config schemas using 'expand=config_schemas' in the query string.
Show child attributes
Show child attributes
[
{
"object": "config_schema",
"id": "cfg_sch_123",
"digest": "sha256:1234567890",
"config_type_name": "Motion Control",
"instance_slots": [
{
"key": "default",
"name": "Default",
"filepath": "/srv/miru/configs/v1/motion-control.json",
"required": true
}
],
"instance_format": "json",
"created_at": "2021-01-01T00:00:00Z",
"updated_at": "2021-01-01T00:00:00Z",
"config_type_id": "cfg_typ_123",
"language": "jsonschema",
"format": "json"
},
{
"object": "config_schema",
"id": "cfg_sch_124",
"digest": "sha256:1234567890",
"config_type_name": "Localization",
"instance_slots": [
{
"key": "primary",
"name": "Primary",
"filepath": "/srv/miru/configs/v1/localization/primary.json",
"required": true
},
{
"key": "secondary",
"name": "Secondary",
"filepath": "/srv/miru/configs/v1/localization/secondary.json",
"required": false
}
],
"instance_format": "json",
"created_at": "2021-01-01T00:00:00Z",
"updated_at": "2021-01-01T00:00:00Z",
"config_type_id": "cfg_typ_124",
"language": "jsonschema",
"format": "json"
}
]
curl --request POST \
--url https://api.mirurobotics.com/beta/releases \
--header 'Content-Type: application/json' \
--header 'Miru-Version: <miru-version>' \
--header 'X-API-Key: <api-key>' \
--data '
{
"version": "v1.0.0",
"config_schema_ids": [
"cfg_sch_123"
],
"git_commit_ref": {
"id": "git_cmt_123",
"sha": "1a2b3c4d..."
}
}
'import requests
url = "https://api.mirurobotics.com/beta/releases"
payload = {
"version": "v1.0.0",
"config_schema_ids": ["cfg_sch_123"],
"git_commit_ref": {
"id": "git_cmt_123",
"sha": "1a2b3c4d..."
}
}
headers = {
"Miru-Version": "<miru-version>",
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'Miru-Version': '<miru-version>',
'X-API-Key': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
version: 'v1.0.0',
config_schema_ids: ['cfg_sch_123'],
git_commit_ref: {id: 'git_cmt_123', sha: '1a2b3c4d...'}
})
};
fetch('https://api.mirurobotics.com/beta/releases', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.mirurobotics.com/beta/releases",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'version' => 'v1.0.0',
'config_schema_ids' => [
'cfg_sch_123'
],
'git_commit_ref' => [
'id' => 'git_cmt_123',
'sha' => '1a2b3c4d...'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"Miru-Version: <miru-version>",
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.mirurobotics.com/beta/releases"
payload := strings.NewReader("{\n \"version\": \"v1.0.0\",\n \"config_schema_ids\": [\n \"cfg_sch_123\"\n ],\n \"git_commit_ref\": {\n \"id\": \"git_cmt_123\",\n \"sha\": \"1a2b3c4d...\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Miru-Version", "<miru-version>")
req.Header.Add("X-API-Key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.mirurobotics.com/beta/releases")
.header("Miru-Version", "<miru-version>")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"version\": \"v1.0.0\",\n \"config_schema_ids\": [\n \"cfg_sch_123\"\n ],\n \"git_commit_ref\": {\n \"id\": \"git_cmt_123\",\n \"sha\": \"1a2b3c4d...\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.mirurobotics.com/beta/releases")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Miru-Version"] = '<miru-version>'
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"version\": \"v1.0.0\",\n \"config_schema_ids\": [\n \"cfg_sch_123\"\n ],\n \"git_commit_ref\": {\n \"id\": \"git_cmt_123\",\n \"sha\": \"1a2b3c4d...\"\n }\n}"
response = http.request(request)
puts response.read_body{
"object": "release",
"id": "rls_123",
"version": "v1.0.0",
"git_commit_id": "git_commit_123",
"created_at": "2024-01-01T00:00:00Z",
"updated_at": "2024-01-01T00:00:00Z"
}
